1 // Copyright 2015-2023 The Khronos Group Inc.
2 //
3 // SPDX-License-Identifier: Apache-2.0 OR MIT
4 //
5 
6 // This header is generated from the Khronos Vulkan XML API Registry.
7 
8 #ifndef VULKAN_STRUCTS_HPP
9 #  define VULKAN_STRUCTS_HPP
10 
11 #include <cstring>  // strcmp
12 
13 namespace VULKAN_HPP_NAMESPACE
14 {
15 
16   //===============
17   //=== STRUCTS ===
18   //===============
19 
20 
21   struct AabbPositionsKHR
22   {
23     using NativeType = VkAabbPositionsKHR;
24 
25 
26 
27 
28 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR29 VULKAN_HPP_CONSTEXPR AabbPositionsKHR(float minX_ = {}, float minY_ = {}, float minZ_ = {}, float maxX_ = {}, float maxY_ = {}, float maxZ_ = {}) VULKAN_HPP_NOEXCEPT
30     : minX( minX_ ), minY( minY_ ), minZ( minZ_ ), maxX( maxX_ ), maxY( maxY_ ), maxZ( maxZ_ )
31     {}
32 
33     VULKAN_HPP_CONSTEXPR AabbPositionsKHR( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34 
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR35     AabbPositionsKHR( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
36       : AabbPositionsKHR( *reinterpret_cast<AabbPositionsKHR const *>( &rhs ) )
37     {}
38 
39 
40     AabbPositionsKHR & operator=( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
42 
operator =VULKAN_HPP_NAMESPACE::AabbPositionsKHR43     AabbPositionsKHR & operator=( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44     {
45       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AabbPositionsKHR const *>( &rhs );
46       return *this;
47     }
48 
49 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setMinXVULKAN_HPP_NAMESPACE::AabbPositionsKHR50     VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT
51     {
52       minX = minX_;
53       return *this;
54     }
55 
setMinYVULKAN_HPP_NAMESPACE::AabbPositionsKHR56     VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMinY( float minY_ ) VULKAN_HPP_NOEXCEPT
57     {
58       minY = minY_;
59       return *this;
60     }
61 
setMinZVULKAN_HPP_NAMESPACE::AabbPositionsKHR62     VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMinZ( float minZ_ ) VULKAN_HPP_NOEXCEPT
63     {
64       minZ = minZ_;
65       return *this;
66     }
67 
setMaxXVULKAN_HPP_NAMESPACE::AabbPositionsKHR68     VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMaxX( float maxX_ ) VULKAN_HPP_NOEXCEPT
69     {
70       maxX = maxX_;
71       return *this;
72     }
73 
setMaxYVULKAN_HPP_NAMESPACE::AabbPositionsKHR74     VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMaxY( float maxY_ ) VULKAN_HPP_NOEXCEPT
75     {
76       maxY = maxY_;
77       return *this;
78     }
79 
setMaxZVULKAN_HPP_NAMESPACE::AabbPositionsKHR80     VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMaxZ( float maxZ_ ) VULKAN_HPP_NOEXCEPT
81     {
82       maxZ = maxZ_;
83       return *this;
84     }
85 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
86 
87 
operator VkAabbPositionsKHR const&VULKAN_HPP_NAMESPACE::AabbPositionsKHR88     operator VkAabbPositionsKHR const &() const VULKAN_HPP_NOEXCEPT
89     {
90       return *reinterpret_cast<const VkAabbPositionsKHR*>( this );
91     }
92 
operator VkAabbPositionsKHR&VULKAN_HPP_NAMESPACE::AabbPositionsKHR93     operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT
94     {
95       return *reinterpret_cast<VkAabbPositionsKHR*>( this );
96     }
97 
98 #if defined( VULKAN_HPP_USE_REFLECT )
99 #if 14 <= VULKAN_HPP_CPP_VERSION
100     auto
101 #else
102     std::tuple<float const &, float const &, float const &, float const &, float const &, float const &>
103 #endif
reflectVULKAN_HPP_NAMESPACE::AabbPositionsKHR104       reflect() const VULKAN_HPP_NOEXCEPT
105     {
106       return std::tie( minX, minY, minZ, maxX, maxY, maxZ );
107     }
108 #endif
109 
110 
111 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
112 auto operator<=>( AabbPositionsKHR const & ) const = default;
113 #else
operator ==VULKAN_HPP_NAMESPACE::AabbPositionsKHR114     bool operator==( AabbPositionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
115     {
116 #if defined( VULKAN_HPP_USE_REFLECT )
117       return this->reflect() == rhs.reflect();
118 #else
119       return ( minX == rhs.minX )
120           && ( minY == rhs.minY )
121           && ( minZ == rhs.minZ )
122           && ( maxX == rhs.maxX )
123           && ( maxY == rhs.maxY )
124           && ( maxZ == rhs.maxZ );
125 #endif
126     }
127 
operator !=VULKAN_HPP_NAMESPACE::AabbPositionsKHR128     bool operator!=( AabbPositionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
129     {
130       return !operator==( rhs );
131     }
132 #endif
133 
134     public:
135     float minX = {};
136     float minY = {};
137     float minZ = {};
138     float maxX = {};
139     float maxY = {};
140     float maxZ = {};
141 
142   };
143   using AabbPositionsNV = AabbPositionsKHR;
144 
145   union DeviceOrHostAddressConstKHR
146   {
147     using NativeType = VkDeviceOrHostAddressConstKHR;
148 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
149 
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )150     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
151       : deviceAddress( deviceAddress_ )
152     {}
153 
DeviceOrHostAddressConstKHR(const void * hostAddress_)154     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstKHR( const void * hostAddress_ )
155       : hostAddress( hostAddress_ )
156     {}
157 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
158 
159 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)160     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
161     {
162       deviceAddress = deviceAddress_;
163       return *this;
164     }
165 
setHostAddress(const void * hostAddress_)166     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstKHR & setHostAddress( const void * hostAddress_ ) VULKAN_HPP_NOEXCEPT
167     {
168       hostAddress = hostAddress_;
169       return *this;
170     }
171 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
172 
operator VkDeviceOrHostAddressConstKHR const&() const173     operator VkDeviceOrHostAddressConstKHR const &() const
174     {
175       return *reinterpret_cast<const VkDeviceOrHostAddressConstKHR*>( this );
176     }
177 
operator VkDeviceOrHostAddressConstKHR&()178     operator VkDeviceOrHostAddressConstKHR &()
179     {
180       return *reinterpret_cast<VkDeviceOrHostAddressConstKHR*>( this );
181     }
182 
183 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
184     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
185     const void * hostAddress;
186 #else
187     VkDeviceAddress deviceAddress;
188     const void * hostAddress;
189 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
190 
191   };
192 
193   struct AccelerationStructureGeometryTrianglesDataKHR
194   {
195     using NativeType = VkAccelerationStructureGeometryTrianglesDataKHR;
196 
197     static const bool allowDuplicate = false;
198     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
199 
200 
201 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR202 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR(VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, uint32_t maxVertex_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
203     : pNext( pNext_ ), vertexFormat( vertexFormat_ ), vertexData( vertexData_ ), vertexStride( vertexStride_ ), maxVertex( maxVertex_ ), indexType( indexType_ ), indexData( indexData_ ), transformData( transformData_ )
204     {}
205 
206     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
207 
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR208     AccelerationStructureGeometryTrianglesDataKHR( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
209       : AccelerationStructureGeometryTrianglesDataKHR( *reinterpret_cast<AccelerationStructureGeometryTrianglesDataKHR const *>( &rhs ) )
210     {}
211 
212 
213     AccelerationStructureGeometryTrianglesDataKHR & operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
214 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
215 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR216     AccelerationStructureGeometryTrianglesDataKHR & operator=( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
217     {
218       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const *>( &rhs );
219       return *this;
220     }
221 
222 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR223     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
224     {
225       pNext = pNext_;
226       return *this;
227     }
228 
setVertexFormatVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR229     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
230     {
231       vertexFormat = vertexFormat_;
232       return *this;
233     }
234 
setVertexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR235     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
236     {
237       vertexData = vertexData_;
238       return *this;
239     }
240 
setVertexStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR241     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
242     {
243       vertexStride = vertexStride_;
244       return *this;
245     }
246 
setMaxVertexVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR247     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setMaxVertex( uint32_t maxVertex_ ) VULKAN_HPP_NOEXCEPT
248     {
249       maxVertex = maxVertex_;
250       return *this;
251     }
252 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR253     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
254     {
255       indexType = indexType_;
256       return *this;
257     }
258 
setIndexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR259     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT
260     {
261       indexData = indexData_;
262       return *this;
263     }
264 
setTransformDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR265     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT
266     {
267       transformData = transformData_;
268       return *this;
269     }
270 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
271 
272 
operator VkAccelerationStructureGeometryTrianglesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR273     operator VkAccelerationStructureGeometryTrianglesDataKHR const &() const VULKAN_HPP_NOEXCEPT
274     {
275       return *reinterpret_cast<const VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
276     }
277 
operator VkAccelerationStructureGeometryTrianglesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR278     operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT
279     {
280       return *reinterpret_cast<VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
281     }
282 
283 #if defined( VULKAN_HPP_USE_REFLECT )
284 #if 14 <= VULKAN_HPP_CPP_VERSION
285     auto
286 #else
287     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, VULKAN_HPP_NAMESPACE::IndexType const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &>
288 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR289       reflect() const VULKAN_HPP_NOEXCEPT
290     {
291       return std::tie( sType, pNext, vertexFormat, vertexData, vertexStride, maxVertex, indexType, indexData, transformData );
292     }
293 #endif
294 
295 
296     public:
297     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
298     const void * pNext = {};
299     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
300     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {};
301     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
302     uint32_t maxVertex = {};
303     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
304     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData = {};
305     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData = {};
306 
307   };
308 
309   template <>
310   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryTrianglesDataKHR>
311   {
312     using Type = AccelerationStructureGeometryTrianglesDataKHR;
313   };
314 
315   struct AccelerationStructureGeometryAabbsDataKHR
316   {
317     using NativeType = VkAccelerationStructureGeometryAabbsDataKHR;
318 
319     static const bool allowDuplicate = false;
320     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
321 
322 
323 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR324 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
325     : pNext( pNext_ ), data( data_ ), stride( stride_ )
326     {}
327 
328     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
329 
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR330     AccelerationStructureGeometryAabbsDataKHR( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
331       : AccelerationStructureGeometryAabbsDataKHR( *reinterpret_cast<AccelerationStructureGeometryAabbsDataKHR const *>( &rhs ) )
332     {}
333 
334 
335     AccelerationStructureGeometryAabbsDataKHR & operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
336 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
337 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR338     AccelerationStructureGeometryAabbsDataKHR & operator=( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
339     {
340       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const *>( &rhs );
341       return *this;
342     }
343 
344 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR345     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
346     {
347       pNext = pNext_;
348       return *this;
349     }
350 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR351     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
352     {
353       data = data_;
354       return *this;
355     }
356 
setStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR357     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
358     {
359       stride = stride_;
360       return *this;
361     }
362 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
363 
364 
operator VkAccelerationStructureGeometryAabbsDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR365     operator VkAccelerationStructureGeometryAabbsDataKHR const &() const VULKAN_HPP_NOEXCEPT
366     {
367       return *reinterpret_cast<const VkAccelerationStructureGeometryAabbsDataKHR*>( this );
368     }
369 
operator VkAccelerationStructureGeometryAabbsDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR370     operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT
371     {
372       return *reinterpret_cast<VkAccelerationStructureGeometryAabbsDataKHR*>( this );
373     }
374 
375 #if defined( VULKAN_HPP_USE_REFLECT )
376 #if 14 <= VULKAN_HPP_CPP_VERSION
377     auto
378 #else
379     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
380 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR381       reflect() const VULKAN_HPP_NOEXCEPT
382     {
383       return std::tie( sType, pNext, data, stride );
384     }
385 #endif
386 
387 
388     public:
389     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
390     const void * pNext = {};
391     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
392     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
393 
394   };
395 
396   template <>
397   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryAabbsDataKHR>
398   {
399     using Type = AccelerationStructureGeometryAabbsDataKHR;
400   };
401 
402   struct AccelerationStructureGeometryInstancesDataKHR
403   {
404     using NativeType = VkAccelerationStructureGeometryInstancesDataKHR;
405 
406     static const bool allowDuplicate = false;
407     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
408 
409 
410 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR411 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR(VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
412     : pNext( pNext_ ), arrayOfPointers( arrayOfPointers_ ), data( data_ )
413     {}
414 
415     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
416 
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR417     AccelerationStructureGeometryInstancesDataKHR( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
418       : AccelerationStructureGeometryInstancesDataKHR( *reinterpret_cast<AccelerationStructureGeometryInstancesDataKHR const *>( &rhs ) )
419     {}
420 
421 
422     AccelerationStructureGeometryInstancesDataKHR & operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
423 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
424 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR425     AccelerationStructureGeometryInstancesDataKHR & operator=( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
426     {
427       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const *>( &rhs );
428       return *this;
429     }
430 
431 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR432     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
433     {
434       pNext = pNext_;
435       return *this;
436     }
437 
setArrayOfPointersVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR438     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR & setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
439     {
440       arrayOfPointers = arrayOfPointers_;
441       return *this;
442     }
443 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR444     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
445     {
446       data = data_;
447       return *this;
448     }
449 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
450 
451 
operator VkAccelerationStructureGeometryInstancesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR452     operator VkAccelerationStructureGeometryInstancesDataKHR const &() const VULKAN_HPP_NOEXCEPT
453     {
454       return *reinterpret_cast<const VkAccelerationStructureGeometryInstancesDataKHR*>( this );
455     }
456 
operator VkAccelerationStructureGeometryInstancesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR457     operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT
458     {
459       return *reinterpret_cast<VkAccelerationStructureGeometryInstancesDataKHR*>( this );
460     }
461 
462 #if defined( VULKAN_HPP_USE_REFLECT )
463 #if 14 <= VULKAN_HPP_CPP_VERSION
464     auto
465 #else
466     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &>
467 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR468       reflect() const VULKAN_HPP_NOEXCEPT
469     {
470       return std::tie( sType, pNext, arrayOfPointers, data );
471     }
472 #endif
473 
474 
475     public:
476     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
477     const void * pNext = {};
478     VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers = {};
479     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
480 
481   };
482 
483   template <>
484   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryInstancesDataKHR>
485   {
486     using Type = AccelerationStructureGeometryInstancesDataKHR;
487   };
488 
489   union AccelerationStructureGeometryDataKHR
490   {
491     using NativeType = VkAccelerationStructureGeometryDataKHR;
492 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
493 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_={} )494     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_ = {} )
495       : triangles( triangles_ )
496     {}
497 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_)498     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_ )
499       : aabbs( aabbs_ )
500     {}
501 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_)502     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ )
503       : instances( instances_ )
504     {}
505 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
506 
507 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setTriangles(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_)508     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR & setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT
509     {
510       triangles = triangles_;
511       return *this;
512     }
513 
setAabbs(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_)514     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR & setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT
515     {
516       aabbs = aabbs_;
517       return *this;
518     }
519 
setInstances(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_)520     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR & setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT
521     {
522       instances = instances_;
523       return *this;
524     }
525 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
526 
operator VkAccelerationStructureGeometryDataKHR const&() const527     operator VkAccelerationStructureGeometryDataKHR const &() const
528     {
529       return *reinterpret_cast<const VkAccelerationStructureGeometryDataKHR*>( this );
530     }
531 
operator VkAccelerationStructureGeometryDataKHR&()532     operator VkAccelerationStructureGeometryDataKHR &()
533     {
534       return *reinterpret_cast<VkAccelerationStructureGeometryDataKHR*>( this );
535     }
536 
537 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
538     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles;
539     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs;
540     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances;
541 #else
542     VkAccelerationStructureGeometryTrianglesDataKHR triangles;
543     VkAccelerationStructureGeometryAabbsDataKHR aabbs;
544     VkAccelerationStructureGeometryInstancesDataKHR instances;
545 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
546 
547   };
548 
549   struct AccelerationStructureGeometryKHR
550   {
551     using NativeType = VkAccelerationStructureGeometryKHR;
552 
553     static const bool allowDuplicate = false;
554     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryKHR;
555 
556 
557 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR558 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
559     : pNext( pNext_ ), geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ )
560     {}
561 
562     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
563 
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR564     AccelerationStructureGeometryKHR( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
565       : AccelerationStructureGeometryKHR( *reinterpret_cast<AccelerationStructureGeometryKHR const *>( &rhs ) )
566     {}
567 
568 
569     AccelerationStructureGeometryKHR & operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
570 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
571 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR572     AccelerationStructureGeometryKHR & operator=( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
573     {
574       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR const *>( &rhs );
575       return *this;
576     }
577 
578 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR579     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
580     {
581       pNext = pNext_;
582       return *this;
583     }
584 
setGeometryTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR585     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
586     {
587       geometryType = geometryType_;
588       return *this;
589     }
590 
setGeometryVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR591     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR & setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT
592     {
593       geometry = geometry_;
594       return *this;
595     }
596 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR597     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
598     {
599       flags = flags_;
600       return *this;
601     }
602 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
603 
604 
operator VkAccelerationStructureGeometryKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR605     operator VkAccelerationStructureGeometryKHR const &() const VULKAN_HPP_NOEXCEPT
606     {
607       return *reinterpret_cast<const VkAccelerationStructureGeometryKHR*>( this );
608     }
609 
operator VkAccelerationStructureGeometryKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR610     operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT
611     {
612       return *reinterpret_cast<VkAccelerationStructureGeometryKHR*>( this );
613     }
614 
615 #if defined( VULKAN_HPP_USE_REFLECT )
616 #if 14 <= VULKAN_HPP_CPP_VERSION
617     auto
618 #else
619     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::GeometryTypeKHR const &, VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const &, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR const &>
620 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR621       reflect() const VULKAN_HPP_NOEXCEPT
622     {
623       return std::tie( sType, pNext, geometryType, geometry, flags );
624     }
625 #endif
626 
627 
628     public:
629     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryKHR;
630     const void * pNext = {};
631     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
632     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry = {};
633     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
634 
635   };
636 
637   template <>
638   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryKHR>
639   {
640     using Type = AccelerationStructureGeometryKHR;
641   };
642 
643   union DeviceOrHostAddressKHR
644   {
645     using NativeType = VkDeviceOrHostAddressKHR;
646 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
647 
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )648     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
649       : deviceAddress( deviceAddress_ )
650     {}
651 
DeviceOrHostAddressKHR(void * hostAddress_)652     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressKHR( void * hostAddress_ )
653       : hostAddress( hostAddress_ )
654     {}
655 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
656 
657 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)658     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
659     {
660       deviceAddress = deviceAddress_;
661       return *this;
662     }
663 
setHostAddress(void * hostAddress_)664     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressKHR & setHostAddress( void * hostAddress_ ) VULKAN_HPP_NOEXCEPT
665     {
666       hostAddress = hostAddress_;
667       return *this;
668     }
669 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
670 
operator VkDeviceOrHostAddressKHR const&() const671     operator VkDeviceOrHostAddressKHR const &() const
672     {
673       return *reinterpret_cast<const VkDeviceOrHostAddressKHR*>( this );
674     }
675 
operator VkDeviceOrHostAddressKHR&()676     operator VkDeviceOrHostAddressKHR &()
677     {
678       return *reinterpret_cast<VkDeviceOrHostAddressKHR*>( this );
679     }
680 
681 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
682     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
683     void * hostAddress;
684 #else
685     VkDeviceAddress deviceAddress;
686     void * hostAddress;
687 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
688 
689   };
690 
691   struct AccelerationStructureBuildGeometryInfoKHR
692   {
693     using NativeType = VkAccelerationStructureBuildGeometryInfoKHR;
694 
695     static const bool allowDuplicate = false;
696     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
697 
698 
699 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR700 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ = {}, uint32_t geometryCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
701     : pNext( pNext_ ), type( type_ ), flags( flags_ ), mode( mode_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ ), ppGeometries( ppGeometries_ ), scratchData( scratchData_ )
702     {}
703 
704     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
705 
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR706     AccelerationStructureBuildGeometryInfoKHR( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
707       : AccelerationStructureBuildGeometryInfoKHR( *reinterpret_cast<AccelerationStructureBuildGeometryInfoKHR const *>( &rhs ) )
708     {}
709 
710 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR711     AccelerationStructureBuildGeometryInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR> const & geometries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const> const & pGeometries_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {}, const void * pNext_ = nullptr )
712     : pNext( pNext_ ), type( type_ ), flags( flags_ ), mode( mode_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryCount( static_cast<uint32_t>( !geometries_.empty() ? geometries_.size() : pGeometries_.size() ) ), pGeometries( geometries_.data() ), ppGeometries( pGeometries_.data() ), scratchData( scratchData_ )
713     {
714 #ifdef VULKAN_HPP_NO_EXCEPTIONS
715       VULKAN_HPP_ASSERT( ( !geometries_.empty() + !pGeometries_.empty() ) <= 1);
716 #else
717       if ( 1 < ( !geometries_.empty() + !pGeometries_.empty() ) )
718       {
719         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::AccelerationStructureBuildGeometryInfoKHR::AccelerationStructureBuildGeometryInfoKHR: 1 < ( !geometries_.empty() + !pGeometries_.empty() )" );
720       }
721 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
722     }
723 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
724 
725 
726     AccelerationStructureBuildGeometryInfoKHR & operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
727 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
728 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR729     AccelerationStructureBuildGeometryInfoKHR & operator=( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
730     {
731       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR const *>( &rhs );
732       return *this;
733     }
734 
735 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR736     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
737     {
738       pNext = pNext_;
739       return *this;
740     }
741 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR742     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
743     {
744       type = type_;
745       return *this;
746     }
747 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR748     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
749     {
750       flags = flags_;
751       return *this;
752     }
753 
setModeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR754     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
755     {
756       mode = mode_;
757       return *this;
758     }
759 
setSrcAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR760     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
761     {
762       srcAccelerationStructure = srcAccelerationStructure_;
763       return *this;
764     }
765 
setDstAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR766     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
767     {
768       dstAccelerationStructure = dstAccelerationStructure_;
769       return *this;
770     }
771 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR772     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
773     {
774       geometryCount = geometryCount_;
775       return *this;
776     }
777 
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR778     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setPGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries_ ) VULKAN_HPP_NOEXCEPT
779     {
780       pGeometries = pGeometries_;
781       return *this;
782     }
783 
784 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR785     AccelerationStructureBuildGeometryInfoKHR & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR> const & geometries_ ) VULKAN_HPP_NOEXCEPT
786     {
787       geometryCount = static_cast<uint32_t>( geometries_.size() );
788       pGeometries = geometries_.data();
789       return *this;
790     }
791 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
792 
setPpGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR793     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT
794     {
795       ppGeometries = ppGeometries_;
796       return *this;
797     }
798 
799 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR800     AccelerationStructureBuildGeometryInfoKHR & setPGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const> const & pGeometries_ ) VULKAN_HPP_NOEXCEPT
801     {
802       geometryCount = static_cast<uint32_t>( pGeometries_.size() );
803       ppGeometries = pGeometries_.data();
804       return *this;
805     }
806 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
807 
setScratchDataVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR808     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
809     {
810       scratchData = scratchData_;
811       return *this;
812     }
813 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
814 
815 
operator VkAccelerationStructureBuildGeometryInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR816     operator VkAccelerationStructureBuildGeometryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
817     {
818       return *reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( this );
819     }
820 
operator VkAccelerationStructureBuildGeometryInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR821     operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT
822     {
823       return *reinterpret_cast<VkAccelerationStructureBuildGeometryInfoKHR*>( this );
824     }
825 
826 #if defined( VULKAN_HPP_USE_REFLECT )
827 #if 14 <= VULKAN_HPP_CPP_VERSION
828     auto
829 #else
830     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR const &, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR const &, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR const &, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const &, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const &>
831 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR832       reflect() const VULKAN_HPP_NOEXCEPT
833     {
834       return std::tie( sType, pNext, type, flags, mode, srcAccelerationStructure, dstAccelerationStructure, geometryCount, pGeometries, ppGeometries, scratchData );
835     }
836 #endif
837 
838 
839     public:
840     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
841     const void * pNext = {};
842     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
843     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
844     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild;
845     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure = {};
846     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure = {};
847     uint32_t geometryCount = {};
848     const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries = {};
849     const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries = {};
850     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {};
851 
852   };
853 
854   template <>
855   struct CppType<StructureType, StructureType::eAccelerationStructureBuildGeometryInfoKHR>
856   {
857     using Type = AccelerationStructureBuildGeometryInfoKHR;
858   };
859 
860   struct AccelerationStructureBuildRangeInfoKHR
861   {
862     using NativeType = VkAccelerationStructureBuildRangeInfoKHR;
863 
864 
865 
866 
867 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildRangeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR868 VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR(uint32_t primitiveCount_ = {}, uint32_t primitiveOffset_ = {}, uint32_t firstVertex_ = {}, uint32_t transformOffset_ = {}) VULKAN_HPP_NOEXCEPT
869     : primitiveCount( primitiveCount_ ), primitiveOffset( primitiveOffset_ ), firstVertex( firstVertex_ ), transformOffset( transformOffset_ )
870     {}
871 
872     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
873 
AccelerationStructureBuildRangeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR874     AccelerationStructureBuildRangeInfoKHR( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
875       : AccelerationStructureBuildRangeInfoKHR( *reinterpret_cast<AccelerationStructureBuildRangeInfoKHR const *>( &rhs ) )
876     {}
877 
878 
879     AccelerationStructureBuildRangeInfoKHR & operator=( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
880 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
881 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR882     AccelerationStructureBuildRangeInfoKHR & operator=( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
883     {
884       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR const *>( &rhs );
885       return *this;
886     }
887 
888 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPrimitiveCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR889     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT
890     {
891       primitiveCount = primitiveCount_;
892       return *this;
893     }
894 
setPrimitiveOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR895     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & setPrimitiveOffset( uint32_t primitiveOffset_ ) VULKAN_HPP_NOEXCEPT
896     {
897       primitiveOffset = primitiveOffset_;
898       return *this;
899     }
900 
setFirstVertexVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR901     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
902     {
903       firstVertex = firstVertex_;
904       return *this;
905     }
906 
setTransformOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR907     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & setTransformOffset( uint32_t transformOffset_ ) VULKAN_HPP_NOEXCEPT
908     {
909       transformOffset = transformOffset_;
910       return *this;
911     }
912 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
913 
914 
operator VkAccelerationStructureBuildRangeInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR915     operator VkAccelerationStructureBuildRangeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
916     {
917       return *reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR*>( this );
918     }
919 
operator VkAccelerationStructureBuildRangeInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR920     operator VkAccelerationStructureBuildRangeInfoKHR &() VULKAN_HPP_NOEXCEPT
921     {
922       return *reinterpret_cast<VkAccelerationStructureBuildRangeInfoKHR*>( this );
923     }
924 
925 #if defined( VULKAN_HPP_USE_REFLECT )
926 #if 14 <= VULKAN_HPP_CPP_VERSION
927     auto
928 #else
929     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
930 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR931       reflect() const VULKAN_HPP_NOEXCEPT
932     {
933       return std::tie( primitiveCount, primitiveOffset, firstVertex, transformOffset );
934     }
935 #endif
936 
937 
938 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
939 auto operator<=>( AccelerationStructureBuildRangeInfoKHR const & ) const = default;
940 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR941     bool operator==( AccelerationStructureBuildRangeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
942     {
943 #if defined( VULKAN_HPP_USE_REFLECT )
944       return this->reflect() == rhs.reflect();
945 #else
946       return ( primitiveCount == rhs.primitiveCount )
947           && ( primitiveOffset == rhs.primitiveOffset )
948           && ( firstVertex == rhs.firstVertex )
949           && ( transformOffset == rhs.transformOffset );
950 #endif
951     }
952 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR953     bool operator!=( AccelerationStructureBuildRangeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
954     {
955       return !operator==( rhs );
956     }
957 #endif
958 
959     public:
960     uint32_t primitiveCount = {};
961     uint32_t primitiveOffset = {};
962     uint32_t firstVertex = {};
963     uint32_t transformOffset = {};
964 
965   };
966 
967   struct AccelerationStructureBuildSizesInfoKHR
968   {
969     using NativeType = VkAccelerationStructureBuildSizesInfoKHR;
970 
971     static const bool allowDuplicate = false;
972     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildSizesInfoKHR;
973 
974 
975 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildSizesInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR976 VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR(VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
977     : pNext( pNext_ ), accelerationStructureSize( accelerationStructureSize_ ), updateScratchSize( updateScratchSize_ ), buildScratchSize( buildScratchSize_ )
978     {}
979 
980     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
981 
AccelerationStructureBuildSizesInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR982     AccelerationStructureBuildSizesInfoKHR( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
983       : AccelerationStructureBuildSizesInfoKHR( *reinterpret_cast<AccelerationStructureBuildSizesInfoKHR const *>( &rhs ) )
984     {}
985 
986 
987     AccelerationStructureBuildSizesInfoKHR & operator=( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
988 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
989 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR990     AccelerationStructureBuildSizesInfoKHR & operator=( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
991     {
992       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR const *>( &rhs );
993       return *this;
994     }
995 
996 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR997     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
998     {
999       pNext = pNext_;
1000       return *this;
1001     }
1002 
setAccelerationStructureSizeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR1003     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR & setAccelerationStructureSize( VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ ) VULKAN_HPP_NOEXCEPT
1004     {
1005       accelerationStructureSize = accelerationStructureSize_;
1006       return *this;
1007     }
1008 
setUpdateScratchSizeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR1009     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR & setUpdateScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ ) VULKAN_HPP_NOEXCEPT
1010     {
1011       updateScratchSize = updateScratchSize_;
1012       return *this;
1013     }
1014 
setBuildScratchSizeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR1015     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR & setBuildScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ ) VULKAN_HPP_NOEXCEPT
1016     {
1017       buildScratchSize = buildScratchSize_;
1018       return *this;
1019     }
1020 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
1021 
1022 
operator VkAccelerationStructureBuildSizesInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR1023     operator VkAccelerationStructureBuildSizesInfoKHR const &() const VULKAN_HPP_NOEXCEPT
1024     {
1025       return *reinterpret_cast<const VkAccelerationStructureBuildSizesInfoKHR*>( this );
1026     }
1027 
operator VkAccelerationStructureBuildSizesInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR1028     operator VkAccelerationStructureBuildSizesInfoKHR &() VULKAN_HPP_NOEXCEPT
1029     {
1030       return *reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR*>( this );
1031     }
1032 
1033 #if defined( VULKAN_HPP_USE_REFLECT )
1034 #if 14 <= VULKAN_HPP_CPP_VERSION
1035     auto
1036 #else
1037     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
1038 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR1039       reflect() const VULKAN_HPP_NOEXCEPT
1040     {
1041       return std::tie( sType, pNext, accelerationStructureSize, updateScratchSize, buildScratchSize );
1042     }
1043 #endif
1044 
1045 
1046 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
1047 auto operator<=>( AccelerationStructureBuildSizesInfoKHR const & ) const = default;
1048 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR1049     bool operator==( AccelerationStructureBuildSizesInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
1050     {
1051 #if defined( VULKAN_HPP_USE_REFLECT )
1052       return this->reflect() == rhs.reflect();
1053 #else
1054       return ( sType == rhs.sType )
1055           && ( pNext == rhs.pNext )
1056           && ( accelerationStructureSize == rhs.accelerationStructureSize )
1057           && ( updateScratchSize == rhs.updateScratchSize )
1058           && ( buildScratchSize == rhs.buildScratchSize );
1059 #endif
1060     }
1061 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR1062     bool operator!=( AccelerationStructureBuildSizesInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
1063     {
1064       return !operator==( rhs );
1065     }
1066 #endif
1067 
1068     public:
1069     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildSizesInfoKHR;
1070     const void * pNext = {};
1071     VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize = {};
1072     VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize = {};
1073     VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize = {};
1074 
1075   };
1076 
1077   template <>
1078   struct CppType<StructureType, StructureType::eAccelerationStructureBuildSizesInfoKHR>
1079   {
1080     using Type = AccelerationStructureBuildSizesInfoKHR;
1081   };
1082 
1083   struct AccelerationStructureCaptureDescriptorDataInfoEXT
1084   {
1085     using NativeType = VkAccelerationStructureCaptureDescriptorDataInfoEXT;
1086 
1087     static const bool allowDuplicate = false;
1088     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCaptureDescriptorDataInfoEXT;
1089 
1090 
1091 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCaptureDescriptorDataInfoEXTVULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1092 VULKAN_HPP_CONSTEXPR AccelerationStructureCaptureDescriptorDataInfoEXT(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructureNV_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
1093     : pNext( pNext_ ), accelerationStructure( accelerationStructure_ ), accelerationStructureNV( accelerationStructureNV_ )
1094     {}
1095 
1096     VULKAN_HPP_CONSTEXPR AccelerationStructureCaptureDescriptorDataInfoEXT( AccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1097 
AccelerationStructureCaptureDescriptorDataInfoEXTVULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1098     AccelerationStructureCaptureDescriptorDataInfoEXT( VkAccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
1099       : AccelerationStructureCaptureDescriptorDataInfoEXT( *reinterpret_cast<AccelerationStructureCaptureDescriptorDataInfoEXT const *>( &rhs ) )
1100     {}
1101 
1102 
1103     AccelerationStructureCaptureDescriptorDataInfoEXT & operator=( AccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1104 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
1105 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1106     AccelerationStructureCaptureDescriptorDataInfoEXT & operator=( VkAccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
1107     {
1108       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT const *>( &rhs );
1109       return *this;
1110     }
1111 
1112 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1113     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCaptureDescriptorDataInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
1114     {
1115       pNext = pNext_;
1116       return *this;
1117     }
1118 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1119     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCaptureDescriptorDataInfoEXT & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
1120     {
1121       accelerationStructure = accelerationStructure_;
1122       return *this;
1123     }
1124 
setAccelerationStructureNVVULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1125     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCaptureDescriptorDataInfoEXT & setAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructureNV_ ) VULKAN_HPP_NOEXCEPT
1126     {
1127       accelerationStructureNV = accelerationStructureNV_;
1128       return *this;
1129     }
1130 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
1131 
1132 
operator VkAccelerationStructureCaptureDescriptorDataInfoEXT const&VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1133     operator VkAccelerationStructureCaptureDescriptorDataInfoEXT const &() const VULKAN_HPP_NOEXCEPT
1134     {
1135       return *reinterpret_cast<const VkAccelerationStructureCaptureDescriptorDataInfoEXT*>( this );
1136     }
1137 
operator VkAccelerationStructureCaptureDescriptorDataInfoEXT&VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1138     operator VkAccelerationStructureCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
1139     {
1140       return *reinterpret_cast<VkAccelerationStructureCaptureDescriptorDataInfoEXT*>( this );
1141     }
1142 
1143 #if defined( VULKAN_HPP_USE_REFLECT )
1144 #if 14 <= VULKAN_HPP_CPP_VERSION
1145     auto
1146 #else
1147     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &, VULKAN_HPP_NAMESPACE::AccelerationStructureNV const &>
1148 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1149       reflect() const VULKAN_HPP_NOEXCEPT
1150     {
1151       return std::tie( sType, pNext, accelerationStructure, accelerationStructureNV );
1152     }
1153 #endif
1154 
1155 
1156 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
1157 auto operator<=>( AccelerationStructureCaptureDescriptorDataInfoEXT const & ) const = default;
1158 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1159     bool operator==( AccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
1160     {
1161 #if defined( VULKAN_HPP_USE_REFLECT )
1162       return this->reflect() == rhs.reflect();
1163 #else
1164       return ( sType == rhs.sType )
1165           && ( pNext == rhs.pNext )
1166           && ( accelerationStructure == rhs.accelerationStructure )
1167           && ( accelerationStructureNV == rhs.accelerationStructureNV );
1168 #endif
1169     }
1170 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT1171     bool operator!=( AccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
1172     {
1173       return !operator==( rhs );
1174     }
1175 #endif
1176 
1177     public:
1178     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCaptureDescriptorDataInfoEXT;
1179     const void * pNext = {};
1180     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
1181     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructureNV = {};
1182 
1183   };
1184 
1185   template <>
1186   struct CppType<StructureType, StructureType::eAccelerationStructureCaptureDescriptorDataInfoEXT>
1187   {
1188     using Type = AccelerationStructureCaptureDescriptorDataInfoEXT;
1189   };
1190 
1191   struct AccelerationStructureCreateInfoKHR
1192   {
1193     using NativeType = VkAccelerationStructureCreateInfoKHR;
1194 
1195     static const bool allowDuplicate = false;
1196     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoKHR;
1197 
1198 
1199 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1200 VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
1201     : pNext( pNext_ ), createFlags( createFlags_ ), buffer( buffer_ ), offset( offset_ ), size( size_ ), type( type_ ), deviceAddress( deviceAddress_ )
1202     {}
1203 
1204     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1205 
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1206     AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
1207       : AccelerationStructureCreateInfoKHR( *reinterpret_cast<AccelerationStructureCreateInfoKHR const *>( &rhs ) )
1208     {}
1209 
1210 
1211     AccelerationStructureCreateInfoKHR & operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1212 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
1213 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1214     AccelerationStructureCreateInfoKHR & operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
1215     {
1216       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const *>( &rhs );
1217       return *this;
1218     }
1219 
1220 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1221     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
1222     {
1223       pNext = pNext_;
1224       return *this;
1225     }
1226 
setCreateFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1227     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setCreateFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ ) VULKAN_HPP_NOEXCEPT
1228     {
1229       createFlags = createFlags_;
1230       return *this;
1231     }
1232 
setBufferVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1233     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
1234     {
1235       buffer = buffer_;
1236       return *this;
1237     }
1238 
setOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1239     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
1240     {
1241       offset = offset_;
1242       return *this;
1243     }
1244 
setSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1245     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
1246     {
1247       size = size_;
1248       return *this;
1249     }
1250 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1251     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
1252     {
1253       type = type_;
1254       return *this;
1255     }
1256 
setDeviceAddressVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1257     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
1258     {
1259       deviceAddress = deviceAddress_;
1260       return *this;
1261     }
1262 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
1263 
1264 
operator VkAccelerationStructureCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1265     operator VkAccelerationStructureCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
1266     {
1267       return *reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( this );
1268     }
1269 
operator VkAccelerationStructureCreateInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1270     operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
1271     {
1272       return *reinterpret_cast<VkAccelerationStructureCreateInfoKHR*>( this );
1273     }
1274 
1275 #if defined( VULKAN_HPP_USE_REFLECT )
1276 #if 14 <= VULKAN_HPP_CPP_VERSION
1277     auto
1278 #else
1279     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &>
1280 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1281       reflect() const VULKAN_HPP_NOEXCEPT
1282     {
1283       return std::tie( sType, pNext, createFlags, buffer, offset, size, type, deviceAddress );
1284     }
1285 #endif
1286 
1287 
1288 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
1289 auto operator<=>( AccelerationStructureCreateInfoKHR const & ) const = default;
1290 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1291     bool operator==( AccelerationStructureCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
1292     {
1293 #if defined( VULKAN_HPP_USE_REFLECT )
1294       return this->reflect() == rhs.reflect();
1295 #else
1296       return ( sType == rhs.sType )
1297           && ( pNext == rhs.pNext )
1298           && ( createFlags == rhs.createFlags )
1299           && ( buffer == rhs.buffer )
1300           && ( offset == rhs.offset )
1301           && ( size == rhs.size )
1302           && ( type == rhs.type )
1303           && ( deviceAddress == rhs.deviceAddress );
1304 #endif
1305     }
1306 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR1307     bool operator!=( AccelerationStructureCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
1308     {
1309       return !operator==( rhs );
1310     }
1311 #endif
1312 
1313     public:
1314     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR;
1315     const void * pNext = {};
1316     VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags = {};
1317     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
1318     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
1319     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
1320     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
1321     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
1322 
1323   };
1324 
1325   template <>
1326   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoKHR>
1327   {
1328     using Type = AccelerationStructureCreateInfoKHR;
1329   };
1330 
1331   struct GeometryTrianglesNV
1332   {
1333     using NativeType = VkGeometryTrianglesNV;
1334 
1335     static const bool allowDuplicate = false;
1336     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV;
1337 
1338 
1339 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1340 VULKAN_HPP_CONSTEXPR GeometryTrianglesNV(VULKAN_HPP_NAMESPACE::Buffer vertexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ = {}, uint32_t vertexCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Buffer indexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ = {}, uint32_t indexCount_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::Buffer transformData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
1341     : pNext( pNext_ ), vertexData( vertexData_ ), vertexOffset( vertexOffset_ ), vertexCount( vertexCount_ ), vertexStride( vertexStride_ ), vertexFormat( vertexFormat_ ), indexData( indexData_ ), indexOffset( indexOffset_ ), indexCount( indexCount_ ), indexType( indexType_ ), transformData( transformData_ ), transformOffset( transformOffset_ )
1342     {}
1343 
1344     VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1345 
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1346     GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
1347       : GeometryTrianglesNV( *reinterpret_cast<GeometryTrianglesNV const *>( &rhs ) )
1348     {}
1349 
1350 
1351     GeometryTrianglesNV & operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1352 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
1353 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV1354     GeometryTrianglesNV & operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
1355     {
1356       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const *>( &rhs );
1357       return *this;
1358     }
1359 
1360 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1361     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
1362     {
1363       pNext = pNext_;
1364       return *this;
1365     }
1366 
setVertexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1367     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT
1368     {
1369       vertexData = vertexData_;
1370       return *this;
1371     }
1372 
setVertexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1373     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT
1374     {
1375       vertexOffset = vertexOffset_;
1376       return *this;
1377     }
1378 
setVertexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1379     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
1380     {
1381       vertexCount = vertexCount_;
1382       return *this;
1383     }
1384 
setVertexStrideVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1385     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
1386     {
1387       vertexStride = vertexStride_;
1388       return *this;
1389     }
1390 
setVertexFormatVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1391     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
1392     {
1393       vertexFormat = vertexFormat_;
1394       return *this;
1395     }
1396 
setIndexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1397     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT
1398     {
1399       indexData = indexData_;
1400       return *this;
1401     }
1402 
setIndexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1403     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT
1404     {
1405       indexOffset = indexOffset_;
1406       return *this;
1407     }
1408 
setIndexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1409     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
1410     {
1411       indexCount = indexCount_;
1412       return *this;
1413     }
1414 
setIndexTypeVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1415     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
1416     {
1417       indexType = indexType_;
1418       return *this;
1419     }
1420 
setTransformDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1421     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT
1422     {
1423       transformData = transformData_;
1424       return *this;
1425     }
1426 
setTransformOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1427     VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT
1428     {
1429       transformOffset = transformOffset_;
1430       return *this;
1431     }
1432 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
1433 
1434 
operator VkGeometryTrianglesNV const&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV1435     operator VkGeometryTrianglesNV const &() const VULKAN_HPP_NOEXCEPT
1436     {
1437       return *reinterpret_cast<const VkGeometryTrianglesNV*>( this );
1438     }
1439 
operator VkGeometryTrianglesNV&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV1440     operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT
1441     {
1442       return *reinterpret_cast<VkGeometryTrianglesNV*>( this );
1443     }
1444 
1445 #if defined( VULKAN_HPP_USE_REFLECT )
1446 #if 14 <= VULKAN_HPP_CPP_VERSION
1447     auto
1448 #else
1449     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, VULKAN_HPP_NAMESPACE::IndexType const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
1450 #endif
reflectVULKAN_HPP_NAMESPACE::GeometryTrianglesNV1451       reflect() const VULKAN_HPP_NOEXCEPT
1452     {
1453       return std::tie( sType, pNext, vertexData, vertexOffset, vertexCount, vertexStride, vertexFormat, indexData, indexOffset, indexCount, indexType, transformData, transformOffset );
1454     }
1455 #endif
1456 
1457 
1458 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
1459 auto operator<=>( GeometryTrianglesNV const & ) const = default;
1460 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryTrianglesNV1461     bool operator==( GeometryTrianglesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
1462     {
1463 #if defined( VULKAN_HPP_USE_REFLECT )
1464       return this->reflect() == rhs.reflect();
1465 #else
1466       return ( sType == rhs.sType )
1467           && ( pNext == rhs.pNext )
1468           && ( vertexData == rhs.vertexData )
1469           && ( vertexOffset == rhs.vertexOffset )
1470           && ( vertexCount == rhs.vertexCount )
1471           && ( vertexStride == rhs.vertexStride )
1472           && ( vertexFormat == rhs.vertexFormat )
1473           && ( indexData == rhs.indexData )
1474           && ( indexOffset == rhs.indexOffset )
1475           && ( indexCount == rhs.indexCount )
1476           && ( indexType == rhs.indexType )
1477           && ( transformData == rhs.transformData )
1478           && ( transformOffset == rhs.transformOffset );
1479 #endif
1480     }
1481 
operator !=VULKAN_HPP_NAMESPACE::GeometryTrianglesNV1482     bool operator!=( GeometryTrianglesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
1483     {
1484       return !operator==( rhs );
1485     }
1486 #endif
1487 
1488     public:
1489     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV;
1490     const void * pNext = {};
1491     VULKAN_HPP_NAMESPACE::Buffer vertexData = {};
1492     VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {};
1493     uint32_t vertexCount = {};
1494     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
1495     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
1496     VULKAN_HPP_NAMESPACE::Buffer indexData = {};
1497     VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {};
1498     uint32_t indexCount = {};
1499     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
1500     VULKAN_HPP_NAMESPACE::Buffer transformData = {};
1501     VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {};
1502 
1503   };
1504 
1505   template <>
1506   struct CppType<StructureType, StructureType::eGeometryTrianglesNV>
1507   {
1508     using Type = GeometryTrianglesNV;
1509   };
1510 
1511   struct GeometryAABBNV
1512   {
1513     using NativeType = VkGeometryAABBNV;
1514 
1515     static const bool allowDuplicate = false;
1516     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV;
1517 
1518 
1519 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV1520 VULKAN_HPP_CONSTEXPR GeometryAABBNV(VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {}, uint32_t numAABBs_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
1521     : pNext( pNext_ ), aabbData( aabbData_ ), numAABBs( numAABBs_ ), stride( stride_ ), offset( offset_ )
1522     {}
1523 
1524     VULKAN_HPP_CONSTEXPR GeometryAABBNV( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1525 
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV1526     GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
1527       : GeometryAABBNV( *reinterpret_cast<GeometryAABBNV const *>( &rhs ) )
1528     {}
1529 
1530 
1531     GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1532 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
1533 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV1534     GeometryAABBNV & operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
1535     {
1536       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryAABBNV const *>( &rhs );
1537       return *this;
1538     }
1539 
1540 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::GeometryAABBNV1541     VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
1542     {
1543       pNext = pNext_;
1544       return *this;
1545     }
1546 
setAabbDataVULKAN_HPP_NAMESPACE::GeometryAABBNV1547     VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT
1548     {
1549       aabbData = aabbData_;
1550       return *this;
1551     }
1552 
setNumAABBsVULKAN_HPP_NAMESPACE::GeometryAABBNV1553     VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT
1554     {
1555       numAABBs = numAABBs_;
1556       return *this;
1557     }
1558 
setStrideVULKAN_HPP_NAMESPACE::GeometryAABBNV1559     VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
1560     {
1561       stride = stride_;
1562       return *this;
1563     }
1564 
setOffsetVULKAN_HPP_NAMESPACE::GeometryAABBNV1565     VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
1566     {
1567       offset = offset_;
1568       return *this;
1569     }
1570 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
1571 
1572 
operator VkGeometryAABBNV const&VULKAN_HPP_NAMESPACE::GeometryAABBNV1573     operator VkGeometryAABBNV const &() const VULKAN_HPP_NOEXCEPT
1574     {
1575       return *reinterpret_cast<const VkGeometryAABBNV*>( this );
1576     }
1577 
operator VkGeometryAABBNV&VULKAN_HPP_NAMESPACE::GeometryAABBNV1578     operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT
1579     {
1580       return *reinterpret_cast<VkGeometryAABBNV*>( this );
1581     }
1582 
1583 #if defined( VULKAN_HPP_USE_REFLECT )
1584 #if 14 <= VULKAN_HPP_CPP_VERSION
1585     auto
1586 #else
1587     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
1588 #endif
reflectVULKAN_HPP_NAMESPACE::GeometryAABBNV1589       reflect() const VULKAN_HPP_NOEXCEPT
1590     {
1591       return std::tie( sType, pNext, aabbData, numAABBs, stride, offset );
1592     }
1593 #endif
1594 
1595 
1596 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
1597 auto operator<=>( GeometryAABBNV const & ) const = default;
1598 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryAABBNV1599     bool operator==( GeometryAABBNV const & rhs ) const VULKAN_HPP_NOEXCEPT
1600     {
1601 #if defined( VULKAN_HPP_USE_REFLECT )
1602       return this->reflect() == rhs.reflect();
1603 #else
1604       return ( sType == rhs.sType )
1605           && ( pNext == rhs.pNext )
1606           && ( aabbData == rhs.aabbData )
1607           && ( numAABBs == rhs.numAABBs )
1608           && ( stride == rhs.stride )
1609           && ( offset == rhs.offset );
1610 #endif
1611     }
1612 
operator !=VULKAN_HPP_NAMESPACE::GeometryAABBNV1613     bool operator!=( GeometryAABBNV const & rhs ) const VULKAN_HPP_NOEXCEPT
1614     {
1615       return !operator==( rhs );
1616     }
1617 #endif
1618 
1619     public:
1620     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV;
1621     const void * pNext = {};
1622     VULKAN_HPP_NAMESPACE::Buffer aabbData = {};
1623     uint32_t numAABBs = {};
1624     uint32_t stride = {};
1625     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
1626 
1627   };
1628 
1629   template <>
1630   struct CppType<StructureType, StructureType::eGeometryAabbNV>
1631   {
1632     using Type = GeometryAABBNV;
1633   };
1634 
1635   struct GeometryDataNV
1636   {
1637     using NativeType = VkGeometryDataNV;
1638 
1639 
1640 
1641 
1642 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV1643 VULKAN_HPP_CONSTEXPR GeometryDataNV(VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {}, VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {}) VULKAN_HPP_NOEXCEPT
1644     : triangles( triangles_ ), aabbs( aabbs_ )
1645     {}
1646 
1647     VULKAN_HPP_CONSTEXPR GeometryDataNV( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1648 
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV1649     GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
1650       : GeometryDataNV( *reinterpret_cast<GeometryDataNV const *>( &rhs ) )
1651     {}
1652 
1653 
1654     GeometryDataNV & operator=( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1655 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
1656 
operator =VULKAN_HPP_NAMESPACE::GeometryDataNV1657     GeometryDataNV & operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
1658     {
1659       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryDataNV const *>( &rhs );
1660       return *this;
1661     }
1662 
1663 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setTrianglesVULKAN_HPP_NAMESPACE::GeometryDataNV1664     VULKAN_HPP_CONSTEXPR_14 GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT
1665     {
1666       triangles = triangles_;
1667       return *this;
1668     }
1669 
setAabbsVULKAN_HPP_NAMESPACE::GeometryDataNV1670     VULKAN_HPP_CONSTEXPR_14 GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT
1671     {
1672       aabbs = aabbs_;
1673       return *this;
1674     }
1675 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
1676 
1677 
operator VkGeometryDataNV const&VULKAN_HPP_NAMESPACE::GeometryDataNV1678     operator VkGeometryDataNV const &() const VULKAN_HPP_NOEXCEPT
1679     {
1680       return *reinterpret_cast<const VkGeometryDataNV*>( this );
1681     }
1682 
operator VkGeometryDataNV&VULKAN_HPP_NAMESPACE::GeometryDataNV1683     operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT
1684     {
1685       return *reinterpret_cast<VkGeometryDataNV*>( this );
1686     }
1687 
1688 #if defined( VULKAN_HPP_USE_REFLECT )
1689 #if 14 <= VULKAN_HPP_CPP_VERSION
1690     auto
1691 #else
1692     std::tuple<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const &, VULKAN_HPP_NAMESPACE::GeometryAABBNV const &>
1693 #endif
reflectVULKAN_HPP_NAMESPACE::GeometryDataNV1694       reflect() const VULKAN_HPP_NOEXCEPT
1695     {
1696       return std::tie( triangles, aabbs );
1697     }
1698 #endif
1699 
1700 
1701 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
1702 auto operator<=>( GeometryDataNV const & ) const = default;
1703 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryDataNV1704     bool operator==( GeometryDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
1705     {
1706 #if defined( VULKAN_HPP_USE_REFLECT )
1707       return this->reflect() == rhs.reflect();
1708 #else
1709       return ( triangles == rhs.triangles )
1710           && ( aabbs == rhs.aabbs );
1711 #endif
1712     }
1713 
operator !=VULKAN_HPP_NAMESPACE::GeometryDataNV1714     bool operator!=( GeometryDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
1715     {
1716       return !operator==( rhs );
1717     }
1718 #endif
1719 
1720     public:
1721     VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {};
1722     VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {};
1723 
1724   };
1725 
1726   struct GeometryNV
1727   {
1728     using NativeType = VkGeometryNV;
1729 
1730     static const bool allowDuplicate = false;
1731     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV;
1732 
1733 
1734 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV1735 VULKAN_HPP_CONSTEXPR GeometryNV(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
1736     : pNext( pNext_ ), geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ )
1737     {}
1738 
1739     VULKAN_HPP_CONSTEXPR GeometryNV( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1740 
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV1741     GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
1742       : GeometryNV( *reinterpret_cast<GeometryNV const *>( &rhs ) )
1743     {}
1744 
1745 
1746     GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1747 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
1748 
operator =VULKAN_HPP_NAMESPACE::GeometryNV1749     GeometryNV & operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
1750     {
1751       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryNV const *>( &rhs );
1752       return *this;
1753     }
1754 
1755 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::GeometryNV1756     VULKAN_HPP_CONSTEXPR_14 GeometryNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
1757     {
1758       pNext = pNext_;
1759       return *this;
1760     }
1761 
setGeometryTypeVULKAN_HPP_NAMESPACE::GeometryNV1762     VULKAN_HPP_CONSTEXPR_14 GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
1763     {
1764       geometryType = geometryType_;
1765       return *this;
1766     }
1767 
setGeometryVULKAN_HPP_NAMESPACE::GeometryNV1768     VULKAN_HPP_CONSTEXPR_14 GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT
1769     {
1770       geometry = geometry_;
1771       return *this;
1772     }
1773 
setFlagsVULKAN_HPP_NAMESPACE::GeometryNV1774     VULKAN_HPP_CONSTEXPR_14 GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
1775     {
1776       flags = flags_;
1777       return *this;
1778     }
1779 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
1780 
1781 
operator VkGeometryNV const&VULKAN_HPP_NAMESPACE::GeometryNV1782     operator VkGeometryNV const &() const VULKAN_HPP_NOEXCEPT
1783     {
1784       return *reinterpret_cast<const VkGeometryNV*>( this );
1785     }
1786 
operator VkGeometryNV&VULKAN_HPP_NAMESPACE::GeometryNV1787     operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT
1788     {
1789       return *reinterpret_cast<VkGeometryNV*>( this );
1790     }
1791 
1792 #if defined( VULKAN_HPP_USE_REFLECT )
1793 #if 14 <= VULKAN_HPP_CPP_VERSION
1794     auto
1795 #else
1796     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::GeometryTypeKHR const &, VULKAN_HPP_NAMESPACE::GeometryDataNV const &, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR const &>
1797 #endif
reflectVULKAN_HPP_NAMESPACE::GeometryNV1798       reflect() const VULKAN_HPP_NOEXCEPT
1799     {
1800       return std::tie( sType, pNext, geometryType, geometry, flags );
1801     }
1802 #endif
1803 
1804 
1805 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
1806 auto operator<=>( GeometryNV const & ) const = default;
1807 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryNV1808     bool operator==( GeometryNV const & rhs ) const VULKAN_HPP_NOEXCEPT
1809     {
1810 #if defined( VULKAN_HPP_USE_REFLECT )
1811       return this->reflect() == rhs.reflect();
1812 #else
1813       return ( sType == rhs.sType )
1814           && ( pNext == rhs.pNext )
1815           && ( geometryType == rhs.geometryType )
1816           && ( geometry == rhs.geometry )
1817           && ( flags == rhs.flags );
1818 #endif
1819     }
1820 
operator !=VULKAN_HPP_NAMESPACE::GeometryNV1821     bool operator!=( GeometryNV const & rhs ) const VULKAN_HPP_NOEXCEPT
1822     {
1823       return !operator==( rhs );
1824     }
1825 #endif
1826 
1827     public:
1828     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV;
1829     const void * pNext = {};
1830     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
1831     VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {};
1832     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
1833 
1834   };
1835 
1836   template <>
1837   struct CppType<StructureType, StructureType::eGeometryNV>
1838   {
1839     using Type = GeometryNV;
1840   };
1841 
1842   struct AccelerationStructureInfoNV
1843   {
1844     using NativeType = VkAccelerationStructureInfoNV;
1845 
1846     static const bool allowDuplicate = false;
1847     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV;
1848 
1849 
1850 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1851 VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ = {}, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ = {}, uint32_t instanceCount_ = {}, uint32_t geometryCount_ = {}, const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
1852     : pNext( pNext_ ), type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ )
1853     {}
1854 
1855     VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1856 
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1857     AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
1858       : AccelerationStructureInfoNV( *reinterpret_cast<AccelerationStructureInfoNV const *>( &rhs ) )
1859     {}
1860 
1861 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1862     AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_, uint32_t instanceCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_, const void * pNext_ = nullptr )
1863     : pNext( pNext_ ), type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( static_cast<uint32_t>( geometries_.size() ) ), pGeometries( geometries_.data() )
1864     {}
1865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
1866 
1867 
1868     AccelerationStructureInfoNV & operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
1869 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
1870 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1871     AccelerationStructureInfoNV & operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
1872     {
1873       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const *>( &rhs );
1874       return *this;
1875     }
1876 
1877 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1878     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
1879     {
1880       pNext = pNext_;
1881       return *this;
1882     }
1883 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1884     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT
1885     {
1886       type = type_;
1887       return *this;
1888     }
1889 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1890     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
1891     {
1892       flags = flags_;
1893       return *this;
1894     }
1895 
setInstanceCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1896     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
1897     {
1898       instanceCount = instanceCount_;
1899       return *this;
1900     }
1901 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1902     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
1903     {
1904       geometryCount = geometryCount_;
1905       return *this;
1906     }
1907 
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1908     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries_ ) VULKAN_HPP_NOEXCEPT
1909     {
1910       pGeometries = pGeometries_;
1911       return *this;
1912     }
1913 
1914 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1915     AccelerationStructureInfoNV & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_ ) VULKAN_HPP_NOEXCEPT
1916     {
1917       geometryCount = static_cast<uint32_t>( geometries_.size() );
1918       pGeometries = geometries_.data();
1919       return *this;
1920     }
1921 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
1922 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
1923 
1924 
operator VkAccelerationStructureInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1925     operator VkAccelerationStructureInfoNV const &() const VULKAN_HPP_NOEXCEPT
1926     {
1927       return *reinterpret_cast<const VkAccelerationStructureInfoNV*>( this );
1928     }
1929 
operator VkAccelerationStructureInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1930     operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT
1931     {
1932       return *reinterpret_cast<VkAccelerationStructureInfoNV*>( this );
1933     }
1934 
1935 #if defined( VULKAN_HPP_USE_REFLECT )
1936 #if 14 <= VULKAN_HPP_CPP_VERSION
1937     auto
1938 #else
1939     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV const &, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::GeometryNV * const &>
1940 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1941       reflect() const VULKAN_HPP_NOEXCEPT
1942     {
1943       return std::tie( sType, pNext, type, flags, instanceCount, geometryCount, pGeometries );
1944     }
1945 #endif
1946 
1947 
1948 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
1949 auto operator<=>( AccelerationStructureInfoNV const & ) const = default;
1950 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1951     bool operator==( AccelerationStructureInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
1952     {
1953 #if defined( VULKAN_HPP_USE_REFLECT )
1954       return this->reflect() == rhs.reflect();
1955 #else
1956       return ( sType == rhs.sType )
1957           && ( pNext == rhs.pNext )
1958           && ( type == rhs.type )
1959           && ( flags == rhs.flags )
1960           && ( instanceCount == rhs.instanceCount )
1961           && ( geometryCount == rhs.geometryCount )
1962           && ( pGeometries == rhs.pGeometries );
1963 #endif
1964     }
1965 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV1966     bool operator!=( AccelerationStructureInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
1967     {
1968       return !operator==( rhs );
1969     }
1970 #endif
1971 
1972     public:
1973     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV;
1974     const void * pNext = {};
1975     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {};
1976     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {};
1977     uint32_t instanceCount = {};
1978     uint32_t geometryCount = {};
1979     const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries = {};
1980 
1981   };
1982 
1983   template <>
1984   struct CppType<StructureType, StructureType::eAccelerationStructureInfoNV>
1985   {
1986     using Type = AccelerationStructureInfoNV;
1987   };
1988 
1989   struct AccelerationStructureCreateInfoNV
1990   {
1991     using NativeType = VkAccelerationStructureCreateInfoNV;
1992 
1993     static const bool allowDuplicate = false;
1994     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoNV;
1995 
1996 
1997 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV1998 VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
1999     : pNext( pNext_ ), compactedSize( compactedSize_ ), info( info_ )
2000     {}
2001 
2002     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2003 
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV2004     AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
2005       : AccelerationStructureCreateInfoNV( *reinterpret_cast<AccelerationStructureCreateInfoNV const *>( &rhs ) )
2006     {}
2007 
2008 
2009     AccelerationStructureCreateInfoNV & operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2010 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
2011 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV2012     AccelerationStructureCreateInfoNV & operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
2013     {
2014       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const *>( &rhs );
2015       return *this;
2016     }
2017 
2018 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV2019     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
2020     {
2021       pNext = pNext_;
2022       return *this;
2023     }
2024 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV2025     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
2026     {
2027       compactedSize = compactedSize_;
2028       return *this;
2029     }
2030 
setInfoVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV2031     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT
2032     {
2033       info = info_;
2034       return *this;
2035     }
2036 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
2037 
2038 
operator VkAccelerationStructureCreateInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV2039     operator VkAccelerationStructureCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
2040     {
2041       return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( this );
2042     }
2043 
operator VkAccelerationStructureCreateInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV2044     operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT
2045     {
2046       return *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>( this );
2047     }
2048 
2049 #if defined( VULKAN_HPP_USE_REFLECT )
2050 #if 14 <= VULKAN_HPP_CPP_VERSION
2051     auto
2052 #else
2053     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const &>
2054 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV2055       reflect() const VULKAN_HPP_NOEXCEPT
2056     {
2057       return std::tie( sType, pNext, compactedSize, info );
2058     }
2059 #endif
2060 
2061 
2062 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
2063 auto operator<=>( AccelerationStructureCreateInfoNV const & ) const = default;
2064 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV2065     bool operator==( AccelerationStructureCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
2066     {
2067 #if defined( VULKAN_HPP_USE_REFLECT )
2068       return this->reflect() == rhs.reflect();
2069 #else
2070       return ( sType == rhs.sType )
2071           && ( pNext == rhs.pNext )
2072           && ( compactedSize == rhs.compactedSize )
2073           && ( info == rhs.info );
2074 #endif
2075     }
2076 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV2077     bool operator!=( AccelerationStructureCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
2078     {
2079       return !operator==( rhs );
2080     }
2081 #endif
2082 
2083     public:
2084     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV;
2085     const void * pNext = {};
2086     VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
2087     VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {};
2088 
2089   };
2090 
2091   template <>
2092   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoNV>
2093   {
2094     using Type = AccelerationStructureCreateInfoNV;
2095   };
2096 
2097   struct AccelerationStructureDeviceAddressInfoKHR
2098   {
2099     using NativeType = VkAccelerationStructureDeviceAddressInfoKHR;
2100 
2101     static const bool allowDuplicate = false;
2102     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
2103 
2104 
2105 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR2106 VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
2107     : pNext( pNext_ ), accelerationStructure( accelerationStructure_ )
2108     {}
2109 
2110     VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2111 
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR2112     AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
2113       : AccelerationStructureDeviceAddressInfoKHR( *reinterpret_cast<AccelerationStructureDeviceAddressInfoKHR const *>( &rhs ) )
2114     {}
2115 
2116 
2117     AccelerationStructureDeviceAddressInfoKHR & operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2118 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
2119 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR2120     AccelerationStructureDeviceAddressInfoKHR & operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
2121     {
2122       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR const *>( &rhs );
2123       return *this;
2124     }
2125 
2126 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR2127     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDeviceAddressInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
2128     {
2129       pNext = pNext_;
2130       return *this;
2131     }
2132 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR2133     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDeviceAddressInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
2134     {
2135       accelerationStructure = accelerationStructure_;
2136       return *this;
2137     }
2138 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
2139 
2140 
operator VkAccelerationStructureDeviceAddressInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR2141     operator VkAccelerationStructureDeviceAddressInfoKHR const &() const VULKAN_HPP_NOEXCEPT
2142     {
2143       return *reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR*>( this );
2144     }
2145 
operator VkAccelerationStructureDeviceAddressInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR2146     operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT
2147     {
2148       return *reinterpret_cast<VkAccelerationStructureDeviceAddressInfoKHR*>( this );
2149     }
2150 
2151 #if defined( VULKAN_HPP_USE_REFLECT )
2152 #if 14 <= VULKAN_HPP_CPP_VERSION
2153     auto
2154 #else
2155     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &>
2156 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR2157       reflect() const VULKAN_HPP_NOEXCEPT
2158     {
2159       return std::tie( sType, pNext, accelerationStructure );
2160     }
2161 #endif
2162 
2163 
2164 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
2165 auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const & ) const = default;
2166 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR2167     bool operator==( AccelerationStructureDeviceAddressInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
2168     {
2169 #if defined( VULKAN_HPP_USE_REFLECT )
2170       return this->reflect() == rhs.reflect();
2171 #else
2172       return ( sType == rhs.sType )
2173           && ( pNext == rhs.pNext )
2174           && ( accelerationStructure == rhs.accelerationStructure );
2175 #endif
2176     }
2177 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR2178     bool operator!=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
2179     {
2180       return !operator==( rhs );
2181     }
2182 #endif
2183 
2184     public:
2185     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
2186     const void * pNext = {};
2187     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
2188 
2189   };
2190 
2191   template <>
2192   struct CppType<StructureType, StructureType::eAccelerationStructureDeviceAddressInfoKHR>
2193   {
2194     using Type = AccelerationStructureDeviceAddressInfoKHR;
2195   };
2196 
2197   struct AccelerationStructureGeometryMotionTrianglesDataNV
2198   {
2199     using NativeType = VkAccelerationStructureGeometryMotionTrianglesDataNV;
2200 
2201     static const bool allowDuplicate = false;
2202     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV;
2203 
2204 
2205 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryMotionTrianglesDataNVVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV2206 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
2207     : pNext( pNext_ ), vertexData( vertexData_ )
2208     {}
2209 
2210     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV( AccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2211 
AccelerationStructureGeometryMotionTrianglesDataNVVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV2212     AccelerationStructureGeometryMotionTrianglesDataNV( VkAccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
2213       : AccelerationStructureGeometryMotionTrianglesDataNV( *reinterpret_cast<AccelerationStructureGeometryMotionTrianglesDataNV const *>( &rhs ) )
2214     {}
2215 
2216 
2217     AccelerationStructureGeometryMotionTrianglesDataNV & operator=( AccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2218 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
2219 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV2220     AccelerationStructureGeometryMotionTrianglesDataNV & operator=( VkAccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
2221     {
2222       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV const *>( &rhs );
2223       return *this;
2224     }
2225 
2226 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV2227     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
2228     {
2229       pNext = pNext_;
2230       return *this;
2231     }
2232 
setVertexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV2233     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV & setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
2234     {
2235       vertexData = vertexData_;
2236       return *this;
2237     }
2238 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
2239 
2240 
operator VkAccelerationStructureGeometryMotionTrianglesDataNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV2241     operator VkAccelerationStructureGeometryMotionTrianglesDataNV const &() const VULKAN_HPP_NOEXCEPT
2242     {
2243       return *reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV*>( this );
2244     }
2245 
operator VkAccelerationStructureGeometryMotionTrianglesDataNV&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV2246     operator VkAccelerationStructureGeometryMotionTrianglesDataNV &() VULKAN_HPP_NOEXCEPT
2247     {
2248       return *reinterpret_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV*>( this );
2249     }
2250 
2251 #if defined( VULKAN_HPP_USE_REFLECT )
2252 #if 14 <= VULKAN_HPP_CPP_VERSION
2253     auto
2254 #else
2255     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &>
2256 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV2257       reflect() const VULKAN_HPP_NOEXCEPT
2258     {
2259       return std::tie( sType, pNext, vertexData );
2260     }
2261 #endif
2262 
2263 
2264     public:
2265     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV;
2266     const void * pNext = {};
2267     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {};
2268 
2269   };
2270 
2271   template <>
2272   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV>
2273   {
2274     using Type = AccelerationStructureGeometryMotionTrianglesDataNV;
2275   };
2276 
2277   struct TransformMatrixKHR
2278   {
2279     using NativeType = VkTransformMatrixKHR;
2280 
2281 
2282 
2283 
2284 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR2285 VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR(std::array<std::array<float,4>,3> const & matrix_ = {}) VULKAN_HPP_NOEXCEPT
2286     : matrix( matrix_ )
2287     {}
2288 
2289     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2290 
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR2291     TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
2292       : TransformMatrixKHR( *reinterpret_cast<TransformMatrixKHR const *>( &rhs ) )
2293     {}
2294 
2295 
2296     TransformMatrixKHR & operator=( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2297 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
2298 
operator =VULKAN_HPP_NAMESPACE::TransformMatrixKHR2299     TransformMatrixKHR & operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
2300     {
2301       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const *>( &rhs );
2302       return *this;
2303     }
2304 
2305 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setMatrixVULKAN_HPP_NAMESPACE::TransformMatrixKHR2306     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR & setMatrix( std::array<std::array<float,4>,3> matrix_ ) VULKAN_HPP_NOEXCEPT
2307     {
2308       matrix = matrix_;
2309       return *this;
2310     }
2311 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
2312 
2313 
operator VkTransformMatrixKHR const&VULKAN_HPP_NAMESPACE::TransformMatrixKHR2314     operator VkTransformMatrixKHR const &() const VULKAN_HPP_NOEXCEPT
2315     {
2316       return *reinterpret_cast<const VkTransformMatrixKHR*>( this );
2317     }
2318 
operator VkTransformMatrixKHR&VULKAN_HPP_NAMESPACE::TransformMatrixKHR2319     operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT
2320     {
2321       return *reinterpret_cast<VkTransformMatrixKHR*>( this );
2322     }
2323 
2324 #if defined( VULKAN_HPP_USE_REFLECT )
2325 #if 14 <= VULKAN_HPP_CPP_VERSION
2326     auto
2327 #else
2328     std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> const &>
2329 #endif
reflectVULKAN_HPP_NAMESPACE::TransformMatrixKHR2330       reflect() const VULKAN_HPP_NOEXCEPT
2331     {
2332       return std::tie( matrix );
2333     }
2334 #endif
2335 
2336 
2337 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
2338 auto operator<=>( TransformMatrixKHR const & ) const = default;
2339 #else
operator ==VULKAN_HPP_NAMESPACE::TransformMatrixKHR2340     bool operator==( TransformMatrixKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
2341     {
2342 #if defined( VULKAN_HPP_USE_REFLECT )
2343       return this->reflect() == rhs.reflect();
2344 #else
2345       return ( matrix == rhs.matrix );
2346 #endif
2347     }
2348 
operator !=VULKAN_HPP_NAMESPACE::TransformMatrixKHR2349     bool operator!=( TransformMatrixKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
2350     {
2351       return !operator==( rhs );
2352     }
2353 #endif
2354 
2355     public:
2356     VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> matrix = {};
2357 
2358   };
2359   using TransformMatrixNV = TransformMatrixKHR;
2360 
2361   struct AccelerationStructureInstanceKHR
2362   {
2363     using NativeType = VkAccelerationStructureInstanceKHR;
2364 
2365 
2366 
2367 
2368 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2369 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR(VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform_ = {}, uint32_t instanceCustomIndex_ = {}, uint32_t mask_ = {}, uint32_t instanceShaderBindingTableRecordOffset_ = {}, VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {}, uint64_t accelerationStructureReference_ = {}) VULKAN_HPP_NOEXCEPT
2370     : transform( transform_ ), instanceCustomIndex( instanceCustomIndex_ ), mask( mask_ ), instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ ), flags( flags_ ), accelerationStructureReference( accelerationStructureReference_ )
2371     {}
2372 
2373     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2374 
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2375     AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
2376       : AccelerationStructureInstanceKHR( *reinterpret_cast<AccelerationStructureInstanceKHR const *>( &rhs ) )
2377     {}
2378 
2379 
2380     AccelerationStructureInstanceKHR & operator=( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2381 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
2382 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2383     AccelerationStructureInstanceKHR & operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
2384     {
2385       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const *>( &rhs );
2386       return *this;
2387     }
2388 
2389 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setTransformVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2390     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT
2391     {
2392       transform = transform_;
2393       return *this;
2394     }
2395 
setInstanceCustomIndexVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2396     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
2397     {
2398       instanceCustomIndex = instanceCustomIndex_;
2399       return *this;
2400     }
2401 
setMaskVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2402     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
2403     {
2404       mask = mask_;
2405       return *this;
2406     }
2407 
setInstanceShaderBindingTableRecordOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2408     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
2409     {
2410       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
2411       return *this;
2412     }
2413 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2414     AccelerationStructureInstanceKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
2415     {
2416       flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR*>(&flags_);
2417       return *this;
2418     }
2419 
setAccelerationStructureReferenceVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2420     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
2421     {
2422       accelerationStructureReference = accelerationStructureReference_;
2423       return *this;
2424     }
2425 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
2426 
2427 
operator VkAccelerationStructureInstanceKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2428     operator VkAccelerationStructureInstanceKHR const &() const VULKAN_HPP_NOEXCEPT
2429     {
2430       return *reinterpret_cast<const VkAccelerationStructureInstanceKHR*>( this );
2431     }
2432 
operator VkAccelerationStructureInstanceKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2433     operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT
2434     {
2435       return *reinterpret_cast<VkAccelerationStructureInstanceKHR*>( this );
2436     }
2437 
2438 #if defined( VULKAN_HPP_USE_REFLECT )
2439 #if 14 <= VULKAN_HPP_CPP_VERSION
2440     auto
2441 #else
2442     std::tuple<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const &, uint32_t const &, uint32_t const &, uint32_t const &, VkGeometryInstanceFlagsKHR const &, uint64_t const &>
2443 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2444       reflect() const VULKAN_HPP_NOEXCEPT
2445     {
2446       return std::tie( transform, instanceCustomIndex, mask, instanceShaderBindingTableRecordOffset, flags, accelerationStructureReference );
2447     }
2448 #endif
2449 
2450 
2451 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
2452 auto operator<=>( AccelerationStructureInstanceKHR const & ) const = default;
2453 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2454     bool operator==( AccelerationStructureInstanceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
2455     {
2456 #if defined( VULKAN_HPP_USE_REFLECT )
2457       return this->reflect() == rhs.reflect();
2458 #else
2459       return ( transform == rhs.transform )
2460           && ( instanceCustomIndex == rhs.instanceCustomIndex )
2461           && ( mask == rhs.mask )
2462           && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset )
2463           && ( flags == rhs.flags )
2464           && ( accelerationStructureReference == rhs.accelerationStructureReference );
2465 #endif
2466     }
2467 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR2468     bool operator!=( AccelerationStructureInstanceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
2469     {
2470       return !operator==( rhs );
2471     }
2472 #endif
2473 
2474     public:
2475     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
2476     uint32_t instanceCustomIndex : 24;
2477     uint32_t mask : 8;
2478     uint32_t instanceShaderBindingTableRecordOffset : 24;
2479     VkGeometryInstanceFlagsKHR flags : 8;
2480     uint64_t accelerationStructureReference = {};
2481 
2482   };
2483   using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
2484 
2485   struct AccelerationStructureMatrixMotionInstanceNV
2486   {
2487     using NativeType = VkAccelerationStructureMatrixMotionInstanceNV;
2488 
2489 
2490 
2491 
2492 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMatrixMotionInstanceNVVULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2493 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV(VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT0_ = {}, VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT1_ = {}, uint32_t instanceCustomIndex_ = {}, uint32_t mask_ = {}, uint32_t instanceShaderBindingTableRecordOffset_ = {}, VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {}, uint64_t accelerationStructureReference_ = {}) VULKAN_HPP_NOEXCEPT
2494     : transformT0( transformT0_ ), transformT1( transformT1_ ), instanceCustomIndex( instanceCustomIndex_ ), mask( mask_ ), instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ ), flags( flags_ ), accelerationStructureReference( accelerationStructureReference_ )
2495     {}
2496 
2497     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV( AccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2498 
AccelerationStructureMatrixMotionInstanceNVVULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2499     AccelerationStructureMatrixMotionInstanceNV( VkAccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
2500       : AccelerationStructureMatrixMotionInstanceNV( *reinterpret_cast<AccelerationStructureMatrixMotionInstanceNV const *>( &rhs ) )
2501     {}
2502 
2503 
2504     AccelerationStructureMatrixMotionInstanceNV & operator=( AccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2505 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
2506 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2507     AccelerationStructureMatrixMotionInstanceNV & operator=( VkAccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
2508     {
2509       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV const *>( &rhs );
2510       return *this;
2511     }
2512 
2513 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setTransformT0VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2514     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV & setTransformT0( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT0_ ) VULKAN_HPP_NOEXCEPT
2515     {
2516       transformT0 = transformT0_;
2517       return *this;
2518     }
2519 
setTransformT1VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2520     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV & setTransformT1( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT1_ ) VULKAN_HPP_NOEXCEPT
2521     {
2522       transformT1 = transformT1_;
2523       return *this;
2524     }
2525 
setInstanceCustomIndexVULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2526     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
2527     {
2528       instanceCustomIndex = instanceCustomIndex_;
2529       return *this;
2530     }
2531 
setMaskVULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2532     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
2533     {
2534       mask = mask_;
2535       return *this;
2536     }
2537 
setInstanceShaderBindingTableRecordOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2538     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV & setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
2539     {
2540       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
2541       return *this;
2542     }
2543 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2544     AccelerationStructureMatrixMotionInstanceNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
2545     {
2546       flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR*>(&flags_);
2547       return *this;
2548     }
2549 
setAccelerationStructureReferenceVULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2550     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
2551     {
2552       accelerationStructureReference = accelerationStructureReference_;
2553       return *this;
2554     }
2555 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
2556 
2557 
operator VkAccelerationStructureMatrixMotionInstanceNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2558     operator VkAccelerationStructureMatrixMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
2559     {
2560       return *reinterpret_cast<const VkAccelerationStructureMatrixMotionInstanceNV*>( this );
2561     }
2562 
operator VkAccelerationStructureMatrixMotionInstanceNV&VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2563     operator VkAccelerationStructureMatrixMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
2564     {
2565       return *reinterpret_cast<VkAccelerationStructureMatrixMotionInstanceNV*>( this );
2566     }
2567 
2568 #if defined( VULKAN_HPP_USE_REFLECT )
2569 #if 14 <= VULKAN_HPP_CPP_VERSION
2570     auto
2571 #else
2572     std::tuple<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const &, VULKAN_HPP_NAMESPACE::TransformMatrixKHR const &, uint32_t const &, uint32_t const &, uint32_t const &, VkGeometryInstanceFlagsKHR const &, uint64_t const &>
2573 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2574       reflect() const VULKAN_HPP_NOEXCEPT
2575     {
2576       return std::tie( transformT0, transformT1, instanceCustomIndex, mask, instanceShaderBindingTableRecordOffset, flags, accelerationStructureReference );
2577     }
2578 #endif
2579 
2580 
2581 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
2582 auto operator<=>( AccelerationStructureMatrixMotionInstanceNV const & ) const = default;
2583 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2584     bool operator==( AccelerationStructureMatrixMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
2585     {
2586 #if defined( VULKAN_HPP_USE_REFLECT )
2587       return this->reflect() == rhs.reflect();
2588 #else
2589       return ( transformT0 == rhs.transformT0 )
2590           && ( transformT1 == rhs.transformT1 )
2591           && ( instanceCustomIndex == rhs.instanceCustomIndex )
2592           && ( mask == rhs.mask )
2593           && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset )
2594           && ( flags == rhs.flags )
2595           && ( accelerationStructureReference == rhs.accelerationStructureReference );
2596 #endif
2597     }
2598 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV2599     bool operator!=( AccelerationStructureMatrixMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
2600     {
2601       return !operator==( rhs );
2602     }
2603 #endif
2604 
2605     public:
2606     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT0 = {};
2607     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT1 = {};
2608     uint32_t instanceCustomIndex : 24;
2609     uint32_t mask : 8;
2610     uint32_t instanceShaderBindingTableRecordOffset : 24;
2611     VkGeometryInstanceFlagsKHR flags : 8;
2612     uint64_t accelerationStructureReference = {};
2613 
2614   };
2615 
2616   struct AccelerationStructureMemoryRequirementsInfoNV
2617   {
2618     using NativeType = VkAccelerationStructureMemoryRequirementsInfoNV;
2619 
2620     static const bool allowDuplicate = false;
2621     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
2622 
2623 
2624 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2625 VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject, VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
2626     : pNext( pNext_ ), type( type_ ), accelerationStructure( accelerationStructure_ )
2627     {}
2628 
2629     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2630 
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2631     AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
2632       : AccelerationStructureMemoryRequirementsInfoNV( *reinterpret_cast<AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs ) )
2633     {}
2634 
2635 
2636     AccelerationStructureMemoryRequirementsInfoNV & operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2637 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
2638 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2639     AccelerationStructureMemoryRequirementsInfoNV & operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
2640     {
2641       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs );
2642       return *this;
2643     }
2644 
2645 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2646     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
2647     {
2648       pNext = pNext_;
2649       return *this;
2650     }
2651 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2652     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT
2653     {
2654       type = type_;
2655       return *this;
2656     }
2657 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2658     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
2659     {
2660       accelerationStructure = accelerationStructure_;
2661       return *this;
2662     }
2663 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
2664 
2665 
operator VkAccelerationStructureMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2666     operator VkAccelerationStructureMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT
2667     {
2668       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
2669     }
2670 
operator VkAccelerationStructureMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2671     operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
2672     {
2673       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
2674     }
2675 
2676 #if defined( VULKAN_HPP_USE_REFLECT )
2677 #if 14 <= VULKAN_HPP_CPP_VERSION
2678     auto
2679 #else
2680     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV const &, VULKAN_HPP_NAMESPACE::AccelerationStructureNV const &>
2681 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2682       reflect() const VULKAN_HPP_NOEXCEPT
2683     {
2684       return std::tie( sType, pNext, type, accelerationStructure );
2685     }
2686 #endif
2687 
2688 
2689 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
2690 auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const & ) const = default;
2691 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2692     bool operator==( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
2693     {
2694 #if defined( VULKAN_HPP_USE_REFLECT )
2695       return this->reflect() == rhs.reflect();
2696 #else
2697       return ( sType == rhs.sType )
2698           && ( pNext == rhs.pNext )
2699           && ( type == rhs.type )
2700           && ( accelerationStructure == rhs.accelerationStructure );
2701 #endif
2702     }
2703 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV2704     bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
2705     {
2706       return !operator==( rhs );
2707     }
2708 #endif
2709 
2710     public:
2711     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
2712     const void * pNext = {};
2713     VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject;
2714     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
2715 
2716   };
2717 
2718   template <>
2719   struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoNV>
2720   {
2721     using Type = AccelerationStructureMemoryRequirementsInfoNV;
2722   };
2723 
2724   struct AccelerationStructureMotionInfoNV
2725   {
2726     using NativeType = VkAccelerationStructureMotionInfoNV;
2727 
2728     static const bool allowDuplicate = false;
2729     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMotionInfoNV;
2730 
2731 
2732 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMotionInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2733 VULKAN_HPP_CONSTEXPR AccelerationStructureMotionInfoNV(uint32_t maxInstances_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
2734     : pNext( pNext_ ), maxInstances( maxInstances_ ), flags( flags_ )
2735     {}
2736 
2737     VULKAN_HPP_CONSTEXPR AccelerationStructureMotionInfoNV( AccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2738 
AccelerationStructureMotionInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2739     AccelerationStructureMotionInfoNV( VkAccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
2740       : AccelerationStructureMotionInfoNV( *reinterpret_cast<AccelerationStructureMotionInfoNV const *>( &rhs ) )
2741     {}
2742 
2743 
2744     AccelerationStructureMotionInfoNV & operator=( AccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2745 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
2746 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2747     AccelerationStructureMotionInfoNV & operator=( VkAccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
2748     {
2749       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV const *>( &rhs );
2750       return *this;
2751     }
2752 
2753 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2754     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
2755     {
2756       pNext = pNext_;
2757       return *this;
2758     }
2759 
setMaxInstancesVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2760     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInfoNV & setMaxInstances( uint32_t maxInstances_ ) VULKAN_HPP_NOEXCEPT
2761     {
2762       maxInstances = maxInstances_;
2763       return *this;
2764     }
2765 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2766     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInfoNV & setFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
2767     {
2768       flags = flags_;
2769       return *this;
2770     }
2771 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
2772 
2773 
operator VkAccelerationStructureMotionInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2774     operator VkAccelerationStructureMotionInfoNV const &() const VULKAN_HPP_NOEXCEPT
2775     {
2776       return *reinterpret_cast<const VkAccelerationStructureMotionInfoNV*>( this );
2777     }
2778 
operator VkAccelerationStructureMotionInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2779     operator VkAccelerationStructureMotionInfoNV &() VULKAN_HPP_NOEXCEPT
2780     {
2781       return *reinterpret_cast<VkAccelerationStructureMotionInfoNV*>( this );
2782     }
2783 
2784 #if defined( VULKAN_HPP_USE_REFLECT )
2785 #if 14 <= VULKAN_HPP_CPP_VERSION
2786     auto
2787 #else
2788     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV const &>
2789 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2790       reflect() const VULKAN_HPP_NOEXCEPT
2791     {
2792       return std::tie( sType, pNext, maxInstances, flags );
2793     }
2794 #endif
2795 
2796 
2797 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
2798 auto operator<=>( AccelerationStructureMotionInfoNV const & ) const = default;
2799 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2800     bool operator==( AccelerationStructureMotionInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
2801     {
2802 #if defined( VULKAN_HPP_USE_REFLECT )
2803       return this->reflect() == rhs.reflect();
2804 #else
2805       return ( sType == rhs.sType )
2806           && ( pNext == rhs.pNext )
2807           && ( maxInstances == rhs.maxInstances )
2808           && ( flags == rhs.flags );
2809 #endif
2810     }
2811 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV2812     bool operator!=( AccelerationStructureMotionInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
2813     {
2814       return !operator==( rhs );
2815     }
2816 #endif
2817 
2818     public:
2819     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMotionInfoNV;
2820     const void * pNext = {};
2821     uint32_t maxInstances = {};
2822     VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags = {};
2823 
2824   };
2825 
2826   template <>
2827   struct CppType<StructureType, StructureType::eAccelerationStructureMotionInfoNV>
2828   {
2829     using Type = AccelerationStructureMotionInfoNV;
2830   };
2831 
2832   struct SRTDataNV
2833   {
2834     using NativeType = VkSRTDataNV;
2835 
2836 
2837 
2838 
2839 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SRTDataNVVULKAN_HPP_NAMESPACE::SRTDataNV2840 VULKAN_HPP_CONSTEXPR SRTDataNV(float sx_ = {}, float a_ = {}, float b_ = {}, float pvx_ = {}, float sy_ = {}, float c_ = {}, float pvy_ = {}, float sz_ = {}, float pvz_ = {}, float qx_ = {}, float qy_ = {}, float qz_ = {}, float qw_ = {}, float tx_ = {}, float ty_ = {}, float tz_ = {}) VULKAN_HPP_NOEXCEPT
2841     : sx( sx_ ), a( a_ ), b( b_ ), pvx( pvx_ ), sy( sy_ ), c( c_ ), pvy( pvy_ ), sz( sz_ ), pvz( pvz_ ), qx( qx_ ), qy( qy_ ), qz( qz_ ), qw( qw_ ), tx( tx_ ), ty( ty_ ), tz( tz_ )
2842     {}
2843 
2844     VULKAN_HPP_CONSTEXPR SRTDataNV( SRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2845 
SRTDataNVVULKAN_HPP_NAMESPACE::SRTDataNV2846     SRTDataNV( VkSRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
2847       : SRTDataNV( *reinterpret_cast<SRTDataNV const *>( &rhs ) )
2848     {}
2849 
2850 
2851     SRTDataNV & operator=( SRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
2852 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
2853 
operator =VULKAN_HPP_NAMESPACE::SRTDataNV2854     SRTDataNV & operator=( VkSRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
2855     {
2856       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SRTDataNV const *>( &rhs );
2857       return *this;
2858     }
2859 
2860 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSxVULKAN_HPP_NAMESPACE::SRTDataNV2861     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setSx( float sx_ ) VULKAN_HPP_NOEXCEPT
2862     {
2863       sx = sx_;
2864       return *this;
2865     }
2866 
setAVULKAN_HPP_NAMESPACE::SRTDataNV2867     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setA( float a_ ) VULKAN_HPP_NOEXCEPT
2868     {
2869       a = a_;
2870       return *this;
2871     }
2872 
setBVULKAN_HPP_NAMESPACE::SRTDataNV2873     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setB( float b_ ) VULKAN_HPP_NOEXCEPT
2874     {
2875       b = b_;
2876       return *this;
2877     }
2878 
setPvxVULKAN_HPP_NAMESPACE::SRTDataNV2879     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setPvx( float pvx_ ) VULKAN_HPP_NOEXCEPT
2880     {
2881       pvx = pvx_;
2882       return *this;
2883     }
2884 
setSyVULKAN_HPP_NAMESPACE::SRTDataNV2885     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setSy( float sy_ ) VULKAN_HPP_NOEXCEPT
2886     {
2887       sy = sy_;
2888       return *this;
2889     }
2890 
setCVULKAN_HPP_NAMESPACE::SRTDataNV2891     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setC( float c_ ) VULKAN_HPP_NOEXCEPT
2892     {
2893       c = c_;
2894       return *this;
2895     }
2896 
setPvyVULKAN_HPP_NAMESPACE::SRTDataNV2897     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setPvy( float pvy_ ) VULKAN_HPP_NOEXCEPT
2898     {
2899       pvy = pvy_;
2900       return *this;
2901     }
2902 
setSzVULKAN_HPP_NAMESPACE::SRTDataNV2903     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setSz( float sz_ ) VULKAN_HPP_NOEXCEPT
2904     {
2905       sz = sz_;
2906       return *this;
2907     }
2908 
setPvzVULKAN_HPP_NAMESPACE::SRTDataNV2909     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setPvz( float pvz_ ) VULKAN_HPP_NOEXCEPT
2910     {
2911       pvz = pvz_;
2912       return *this;
2913     }
2914 
setQxVULKAN_HPP_NAMESPACE::SRTDataNV2915     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQx( float qx_ ) VULKAN_HPP_NOEXCEPT
2916     {
2917       qx = qx_;
2918       return *this;
2919     }
2920 
setQyVULKAN_HPP_NAMESPACE::SRTDataNV2921     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQy( float qy_ ) VULKAN_HPP_NOEXCEPT
2922     {
2923       qy = qy_;
2924       return *this;
2925     }
2926 
setQzVULKAN_HPP_NAMESPACE::SRTDataNV2927     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQz( float qz_ ) VULKAN_HPP_NOEXCEPT
2928     {
2929       qz = qz_;
2930       return *this;
2931     }
2932 
setQwVULKAN_HPP_NAMESPACE::SRTDataNV2933     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQw( float qw_ ) VULKAN_HPP_NOEXCEPT
2934     {
2935       qw = qw_;
2936       return *this;
2937     }
2938 
setTxVULKAN_HPP_NAMESPACE::SRTDataNV2939     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setTx( float tx_ ) VULKAN_HPP_NOEXCEPT
2940     {
2941       tx = tx_;
2942       return *this;
2943     }
2944 
setTyVULKAN_HPP_NAMESPACE::SRTDataNV2945     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setTy( float ty_ ) VULKAN_HPP_NOEXCEPT
2946     {
2947       ty = ty_;
2948       return *this;
2949     }
2950 
setTzVULKAN_HPP_NAMESPACE::SRTDataNV2951     VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setTz( float tz_ ) VULKAN_HPP_NOEXCEPT
2952     {
2953       tz = tz_;
2954       return *this;
2955     }
2956 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
2957 
2958 
operator VkSRTDataNV const&VULKAN_HPP_NAMESPACE::SRTDataNV2959     operator VkSRTDataNV const &() const VULKAN_HPP_NOEXCEPT
2960     {
2961       return *reinterpret_cast<const VkSRTDataNV*>( this );
2962     }
2963 
operator VkSRTDataNV&VULKAN_HPP_NAMESPACE::SRTDataNV2964     operator VkSRTDataNV &() VULKAN_HPP_NOEXCEPT
2965     {
2966       return *reinterpret_cast<VkSRTDataNV*>( this );
2967     }
2968 
2969 #if defined( VULKAN_HPP_USE_REFLECT )
2970 #if 14 <= VULKAN_HPP_CPP_VERSION
2971     auto
2972 #else
2973     std::tuple<float const &, float const &, float const &, float const &, float const &, float const &, float const &, float const &, float const &, float const &, float const &, float const &, float const &, float const &, float const &, float const &>
2974 #endif
reflectVULKAN_HPP_NAMESPACE::SRTDataNV2975       reflect() const VULKAN_HPP_NOEXCEPT
2976     {
2977       return std::tie( sx, a, b, pvx, sy, c, pvy, sz, pvz, qx, qy, qz, qw, tx, ty, tz );
2978     }
2979 #endif
2980 
2981 
2982 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
2983 auto operator<=>( SRTDataNV const & ) const = default;
2984 #else
operator ==VULKAN_HPP_NAMESPACE::SRTDataNV2985     bool operator==( SRTDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
2986     {
2987 #if defined( VULKAN_HPP_USE_REFLECT )
2988       return this->reflect() == rhs.reflect();
2989 #else
2990       return ( sx == rhs.sx )
2991           && ( a == rhs.a )
2992           && ( b == rhs.b )
2993           && ( pvx == rhs.pvx )
2994           && ( sy == rhs.sy )
2995           && ( c == rhs.c )
2996           && ( pvy == rhs.pvy )
2997           && ( sz == rhs.sz )
2998           && ( pvz == rhs.pvz )
2999           && ( qx == rhs.qx )
3000           && ( qy == rhs.qy )
3001           && ( qz == rhs.qz )
3002           && ( qw == rhs.qw )
3003           && ( tx == rhs.tx )
3004           && ( ty == rhs.ty )
3005           && ( tz == rhs.tz );
3006 #endif
3007     }
3008 
operator !=VULKAN_HPP_NAMESPACE::SRTDataNV3009     bool operator!=( SRTDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
3010     {
3011       return !operator==( rhs );
3012     }
3013 #endif
3014 
3015     public:
3016     float sx = {};
3017     float a = {};
3018     float b = {};
3019     float pvx = {};
3020     float sy = {};
3021     float c = {};
3022     float pvy = {};
3023     float sz = {};
3024     float pvz = {};
3025     float qx = {};
3026     float qy = {};
3027     float qz = {};
3028     float qw = {};
3029     float tx = {};
3030     float ty = {};
3031     float tz = {};
3032 
3033   };
3034 
3035   struct AccelerationStructureSRTMotionInstanceNV
3036   {
3037     using NativeType = VkAccelerationStructureSRTMotionInstanceNV;
3038 
3039 
3040 
3041 
3042 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureSRTMotionInstanceNVVULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3043 VULKAN_HPP_CONSTEXPR AccelerationStructureSRTMotionInstanceNV(VULKAN_HPP_NAMESPACE::SRTDataNV transformT0_ = {}, VULKAN_HPP_NAMESPACE::SRTDataNV transformT1_ = {}, uint32_t instanceCustomIndex_ = {}, uint32_t mask_ = {}, uint32_t instanceShaderBindingTableRecordOffset_ = {}, VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {}, uint64_t accelerationStructureReference_ = {}) VULKAN_HPP_NOEXCEPT
3044     : transformT0( transformT0_ ), transformT1( transformT1_ ), instanceCustomIndex( instanceCustomIndex_ ), mask( mask_ ), instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ ), flags( flags_ ), accelerationStructureReference( accelerationStructureReference_ )
3045     {}
3046 
3047     VULKAN_HPP_CONSTEXPR AccelerationStructureSRTMotionInstanceNV( AccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3048 
AccelerationStructureSRTMotionInstanceNVVULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3049     AccelerationStructureSRTMotionInstanceNV( VkAccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
3050       : AccelerationStructureSRTMotionInstanceNV( *reinterpret_cast<AccelerationStructureSRTMotionInstanceNV const *>( &rhs ) )
3051     {}
3052 
3053 
3054     AccelerationStructureSRTMotionInstanceNV & operator=( AccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3055 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
3056 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3057     AccelerationStructureSRTMotionInstanceNV & operator=( VkAccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
3058     {
3059       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV const *>( &rhs );
3060       return *this;
3061     }
3062 
3063 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setTransformT0VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3064     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV & setTransformT0( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT0_ ) VULKAN_HPP_NOEXCEPT
3065     {
3066       transformT0 = transformT0_;
3067       return *this;
3068     }
3069 
setTransformT1VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3070     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV & setTransformT1( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT1_ ) VULKAN_HPP_NOEXCEPT
3071     {
3072       transformT1 = transformT1_;
3073       return *this;
3074     }
3075 
setInstanceCustomIndexVULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3076     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
3077     {
3078       instanceCustomIndex = instanceCustomIndex_;
3079       return *this;
3080     }
3081 
setMaskVULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3082     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
3083     {
3084       mask = mask_;
3085       return *this;
3086     }
3087 
setInstanceShaderBindingTableRecordOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3088     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV & setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
3089     {
3090       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
3091       return *this;
3092     }
3093 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3094     AccelerationStructureSRTMotionInstanceNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
3095     {
3096       flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR*>(&flags_);
3097       return *this;
3098     }
3099 
setAccelerationStructureReferenceVULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3100     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
3101     {
3102       accelerationStructureReference = accelerationStructureReference_;
3103       return *this;
3104     }
3105 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
3106 
3107 
operator VkAccelerationStructureSRTMotionInstanceNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3108     operator VkAccelerationStructureSRTMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
3109     {
3110       return *reinterpret_cast<const VkAccelerationStructureSRTMotionInstanceNV*>( this );
3111     }
3112 
operator VkAccelerationStructureSRTMotionInstanceNV&VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3113     operator VkAccelerationStructureSRTMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
3114     {
3115       return *reinterpret_cast<VkAccelerationStructureSRTMotionInstanceNV*>( this );
3116     }
3117 
3118 #if defined( VULKAN_HPP_USE_REFLECT )
3119 #if 14 <= VULKAN_HPP_CPP_VERSION
3120     auto
3121 #else
3122     std::tuple<VULKAN_HPP_NAMESPACE::SRTDataNV const &, VULKAN_HPP_NAMESPACE::SRTDataNV const &, uint32_t const &, uint32_t const &, uint32_t const &, VkGeometryInstanceFlagsKHR const &, uint64_t const &>
3123 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3124       reflect() const VULKAN_HPP_NOEXCEPT
3125     {
3126       return std::tie( transformT0, transformT1, instanceCustomIndex, mask, instanceShaderBindingTableRecordOffset, flags, accelerationStructureReference );
3127     }
3128 #endif
3129 
3130 
3131 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
3132 auto operator<=>( AccelerationStructureSRTMotionInstanceNV const & ) const = default;
3133 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3134     bool operator==( AccelerationStructureSRTMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
3135     {
3136 #if defined( VULKAN_HPP_USE_REFLECT )
3137       return this->reflect() == rhs.reflect();
3138 #else
3139       return ( transformT0 == rhs.transformT0 )
3140           && ( transformT1 == rhs.transformT1 )
3141           && ( instanceCustomIndex == rhs.instanceCustomIndex )
3142           && ( mask == rhs.mask )
3143           && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset )
3144           && ( flags == rhs.flags )
3145           && ( accelerationStructureReference == rhs.accelerationStructureReference );
3146 #endif
3147     }
3148 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV3149     bool operator!=( AccelerationStructureSRTMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
3150     {
3151       return !operator==( rhs );
3152     }
3153 #endif
3154 
3155     public:
3156     VULKAN_HPP_NAMESPACE::SRTDataNV transformT0 = {};
3157     VULKAN_HPP_NAMESPACE::SRTDataNV transformT1 = {};
3158     uint32_t instanceCustomIndex : 24;
3159     uint32_t mask : 8;
3160     uint32_t instanceShaderBindingTableRecordOffset : 24;
3161     VkGeometryInstanceFlagsKHR flags : 8;
3162     uint64_t accelerationStructureReference = {};
3163 
3164   };
3165 
3166   union AccelerationStructureMotionInstanceDataNV
3167   {
3168     using NativeType = VkAccelerationStructureMotionInstanceDataNV;
3169 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
3170 
AccelerationStructureMotionInstanceDataNV(VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR staticInstance_={} )3171     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV( VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR staticInstance_ = {} )
3172       : staticInstance( staticInstance_ )
3173     {}
3174 
AccelerationStructureMotionInstanceDataNV(VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV matrixMotionInstance_)3175     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV( VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV matrixMotionInstance_ )
3176       : matrixMotionInstance( matrixMotionInstance_ )
3177     {}
3178 
AccelerationStructureMotionInstanceDataNV(VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV srtMotionInstance_)3179     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV( VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV srtMotionInstance_ )
3180       : srtMotionInstance( srtMotionInstance_ )
3181     {}
3182 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
3183 
3184 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setStaticInstance(VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const & staticInstance_)3185     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV & setStaticInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const & staticInstance_ ) VULKAN_HPP_NOEXCEPT
3186     {
3187       staticInstance = staticInstance_;
3188       return *this;
3189     }
3190 
setMatrixMotionInstance(VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV const & matrixMotionInstance_)3191     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV & setMatrixMotionInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV const & matrixMotionInstance_ ) VULKAN_HPP_NOEXCEPT
3192     {
3193       matrixMotionInstance = matrixMotionInstance_;
3194       return *this;
3195     }
3196 
setSrtMotionInstance(VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV const & srtMotionInstance_)3197     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV & setSrtMotionInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV const & srtMotionInstance_ ) VULKAN_HPP_NOEXCEPT
3198     {
3199       srtMotionInstance = srtMotionInstance_;
3200       return *this;
3201     }
3202 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
3203 
operator VkAccelerationStructureMotionInstanceDataNV const&() const3204     operator VkAccelerationStructureMotionInstanceDataNV const &() const
3205     {
3206       return *reinterpret_cast<const VkAccelerationStructureMotionInstanceDataNV*>( this );
3207     }
3208 
operator VkAccelerationStructureMotionInstanceDataNV&()3209     operator VkAccelerationStructureMotionInstanceDataNV &()
3210     {
3211       return *reinterpret_cast<VkAccelerationStructureMotionInstanceDataNV*>( this );
3212     }
3213 
3214 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
3215     VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR staticInstance;
3216     VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
3217     VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV srtMotionInstance;
3218 #else
3219     VkAccelerationStructureInstanceKHR staticInstance;
3220     VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
3221     VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
3222 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
3223 
3224   };
3225 
3226   struct AccelerationStructureMotionInstanceNV
3227   {
3228     using NativeType = VkAccelerationStructureMotionInstanceNV;
3229 
3230 
3231 
3232 
3233 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMotionInstanceNVVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV3234 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV(VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV::eStatic, VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV data_ = {}) VULKAN_HPP_NOEXCEPT
3235     : type( type_ ), flags( flags_ ), data( data_ )
3236     {}
3237 
3238     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV( AccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3239 
AccelerationStructureMotionInstanceNVVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV3240     AccelerationStructureMotionInstanceNV( VkAccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
3241       : AccelerationStructureMotionInstanceNV( *reinterpret_cast<AccelerationStructureMotionInstanceNV const *>( &rhs ) )
3242     {}
3243 
3244 
3245     AccelerationStructureMotionInstanceNV & operator=( AccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3246 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
3247 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV3248     AccelerationStructureMotionInstanceNV & operator=( VkAccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
3249     {
3250       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV const *>( &rhs );
3251       return *this;
3252     }
3253 
3254 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV3255     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type_ ) VULKAN_HPP_NOEXCEPT
3256     {
3257       type = type_;
3258       return *this;
3259     }
3260 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV3261     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV & setFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
3262     {
3263       flags = flags_;
3264       return *this;
3265     }
3266 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV3267     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV & setData( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV const & data_ ) VULKAN_HPP_NOEXCEPT
3268     {
3269       data = data_;
3270       return *this;
3271     }
3272 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
3273 
3274 
operator VkAccelerationStructureMotionInstanceNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV3275     operator VkAccelerationStructureMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
3276     {
3277       return *reinterpret_cast<const VkAccelerationStructureMotionInstanceNV*>( this );
3278     }
3279 
operator VkAccelerationStructureMotionInstanceNV&VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV3280     operator VkAccelerationStructureMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
3281     {
3282       return *reinterpret_cast<VkAccelerationStructureMotionInstanceNV*>( this );
3283     }
3284 
3285 #if defined( VULKAN_HPP_USE_REFLECT )
3286 #if 14 <= VULKAN_HPP_CPP_VERSION
3287     auto
3288 #else
3289     std::tuple<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV const &, VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV const &, VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV const &>
3290 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV3291       reflect() const VULKAN_HPP_NOEXCEPT
3292     {
3293       return std::tie( type, flags, data );
3294     }
3295 #endif
3296 
3297 
3298     public:
3299     VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV::eStatic;
3300     VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags = {};
3301     VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV data = {};
3302 
3303   };
3304 
3305   struct MicromapUsageEXT
3306   {
3307     using NativeType = VkMicromapUsageEXT;
3308 
3309 
3310 
3311 
3312 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MicromapUsageEXTVULKAN_HPP_NAMESPACE::MicromapUsageEXT3313 VULKAN_HPP_CONSTEXPR MicromapUsageEXT(uint32_t count_ = {}, uint32_t subdivisionLevel_ = {}, uint32_t format_ = {}) VULKAN_HPP_NOEXCEPT
3314     : count( count_ ), subdivisionLevel( subdivisionLevel_ ), format( format_ )
3315     {}
3316 
3317     VULKAN_HPP_CONSTEXPR MicromapUsageEXT( MicromapUsageEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3318 
MicromapUsageEXTVULKAN_HPP_NAMESPACE::MicromapUsageEXT3319     MicromapUsageEXT( VkMicromapUsageEXT const & rhs ) VULKAN_HPP_NOEXCEPT
3320       : MicromapUsageEXT( *reinterpret_cast<MicromapUsageEXT const *>( &rhs ) )
3321     {}
3322 
3323 
3324     MicromapUsageEXT & operator=( MicromapUsageEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3325 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
3326 
operator =VULKAN_HPP_NAMESPACE::MicromapUsageEXT3327     MicromapUsageEXT & operator=( VkMicromapUsageEXT const & rhs ) VULKAN_HPP_NOEXCEPT
3328     {
3329       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapUsageEXT const *>( &rhs );
3330       return *this;
3331     }
3332 
3333 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setCountVULKAN_HPP_NAMESPACE::MicromapUsageEXT3334     VULKAN_HPP_CONSTEXPR_14 MicromapUsageEXT & setCount( uint32_t count_ ) VULKAN_HPP_NOEXCEPT
3335     {
3336       count = count_;
3337       return *this;
3338     }
3339 
setSubdivisionLevelVULKAN_HPP_NAMESPACE::MicromapUsageEXT3340     VULKAN_HPP_CONSTEXPR_14 MicromapUsageEXT & setSubdivisionLevel( uint32_t subdivisionLevel_ ) VULKAN_HPP_NOEXCEPT
3341     {
3342       subdivisionLevel = subdivisionLevel_;
3343       return *this;
3344     }
3345 
setFormatVULKAN_HPP_NAMESPACE::MicromapUsageEXT3346     VULKAN_HPP_CONSTEXPR_14 MicromapUsageEXT & setFormat( uint32_t format_ ) VULKAN_HPP_NOEXCEPT
3347     {
3348       format = format_;
3349       return *this;
3350     }
3351 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
3352 
3353 
operator VkMicromapUsageEXT const&VULKAN_HPP_NAMESPACE::MicromapUsageEXT3354     operator VkMicromapUsageEXT const &() const VULKAN_HPP_NOEXCEPT
3355     {
3356       return *reinterpret_cast<const VkMicromapUsageEXT*>( this );
3357     }
3358 
operator VkMicromapUsageEXT&VULKAN_HPP_NAMESPACE::MicromapUsageEXT3359     operator VkMicromapUsageEXT &() VULKAN_HPP_NOEXCEPT
3360     {
3361       return *reinterpret_cast<VkMicromapUsageEXT*>( this );
3362     }
3363 
3364 #if defined( VULKAN_HPP_USE_REFLECT )
3365 #if 14 <= VULKAN_HPP_CPP_VERSION
3366     auto
3367 #else
3368     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
3369 #endif
reflectVULKAN_HPP_NAMESPACE::MicromapUsageEXT3370       reflect() const VULKAN_HPP_NOEXCEPT
3371     {
3372       return std::tie( count, subdivisionLevel, format );
3373     }
3374 #endif
3375 
3376 
3377 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
3378 auto operator<=>( MicromapUsageEXT const & ) const = default;
3379 #else
operator ==VULKAN_HPP_NAMESPACE::MicromapUsageEXT3380     bool operator==( MicromapUsageEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
3381     {
3382 #if defined( VULKAN_HPP_USE_REFLECT )
3383       return this->reflect() == rhs.reflect();
3384 #else
3385       return ( count == rhs.count )
3386           && ( subdivisionLevel == rhs.subdivisionLevel )
3387           && ( format == rhs.format );
3388 #endif
3389     }
3390 
operator !=VULKAN_HPP_NAMESPACE::MicromapUsageEXT3391     bool operator!=( MicromapUsageEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
3392     {
3393       return !operator==( rhs );
3394     }
3395 #endif
3396 
3397     public:
3398     uint32_t count = {};
3399     uint32_t subdivisionLevel = {};
3400     uint32_t format = {};
3401 
3402   };
3403 
3404 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3405   struct AccelerationStructureTrianglesDisplacementMicromapNV
3406   {
3407     using NativeType = VkAccelerationStructureTrianglesDisplacementMicromapNV;
3408 
3409     static const bool allowDuplicate = false;
3410     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureTrianglesDisplacementMicromapNV;
3411 
3412 
3413 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureTrianglesDisplacementMicromapNVVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3414 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV(VULKAN_HPP_NAMESPACE::Format displacementBiasAndScaleFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Format displacementVectorFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize displacementBiasAndScaleStride_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementVectorBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize displacementVectorStride_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize displacedMicromapPrimitiveFlagsStride_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ = {}, uint32_t baseTriangle_ = {}, uint32_t usageCountsCount_ = {}, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ = {}, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ = {}, VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
3415     : pNext( pNext_ ), displacementBiasAndScaleFormat( displacementBiasAndScaleFormat_ ), displacementVectorFormat( displacementVectorFormat_ ), displacementBiasAndScaleBuffer( displacementBiasAndScaleBuffer_ ), displacementBiasAndScaleStride( displacementBiasAndScaleStride_ ), displacementVectorBuffer( displacementVectorBuffer_ ), displacementVectorStride( displacementVectorStride_ ), displacedMicromapPrimitiveFlags( displacedMicromapPrimitiveFlags_ ), displacedMicromapPrimitiveFlagsStride( displacedMicromapPrimitiveFlagsStride_ ), indexType( indexType_ ), indexBuffer( indexBuffer_ ), indexStride( indexStride_ ), baseTriangle( baseTriangle_ ), usageCountsCount( usageCountsCount_ ), pUsageCounts( pUsageCounts_ ), ppUsageCounts( ppUsageCounts_ ), micromap( micromap_ )
3416     {}
3417 
3418     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV( AccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3419 
AccelerationStructureTrianglesDisplacementMicromapNVVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3420     AccelerationStructureTrianglesDisplacementMicromapNV( VkAccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT
3421       : AccelerationStructureTrianglesDisplacementMicromapNV( *reinterpret_cast<AccelerationStructureTrianglesDisplacementMicromapNV const *>( &rhs ) )
3422     {}
3423 
3424 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
AccelerationStructureTrianglesDisplacementMicromapNVVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3425     AccelerationStructureTrianglesDisplacementMicromapNV( VULKAN_HPP_NAMESPACE::Format displacementBiasAndScaleFormat_, VULKAN_HPP_NAMESPACE::Format displacementVectorFormat_, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer_, VULKAN_HPP_NAMESPACE::DeviceSize displacementBiasAndScaleStride_, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementVectorBuffer_, VULKAN_HPP_NAMESPACE::DeviceSize displacementVectorStride_, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags_, VULKAN_HPP_NAMESPACE::DeviceSize displacedMicromapPrimitiveFlagsStride_, VULKAN_HPP_NAMESPACE::IndexType indexType_, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer_, VULKAN_HPP_NAMESPACE::DeviceSize indexStride_, uint32_t baseTriangle_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ = {}, VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ = {}, void * pNext_ = nullptr )
3426     : pNext( pNext_ ), displacementBiasAndScaleFormat( displacementBiasAndScaleFormat_ ), displacementVectorFormat( displacementVectorFormat_ ), displacementBiasAndScaleBuffer( displacementBiasAndScaleBuffer_ ), displacementBiasAndScaleStride( displacementBiasAndScaleStride_ ), displacementVectorBuffer( displacementVectorBuffer_ ), displacementVectorStride( displacementVectorStride_ ), displacedMicromapPrimitiveFlags( displacedMicromapPrimitiveFlags_ ), displacedMicromapPrimitiveFlagsStride( displacedMicromapPrimitiveFlagsStride_ ), indexType( indexType_ ), indexBuffer( indexBuffer_ ), indexStride( indexStride_ ), baseTriangle( baseTriangle_ ), usageCountsCount( static_cast<uint32_t>( usageCounts_.size() ) ), pUsageCounts( usageCounts_.data() ), ppUsageCounts( pUsageCounts_.data() ), micromap( micromap_ )
3427     {
3428 #ifdef VULKAN_HPP_NO_EXCEPTIONS
3429       VULKAN_HPP_ASSERT( usageCounts_.empty() || pUsageCounts_.empty() || ( usageCounts_.size() == pUsageCounts_.size() ) );
3430 #else
3431       if ( !usageCounts_.empty() && !pUsageCounts_.empty() && ( usageCounts_.size() != pUsageCounts_.size() ) )
3432       {
3433         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::AccelerationStructureTrianglesDisplacementMicromapNV::AccelerationStructureTrianglesDisplacementMicromapNV: !usageCounts_.empty() && !pUsageCounts_.empty() && ( usageCounts_.size() != pUsageCounts_.size() )" );
3434       }
3435 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
3436     }
3437 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
3438 
3439 
3440     AccelerationStructureTrianglesDisplacementMicromapNV & operator=( AccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3441 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
3442 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3443     AccelerationStructureTrianglesDisplacementMicromapNV & operator=( VkAccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT
3444     {
3445       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV const *>( &rhs );
3446       return *this;
3447     }
3448 
3449 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3450     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
3451     {
3452       pNext = pNext_;
3453       return *this;
3454     }
3455 
setDisplacementBiasAndScaleFormatVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3456     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setDisplacementBiasAndScaleFormat( VULKAN_HPP_NAMESPACE::Format displacementBiasAndScaleFormat_ ) VULKAN_HPP_NOEXCEPT
3457     {
3458       displacementBiasAndScaleFormat = displacementBiasAndScaleFormat_;
3459       return *this;
3460     }
3461 
setDisplacementVectorFormatVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3462     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setDisplacementVectorFormat( VULKAN_HPP_NAMESPACE::Format displacementVectorFormat_ ) VULKAN_HPP_NOEXCEPT
3463     {
3464       displacementVectorFormat = displacementVectorFormat_;
3465       return *this;
3466     }
3467 
setDisplacementBiasAndScaleBufferVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3468     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setDisplacementBiasAndScaleBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & displacementBiasAndScaleBuffer_ ) VULKAN_HPP_NOEXCEPT
3469     {
3470       displacementBiasAndScaleBuffer = displacementBiasAndScaleBuffer_;
3471       return *this;
3472     }
3473 
setDisplacementBiasAndScaleStrideVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3474     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setDisplacementBiasAndScaleStride( VULKAN_HPP_NAMESPACE::DeviceSize displacementBiasAndScaleStride_ ) VULKAN_HPP_NOEXCEPT
3475     {
3476       displacementBiasAndScaleStride = displacementBiasAndScaleStride_;
3477       return *this;
3478     }
3479 
setDisplacementVectorBufferVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3480     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setDisplacementVectorBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & displacementVectorBuffer_ ) VULKAN_HPP_NOEXCEPT
3481     {
3482       displacementVectorBuffer = displacementVectorBuffer_;
3483       return *this;
3484     }
3485 
setDisplacementVectorStrideVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3486     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setDisplacementVectorStride( VULKAN_HPP_NAMESPACE::DeviceSize displacementVectorStride_ ) VULKAN_HPP_NOEXCEPT
3487     {
3488       displacementVectorStride = displacementVectorStride_;
3489       return *this;
3490     }
3491 
setDisplacedMicromapPrimitiveFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3492     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setDisplacedMicromapPrimitiveFlags( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & displacedMicromapPrimitiveFlags_ ) VULKAN_HPP_NOEXCEPT
3493     {
3494       displacedMicromapPrimitiveFlags = displacedMicromapPrimitiveFlags_;
3495       return *this;
3496     }
3497 
setDisplacedMicromapPrimitiveFlagsStrideVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3498     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setDisplacedMicromapPrimitiveFlagsStride( VULKAN_HPP_NAMESPACE::DeviceSize displacedMicromapPrimitiveFlagsStride_ ) VULKAN_HPP_NOEXCEPT
3499     {
3500       displacedMicromapPrimitiveFlagsStride = displacedMicromapPrimitiveFlagsStride_;
3501       return *this;
3502     }
3503 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3504     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
3505     {
3506       indexType = indexType_;
3507       return *this;
3508     }
3509 
setIndexBufferVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3510     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setIndexBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexBuffer_ ) VULKAN_HPP_NOEXCEPT
3511     {
3512       indexBuffer = indexBuffer_;
3513       return *this;
3514     }
3515 
setIndexStrideVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3516     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setIndexStride( VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ ) VULKAN_HPP_NOEXCEPT
3517     {
3518       indexStride = indexStride_;
3519       return *this;
3520     }
3521 
setBaseTriangleVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3522     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setBaseTriangle( uint32_t baseTriangle_ ) VULKAN_HPP_NOEXCEPT
3523     {
3524       baseTriangle = baseTriangle_;
3525       return *this;
3526     }
3527 
setUsageCountsCountVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3528     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setUsageCountsCount( uint32_t usageCountsCount_ ) VULKAN_HPP_NOEXCEPT
3529     {
3530       usageCountsCount = usageCountsCount_;
3531       return *this;
3532     }
3533 
setPUsageCountsVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3534     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setPUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
3535     {
3536       pUsageCounts = pUsageCounts_;
3537       return *this;
3538     }
3539 
3540 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setUsageCountsVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3541     AccelerationStructureTrianglesDisplacementMicromapNV & setUsageCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_ ) VULKAN_HPP_NOEXCEPT
3542     {
3543       usageCountsCount = static_cast<uint32_t>( usageCounts_.size() );
3544       pUsageCounts = usageCounts_.data();
3545       return *this;
3546     }
3547 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
3548 
setPpUsageCountsVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3549     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setPpUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ ) VULKAN_HPP_NOEXCEPT
3550     {
3551       ppUsageCounts = ppUsageCounts_;
3552       return *this;
3553     }
3554 
3555 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPUsageCountsVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3556     AccelerationStructureTrianglesDisplacementMicromapNV & setPUsageCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
3557     {
3558       usageCountsCount = static_cast<uint32_t>( pUsageCounts_.size() );
3559       ppUsageCounts = pUsageCounts_.data();
3560       return *this;
3561     }
3562 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
3563 
setMicromapVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3564     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setMicromap( VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ ) VULKAN_HPP_NOEXCEPT
3565     {
3566       micromap = micromap_;
3567       return *this;
3568     }
3569 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
3570 
3571 
operator VkAccelerationStructureTrianglesDisplacementMicromapNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3572     operator VkAccelerationStructureTrianglesDisplacementMicromapNV const &() const VULKAN_HPP_NOEXCEPT
3573     {
3574       return *reinterpret_cast<const VkAccelerationStructureTrianglesDisplacementMicromapNV*>( this );
3575     }
3576 
operator VkAccelerationStructureTrianglesDisplacementMicromapNV&VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3577     operator VkAccelerationStructureTrianglesDisplacementMicromapNV &() VULKAN_HPP_NOEXCEPT
3578     {
3579       return *reinterpret_cast<VkAccelerationStructureTrianglesDisplacementMicromapNV*>( this );
3580     }
3581 
3582 #if defined( VULKAN_HPP_USE_REFLECT )
3583 #if 14 <= VULKAN_HPP_CPP_VERSION
3584     auto
3585 #else
3586     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::IndexType const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const &, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * const &, VULKAN_HPP_NAMESPACE::MicromapEXT const &>
3587 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV3588       reflect() const VULKAN_HPP_NOEXCEPT
3589     {
3590       return std::tie( sType, pNext, displacementBiasAndScaleFormat, displacementVectorFormat, displacementBiasAndScaleBuffer, displacementBiasAndScaleStride, displacementVectorBuffer, displacementVectorStride, displacedMicromapPrimitiveFlags, displacedMicromapPrimitiveFlagsStride, indexType, indexBuffer, indexStride, baseTriangle, usageCountsCount, pUsageCounts, ppUsageCounts, micromap );
3591     }
3592 #endif
3593 
3594 
3595     public:
3596     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureTrianglesDisplacementMicromapNV;
3597     void * pNext = {};
3598     VULKAN_HPP_NAMESPACE::Format displacementBiasAndScaleFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
3599     VULKAN_HPP_NAMESPACE::Format displacementVectorFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
3600     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer = {};
3601     VULKAN_HPP_NAMESPACE::DeviceSize displacementBiasAndScaleStride = {};
3602     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementVectorBuffer = {};
3603     VULKAN_HPP_NAMESPACE::DeviceSize displacementVectorStride = {};
3604     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags = {};
3605     VULKAN_HPP_NAMESPACE::DeviceSize displacedMicromapPrimitiveFlagsStride = {};
3606     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
3607     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer = {};
3608     VULKAN_HPP_NAMESPACE::DeviceSize indexStride = {};
3609     uint32_t baseTriangle = {};
3610     uint32_t usageCountsCount = {};
3611     const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts = {};
3612     const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts = {};
3613     VULKAN_HPP_NAMESPACE::MicromapEXT micromap = {};
3614 
3615   };
3616 
3617   template <>
3618   struct CppType<StructureType, StructureType::eAccelerationStructureTrianglesDisplacementMicromapNV>
3619   {
3620     using Type = AccelerationStructureTrianglesDisplacementMicromapNV;
3621   };
3622 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3623 
3624   struct AccelerationStructureTrianglesOpacityMicromapEXT
3625   {
3626     using NativeType = VkAccelerationStructureTrianglesOpacityMicromapEXT;
3627 
3628     static const bool allowDuplicate = false;
3629     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureTrianglesOpacityMicromapEXT;
3630 
3631 
3632 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureTrianglesOpacityMicromapEXTVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3633 VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT(VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ = {}, uint32_t baseTriangle_ = {}, uint32_t usageCountsCount_ = {}, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ = {}, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ = {}, VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
3634     : pNext( pNext_ ), indexType( indexType_ ), indexBuffer( indexBuffer_ ), indexStride( indexStride_ ), baseTriangle( baseTriangle_ ), usageCountsCount( usageCountsCount_ ), pUsageCounts( pUsageCounts_ ), ppUsageCounts( ppUsageCounts_ ), micromap( micromap_ )
3635     {}
3636 
3637     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT( AccelerationStructureTrianglesOpacityMicromapEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3638 
AccelerationStructureTrianglesOpacityMicromapEXTVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3639     AccelerationStructureTrianglesOpacityMicromapEXT( VkAccelerationStructureTrianglesOpacityMicromapEXT const & rhs ) VULKAN_HPP_NOEXCEPT
3640       : AccelerationStructureTrianglesOpacityMicromapEXT( *reinterpret_cast<AccelerationStructureTrianglesOpacityMicromapEXT const *>( &rhs ) )
3641     {}
3642 
3643 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
AccelerationStructureTrianglesOpacityMicromapEXTVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3644     AccelerationStructureTrianglesOpacityMicromapEXT( VULKAN_HPP_NAMESPACE::IndexType indexType_, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer_, VULKAN_HPP_NAMESPACE::DeviceSize indexStride_, uint32_t baseTriangle_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ = {}, VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ = {}, void * pNext_ = nullptr )
3645     : pNext( pNext_ ), indexType( indexType_ ), indexBuffer( indexBuffer_ ), indexStride( indexStride_ ), baseTriangle( baseTriangle_ ), usageCountsCount( static_cast<uint32_t>( !usageCounts_.empty() ? usageCounts_.size() : pUsageCounts_.size() ) ), pUsageCounts( usageCounts_.data() ), ppUsageCounts( pUsageCounts_.data() ), micromap( micromap_ )
3646     {
3647 #ifdef VULKAN_HPP_NO_EXCEPTIONS
3648       VULKAN_HPP_ASSERT( ( !usageCounts_.empty() + !pUsageCounts_.empty() ) <= 1);
3649 #else
3650       if ( 1 < ( !usageCounts_.empty() + !pUsageCounts_.empty() ) )
3651       {
3652         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::AccelerationStructureTrianglesOpacityMicromapEXT::AccelerationStructureTrianglesOpacityMicromapEXT: 1 < ( !usageCounts_.empty() + !pUsageCounts_.empty() )" );
3653       }
3654 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
3655     }
3656 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
3657 
3658 
3659     AccelerationStructureTrianglesOpacityMicromapEXT & operator=( AccelerationStructureTrianglesOpacityMicromapEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3660 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
3661 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3662     AccelerationStructureTrianglesOpacityMicromapEXT & operator=( VkAccelerationStructureTrianglesOpacityMicromapEXT const & rhs ) VULKAN_HPP_NOEXCEPT
3663     {
3664       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT const *>( &rhs );
3665       return *this;
3666     }
3667 
3668 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3669     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
3670     {
3671       pNext = pNext_;
3672       return *this;
3673     }
3674 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3675     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
3676     {
3677       indexType = indexType_;
3678       return *this;
3679     }
3680 
setIndexBufferVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3681     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setIndexBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexBuffer_ ) VULKAN_HPP_NOEXCEPT
3682     {
3683       indexBuffer = indexBuffer_;
3684       return *this;
3685     }
3686 
setIndexStrideVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3687     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setIndexStride( VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ ) VULKAN_HPP_NOEXCEPT
3688     {
3689       indexStride = indexStride_;
3690       return *this;
3691     }
3692 
setBaseTriangleVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3693     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setBaseTriangle( uint32_t baseTriangle_ ) VULKAN_HPP_NOEXCEPT
3694     {
3695       baseTriangle = baseTriangle_;
3696       return *this;
3697     }
3698 
setUsageCountsCountVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3699     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setUsageCountsCount( uint32_t usageCountsCount_ ) VULKAN_HPP_NOEXCEPT
3700     {
3701       usageCountsCount = usageCountsCount_;
3702       return *this;
3703     }
3704 
setPUsageCountsVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3705     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setPUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
3706     {
3707       pUsageCounts = pUsageCounts_;
3708       return *this;
3709     }
3710 
3711 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setUsageCountsVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3712     AccelerationStructureTrianglesOpacityMicromapEXT & setUsageCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_ ) VULKAN_HPP_NOEXCEPT
3713     {
3714       usageCountsCount = static_cast<uint32_t>( usageCounts_.size() );
3715       pUsageCounts = usageCounts_.data();
3716       return *this;
3717     }
3718 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
3719 
setPpUsageCountsVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3720     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setPpUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ ) VULKAN_HPP_NOEXCEPT
3721     {
3722       ppUsageCounts = ppUsageCounts_;
3723       return *this;
3724     }
3725 
3726 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPUsageCountsVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3727     AccelerationStructureTrianglesOpacityMicromapEXT & setPUsageCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
3728     {
3729       usageCountsCount = static_cast<uint32_t>( pUsageCounts_.size() );
3730       ppUsageCounts = pUsageCounts_.data();
3731       return *this;
3732     }
3733 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
3734 
setMicromapVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3735     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setMicromap( VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ ) VULKAN_HPP_NOEXCEPT
3736     {
3737       micromap = micromap_;
3738       return *this;
3739     }
3740 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
3741 
3742 
operator VkAccelerationStructureTrianglesOpacityMicromapEXT const&VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3743     operator VkAccelerationStructureTrianglesOpacityMicromapEXT const &() const VULKAN_HPP_NOEXCEPT
3744     {
3745       return *reinterpret_cast<const VkAccelerationStructureTrianglesOpacityMicromapEXT*>( this );
3746     }
3747 
operator VkAccelerationStructureTrianglesOpacityMicromapEXT&VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3748     operator VkAccelerationStructureTrianglesOpacityMicromapEXT &() VULKAN_HPP_NOEXCEPT
3749     {
3750       return *reinterpret_cast<VkAccelerationStructureTrianglesOpacityMicromapEXT*>( this );
3751     }
3752 
3753 #if defined( VULKAN_HPP_USE_REFLECT )
3754 #if 14 <= VULKAN_HPP_CPP_VERSION
3755     auto
3756 #else
3757     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::IndexType const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const &, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * const &, VULKAN_HPP_NAMESPACE::MicromapEXT const &>
3758 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT3759       reflect() const VULKAN_HPP_NOEXCEPT
3760     {
3761       return std::tie( sType, pNext, indexType, indexBuffer, indexStride, baseTriangle, usageCountsCount, pUsageCounts, ppUsageCounts, micromap );
3762     }
3763 #endif
3764 
3765 
3766     public:
3767     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureTrianglesOpacityMicromapEXT;
3768     void * pNext = {};
3769     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
3770     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer = {};
3771     VULKAN_HPP_NAMESPACE::DeviceSize indexStride = {};
3772     uint32_t baseTriangle = {};
3773     uint32_t usageCountsCount = {};
3774     const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts = {};
3775     const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts = {};
3776     VULKAN_HPP_NAMESPACE::MicromapEXT micromap = {};
3777 
3778   };
3779 
3780   template <>
3781   struct CppType<StructureType, StructureType::eAccelerationStructureTrianglesOpacityMicromapEXT>
3782   {
3783     using Type = AccelerationStructureTrianglesOpacityMicromapEXT;
3784   };
3785 
3786   struct AccelerationStructureVersionInfoKHR
3787   {
3788     using NativeType = VkAccelerationStructureVersionInfoKHR;
3789 
3790     static const bool allowDuplicate = false;
3791     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureVersionInfoKHR;
3792 
3793 
3794 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureVersionInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR3795 VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR(const uint8_t * pVersionData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
3796     : pNext( pNext_ ), pVersionData( pVersionData_ )
3797     {}
3798 
3799     VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3800 
AccelerationStructureVersionInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR3801     AccelerationStructureVersionInfoKHR( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
3802       : AccelerationStructureVersionInfoKHR( *reinterpret_cast<AccelerationStructureVersionInfoKHR const *>( &rhs ) )
3803     {}
3804 
3805 
3806     AccelerationStructureVersionInfoKHR & operator=( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3807 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
3808 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR3809     AccelerationStructureVersionInfoKHR & operator=( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
3810     {
3811       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR const *>( &rhs );
3812       return *this;
3813     }
3814 
3815 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR3816     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureVersionInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
3817     {
3818       pNext = pNext_;
3819       return *this;
3820     }
3821 
setPVersionDataVULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR3822     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureVersionInfoKHR & setPVersionData( const uint8_t * pVersionData_ ) VULKAN_HPP_NOEXCEPT
3823     {
3824       pVersionData = pVersionData_;
3825       return *this;
3826     }
3827 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
3828 
3829 
operator VkAccelerationStructureVersionInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR3830     operator VkAccelerationStructureVersionInfoKHR const &() const VULKAN_HPP_NOEXCEPT
3831     {
3832       return *reinterpret_cast<const VkAccelerationStructureVersionInfoKHR*>( this );
3833     }
3834 
operator VkAccelerationStructureVersionInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR3835     operator VkAccelerationStructureVersionInfoKHR &() VULKAN_HPP_NOEXCEPT
3836     {
3837       return *reinterpret_cast<VkAccelerationStructureVersionInfoKHR*>( this );
3838     }
3839 
3840 #if defined( VULKAN_HPP_USE_REFLECT )
3841 #if 14 <= VULKAN_HPP_CPP_VERSION
3842     auto
3843 #else
3844     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const uint8_t * const &>
3845 #endif
reflectVULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR3846       reflect() const VULKAN_HPP_NOEXCEPT
3847     {
3848       return std::tie( sType, pNext, pVersionData );
3849     }
3850 #endif
3851 
3852 
3853 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
3854 auto operator<=>( AccelerationStructureVersionInfoKHR const & ) const = default;
3855 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR3856     bool operator==( AccelerationStructureVersionInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
3857     {
3858 #if defined( VULKAN_HPP_USE_REFLECT )
3859       return this->reflect() == rhs.reflect();
3860 #else
3861       return ( sType == rhs.sType )
3862           && ( pNext == rhs.pNext )
3863           && ( pVersionData == rhs.pVersionData );
3864 #endif
3865     }
3866 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR3867     bool operator!=( AccelerationStructureVersionInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
3868     {
3869       return !operator==( rhs );
3870     }
3871 #endif
3872 
3873     public:
3874     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionInfoKHR;
3875     const void * pNext = {};
3876     const uint8_t * pVersionData = {};
3877 
3878   };
3879 
3880   template <>
3881   struct CppType<StructureType, StructureType::eAccelerationStructureVersionInfoKHR>
3882   {
3883     using Type = AccelerationStructureVersionInfoKHR;
3884   };
3885 
3886   struct AcquireNextImageInfoKHR
3887   {
3888     using NativeType = VkAcquireNextImageInfoKHR;
3889 
3890     static const bool allowDuplicate = false;
3891     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR;
3892 
3893 
3894 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3895 VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint64_t timeout_ = {}, VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::Fence fence_ = {}, uint32_t deviceMask_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
3896     : pNext( pNext_ ), swapchain( swapchain_ ), timeout( timeout_ ), semaphore( semaphore_ ), fence( fence_ ), deviceMask( deviceMask_ )
3897     {}
3898 
3899     VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3900 
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3901     AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
3902       : AcquireNextImageInfoKHR( *reinterpret_cast<AcquireNextImageInfoKHR const *>( &rhs ) )
3903     {}
3904 
3905 
3906     AcquireNextImageInfoKHR & operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
3907 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
3908 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3909     AcquireNextImageInfoKHR & operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
3910     {
3911       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const *>( &rhs );
3912       return *this;
3913     }
3914 
3915 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3916     VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
3917     {
3918       pNext = pNext_;
3919       return *this;
3920     }
3921 
setSwapchainVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3922     VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
3923     {
3924       swapchain = swapchain_;
3925       return *this;
3926     }
3927 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3928     VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
3929     {
3930       timeout = timeout_;
3931       return *this;
3932     }
3933 
setSemaphoreVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3934     VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
3935     {
3936       semaphore = semaphore_;
3937       return *this;
3938     }
3939 
setFenceVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3940     VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
3941     {
3942       fence = fence_;
3943       return *this;
3944     }
3945 
setDeviceMaskVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3946     VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
3947     {
3948       deviceMask = deviceMask_;
3949       return *this;
3950     }
3951 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
3952 
3953 
operator VkAcquireNextImageInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3954     operator VkAcquireNextImageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
3955     {
3956       return *reinterpret_cast<const VkAcquireNextImageInfoKHR*>( this );
3957     }
3958 
operator VkAcquireNextImageInfoKHR&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3959     operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT
3960     {
3961       return *reinterpret_cast<VkAcquireNextImageInfoKHR*>( this );
3962     }
3963 
3964 #if defined( VULKAN_HPP_USE_REFLECT )
3965 #if 14 <= VULKAN_HPP_CPP_VERSION
3966     auto
3967 #else
3968     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SwapchainKHR const &, uint64_t const &, VULKAN_HPP_NAMESPACE::Semaphore const &, VULKAN_HPP_NAMESPACE::Fence const &, uint32_t const &>
3969 #endif
reflectVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3970       reflect() const VULKAN_HPP_NOEXCEPT
3971     {
3972       return std::tie( sType, pNext, swapchain, timeout, semaphore, fence, deviceMask );
3973     }
3974 #endif
3975 
3976 
3977 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
3978 auto operator<=>( AcquireNextImageInfoKHR const & ) const = default;
3979 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3980     bool operator==( AcquireNextImageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
3981     {
3982 #if defined( VULKAN_HPP_USE_REFLECT )
3983       return this->reflect() == rhs.reflect();
3984 #else
3985       return ( sType == rhs.sType )
3986           && ( pNext == rhs.pNext )
3987           && ( swapchain == rhs.swapchain )
3988           && ( timeout == rhs.timeout )
3989           && ( semaphore == rhs.semaphore )
3990           && ( fence == rhs.fence )
3991           && ( deviceMask == rhs.deviceMask );
3992 #endif
3993     }
3994 
operator !=VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR3995     bool operator!=( AcquireNextImageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
3996     {
3997       return !operator==( rhs );
3998     }
3999 #endif
4000 
4001     public:
4002     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR;
4003     const void * pNext = {};
4004     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
4005     uint64_t timeout = {};
4006     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
4007     VULKAN_HPP_NAMESPACE::Fence fence = {};
4008     uint32_t deviceMask = {};
4009 
4010   };
4011 
4012   template <>
4013   struct CppType<StructureType, StructureType::eAcquireNextImageInfoKHR>
4014   {
4015     using Type = AcquireNextImageInfoKHR;
4016   };
4017 
4018   struct AcquireProfilingLockInfoKHR
4019   {
4020     using NativeType = VkAcquireProfilingLockInfoKHR;
4021 
4022     static const bool allowDuplicate = false;
4023     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR;
4024 
4025 
4026 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4027 VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR(VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {}, uint64_t timeout_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
4028     : pNext( pNext_ ), flags( flags_ ), timeout( timeout_ )
4029     {}
4030 
4031     VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4032 
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4033     AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
4034       : AcquireProfilingLockInfoKHR( *reinterpret_cast<AcquireProfilingLockInfoKHR const *>( &rhs ) )
4035     {}
4036 
4037 
4038     AcquireProfilingLockInfoKHR & operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4039 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
4040 
operator =VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4041     AcquireProfilingLockInfoKHR & operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
4042     {
4043       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const *>( &rhs );
4044       return *this;
4045     }
4046 
4047 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4048     VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
4049     {
4050       pNext = pNext_;
4051       return *this;
4052     }
4053 
setFlagsVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4054     VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
4055     {
4056       flags = flags_;
4057       return *this;
4058     }
4059 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4060     VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
4061     {
4062       timeout = timeout_;
4063       return *this;
4064     }
4065 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
4066 
4067 
operator VkAcquireProfilingLockInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4068     operator VkAcquireProfilingLockInfoKHR const &() const VULKAN_HPP_NOEXCEPT
4069     {
4070       return *reinterpret_cast<const VkAcquireProfilingLockInfoKHR*>( this );
4071     }
4072 
operator VkAcquireProfilingLockInfoKHR&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4073     operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT
4074     {
4075       return *reinterpret_cast<VkAcquireProfilingLockInfoKHR*>( this );
4076     }
4077 
4078 #if defined( VULKAN_HPP_USE_REFLECT )
4079 #if 14 <= VULKAN_HPP_CPP_VERSION
4080     auto
4081 #else
4082     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR const &, uint64_t const &>
4083 #endif
reflectVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4084       reflect() const VULKAN_HPP_NOEXCEPT
4085     {
4086       return std::tie( sType, pNext, flags, timeout );
4087     }
4088 #endif
4089 
4090 
4091 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
4092 auto operator<=>( AcquireProfilingLockInfoKHR const & ) const = default;
4093 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4094     bool operator==( AcquireProfilingLockInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
4095     {
4096 #if defined( VULKAN_HPP_USE_REFLECT )
4097       return this->reflect() == rhs.reflect();
4098 #else
4099       return ( sType == rhs.sType )
4100           && ( pNext == rhs.pNext )
4101           && ( flags == rhs.flags )
4102           && ( timeout == rhs.timeout );
4103 #endif
4104     }
4105 
operator !=VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR4106     bool operator!=( AcquireProfilingLockInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
4107     {
4108       return !operator==( rhs );
4109     }
4110 #endif
4111 
4112     public:
4113     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR;
4114     const void * pNext = {};
4115     VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {};
4116     uint64_t timeout = {};
4117 
4118   };
4119 
4120   template <>
4121   struct CppType<StructureType, StructureType::eAcquireProfilingLockInfoKHR>
4122   {
4123     using Type = AcquireProfilingLockInfoKHR;
4124   };
4125 
4126   struct AllocationCallbacks
4127   {
4128     using NativeType = VkAllocationCallbacks;
4129 
4130 
4131 
4132 
4133 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks4134 VULKAN_HPP_CONSTEXPR AllocationCallbacks(void * pUserData_ = {}, PFN_vkAllocationFunction pfnAllocation_ = {}, PFN_vkReallocationFunction pfnReallocation_ = {}, PFN_vkFreeFunction pfnFree_ = {}, PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {}, PFN_vkInternalFreeNotification pfnInternalFree_ = {}) VULKAN_HPP_NOEXCEPT
4135     : pUserData( pUserData_ ), pfnAllocation( pfnAllocation_ ), pfnReallocation( pfnReallocation_ ), pfnFree( pfnFree_ ), pfnInternalAllocation( pfnInternalAllocation_ ), pfnInternalFree( pfnInternalFree_ )
4136     {}
4137 
4138     VULKAN_HPP_CONSTEXPR AllocationCallbacks( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4139 
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks4140     AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
4141       : AllocationCallbacks( *reinterpret_cast<AllocationCallbacks const *>( &rhs ) )
4142     {}
4143 
4144 
4145     AllocationCallbacks & operator=( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4146 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
4147 
operator =VULKAN_HPP_NAMESPACE::AllocationCallbacks4148     AllocationCallbacks & operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
4149     {
4150       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AllocationCallbacks const *>( &rhs );
4151       return *this;
4152     }
4153 
4154 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPUserDataVULKAN_HPP_NAMESPACE::AllocationCallbacks4155     VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
4156     {
4157       pUserData = pUserData_;
4158       return *this;
4159     }
4160 
setPfnAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks4161     VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT
4162     {
4163       pfnAllocation = pfnAllocation_;
4164       return *this;
4165     }
4166 
setPfnReallocationVULKAN_HPP_NAMESPACE::AllocationCallbacks4167     VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT
4168     {
4169       pfnReallocation = pfnReallocation_;
4170       return *this;
4171     }
4172 
setPfnFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks4173     VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT
4174     {
4175       pfnFree = pfnFree_;
4176       return *this;
4177     }
4178 
setPfnInternalAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks4179     VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT
4180     {
4181       pfnInternalAllocation = pfnInternalAllocation_;
4182       return *this;
4183     }
4184 
setPfnInternalFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks4185     VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT
4186     {
4187       pfnInternalFree = pfnInternalFree_;
4188       return *this;
4189     }
4190 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
4191 
4192 
operator VkAllocationCallbacks const&VULKAN_HPP_NAMESPACE::AllocationCallbacks4193     operator VkAllocationCallbacks const &() const VULKAN_HPP_NOEXCEPT
4194     {
4195       return *reinterpret_cast<const VkAllocationCallbacks*>( this );
4196     }
4197 
operator VkAllocationCallbacks&VULKAN_HPP_NAMESPACE::AllocationCallbacks4198     operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT
4199     {
4200       return *reinterpret_cast<VkAllocationCallbacks*>( this );
4201     }
4202 
4203 #if defined( VULKAN_HPP_USE_REFLECT )
4204 #if 14 <= VULKAN_HPP_CPP_VERSION
4205     auto
4206 #else
4207     std::tuple<void * const &, PFN_vkAllocationFunction const &, PFN_vkReallocationFunction const &, PFN_vkFreeFunction const &, PFN_vkInternalAllocationNotification const &, PFN_vkInternalFreeNotification const &>
4208 #endif
reflectVULKAN_HPP_NAMESPACE::AllocationCallbacks4209       reflect() const VULKAN_HPP_NOEXCEPT
4210     {
4211       return std::tie( pUserData, pfnAllocation, pfnReallocation, pfnFree, pfnInternalAllocation, pfnInternalFree );
4212     }
4213 #endif
4214 
4215 
4216 
4217 
4218 
operator ==VULKAN_HPP_NAMESPACE::AllocationCallbacks4219     bool operator==( AllocationCallbacks const & rhs ) const VULKAN_HPP_NOEXCEPT
4220     {
4221 #if defined( VULKAN_HPP_USE_REFLECT )
4222       return this->reflect() == rhs.reflect();
4223 #else
4224       return ( pUserData == rhs.pUserData )
4225           && ( pfnAllocation == rhs.pfnAllocation )
4226           && ( pfnReallocation == rhs.pfnReallocation )
4227           && ( pfnFree == rhs.pfnFree )
4228           && ( pfnInternalAllocation == rhs.pfnInternalAllocation )
4229           && ( pfnInternalFree == rhs.pfnInternalFree );
4230 #endif
4231     }
4232 
operator !=VULKAN_HPP_NAMESPACE::AllocationCallbacks4233     bool operator!=( AllocationCallbacks const & rhs ) const VULKAN_HPP_NOEXCEPT
4234     {
4235       return !operator==( rhs );
4236     }
4237 
4238     public:
4239     void * pUserData = {};
4240     PFN_vkAllocationFunction pfnAllocation = {};
4241     PFN_vkReallocationFunction pfnReallocation = {};
4242     PFN_vkFreeFunction pfnFree = {};
4243     PFN_vkInternalAllocationNotification pfnInternalAllocation = {};
4244     PFN_vkInternalFreeNotification pfnInternalFree = {};
4245 
4246   };
4247 
4248   struct AmigoProfilingSubmitInfoSEC
4249   {
4250     using NativeType = VkAmigoProfilingSubmitInfoSEC;
4251 
4252     static const bool allowDuplicate = false;
4253     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAmigoProfilingSubmitInfoSEC;
4254 
4255 
4256 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AmigoProfilingSubmitInfoSECVULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4257 VULKAN_HPP_CONSTEXPR AmigoProfilingSubmitInfoSEC(uint64_t firstDrawTimestamp_ = {}, uint64_t swapBufferTimestamp_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
4258     : pNext( pNext_ ), firstDrawTimestamp( firstDrawTimestamp_ ), swapBufferTimestamp( swapBufferTimestamp_ )
4259     {}
4260 
4261     VULKAN_HPP_CONSTEXPR AmigoProfilingSubmitInfoSEC( AmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4262 
AmigoProfilingSubmitInfoSECVULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4263     AmigoProfilingSubmitInfoSEC( VkAmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT
4264       : AmigoProfilingSubmitInfoSEC( *reinterpret_cast<AmigoProfilingSubmitInfoSEC const *>( &rhs ) )
4265     {}
4266 
4267 
4268     AmigoProfilingSubmitInfoSEC & operator=( AmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4269 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
4270 
operator =VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4271     AmigoProfilingSubmitInfoSEC & operator=( VkAmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT
4272     {
4273       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC const *>( &rhs );
4274       return *this;
4275     }
4276 
4277 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4278     VULKAN_HPP_CONSTEXPR_14 AmigoProfilingSubmitInfoSEC & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
4279     {
4280       pNext = pNext_;
4281       return *this;
4282     }
4283 
setFirstDrawTimestampVULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4284     VULKAN_HPP_CONSTEXPR_14 AmigoProfilingSubmitInfoSEC & setFirstDrawTimestamp( uint64_t firstDrawTimestamp_ ) VULKAN_HPP_NOEXCEPT
4285     {
4286       firstDrawTimestamp = firstDrawTimestamp_;
4287       return *this;
4288     }
4289 
setSwapBufferTimestampVULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4290     VULKAN_HPP_CONSTEXPR_14 AmigoProfilingSubmitInfoSEC & setSwapBufferTimestamp( uint64_t swapBufferTimestamp_ ) VULKAN_HPP_NOEXCEPT
4291     {
4292       swapBufferTimestamp = swapBufferTimestamp_;
4293       return *this;
4294     }
4295 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
4296 
4297 
operator VkAmigoProfilingSubmitInfoSEC const&VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4298     operator VkAmigoProfilingSubmitInfoSEC const &() const VULKAN_HPP_NOEXCEPT
4299     {
4300       return *reinterpret_cast<const VkAmigoProfilingSubmitInfoSEC*>( this );
4301     }
4302 
operator VkAmigoProfilingSubmitInfoSEC&VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4303     operator VkAmigoProfilingSubmitInfoSEC &() VULKAN_HPP_NOEXCEPT
4304     {
4305       return *reinterpret_cast<VkAmigoProfilingSubmitInfoSEC*>( this );
4306     }
4307 
4308 #if defined( VULKAN_HPP_USE_REFLECT )
4309 #if 14 <= VULKAN_HPP_CPP_VERSION
4310     auto
4311 #else
4312     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, uint64_t const &>
4313 #endif
reflectVULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4314       reflect() const VULKAN_HPP_NOEXCEPT
4315     {
4316       return std::tie( sType, pNext, firstDrawTimestamp, swapBufferTimestamp );
4317     }
4318 #endif
4319 
4320 
4321 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
4322 auto operator<=>( AmigoProfilingSubmitInfoSEC const & ) const = default;
4323 #else
operator ==VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4324     bool operator==( AmigoProfilingSubmitInfoSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
4325     {
4326 #if defined( VULKAN_HPP_USE_REFLECT )
4327       return this->reflect() == rhs.reflect();
4328 #else
4329       return ( sType == rhs.sType )
4330           && ( pNext == rhs.pNext )
4331           && ( firstDrawTimestamp == rhs.firstDrawTimestamp )
4332           && ( swapBufferTimestamp == rhs.swapBufferTimestamp );
4333 #endif
4334     }
4335 
operator !=VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC4336     bool operator!=( AmigoProfilingSubmitInfoSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
4337     {
4338       return !operator==( rhs );
4339     }
4340 #endif
4341 
4342     public:
4343     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAmigoProfilingSubmitInfoSEC;
4344     const void * pNext = {};
4345     uint64_t firstDrawTimestamp = {};
4346     uint64_t swapBufferTimestamp = {};
4347 
4348   };
4349 
4350   template <>
4351   struct CppType<StructureType, StructureType::eAmigoProfilingSubmitInfoSEC>
4352   {
4353     using Type = AmigoProfilingSubmitInfoSEC;
4354   };
4355 
4356   struct ComponentMapping
4357   {
4358     using NativeType = VkComponentMapping;
4359 
4360 
4361 
4362 
4363 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping4364 VULKAN_HPP_CONSTEXPR ComponentMapping(VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity) VULKAN_HPP_NOEXCEPT
4365     : r( r_ ), g( g_ ), b( b_ ), a( a_ )
4366     {}
4367 
4368     VULKAN_HPP_CONSTEXPR ComponentMapping( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4369 
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping4370     ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
4371       : ComponentMapping( *reinterpret_cast<ComponentMapping const *>( &rhs ) )
4372     {}
4373 
4374 
4375     ComponentMapping & operator=( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4376 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
4377 
operator =VULKAN_HPP_NAMESPACE::ComponentMapping4378     ComponentMapping & operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
4379     {
4380       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComponentMapping const *>( &rhs );
4381       return *this;
4382     }
4383 
4384 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setRVULKAN_HPP_NAMESPACE::ComponentMapping4385     VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT
4386     {
4387       r = r_;
4388       return *this;
4389     }
4390 
setGVULKAN_HPP_NAMESPACE::ComponentMapping4391     VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT
4392     {
4393       g = g_;
4394       return *this;
4395     }
4396 
setBVULKAN_HPP_NAMESPACE::ComponentMapping4397     VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT
4398     {
4399       b = b_;
4400       return *this;
4401     }
4402 
setAVULKAN_HPP_NAMESPACE::ComponentMapping4403     VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT
4404     {
4405       a = a_;
4406       return *this;
4407     }
4408 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
4409 
4410 
operator VkComponentMapping const&VULKAN_HPP_NAMESPACE::ComponentMapping4411     operator VkComponentMapping const &() const VULKAN_HPP_NOEXCEPT
4412     {
4413       return *reinterpret_cast<const VkComponentMapping*>( this );
4414     }
4415 
operator VkComponentMapping&VULKAN_HPP_NAMESPACE::ComponentMapping4416     operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT
4417     {
4418       return *reinterpret_cast<VkComponentMapping*>( this );
4419     }
4420 
4421 #if defined( VULKAN_HPP_USE_REFLECT )
4422 #if 14 <= VULKAN_HPP_CPP_VERSION
4423     auto
4424 #else
4425     std::tuple<VULKAN_HPP_NAMESPACE::ComponentSwizzle const &, VULKAN_HPP_NAMESPACE::ComponentSwizzle const &, VULKAN_HPP_NAMESPACE::ComponentSwizzle const &, VULKAN_HPP_NAMESPACE::ComponentSwizzle const &>
4426 #endif
reflectVULKAN_HPP_NAMESPACE::ComponentMapping4427       reflect() const VULKAN_HPP_NOEXCEPT
4428     {
4429       return std::tie( r, g, b, a );
4430     }
4431 #endif
4432 
4433 
4434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
4435 auto operator<=>( ComponentMapping const & ) const = default;
4436 #else
operator ==VULKAN_HPP_NAMESPACE::ComponentMapping4437     bool operator==( ComponentMapping const & rhs ) const VULKAN_HPP_NOEXCEPT
4438     {
4439 #if defined( VULKAN_HPP_USE_REFLECT )
4440       return this->reflect() == rhs.reflect();
4441 #else
4442       return ( r == rhs.r )
4443           && ( g == rhs.g )
4444           && ( b == rhs.b )
4445           && ( a == rhs.a );
4446 #endif
4447     }
4448 
operator !=VULKAN_HPP_NAMESPACE::ComponentMapping4449     bool operator!=( ComponentMapping const & rhs ) const VULKAN_HPP_NOEXCEPT
4450     {
4451       return !operator==( rhs );
4452     }
4453 #endif
4454 
4455     public:
4456     VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
4457     VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
4458     VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
4459     VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
4460 
4461   };
4462 
4463 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4464   struct AndroidHardwareBufferFormatProperties2ANDROID
4465   {
4466     using NativeType = VkAndroidHardwareBufferFormatProperties2ANDROID;
4467 
4468     static const bool allowDuplicate = false;
4469     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatProperties2ANDROID;
4470 
4471 
4472 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferFormatProperties2ANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID4473 VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatProperties2ANDROID(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint64_t externalFormat_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 formatFeatures_ = {}, VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {}, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
4474     : pNext( pNext_ ), format( format_ ), externalFormat( externalFormat_ ), formatFeatures( formatFeatures_ ), samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ), suggestedYcbcrModel( suggestedYcbcrModel_ ), suggestedYcbcrRange( suggestedYcbcrRange_ ), suggestedXChromaOffset( suggestedXChromaOffset_ ), suggestedYChromaOffset( suggestedYChromaOffset_ )
4475     {}
4476 
4477     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatProperties2ANDROID( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4478 
AndroidHardwareBufferFormatProperties2ANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID4479     AndroidHardwareBufferFormatProperties2ANDROID( VkAndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
4480       : AndroidHardwareBufferFormatProperties2ANDROID( *reinterpret_cast<AndroidHardwareBufferFormatProperties2ANDROID const *>( &rhs ) )
4481     {}
4482 
4483 
4484     AndroidHardwareBufferFormatProperties2ANDROID & operator=( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4485 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
4486 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID4487     AndroidHardwareBufferFormatProperties2ANDROID & operator=( VkAndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
4488     {
4489       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID const *>( &rhs );
4490       return *this;
4491     }
4492 
4493 
operator VkAndroidHardwareBufferFormatProperties2ANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID4494     operator VkAndroidHardwareBufferFormatProperties2ANDROID const &() const VULKAN_HPP_NOEXCEPT
4495     {
4496       return *reinterpret_cast<const VkAndroidHardwareBufferFormatProperties2ANDROID*>( this );
4497     }
4498 
operator VkAndroidHardwareBufferFormatProperties2ANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID4499     operator VkAndroidHardwareBufferFormatProperties2ANDROID &() VULKAN_HPP_NOEXCEPT
4500     {
4501       return *reinterpret_cast<VkAndroidHardwareBufferFormatProperties2ANDROID*>( this );
4502     }
4503 
4504 #if defined( VULKAN_HPP_USE_REFLECT )
4505 #if 14 <= VULKAN_HPP_CPP_VERSION
4506     auto
4507 #else
4508     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Format const &, uint64_t const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &, VULKAN_HPP_NAMESPACE::ComponentMapping const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &>
4509 #endif
reflectVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID4510       reflect() const VULKAN_HPP_NOEXCEPT
4511     {
4512       return std::tie( sType, pNext, format, externalFormat, formatFeatures, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset );
4513     }
4514 #endif
4515 
4516 
4517 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
4518 auto operator<=>( AndroidHardwareBufferFormatProperties2ANDROID const & ) const = default;
4519 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID4520     bool operator==( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
4521     {
4522 #if defined( VULKAN_HPP_USE_REFLECT )
4523       return this->reflect() == rhs.reflect();
4524 #else
4525       return ( sType == rhs.sType )
4526           && ( pNext == rhs.pNext )
4527           && ( format == rhs.format )
4528           && ( externalFormat == rhs.externalFormat )
4529           && ( formatFeatures == rhs.formatFeatures )
4530           && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
4531           && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
4532           && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
4533           && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
4534           && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
4535 #endif
4536     }
4537 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID4538     bool operator!=( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
4539     {
4540       return !operator==( rhs );
4541     }
4542 #endif
4543 
4544     public:
4545     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatProperties2ANDROID;
4546     void * pNext = {};
4547     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
4548     uint64_t externalFormat = {};
4549     VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 formatFeatures = {};
4550     VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
4551     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
4552     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
4553     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
4554     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
4555 
4556   };
4557 
4558   template <>
4559   struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatProperties2ANDROID>
4560   {
4561     using Type = AndroidHardwareBufferFormatProperties2ANDROID;
4562   };
4563 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4564 
4565 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4566   struct AndroidHardwareBufferFormatPropertiesANDROID
4567   {
4568     using NativeType = VkAndroidHardwareBufferFormatPropertiesANDROID;
4569 
4570     static const bool allowDuplicate = false;
4571     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
4572 
4573 
4574 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID4575 VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint64_t externalFormat_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {}, VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {}, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
4576     : pNext( pNext_ ), format( format_ ), externalFormat( externalFormat_ ), formatFeatures( formatFeatures_ ), samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ), suggestedYcbcrModel( suggestedYcbcrModel_ ), suggestedYcbcrRange( suggestedYcbcrRange_ ), suggestedXChromaOffset( suggestedXChromaOffset_ ), suggestedYChromaOffset( suggestedYChromaOffset_ )
4577     {}
4578 
4579     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4580 
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID4581     AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
4582       : AndroidHardwareBufferFormatPropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs ) )
4583     {}
4584 
4585 
4586     AndroidHardwareBufferFormatPropertiesANDROID & operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4587 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
4588 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID4589     AndroidHardwareBufferFormatPropertiesANDROID & operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
4590     {
4591       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs );
4592       return *this;
4593     }
4594 
4595 
operator VkAndroidHardwareBufferFormatPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID4596     operator VkAndroidHardwareBufferFormatPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
4597     {
4598       return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
4599     }
4600 
operator VkAndroidHardwareBufferFormatPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID4601     operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
4602     {
4603       return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
4604     }
4605 
4606 #if defined( VULKAN_HPP_USE_REFLECT )
4607 #if 14 <= VULKAN_HPP_CPP_VERSION
4608     auto
4609 #else
4610     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Format const &, uint64_t const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &, VULKAN_HPP_NAMESPACE::ComponentMapping const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &>
4611 #endif
reflectVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID4612       reflect() const VULKAN_HPP_NOEXCEPT
4613     {
4614       return std::tie( sType, pNext, format, externalFormat, formatFeatures, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset );
4615     }
4616 #endif
4617 
4618 
4619 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
4620 auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const & ) const = default;
4621 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID4622     bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
4623     {
4624 #if defined( VULKAN_HPP_USE_REFLECT )
4625       return this->reflect() == rhs.reflect();
4626 #else
4627       return ( sType == rhs.sType )
4628           && ( pNext == rhs.pNext )
4629           && ( format == rhs.format )
4630           && ( externalFormat == rhs.externalFormat )
4631           && ( formatFeatures == rhs.formatFeatures )
4632           && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
4633           && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
4634           && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
4635           && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
4636           && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
4637 #endif
4638     }
4639 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID4640     bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
4641     {
4642       return !operator==( rhs );
4643     }
4644 #endif
4645 
4646     public:
4647     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
4648     void * pNext = {};
4649     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
4650     uint64_t externalFormat = {};
4651     VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
4652     VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
4653     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
4654     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
4655     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
4656     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
4657 
4658   };
4659 
4660   template <>
4661   struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatPropertiesANDROID>
4662   {
4663     using Type = AndroidHardwareBufferFormatPropertiesANDROID;
4664   };
4665 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4666 
4667 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4668   struct AndroidHardwareBufferFormatResolvePropertiesANDROID
4669   {
4670     using NativeType = VkAndroidHardwareBufferFormatResolvePropertiesANDROID;
4671 
4672     static const bool allowDuplicate = false;
4673     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID;
4674 
4675 
4676 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferFormatResolvePropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID4677 VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatResolvePropertiesANDROID(VULKAN_HPP_NAMESPACE::Format colorAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
4678     : pNext( pNext_ ), colorAttachmentFormat( colorAttachmentFormat_ )
4679     {}
4680 
4681     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatResolvePropertiesANDROID( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4682 
AndroidHardwareBufferFormatResolvePropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID4683     AndroidHardwareBufferFormatResolvePropertiesANDROID( VkAndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
4684       : AndroidHardwareBufferFormatResolvePropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferFormatResolvePropertiesANDROID const *>( &rhs ) )
4685     {}
4686 
4687 
4688     AndroidHardwareBufferFormatResolvePropertiesANDROID & operator=( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4689 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
4690 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID4691     AndroidHardwareBufferFormatResolvePropertiesANDROID & operator=( VkAndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
4692     {
4693       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID const *>( &rhs );
4694       return *this;
4695     }
4696 
4697 
operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID4698     operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
4699     {
4700       return *reinterpret_cast<const VkAndroidHardwareBufferFormatResolvePropertiesANDROID*>( this );
4701     }
4702 
operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID4703     operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID &() VULKAN_HPP_NOEXCEPT
4704     {
4705       return *reinterpret_cast<VkAndroidHardwareBufferFormatResolvePropertiesANDROID*>( this );
4706     }
4707 
4708 #if defined( VULKAN_HPP_USE_REFLECT )
4709 #if 14 <= VULKAN_HPP_CPP_VERSION
4710     auto
4711 #else
4712     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Format const &>
4713 #endif
reflectVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID4714       reflect() const VULKAN_HPP_NOEXCEPT
4715     {
4716       return std::tie( sType, pNext, colorAttachmentFormat );
4717     }
4718 #endif
4719 
4720 
4721 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
4722 auto operator<=>( AndroidHardwareBufferFormatResolvePropertiesANDROID const & ) const = default;
4723 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID4724     bool operator==( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
4725     {
4726 #if defined( VULKAN_HPP_USE_REFLECT )
4727       return this->reflect() == rhs.reflect();
4728 #else
4729       return ( sType == rhs.sType )
4730           && ( pNext == rhs.pNext )
4731           && ( colorAttachmentFormat == rhs.colorAttachmentFormat );
4732 #endif
4733     }
4734 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID4735     bool operator!=( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
4736     {
4737       return !operator==( rhs );
4738     }
4739 #endif
4740 
4741     public:
4742     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID;
4743     void * pNext = {};
4744     VULKAN_HPP_NAMESPACE::Format colorAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
4745 
4746   };
4747 
4748   template <>
4749   struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID>
4750   {
4751     using Type = AndroidHardwareBufferFormatResolvePropertiesANDROID;
4752   };
4753 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4754 
4755 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4756   struct AndroidHardwareBufferPropertiesANDROID
4757   {
4758     using NativeType = VkAndroidHardwareBufferPropertiesANDROID;
4759 
4760     static const bool allowDuplicate = false;
4761     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
4762 
4763 
4764 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID4765 VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
4766     : pNext( pNext_ ), allocationSize( allocationSize_ ), memoryTypeBits( memoryTypeBits_ )
4767     {}
4768 
4769     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4770 
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID4771     AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
4772       : AndroidHardwareBufferPropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferPropertiesANDROID const *>( &rhs ) )
4773     {}
4774 
4775 
4776     AndroidHardwareBufferPropertiesANDROID & operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4777 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
4778 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID4779     AndroidHardwareBufferPropertiesANDROID & operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
4780     {
4781       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const *>( &rhs );
4782       return *this;
4783     }
4784 
4785 
operator VkAndroidHardwareBufferPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID4786     operator VkAndroidHardwareBufferPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
4787     {
4788       return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID*>( this );
4789     }
4790 
operator VkAndroidHardwareBufferPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID4791     operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
4792     {
4793       return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( this );
4794     }
4795 
4796 #if defined( VULKAN_HPP_USE_REFLECT )
4797 #if 14 <= VULKAN_HPP_CPP_VERSION
4798     auto
4799 #else
4800     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
4801 #endif
reflectVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID4802       reflect() const VULKAN_HPP_NOEXCEPT
4803     {
4804       return std::tie( sType, pNext, allocationSize, memoryTypeBits );
4805     }
4806 #endif
4807 
4808 
4809 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
4810 auto operator<=>( AndroidHardwareBufferPropertiesANDROID const & ) const = default;
4811 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID4812     bool operator==( AndroidHardwareBufferPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
4813     {
4814 #if defined( VULKAN_HPP_USE_REFLECT )
4815       return this->reflect() == rhs.reflect();
4816 #else
4817       return ( sType == rhs.sType )
4818           && ( pNext == rhs.pNext )
4819           && ( allocationSize == rhs.allocationSize )
4820           && ( memoryTypeBits == rhs.memoryTypeBits );
4821 #endif
4822     }
4823 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID4824     bool operator!=( AndroidHardwareBufferPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
4825     {
4826       return !operator==( rhs );
4827     }
4828 #endif
4829 
4830     public:
4831     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
4832     void * pNext = {};
4833     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
4834     uint32_t memoryTypeBits = {};
4835 
4836   };
4837 
4838   template <>
4839   struct CppType<StructureType, StructureType::eAndroidHardwareBufferPropertiesANDROID>
4840   {
4841     using Type = AndroidHardwareBufferPropertiesANDROID;
4842   };
4843 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4844 
4845 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4846   struct AndroidHardwareBufferUsageANDROID
4847   {
4848     using NativeType = VkAndroidHardwareBufferUsageANDROID;
4849 
4850     static const bool allowDuplicate = false;
4851     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferUsageANDROID;
4852 
4853 
4854 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID4855 VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID(uint64_t androidHardwareBufferUsage_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
4856     : pNext( pNext_ ), androidHardwareBufferUsage( androidHardwareBufferUsage_ )
4857     {}
4858 
4859     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4860 
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID4861     AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
4862       : AndroidHardwareBufferUsageANDROID( *reinterpret_cast<AndroidHardwareBufferUsageANDROID const *>( &rhs ) )
4863     {}
4864 
4865 
4866     AndroidHardwareBufferUsageANDROID & operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4867 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
4868 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID4869     AndroidHardwareBufferUsageANDROID & operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
4870     {
4871       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const *>( &rhs );
4872       return *this;
4873     }
4874 
4875 
operator VkAndroidHardwareBufferUsageANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID4876     operator VkAndroidHardwareBufferUsageANDROID const &() const VULKAN_HPP_NOEXCEPT
4877     {
4878       return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>( this );
4879     }
4880 
operator VkAndroidHardwareBufferUsageANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID4881     operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT
4882     {
4883       return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>( this );
4884     }
4885 
4886 #if defined( VULKAN_HPP_USE_REFLECT )
4887 #if 14 <= VULKAN_HPP_CPP_VERSION
4888     auto
4889 #else
4890     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
4891 #endif
reflectVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID4892       reflect() const VULKAN_HPP_NOEXCEPT
4893     {
4894       return std::tie( sType, pNext, androidHardwareBufferUsage );
4895     }
4896 #endif
4897 
4898 
4899 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
4900 auto operator<=>( AndroidHardwareBufferUsageANDROID const & ) const = default;
4901 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID4902     bool operator==( AndroidHardwareBufferUsageANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
4903     {
4904 #if defined( VULKAN_HPP_USE_REFLECT )
4905       return this->reflect() == rhs.reflect();
4906 #else
4907       return ( sType == rhs.sType )
4908           && ( pNext == rhs.pNext )
4909           && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
4910 #endif
4911     }
4912 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID4913     bool operator!=( AndroidHardwareBufferUsageANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
4914     {
4915       return !operator==( rhs );
4916     }
4917 #endif
4918 
4919     public:
4920     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
4921     void * pNext = {};
4922     uint64_t androidHardwareBufferUsage = {};
4923 
4924   };
4925 
4926   template <>
4927   struct CppType<StructureType, StructureType::eAndroidHardwareBufferUsageANDROID>
4928   {
4929     using Type = AndroidHardwareBufferUsageANDROID;
4930   };
4931 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4932 
4933 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4934   struct AndroidSurfaceCreateInfoKHR
4935   {
4936     using NativeType = VkAndroidSurfaceCreateInfoKHR;
4937 
4938     static const bool allowDuplicate = false;
4939     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR;
4940 
4941 
4942 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR4943 VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {}, struct ANativeWindow * window_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
4944     : pNext( pNext_ ), flags( flags_ ), window( window_ )
4945     {}
4946 
4947     VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4948 
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR4949     AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
4950       : AndroidSurfaceCreateInfoKHR( *reinterpret_cast<AndroidSurfaceCreateInfoKHR const *>( &rhs ) )
4951     {}
4952 
4953 
4954     AndroidSurfaceCreateInfoKHR & operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
4955 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
4956 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR4957     AndroidSurfaceCreateInfoKHR & operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
4958     {
4959       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const *>( &rhs );
4960       return *this;
4961     }
4962 
4963 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR4964     VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
4965     {
4966       pNext = pNext_;
4967       return *this;
4968     }
4969 
setFlagsVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR4970     VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
4971     {
4972       flags = flags_;
4973       return *this;
4974     }
4975 
setWindowVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR4976     VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow * window_ ) VULKAN_HPP_NOEXCEPT
4977     {
4978       window = window_;
4979       return *this;
4980     }
4981 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
4982 
4983 
operator VkAndroidSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR4984     operator VkAndroidSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
4985     {
4986       return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( this );
4987     }
4988 
operator VkAndroidSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR4989     operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
4990     {
4991       return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>( this );
4992     }
4993 
4994 #if defined( VULKAN_HPP_USE_REFLECT )
4995 #if 14 <= VULKAN_HPP_CPP_VERSION
4996     auto
4997 #else
4998     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR const &, struct ANativeWindow * const &>
4999 #endif
reflectVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR5000       reflect() const VULKAN_HPP_NOEXCEPT
5001     {
5002       return std::tie( sType, pNext, flags, window );
5003     }
5004 #endif
5005 
5006 
5007 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
5008 auto operator<=>( AndroidSurfaceCreateInfoKHR const & ) const = default;
5009 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR5010     bool operator==( AndroidSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
5011     {
5012 #if defined( VULKAN_HPP_USE_REFLECT )
5013       return this->reflect() == rhs.reflect();
5014 #else
5015       return ( sType == rhs.sType )
5016           && ( pNext == rhs.pNext )
5017           && ( flags == rhs.flags )
5018           && ( window == rhs.window );
5019 #endif
5020     }
5021 
operator !=VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR5022     bool operator!=( AndroidSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
5023     {
5024       return !operator==( rhs );
5025     }
5026 #endif
5027 
5028     public:
5029     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR;
5030     const void * pNext = {};
5031     VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {};
5032     struct ANativeWindow * window = {};
5033 
5034   };
5035 
5036   template <>
5037   struct CppType<StructureType, StructureType::eAndroidSurfaceCreateInfoKHR>
5038   {
5039     using Type = AndroidSurfaceCreateInfoKHR;
5040   };
5041 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
5042 
5043   struct ApplicationInfo
5044   {
5045     using NativeType = VkApplicationInfo;
5046 
5047     static const bool allowDuplicate = false;
5048     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo;
5049 
5050 
5051 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo5052 VULKAN_HPP_CONSTEXPR ApplicationInfo(const char * pApplicationName_ = {}, uint32_t applicationVersion_ = {}, const char * pEngineName_ = {}, uint32_t engineVersion_ = {}, uint32_t apiVersion_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
5053     : pNext( pNext_ ), pApplicationName( pApplicationName_ ), applicationVersion( applicationVersion_ ), pEngineName( pEngineName_ ), engineVersion( engineVersion_ ), apiVersion( apiVersion_ )
5054     {}
5055 
5056     VULKAN_HPP_CONSTEXPR ApplicationInfo( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5057 
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo5058     ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
5059       : ApplicationInfo( *reinterpret_cast<ApplicationInfo const *>( &rhs ) )
5060     {}
5061 
5062 
5063     ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5064 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
5065 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo5066     ApplicationInfo & operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
5067     {
5068       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ApplicationInfo const *>( &rhs );
5069       return *this;
5070     }
5071 
5072 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ApplicationInfo5073     VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
5074     {
5075       pNext = pNext_;
5076       return *this;
5077     }
5078 
setPApplicationNameVULKAN_HPP_NAMESPACE::ApplicationInfo5079     VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setPApplicationName( const char * pApplicationName_ ) VULKAN_HPP_NOEXCEPT
5080     {
5081       pApplicationName = pApplicationName_;
5082       return *this;
5083     }
5084 
setApplicationVersionVULKAN_HPP_NAMESPACE::ApplicationInfo5085     VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT
5086     {
5087       applicationVersion = applicationVersion_;
5088       return *this;
5089     }
5090 
setPEngineNameVULKAN_HPP_NAMESPACE::ApplicationInfo5091     VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setPEngineName( const char * pEngineName_ ) VULKAN_HPP_NOEXCEPT
5092     {
5093       pEngineName = pEngineName_;
5094       return *this;
5095     }
5096 
setEngineVersionVULKAN_HPP_NAMESPACE::ApplicationInfo5097     VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
5098     {
5099       engineVersion = engineVersion_;
5100       return *this;
5101     }
5102 
setApiVersionVULKAN_HPP_NAMESPACE::ApplicationInfo5103     VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
5104     {
5105       apiVersion = apiVersion_;
5106       return *this;
5107     }
5108 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
5109 
5110 
operator VkApplicationInfo const&VULKAN_HPP_NAMESPACE::ApplicationInfo5111     operator VkApplicationInfo const &() const VULKAN_HPP_NOEXCEPT
5112     {
5113       return *reinterpret_cast<const VkApplicationInfo*>( this );
5114     }
5115 
operator VkApplicationInfo&VULKAN_HPP_NAMESPACE::ApplicationInfo5116     operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT
5117     {
5118       return *reinterpret_cast<VkApplicationInfo*>( this );
5119     }
5120 
5121 #if defined( VULKAN_HPP_USE_REFLECT )
5122 #if 14 <= VULKAN_HPP_CPP_VERSION
5123     auto
5124 #else
5125     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const char * const &, uint32_t const &, const char * const &, uint32_t const &, uint32_t const &>
5126 #endif
reflectVULKAN_HPP_NAMESPACE::ApplicationInfo5127       reflect() const VULKAN_HPP_NOEXCEPT
5128     {
5129       return std::tie( sType, pNext, pApplicationName, applicationVersion, pEngineName, engineVersion, apiVersion );
5130     }
5131 #endif
5132 
5133 
5134 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::ApplicationInfo5135     std::strong_ordering operator<=>( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
5136     {
5137       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
5138       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
5139      if ( pApplicationName != rhs.pApplicationName )
5140         if ( auto cmp = strcmp( pApplicationName, rhs.pApplicationName ); cmp != 0 )
5141           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
5142       if ( auto cmp = applicationVersion <=> rhs.applicationVersion; cmp != 0 ) return cmp;
5143      if ( pEngineName != rhs.pEngineName )
5144         if ( auto cmp = strcmp( pEngineName, rhs.pEngineName ); cmp != 0 )
5145           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
5146       if ( auto cmp = engineVersion <=> rhs.engineVersion; cmp != 0 ) return cmp;
5147       if ( auto cmp = apiVersion <=> rhs.apiVersion; cmp != 0 ) return cmp;
5148 
5149       return std::strong_ordering::equivalent;
5150     }
5151 #endif
5152 
operator ==VULKAN_HPP_NAMESPACE::ApplicationInfo5153     bool operator==( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
5154     {
5155       return ( sType == rhs.sType )
5156           && ( pNext == rhs.pNext )
5157           && ( ( pApplicationName == rhs.pApplicationName ) || ( strcmp( pApplicationName, rhs.pApplicationName ) == 0 ) )
5158           && ( applicationVersion == rhs.applicationVersion )
5159           && ( ( pEngineName == rhs.pEngineName ) || ( strcmp( pEngineName, rhs.pEngineName ) == 0 ) )
5160           && ( engineVersion == rhs.engineVersion )
5161           && ( apiVersion == rhs.apiVersion );
5162     }
5163 
operator !=VULKAN_HPP_NAMESPACE::ApplicationInfo5164     bool operator!=( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
5165     {
5166       return !operator==( rhs );
5167     }
5168 
5169     public:
5170     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo;
5171     const void * pNext = {};
5172     const char * pApplicationName = {};
5173     uint32_t applicationVersion = {};
5174     const char * pEngineName = {};
5175     uint32_t engineVersion = {};
5176     uint32_t apiVersion = {};
5177 
5178   };
5179 
5180   template <>
5181   struct CppType<StructureType, StructureType::eApplicationInfo>
5182   {
5183     using Type = ApplicationInfo;
5184   };
5185 
5186   struct AttachmentDescription
5187   {
5188     using NativeType = VkAttachmentDescription;
5189 
5190 
5191 
5192 
5193 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription5194 VULKAN_HPP_CONSTEXPR AttachmentDescription(VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
5195     : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ )
5196     {}
5197 
5198     VULKAN_HPP_CONSTEXPR AttachmentDescription( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5199 
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription5200     AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
5201       : AttachmentDescription( *reinterpret_cast<AttachmentDescription const *>( &rhs ) )
5202     {}
5203 
5204 
5205     AttachmentDescription & operator=( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5206 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
5207 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription5208     AttachmentDescription & operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
5209     {
5210       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription const *>( &rhs );
5211       return *this;
5212     }
5213 
5214 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription5215     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
5216     {
5217       flags = flags_;
5218       return *this;
5219     }
5220 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription5221     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
5222     {
5223       format = format_;
5224       return *this;
5225     }
5226 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription5227     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
5228     {
5229       samples = samples_;
5230       return *this;
5231     }
5232 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription5233     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
5234     {
5235       loadOp = loadOp_;
5236       return *this;
5237     }
5238 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription5239     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
5240     {
5241       storeOp = storeOp_;
5242       return *this;
5243     }
5244 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription5245     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
5246     {
5247       stencilLoadOp = stencilLoadOp_;
5248       return *this;
5249     }
5250 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription5251     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
5252     {
5253       stencilStoreOp = stencilStoreOp_;
5254       return *this;
5255     }
5256 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription5257     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
5258     {
5259       initialLayout = initialLayout_;
5260       return *this;
5261     }
5262 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription5263     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
5264     {
5265       finalLayout = finalLayout_;
5266       return *this;
5267     }
5268 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
5269 
5270 
operator VkAttachmentDescription const&VULKAN_HPP_NAMESPACE::AttachmentDescription5271     operator VkAttachmentDescription const &() const VULKAN_HPP_NOEXCEPT
5272     {
5273       return *reinterpret_cast<const VkAttachmentDescription*>( this );
5274     }
5275 
operator VkAttachmentDescription&VULKAN_HPP_NAMESPACE::AttachmentDescription5276     operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT
5277     {
5278       return *reinterpret_cast<VkAttachmentDescription*>( this );
5279     }
5280 
5281 #if defined( VULKAN_HPP_USE_REFLECT )
5282 #if 14 <= VULKAN_HPP_CPP_VERSION
5283     auto
5284 #else
5285     std::tuple<VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &, VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &, VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &, VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &, VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
5286 #endif
reflectVULKAN_HPP_NAMESPACE::AttachmentDescription5287       reflect() const VULKAN_HPP_NOEXCEPT
5288     {
5289       return std::tie( flags, format, samples, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalLayout );
5290     }
5291 #endif
5292 
5293 
5294 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
5295 auto operator<=>( AttachmentDescription const & ) const = default;
5296 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription5297     bool operator==( AttachmentDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
5298     {
5299 #if defined( VULKAN_HPP_USE_REFLECT )
5300       return this->reflect() == rhs.reflect();
5301 #else
5302       return ( flags == rhs.flags )
5303           && ( format == rhs.format )
5304           && ( samples == rhs.samples )
5305           && ( loadOp == rhs.loadOp )
5306           && ( storeOp == rhs.storeOp )
5307           && ( stencilLoadOp == rhs.stencilLoadOp )
5308           && ( stencilStoreOp == rhs.stencilStoreOp )
5309           && ( initialLayout == rhs.initialLayout )
5310           && ( finalLayout == rhs.finalLayout );
5311 #endif
5312     }
5313 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription5314     bool operator!=( AttachmentDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
5315     {
5316       return !operator==( rhs );
5317     }
5318 #endif
5319 
5320     public:
5321     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
5322     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
5323     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
5324     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
5325     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
5326     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
5327     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
5328     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
5329     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
5330 
5331   };
5332 
5333   struct AttachmentDescription2
5334   {
5335     using NativeType = VkAttachmentDescription2;
5336 
5337     static const bool allowDuplicate = false;
5338     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2;
5339 
5340 
5341 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription25342 VULKAN_HPP_CONSTEXPR AttachmentDescription2(VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
5343     : pNext( pNext_ ), flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ )
5344     {}
5345 
5346     VULKAN_HPP_CONSTEXPR AttachmentDescription2( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5347 
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription25348     AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
5349       : AttachmentDescription2( *reinterpret_cast<AttachmentDescription2 const *>( &rhs ) )
5350     {}
5351 
5352 
5353     AttachmentDescription2 & operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5354 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
5355 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription25356     AttachmentDescription2 & operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
5357     {
5358       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription2 const *>( &rhs );
5359       return *this;
5360     }
5361 
5362 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescription25363     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
5364     {
5365       pNext = pNext_;
5366       return *this;
5367     }
5368 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription25369     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
5370     {
5371       flags = flags_;
5372       return *this;
5373     }
5374 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription25375     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
5376     {
5377       format = format_;
5378       return *this;
5379     }
5380 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription25381     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
5382     {
5383       samples = samples_;
5384       return *this;
5385     }
5386 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription25387     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
5388     {
5389       loadOp = loadOp_;
5390       return *this;
5391     }
5392 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription25393     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
5394     {
5395       storeOp = storeOp_;
5396       return *this;
5397     }
5398 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription25399     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
5400     {
5401       stencilLoadOp = stencilLoadOp_;
5402       return *this;
5403     }
5404 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription25405     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
5406     {
5407       stencilStoreOp = stencilStoreOp_;
5408       return *this;
5409     }
5410 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription25411     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
5412     {
5413       initialLayout = initialLayout_;
5414       return *this;
5415     }
5416 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription25417     VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
5418     {
5419       finalLayout = finalLayout_;
5420       return *this;
5421     }
5422 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
5423 
5424 
operator VkAttachmentDescription2 const&VULKAN_HPP_NAMESPACE::AttachmentDescription25425     operator VkAttachmentDescription2 const &() const VULKAN_HPP_NOEXCEPT
5426     {
5427       return *reinterpret_cast<const VkAttachmentDescription2*>( this );
5428     }
5429 
operator VkAttachmentDescription2&VULKAN_HPP_NAMESPACE::AttachmentDescription25430     operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT
5431     {
5432       return *reinterpret_cast<VkAttachmentDescription2*>( this );
5433     }
5434 
5435 #if defined( VULKAN_HPP_USE_REFLECT )
5436 #if 14 <= VULKAN_HPP_CPP_VERSION
5437     auto
5438 #else
5439     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &, VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &, VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &, VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &, VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
5440 #endif
reflectVULKAN_HPP_NAMESPACE::AttachmentDescription25441       reflect() const VULKAN_HPP_NOEXCEPT
5442     {
5443       return std::tie( sType, pNext, flags, format, samples, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalLayout );
5444     }
5445 #endif
5446 
5447 
5448 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
5449 auto operator<=>( AttachmentDescription2 const & ) const = default;
5450 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription25451     bool operator==( AttachmentDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
5452     {
5453 #if defined( VULKAN_HPP_USE_REFLECT )
5454       return this->reflect() == rhs.reflect();
5455 #else
5456       return ( sType == rhs.sType )
5457           && ( pNext == rhs.pNext )
5458           && ( flags == rhs.flags )
5459           && ( format == rhs.format )
5460           && ( samples == rhs.samples )
5461           && ( loadOp == rhs.loadOp )
5462           && ( storeOp == rhs.storeOp )
5463           && ( stencilLoadOp == rhs.stencilLoadOp )
5464           && ( stencilStoreOp == rhs.stencilStoreOp )
5465           && ( initialLayout == rhs.initialLayout )
5466           && ( finalLayout == rhs.finalLayout );
5467 #endif
5468     }
5469 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription25470     bool operator!=( AttachmentDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
5471     {
5472       return !operator==( rhs );
5473     }
5474 #endif
5475 
5476     public:
5477     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2;
5478     const void * pNext = {};
5479     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
5480     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
5481     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
5482     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
5483     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
5484     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
5485     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
5486     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
5487     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
5488 
5489   };
5490 
5491   template <>
5492   struct CppType<StructureType, StructureType::eAttachmentDescription2>
5493   {
5494     using Type = AttachmentDescription2;
5495   };
5496   using AttachmentDescription2KHR = AttachmentDescription2;
5497 
5498   struct AttachmentDescriptionStencilLayout
5499   {
5500     using NativeType = VkAttachmentDescriptionStencilLayout;
5501 
5502     static const bool allowDuplicate = false;
5503     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescriptionStencilLayout;
5504 
5505 
5506 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5507 VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
5508     : pNext( pNext_ ), stencilInitialLayout( stencilInitialLayout_ ), stencilFinalLayout( stencilFinalLayout_ )
5509     {}
5510 
5511     VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5512 
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5513     AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
5514       : AttachmentDescriptionStencilLayout( *reinterpret_cast<AttachmentDescriptionStencilLayout const *>( &rhs ) )
5515     {}
5516 
5517 
5518     AttachmentDescriptionStencilLayout & operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5519 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
5520 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5521     AttachmentDescriptionStencilLayout & operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
5522     {
5523       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const *>( &rhs );
5524       return *this;
5525     }
5526 
5527 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5528     VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
5529     {
5530       pNext = pNext_;
5531       return *this;
5532     }
5533 
setStencilInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5534     VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout & setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT
5535     {
5536       stencilInitialLayout = stencilInitialLayout_;
5537       return *this;
5538     }
5539 
setStencilFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5540     VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout & setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT
5541     {
5542       stencilFinalLayout = stencilFinalLayout_;
5543       return *this;
5544     }
5545 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
5546 
5547 
operator VkAttachmentDescriptionStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5548     operator VkAttachmentDescriptionStencilLayout const &() const VULKAN_HPP_NOEXCEPT
5549     {
5550       return *reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>( this );
5551     }
5552 
operator VkAttachmentDescriptionStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5553     operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT
5554     {
5555       return *reinterpret_cast<VkAttachmentDescriptionStencilLayout*>( this );
5556     }
5557 
5558 #if defined( VULKAN_HPP_USE_REFLECT )
5559 #if 14 <= VULKAN_HPP_CPP_VERSION
5560     auto
5561 #else
5562     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
5563 #endif
reflectVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5564       reflect() const VULKAN_HPP_NOEXCEPT
5565     {
5566       return std::tie( sType, pNext, stencilInitialLayout, stencilFinalLayout );
5567     }
5568 #endif
5569 
5570 
5571 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
5572 auto operator<=>( AttachmentDescriptionStencilLayout const & ) const = default;
5573 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5574     bool operator==( AttachmentDescriptionStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
5575     {
5576 #if defined( VULKAN_HPP_USE_REFLECT )
5577       return this->reflect() == rhs.reflect();
5578 #else
5579       return ( sType == rhs.sType )
5580           && ( pNext == rhs.pNext )
5581           && ( stencilInitialLayout == rhs.stencilInitialLayout )
5582           && ( stencilFinalLayout == rhs.stencilFinalLayout );
5583 #endif
5584     }
5585 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout5586     bool operator!=( AttachmentDescriptionStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
5587     {
5588       return !operator==( rhs );
5589     }
5590 #endif
5591 
5592     public:
5593     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout;
5594     void * pNext = {};
5595     VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
5596     VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
5597 
5598   };
5599 
5600   template <>
5601   struct CppType<StructureType, StructureType::eAttachmentDescriptionStencilLayout>
5602   {
5603     using Type = AttachmentDescriptionStencilLayout;
5604   };
5605   using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
5606 
5607   struct AttachmentReference
5608   {
5609     using NativeType = VkAttachmentReference;
5610 
5611 
5612 
5613 
5614 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference5615 VULKAN_HPP_CONSTEXPR AttachmentReference(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
5616     : attachment( attachment_ ), layout( layout_ )
5617     {}
5618 
5619     VULKAN_HPP_CONSTEXPR AttachmentReference( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5620 
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference5621     AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
5622       : AttachmentReference( *reinterpret_cast<AttachmentReference const *>( &rhs ) )
5623     {}
5624 
5625 
5626     AttachmentReference & operator=( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5627 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
5628 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference5629     AttachmentReference & operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
5630     {
5631       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference const *>( &rhs );
5632       return *this;
5633     }
5634 
5635 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference5636     VULKAN_HPP_CONSTEXPR_14 AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
5637     {
5638       attachment = attachment_;
5639       return *this;
5640     }
5641 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference5642     VULKAN_HPP_CONSTEXPR_14 AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
5643     {
5644       layout = layout_;
5645       return *this;
5646     }
5647 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
5648 
5649 
operator VkAttachmentReference const&VULKAN_HPP_NAMESPACE::AttachmentReference5650     operator VkAttachmentReference const &() const VULKAN_HPP_NOEXCEPT
5651     {
5652       return *reinterpret_cast<const VkAttachmentReference*>( this );
5653     }
5654 
operator VkAttachmentReference&VULKAN_HPP_NAMESPACE::AttachmentReference5655     operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT
5656     {
5657       return *reinterpret_cast<VkAttachmentReference*>( this );
5658     }
5659 
5660 #if defined( VULKAN_HPP_USE_REFLECT )
5661 #if 14 <= VULKAN_HPP_CPP_VERSION
5662     auto
5663 #else
5664     std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
5665 #endif
reflectVULKAN_HPP_NAMESPACE::AttachmentReference5666       reflect() const VULKAN_HPP_NOEXCEPT
5667     {
5668       return std::tie( attachment, layout );
5669     }
5670 #endif
5671 
5672 
5673 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
5674 auto operator<=>( AttachmentReference const & ) const = default;
5675 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference5676     bool operator==( AttachmentReference const & rhs ) const VULKAN_HPP_NOEXCEPT
5677     {
5678 #if defined( VULKAN_HPP_USE_REFLECT )
5679       return this->reflect() == rhs.reflect();
5680 #else
5681       return ( attachment == rhs.attachment )
5682           && ( layout == rhs.layout );
5683 #endif
5684     }
5685 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference5686     bool operator!=( AttachmentReference const & rhs ) const VULKAN_HPP_NOEXCEPT
5687     {
5688       return !operator==( rhs );
5689     }
5690 #endif
5691 
5692     public:
5693     uint32_t attachment = {};
5694     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
5695 
5696   };
5697 
5698   struct AttachmentReference2
5699   {
5700     using NativeType = VkAttachmentReference2;
5701 
5702     static const bool allowDuplicate = false;
5703     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2;
5704 
5705 
5706 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference25707 VULKAN_HPP_CONSTEXPR AttachmentReference2(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
5708     : pNext( pNext_ ), attachment( attachment_ ), layout( layout_ ), aspectMask( aspectMask_ )
5709     {}
5710 
5711     VULKAN_HPP_CONSTEXPR AttachmentReference2( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5712 
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference25713     AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
5714       : AttachmentReference2( *reinterpret_cast<AttachmentReference2 const *>( &rhs ) )
5715     {}
5716 
5717 
5718     AttachmentReference2 & operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5719 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
5720 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference25721     AttachmentReference2 & operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
5722     {
5723       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference2 const *>( &rhs );
5724       return *this;
5725     }
5726 
5727 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AttachmentReference25728     VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
5729     {
5730       pNext = pNext_;
5731       return *this;
5732     }
5733 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference25734     VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
5735     {
5736       attachment = attachment_;
5737       return *this;
5738     }
5739 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference25740     VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
5741     {
5742       layout = layout_;
5743       return *this;
5744     }
5745 
setAspectMaskVULKAN_HPP_NAMESPACE::AttachmentReference25746     VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
5747     {
5748       aspectMask = aspectMask_;
5749       return *this;
5750     }
5751 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
5752 
5753 
operator VkAttachmentReference2 const&VULKAN_HPP_NAMESPACE::AttachmentReference25754     operator VkAttachmentReference2 const &() const VULKAN_HPP_NOEXCEPT
5755     {
5756       return *reinterpret_cast<const VkAttachmentReference2*>( this );
5757     }
5758 
operator VkAttachmentReference2&VULKAN_HPP_NAMESPACE::AttachmentReference25759     operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT
5760     {
5761       return *reinterpret_cast<VkAttachmentReference2*>( this );
5762     }
5763 
5764 #if defined( VULKAN_HPP_USE_REFLECT )
5765 #if 14 <= VULKAN_HPP_CPP_VERSION
5766     auto
5767 #else
5768     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ImageAspectFlags const &>
5769 #endif
reflectVULKAN_HPP_NAMESPACE::AttachmentReference25770       reflect() const VULKAN_HPP_NOEXCEPT
5771     {
5772       return std::tie( sType, pNext, attachment, layout, aspectMask );
5773     }
5774 #endif
5775 
5776 
5777 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
5778 auto operator<=>( AttachmentReference2 const & ) const = default;
5779 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference25780     bool operator==( AttachmentReference2 const & rhs ) const VULKAN_HPP_NOEXCEPT
5781     {
5782 #if defined( VULKAN_HPP_USE_REFLECT )
5783       return this->reflect() == rhs.reflect();
5784 #else
5785       return ( sType == rhs.sType )
5786           && ( pNext == rhs.pNext )
5787           && ( attachment == rhs.attachment )
5788           && ( layout == rhs.layout )
5789           && ( aspectMask == rhs.aspectMask );
5790 #endif
5791     }
5792 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference25793     bool operator!=( AttachmentReference2 const & rhs ) const VULKAN_HPP_NOEXCEPT
5794     {
5795       return !operator==( rhs );
5796     }
5797 #endif
5798 
5799     public:
5800     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2;
5801     const void * pNext = {};
5802     uint32_t attachment = {};
5803     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
5804     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
5805 
5806   };
5807 
5808   template <>
5809   struct CppType<StructureType, StructureType::eAttachmentReference2>
5810   {
5811     using Type = AttachmentReference2;
5812   };
5813   using AttachmentReference2KHR = AttachmentReference2;
5814 
5815   struct AttachmentReferenceStencilLayout
5816   {
5817     using NativeType = VkAttachmentReferenceStencilLayout;
5818 
5819     static const bool allowDuplicate = false;
5820     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout;
5821 
5822 
5823 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout5824 VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
5825     : pNext( pNext_ ), stencilLayout( stencilLayout_ )
5826     {}
5827 
5828     VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5829 
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout5830     AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
5831       : AttachmentReferenceStencilLayout( *reinterpret_cast<AttachmentReferenceStencilLayout const *>( &rhs ) )
5832     {}
5833 
5834 
5835     AttachmentReferenceStencilLayout & operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5836 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
5837 
operator =VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout5838     AttachmentReferenceStencilLayout & operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
5839     {
5840       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const *>( &rhs );
5841       return *this;
5842     }
5843 
5844 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout5845     VULKAN_HPP_CONSTEXPR_14 AttachmentReferenceStencilLayout & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
5846     {
5847       pNext = pNext_;
5848       return *this;
5849     }
5850 
setStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout5851     VULKAN_HPP_CONSTEXPR_14 AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT
5852     {
5853       stencilLayout = stencilLayout_;
5854       return *this;
5855     }
5856 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
5857 
5858 
operator VkAttachmentReferenceStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout5859     operator VkAttachmentReferenceStencilLayout const &() const VULKAN_HPP_NOEXCEPT
5860     {
5861       return *reinterpret_cast<const VkAttachmentReferenceStencilLayout*>( this );
5862     }
5863 
operator VkAttachmentReferenceStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout5864     operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT
5865     {
5866       return *reinterpret_cast<VkAttachmentReferenceStencilLayout*>( this );
5867     }
5868 
5869 #if defined( VULKAN_HPP_USE_REFLECT )
5870 #if 14 <= VULKAN_HPP_CPP_VERSION
5871     auto
5872 #else
5873     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
5874 #endif
reflectVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout5875       reflect() const VULKAN_HPP_NOEXCEPT
5876     {
5877       return std::tie( sType, pNext, stencilLayout );
5878     }
5879 #endif
5880 
5881 
5882 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
5883 auto operator<=>( AttachmentReferenceStencilLayout const & ) const = default;
5884 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout5885     bool operator==( AttachmentReferenceStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
5886     {
5887 #if defined( VULKAN_HPP_USE_REFLECT )
5888       return this->reflect() == rhs.reflect();
5889 #else
5890       return ( sType == rhs.sType )
5891           && ( pNext == rhs.pNext )
5892           && ( stencilLayout == rhs.stencilLayout );
5893 #endif
5894     }
5895 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout5896     bool operator!=( AttachmentReferenceStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
5897     {
5898       return !operator==( rhs );
5899     }
5900 #endif
5901 
5902     public:
5903     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout;
5904     void * pNext = {};
5905     VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
5906 
5907   };
5908 
5909   template <>
5910   struct CppType<StructureType, StructureType::eAttachmentReferenceStencilLayout>
5911   {
5912     using Type = AttachmentReferenceStencilLayout;
5913   };
5914   using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
5915 
5916   struct AttachmentSampleCountInfoAMD
5917   {
5918     using NativeType = VkAttachmentSampleCountInfoAMD;
5919 
5920     static const bool allowDuplicate = false;
5921     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentSampleCountInfoAMD;
5922 
5923 
5924 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentSampleCountInfoAMDVULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5925 VULKAN_HPP_CONSTEXPR AttachmentSampleCountInfoAMD(uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
5926     : pNext( pNext_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachmentSamples( pColorAttachmentSamples_ ), depthStencilAttachmentSamples( depthStencilAttachmentSamples_ )
5927     {}
5928 
5929     VULKAN_HPP_CONSTEXPR AttachmentSampleCountInfoAMD( AttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5930 
AttachmentSampleCountInfoAMDVULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5931     AttachmentSampleCountInfoAMD( VkAttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
5932       : AttachmentSampleCountInfoAMD( *reinterpret_cast<AttachmentSampleCountInfoAMD const *>( &rhs ) )
5933     {}
5934 
5935 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
AttachmentSampleCountInfoAMDVULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5936     AttachmentSampleCountInfoAMD( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleCountFlagBits> const & colorAttachmentSamples_, VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, const void * pNext_ = nullptr )
5937     : pNext( pNext_ ), colorAttachmentCount( static_cast<uint32_t>( colorAttachmentSamples_.size() ) ), pColorAttachmentSamples( colorAttachmentSamples_.data() ), depthStencilAttachmentSamples( depthStencilAttachmentSamples_ )
5938     {}
5939 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
5940 
5941 
5942     AttachmentSampleCountInfoAMD & operator=( AttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
5943 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
5944 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5945     AttachmentSampleCountInfoAMD & operator=( VkAttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
5946     {
5947       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD const *>( &rhs );
5948       return *this;
5949     }
5950 
5951 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5952     VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
5953     {
5954       pNext = pNext_;
5955       return *this;
5956     }
5957 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5958     VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
5959     {
5960       colorAttachmentCount = colorAttachmentCount_;
5961       return *this;
5962     }
5963 
setPColorAttachmentSamplesVULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5964     VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD & setPColorAttachmentSamples( const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
5965     {
5966       pColorAttachmentSamples = pColorAttachmentSamples_;
5967       return *this;
5968     }
5969 
5970 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setColorAttachmentSamplesVULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5971     AttachmentSampleCountInfoAMD & setColorAttachmentSamples( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleCountFlagBits> const & colorAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
5972     {
5973       colorAttachmentCount = static_cast<uint32_t>( colorAttachmentSamples_.size() );
5974       pColorAttachmentSamples = colorAttachmentSamples_.data();
5975       return *this;
5976     }
5977 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
5978 
setDepthStencilAttachmentSamplesVULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5979     VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD & setDepthStencilAttachmentSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
5980     {
5981       depthStencilAttachmentSamples = depthStencilAttachmentSamples_;
5982       return *this;
5983     }
5984 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
5985 
5986 
operator VkAttachmentSampleCountInfoAMD const&VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5987     operator VkAttachmentSampleCountInfoAMD const &() const VULKAN_HPP_NOEXCEPT
5988     {
5989       return *reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>( this );
5990     }
5991 
operator VkAttachmentSampleCountInfoAMD&VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD5992     operator VkAttachmentSampleCountInfoAMD &() VULKAN_HPP_NOEXCEPT
5993     {
5994       return *reinterpret_cast<VkAttachmentSampleCountInfoAMD*>( this );
5995     }
5996 
5997 #if defined( VULKAN_HPP_USE_REFLECT )
5998 #if 14 <= VULKAN_HPP_CPP_VERSION
5999     auto
6000 #else
6001     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
6002 #endif
reflectVULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD6003       reflect() const VULKAN_HPP_NOEXCEPT
6004     {
6005       return std::tie( sType, pNext, colorAttachmentCount, pColorAttachmentSamples, depthStencilAttachmentSamples );
6006     }
6007 #endif
6008 
6009 
6010 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
6011 auto operator<=>( AttachmentSampleCountInfoAMD const & ) const = default;
6012 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD6013     bool operator==( AttachmentSampleCountInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
6014     {
6015 #if defined( VULKAN_HPP_USE_REFLECT )
6016       return this->reflect() == rhs.reflect();
6017 #else
6018       return ( sType == rhs.sType )
6019           && ( pNext == rhs.pNext )
6020           && ( colorAttachmentCount == rhs.colorAttachmentCount )
6021           && ( pColorAttachmentSamples == rhs.pColorAttachmentSamples )
6022           && ( depthStencilAttachmentSamples == rhs.depthStencilAttachmentSamples );
6023 #endif
6024     }
6025 
operator !=VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD6026     bool operator!=( AttachmentSampleCountInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
6027     {
6028       return !operator==( rhs );
6029     }
6030 #endif
6031 
6032     public:
6033     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentSampleCountInfoAMD;
6034     const void * pNext = {};
6035     uint32_t colorAttachmentCount = {};
6036     const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples = {};
6037     VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
6038 
6039   };
6040 
6041   template <>
6042   struct CppType<StructureType, StructureType::eAttachmentSampleCountInfoAMD>
6043   {
6044     using Type = AttachmentSampleCountInfoAMD;
6045   };
6046   using AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD;
6047 
6048   struct Extent2D
6049   {
6050     using NativeType = VkExtent2D;
6051 
6052 
6053 
6054 
6055 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Extent2DVULKAN_HPP_NAMESPACE::Extent2D6056 VULKAN_HPP_CONSTEXPR Extent2D(uint32_t width_ = {}, uint32_t height_ = {}) VULKAN_HPP_NOEXCEPT
6057     : width( width_ ), height( height_ )
6058     {}
6059 
6060     VULKAN_HPP_CONSTEXPR Extent2D( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6061 
Extent2DVULKAN_HPP_NAMESPACE::Extent2D6062     Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
6063       : Extent2D( *reinterpret_cast<Extent2D const *>( &rhs ) )
6064     {}
6065 
6066 
6067     Extent2D & operator=( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6068 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
6069 
operator =VULKAN_HPP_NAMESPACE::Extent2D6070     Extent2D & operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
6071     {
6072       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent2D const *>( &rhs );
6073       return *this;
6074     }
6075 
6076 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setWidthVULKAN_HPP_NAMESPACE::Extent2D6077     VULKAN_HPP_CONSTEXPR_14 Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
6078     {
6079       width = width_;
6080       return *this;
6081     }
6082 
setHeightVULKAN_HPP_NAMESPACE::Extent2D6083     VULKAN_HPP_CONSTEXPR_14 Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
6084     {
6085       height = height_;
6086       return *this;
6087     }
6088 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
6089 
6090 
operator VkExtent2D const&VULKAN_HPP_NAMESPACE::Extent2D6091     operator VkExtent2D const &() const VULKAN_HPP_NOEXCEPT
6092     {
6093       return *reinterpret_cast<const VkExtent2D*>( this );
6094     }
6095 
operator VkExtent2D&VULKAN_HPP_NAMESPACE::Extent2D6096     operator VkExtent2D &() VULKAN_HPP_NOEXCEPT
6097     {
6098       return *reinterpret_cast<VkExtent2D*>( this );
6099     }
6100 
6101 #if defined( VULKAN_HPP_USE_REFLECT )
6102 #if 14 <= VULKAN_HPP_CPP_VERSION
6103     auto
6104 #else
6105     std::tuple<uint32_t const &, uint32_t const &>
6106 #endif
reflectVULKAN_HPP_NAMESPACE::Extent2D6107       reflect() const VULKAN_HPP_NOEXCEPT
6108     {
6109       return std::tie( width, height );
6110     }
6111 #endif
6112 
6113 
6114 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
6115 auto operator<=>( Extent2D const & ) const = default;
6116 #else
operator ==VULKAN_HPP_NAMESPACE::Extent2D6117     bool operator==( Extent2D const & rhs ) const VULKAN_HPP_NOEXCEPT
6118     {
6119 #if defined( VULKAN_HPP_USE_REFLECT )
6120       return this->reflect() == rhs.reflect();
6121 #else
6122       return ( width == rhs.width )
6123           && ( height == rhs.height );
6124 #endif
6125     }
6126 
operator !=VULKAN_HPP_NAMESPACE::Extent2D6127     bool operator!=( Extent2D const & rhs ) const VULKAN_HPP_NOEXCEPT
6128     {
6129       return !operator==( rhs );
6130     }
6131 #endif
6132 
6133     public:
6134     uint32_t width = {};
6135     uint32_t height = {};
6136 
6137   };
6138 
6139   struct SampleLocationEXT
6140   {
6141     using NativeType = VkSampleLocationEXT;
6142 
6143 
6144 
6145 
6146 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT6147 VULKAN_HPP_CONSTEXPR SampleLocationEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT
6148     : x( x_ ), y( y_ )
6149     {}
6150 
6151     VULKAN_HPP_CONSTEXPR SampleLocationEXT( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6152 
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT6153     SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
6154       : SampleLocationEXT( *reinterpret_cast<SampleLocationEXT const *>( &rhs ) )
6155     {}
6156 
6157 
6158     SampleLocationEXT & operator=( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6159 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
6160 
operator =VULKAN_HPP_NAMESPACE::SampleLocationEXT6161     SampleLocationEXT & operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
6162     {
6163       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationEXT const *>( &rhs );
6164       return *this;
6165     }
6166 
6167 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setXVULKAN_HPP_NAMESPACE::SampleLocationEXT6168     VULKAN_HPP_CONSTEXPR_14 SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
6169     {
6170       x = x_;
6171       return *this;
6172     }
6173 
setYVULKAN_HPP_NAMESPACE::SampleLocationEXT6174     VULKAN_HPP_CONSTEXPR_14 SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
6175     {
6176       y = y_;
6177       return *this;
6178     }
6179 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
6180 
6181 
operator VkSampleLocationEXT const&VULKAN_HPP_NAMESPACE::SampleLocationEXT6182     operator VkSampleLocationEXT const &() const VULKAN_HPP_NOEXCEPT
6183     {
6184       return *reinterpret_cast<const VkSampleLocationEXT*>( this );
6185     }
6186 
operator VkSampleLocationEXT&VULKAN_HPP_NAMESPACE::SampleLocationEXT6187     operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT
6188     {
6189       return *reinterpret_cast<VkSampleLocationEXT*>( this );
6190     }
6191 
6192 #if defined( VULKAN_HPP_USE_REFLECT )
6193 #if 14 <= VULKAN_HPP_CPP_VERSION
6194     auto
6195 #else
6196     std::tuple<float const &, float const &>
6197 #endif
reflectVULKAN_HPP_NAMESPACE::SampleLocationEXT6198       reflect() const VULKAN_HPP_NOEXCEPT
6199     {
6200       return std::tie( x, y );
6201     }
6202 #endif
6203 
6204 
6205 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
6206 auto operator<=>( SampleLocationEXT const & ) const = default;
6207 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationEXT6208     bool operator==( SampleLocationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
6209     {
6210 #if defined( VULKAN_HPP_USE_REFLECT )
6211       return this->reflect() == rhs.reflect();
6212 #else
6213       return ( x == rhs.x )
6214           && ( y == rhs.y );
6215 #endif
6216     }
6217 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationEXT6218     bool operator!=( SampleLocationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
6219     {
6220       return !operator==( rhs );
6221     }
6222 #endif
6223 
6224     public:
6225     float x = {};
6226     float y = {};
6227 
6228   };
6229 
6230   struct SampleLocationsInfoEXT
6231   {
6232     using NativeType = VkSampleLocationsInfoEXT;
6233 
6234     static const bool allowDuplicate = false;
6235     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT;
6236 
6237 
6238 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6239 VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_ = {}, uint32_t sampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
6240     : pNext( pNext_ ), sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( sampleLocationsCount_ ), pSampleLocations( pSampleLocations_ )
6241     {}
6242 
6243     VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6244 
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6245     SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
6246       : SampleLocationsInfoEXT( *reinterpret_cast<SampleLocationsInfoEXT const *>( &rhs ) )
6247     {}
6248 
6249 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6250     SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_, const void * pNext_ = nullptr )
6251     : pNext( pNext_ ), sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( static_cast<uint32_t>( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() )
6252     {}
6253 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
6254 
6255 
6256     SampleLocationsInfoEXT & operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6257 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
6258 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6259     SampleLocationsInfoEXT & operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
6260     {
6261       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const *>( &rhs );
6262       return *this;
6263     }
6264 
6265 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6266     VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
6267     {
6268       pNext = pNext_;
6269       return *this;
6270     }
6271 
setSampleLocationsPerPixelVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6272     VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT
6273     {
6274       sampleLocationsPerPixel = sampleLocationsPerPixel_;
6275       return *this;
6276     }
6277 
setSampleLocationGridSizeVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6278     VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT
6279     {
6280       sampleLocationGridSize = sampleLocationGridSize_;
6281       return *this;
6282     }
6283 
setSampleLocationsCountVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6284     VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
6285     {
6286       sampleLocationsCount = sampleLocationsCount_;
6287       return *this;
6288     }
6289 
setPSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6290     VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
6291     {
6292       pSampleLocations = pSampleLocations_;
6293       return *this;
6294     }
6295 
6296 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6297     SampleLocationsInfoEXT & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
6298     {
6299       sampleLocationsCount = static_cast<uint32_t>( sampleLocations_.size() );
6300       pSampleLocations = sampleLocations_.data();
6301       return *this;
6302     }
6303 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
6304 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
6305 
6306 
operator VkSampleLocationsInfoEXT const&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6307     operator VkSampleLocationsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
6308     {
6309       return *reinterpret_cast<const VkSampleLocationsInfoEXT*>( this );
6310     }
6311 
operator VkSampleLocationsInfoEXT&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6312     operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT
6313     {
6314       return *reinterpret_cast<VkSampleLocationsInfoEXT*>( this );
6315     }
6316 
6317 #if defined( VULKAN_HPP_USE_REFLECT )
6318 #if 14 <= VULKAN_HPP_CPP_VERSION
6319     auto
6320 #else
6321     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SampleLocationEXT * const &>
6322 #endif
reflectVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6323       reflect() const VULKAN_HPP_NOEXCEPT
6324     {
6325       return std::tie( sType, pNext, sampleLocationsPerPixel, sampleLocationGridSize, sampleLocationsCount, pSampleLocations );
6326     }
6327 #endif
6328 
6329 
6330 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
6331 auto operator<=>( SampleLocationsInfoEXT const & ) const = default;
6332 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6333     bool operator==( SampleLocationsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
6334     {
6335 #if defined( VULKAN_HPP_USE_REFLECT )
6336       return this->reflect() == rhs.reflect();
6337 #else
6338       return ( sType == rhs.sType )
6339           && ( pNext == rhs.pNext )
6340           && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel )
6341           && ( sampleLocationGridSize == rhs.sampleLocationGridSize )
6342           && ( sampleLocationsCount == rhs.sampleLocationsCount )
6343           && ( pSampleLocations == rhs.pSampleLocations );
6344 #endif
6345     }
6346 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT6347     bool operator!=( SampleLocationsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
6348     {
6349       return !operator==( rhs );
6350     }
6351 #endif
6352 
6353     public:
6354     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT;
6355     const void * pNext = {};
6356     VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
6357     VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {};
6358     uint32_t sampleLocationsCount = {};
6359     const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations = {};
6360 
6361   };
6362 
6363   template <>
6364   struct CppType<StructureType, StructureType::eSampleLocationsInfoEXT>
6365   {
6366     using Type = SampleLocationsInfoEXT;
6367   };
6368 
6369   struct AttachmentSampleLocationsEXT
6370   {
6371     using NativeType = VkAttachmentSampleLocationsEXT;
6372 
6373 
6374 
6375 
6376 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT6377 VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT(uint32_t attachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
6378     : attachmentIndex( attachmentIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ )
6379     {}
6380 
6381     VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6382 
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT6383     AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
6384       : AttachmentSampleLocationsEXT( *reinterpret_cast<AttachmentSampleLocationsEXT const *>( &rhs ) )
6385     {}
6386 
6387 
6388     AttachmentSampleLocationsEXT & operator=( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6389 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
6390 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT6391     AttachmentSampleLocationsEXT & operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
6392     {
6393       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT const *>( &rhs );
6394       return *this;
6395     }
6396 
6397 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setAttachmentIndexVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT6398     VULKAN_HPP_CONSTEXPR_14 AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT
6399     {
6400       attachmentIndex = attachmentIndex_;
6401       return *this;
6402     }
6403 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT6404     VULKAN_HPP_CONSTEXPR_14 AttachmentSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
6405     {
6406       sampleLocationsInfo = sampleLocationsInfo_;
6407       return *this;
6408     }
6409 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
6410 
6411 
operator VkAttachmentSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT6412     operator VkAttachmentSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
6413     {
6414       return *reinterpret_cast<const VkAttachmentSampleLocationsEXT*>( this );
6415     }
6416 
operator VkAttachmentSampleLocationsEXT&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT6417     operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
6418     {
6419       return *reinterpret_cast<VkAttachmentSampleLocationsEXT*>( this );
6420     }
6421 
6422 #if defined( VULKAN_HPP_USE_REFLECT )
6423 #if 14 <= VULKAN_HPP_CPP_VERSION
6424     auto
6425 #else
6426     std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const &>
6427 #endif
reflectVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT6428       reflect() const VULKAN_HPP_NOEXCEPT
6429     {
6430       return std::tie( attachmentIndex, sampleLocationsInfo );
6431     }
6432 #endif
6433 
6434 
6435 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
6436 auto operator<=>( AttachmentSampleLocationsEXT const & ) const = default;
6437 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT6438     bool operator==( AttachmentSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
6439     {
6440 #if defined( VULKAN_HPP_USE_REFLECT )
6441       return this->reflect() == rhs.reflect();
6442 #else
6443       return ( attachmentIndex == rhs.attachmentIndex )
6444           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
6445 #endif
6446     }
6447 
operator !=VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT6448     bool operator!=( AttachmentSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
6449     {
6450       return !operator==( rhs );
6451     }
6452 #endif
6453 
6454     public:
6455     uint32_t attachmentIndex = {};
6456     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
6457 
6458   };
6459 
6460   struct BaseInStructure
6461   {
6462     using NativeType = VkBaseInStructure;
6463 
6464 
6465 
6466 
6467 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure6468 BaseInStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo, const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
6469     : sType( sType_ ), pNext( pNext_ )
6470     {}
6471 
6472     BaseInStructure( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6473 
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure6474     BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
6475       : BaseInStructure( *reinterpret_cast<BaseInStructure const *>( &rhs ) )
6476     {}
6477 
6478 
6479     BaseInStructure & operator=( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6480 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
6481 
operator =VULKAN_HPP_NAMESPACE::BaseInStructure6482     BaseInStructure & operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
6483     {
6484       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseInStructure const *>( &rhs );
6485       return *this;
6486     }
6487 
6488 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BaseInStructure6489     VULKAN_HPP_CONSTEXPR_14 BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext_ ) VULKAN_HPP_NOEXCEPT
6490     {
6491       pNext = pNext_;
6492       return *this;
6493     }
6494 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
6495 
6496 
operator VkBaseInStructure const&VULKAN_HPP_NAMESPACE::BaseInStructure6497     operator VkBaseInStructure const &() const VULKAN_HPP_NOEXCEPT
6498     {
6499       return *reinterpret_cast<const VkBaseInStructure*>( this );
6500     }
6501 
operator VkBaseInStructure&VULKAN_HPP_NAMESPACE::BaseInStructure6502     operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT
6503     {
6504       return *reinterpret_cast<VkBaseInStructure*>( this );
6505     }
6506 
6507 #if defined( VULKAN_HPP_USE_REFLECT )
6508 #if 14 <= VULKAN_HPP_CPP_VERSION
6509     auto
6510 #else
6511     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const struct VULKAN_HPP_NAMESPACE::BaseInStructure * const &>
6512 #endif
reflectVULKAN_HPP_NAMESPACE::BaseInStructure6513       reflect() const VULKAN_HPP_NOEXCEPT
6514     {
6515       return std::tie( sType, pNext );
6516     }
6517 #endif
6518 
6519 
6520 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
6521 auto operator<=>( BaseInStructure const & ) const = default;
6522 #else
operator ==VULKAN_HPP_NAMESPACE::BaseInStructure6523     bool operator==( BaseInStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
6524     {
6525 #if defined( VULKAN_HPP_USE_REFLECT )
6526       return this->reflect() == rhs.reflect();
6527 #else
6528       return ( sType == rhs.sType )
6529           && ( pNext == rhs.pNext );
6530 #endif
6531     }
6532 
operator !=VULKAN_HPP_NAMESPACE::BaseInStructure6533     bool operator!=( BaseInStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
6534     {
6535       return !operator==( rhs );
6536     }
6537 #endif
6538 
6539     public:
6540     VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
6541     const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext = {};
6542 
6543   };
6544 
6545   struct BaseOutStructure
6546   {
6547     using NativeType = VkBaseOutStructure;
6548 
6549 
6550 
6551 
6552 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure6553 BaseOutStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo, struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
6554     : sType( sType_ ), pNext( pNext_ )
6555     {}
6556 
6557     BaseOutStructure( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6558 
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure6559     BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
6560       : BaseOutStructure( *reinterpret_cast<BaseOutStructure const *>( &rhs ) )
6561     {}
6562 
6563 
6564     BaseOutStructure & operator=( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6565 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
6566 
operator =VULKAN_HPP_NAMESPACE::BaseOutStructure6567     BaseOutStructure & operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
6568     {
6569       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseOutStructure const *>( &rhs );
6570       return *this;
6571     }
6572 
6573 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BaseOutStructure6574     VULKAN_HPP_CONSTEXPR_14 BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext_ ) VULKAN_HPP_NOEXCEPT
6575     {
6576       pNext = pNext_;
6577       return *this;
6578     }
6579 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
6580 
6581 
operator VkBaseOutStructure const&VULKAN_HPP_NAMESPACE::BaseOutStructure6582     operator VkBaseOutStructure const &() const VULKAN_HPP_NOEXCEPT
6583     {
6584       return *reinterpret_cast<const VkBaseOutStructure*>( this );
6585     }
6586 
operator VkBaseOutStructure&VULKAN_HPP_NAMESPACE::BaseOutStructure6587     operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT
6588     {
6589       return *reinterpret_cast<VkBaseOutStructure*>( this );
6590     }
6591 
6592 #if defined( VULKAN_HPP_USE_REFLECT )
6593 #if 14 <= VULKAN_HPP_CPP_VERSION
6594     auto
6595 #else
6596     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, struct VULKAN_HPP_NAMESPACE::BaseOutStructure * const &>
6597 #endif
reflectVULKAN_HPP_NAMESPACE::BaseOutStructure6598       reflect() const VULKAN_HPP_NOEXCEPT
6599     {
6600       return std::tie( sType, pNext );
6601     }
6602 #endif
6603 
6604 
6605 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
6606 auto operator<=>( BaseOutStructure const & ) const = default;
6607 #else
operator ==VULKAN_HPP_NAMESPACE::BaseOutStructure6608     bool operator==( BaseOutStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
6609     {
6610 #if defined( VULKAN_HPP_USE_REFLECT )
6611       return this->reflect() == rhs.reflect();
6612 #else
6613       return ( sType == rhs.sType )
6614           && ( pNext == rhs.pNext );
6615 #endif
6616     }
6617 
operator !=VULKAN_HPP_NAMESPACE::BaseOutStructure6618     bool operator!=( BaseOutStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
6619     {
6620       return !operator==( rhs );
6621     }
6622 #endif
6623 
6624     public:
6625     VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
6626     struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext = {};
6627 
6628   };
6629 
6630   struct BindAccelerationStructureMemoryInfoNV
6631   {
6632     using NativeType = VkBindAccelerationStructureMemoryInfoNV;
6633 
6634     static const bool allowDuplicate = false;
6635     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindAccelerationStructureMemoryInfoNV;
6636 
6637 
6638 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindAccelerationStructureMemoryInfoNVVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6639 VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, uint32_t deviceIndexCount_ = {}, const uint32_t * pDeviceIndices_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
6640     : pNext( pNext_ ), accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ )
6641     {}
6642 
6643     VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6644 
BindAccelerationStructureMemoryInfoNVVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6645     BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
6646       : BindAccelerationStructureMemoryInfoNV( *reinterpret_cast<BindAccelerationStructureMemoryInfoNV const *>( &rhs ) )
6647     {}
6648 
6649 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindAccelerationStructureMemoryInfoNVVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6650     BindAccelerationStructureMemoryInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_, VULKAN_HPP_NAMESPACE::DeviceMemory memory_, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_, const void * pNext_ = nullptr )
6651     : pNext( pNext_ ), accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
6652     {}
6653 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
6654 
6655 
6656     BindAccelerationStructureMemoryInfoNV & operator=( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6657 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
6658 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6659     BindAccelerationStructureMemoryInfoNV & operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
6660     {
6661       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV const *>( &rhs );
6662       return *this;
6663     }
6664 
6665 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6666     VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
6667     {
6668       pNext = pNext_;
6669       return *this;
6670     }
6671 
setAccelerationStructureVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6672     VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
6673     {
6674       accelerationStructure = accelerationStructure_;
6675       return *this;
6676     }
6677 
setMemoryVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6678     VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
6679     {
6680       memory = memory_;
6681       return *this;
6682     }
6683 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6684     VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
6685     {
6686       memoryOffset = memoryOffset_;
6687       return *this;
6688     }
6689 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6690     VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
6691     {
6692       deviceIndexCount = deviceIndexCount_;
6693       return *this;
6694     }
6695 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6696     VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
6697     {
6698       pDeviceIndices = pDeviceIndices_;
6699       return *this;
6700     }
6701 
6702 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6703     BindAccelerationStructureMemoryInfoNV & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
6704     {
6705       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
6706       pDeviceIndices = deviceIndices_.data();
6707       return *this;
6708     }
6709 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
6710 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
6711 
6712 
operator VkBindAccelerationStructureMemoryInfoNV const&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6713     operator VkBindAccelerationStructureMemoryInfoNV const &() const VULKAN_HPP_NOEXCEPT
6714     {
6715       return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV*>( this );
6716     }
6717 
operator VkBindAccelerationStructureMemoryInfoNV&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6718     operator VkBindAccelerationStructureMemoryInfoNV &() VULKAN_HPP_NOEXCEPT
6719     {
6720       return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV*>( this );
6721     }
6722 
6723 #if defined( VULKAN_HPP_USE_REFLECT )
6724 #if 14 <= VULKAN_HPP_CPP_VERSION
6725     auto
6726 #else
6727     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureNV const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, const uint32_t * const &>
6728 #endif
reflectVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6729       reflect() const VULKAN_HPP_NOEXCEPT
6730     {
6731       return std::tie( sType, pNext, accelerationStructure, memory, memoryOffset, deviceIndexCount, pDeviceIndices );
6732     }
6733 #endif
6734 
6735 
6736 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
6737 auto operator<=>( BindAccelerationStructureMemoryInfoNV const & ) const = default;
6738 #else
operator ==VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6739     bool operator==( BindAccelerationStructureMemoryInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
6740     {
6741 #if defined( VULKAN_HPP_USE_REFLECT )
6742       return this->reflect() == rhs.reflect();
6743 #else
6744       return ( sType == rhs.sType )
6745           && ( pNext == rhs.pNext )
6746           && ( accelerationStructure == rhs.accelerationStructure )
6747           && ( memory == rhs.memory )
6748           && ( memoryOffset == rhs.memoryOffset )
6749           && ( deviceIndexCount == rhs.deviceIndexCount )
6750           && ( pDeviceIndices == rhs.pDeviceIndices );
6751 #endif
6752     }
6753 
operator !=VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV6754     bool operator!=( BindAccelerationStructureMemoryInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
6755     {
6756       return !operator==( rhs );
6757     }
6758 #endif
6759 
6760     public:
6761     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNV;
6762     const void * pNext = {};
6763     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
6764     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
6765     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
6766     uint32_t deviceIndexCount = {};
6767     const uint32_t * pDeviceIndices = {};
6768 
6769   };
6770 
6771   template <>
6772   struct CppType<StructureType, StructureType::eBindAccelerationStructureMemoryInfoNV>
6773   {
6774     using Type = BindAccelerationStructureMemoryInfoNV;
6775   };
6776 
6777   struct BindBufferMemoryDeviceGroupInfo
6778   {
6779     using NativeType = VkBindBufferMemoryDeviceGroupInfo;
6780 
6781     static const bool allowDuplicate = false;
6782     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo;
6783 
6784 
6785 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6786 VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t * pDeviceIndices_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
6787     : pNext( pNext_ ), deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ )
6788     {}
6789 
6790     VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6791 
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6792     BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
6793       : BindBufferMemoryDeviceGroupInfo( *reinterpret_cast<BindBufferMemoryDeviceGroupInfo const *>( &rhs ) )
6794     {}
6795 
6796 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6797     BindBufferMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_, const void * pNext_ = nullptr )
6798     : pNext( pNext_ ), deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
6799     {}
6800 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
6801 
6802 
6803     BindBufferMemoryDeviceGroupInfo & operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6804 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
6805 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6806     BindBufferMemoryDeviceGroupInfo & operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
6807     {
6808       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const *>( &rhs );
6809       return *this;
6810     }
6811 
6812 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6813     VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
6814     {
6815       pNext = pNext_;
6816       return *this;
6817     }
6818 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6819     VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
6820     {
6821       deviceIndexCount = deviceIndexCount_;
6822       return *this;
6823     }
6824 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6825     VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
6826     {
6827       pDeviceIndices = pDeviceIndices_;
6828       return *this;
6829     }
6830 
6831 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6832     BindBufferMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
6833     {
6834       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
6835       pDeviceIndices = deviceIndices_.data();
6836       return *this;
6837     }
6838 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
6839 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
6840 
6841 
operator VkBindBufferMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6842     operator VkBindBufferMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
6843     {
6844       return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>( this );
6845     }
6846 
operator VkBindBufferMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6847     operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
6848     {
6849       return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>( this );
6850     }
6851 
6852 #if defined( VULKAN_HPP_USE_REFLECT )
6853 #if 14 <= VULKAN_HPP_CPP_VERSION
6854     auto
6855 #else
6856     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint32_t * const &>
6857 #endif
reflectVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6858       reflect() const VULKAN_HPP_NOEXCEPT
6859     {
6860       return std::tie( sType, pNext, deviceIndexCount, pDeviceIndices );
6861     }
6862 #endif
6863 
6864 
6865 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
6866 auto operator<=>( BindBufferMemoryDeviceGroupInfo const & ) const = default;
6867 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6868     bool operator==( BindBufferMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
6869     {
6870 #if defined( VULKAN_HPP_USE_REFLECT )
6871       return this->reflect() == rhs.reflect();
6872 #else
6873       return ( sType == rhs.sType )
6874           && ( pNext == rhs.pNext )
6875           && ( deviceIndexCount == rhs.deviceIndexCount )
6876           && ( pDeviceIndices == rhs.pDeviceIndices );
6877 #endif
6878     }
6879 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo6880     bool operator!=( BindBufferMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
6881     {
6882       return !operator==( rhs );
6883     }
6884 #endif
6885 
6886     public:
6887     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo;
6888     const void * pNext = {};
6889     uint32_t deviceIndexCount = {};
6890     const uint32_t * pDeviceIndices = {};
6891 
6892   };
6893 
6894   template <>
6895   struct CppType<StructureType, StructureType::eBindBufferMemoryDeviceGroupInfo>
6896   {
6897     using Type = BindBufferMemoryDeviceGroupInfo;
6898   };
6899   using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
6900 
6901   struct BindBufferMemoryInfo
6902   {
6903     using NativeType = VkBindBufferMemoryInfo;
6904 
6905     static const bool allowDuplicate = false;
6906     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo;
6907 
6908 
6909 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6910 VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
6911     : pNext( pNext_ ), buffer( buffer_ ), memory( memory_ ), memoryOffset( memoryOffset_ )
6912     {}
6913 
6914     VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6915 
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6916     BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
6917       : BindBufferMemoryInfo( *reinterpret_cast<BindBufferMemoryInfo const *>( &rhs ) )
6918     {}
6919 
6920 
6921     BindBufferMemoryInfo & operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
6922 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
6923 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6924     BindBufferMemoryInfo & operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
6925     {
6926       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const *>( &rhs );
6927       return *this;
6928     }
6929 
6930 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6931     VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
6932     {
6933       pNext = pNext_;
6934       return *this;
6935     }
6936 
setBufferVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6937     VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
6938     {
6939       buffer = buffer_;
6940       return *this;
6941     }
6942 
setMemoryVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6943     VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
6944     {
6945       memory = memory_;
6946       return *this;
6947     }
6948 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6949     VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
6950     {
6951       memoryOffset = memoryOffset_;
6952       return *this;
6953     }
6954 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
6955 
6956 
operator VkBindBufferMemoryInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6957     operator VkBindBufferMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
6958     {
6959       return *reinterpret_cast<const VkBindBufferMemoryInfo*>( this );
6960     }
6961 
operator VkBindBufferMemoryInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6962     operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT
6963     {
6964       return *reinterpret_cast<VkBindBufferMemoryInfo*>( this );
6965     }
6966 
6967 #if defined( VULKAN_HPP_USE_REFLECT )
6968 #if 14 <= VULKAN_HPP_CPP_VERSION
6969     auto
6970 #else
6971     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
6972 #endif
reflectVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6973       reflect() const VULKAN_HPP_NOEXCEPT
6974     {
6975       return std::tie( sType, pNext, buffer, memory, memoryOffset );
6976     }
6977 #endif
6978 
6979 
6980 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
6981 auto operator<=>( BindBufferMemoryInfo const & ) const = default;
6982 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6983     bool operator==( BindBufferMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
6984     {
6985 #if defined( VULKAN_HPP_USE_REFLECT )
6986       return this->reflect() == rhs.reflect();
6987 #else
6988       return ( sType == rhs.sType )
6989           && ( pNext == rhs.pNext )
6990           && ( buffer == rhs.buffer )
6991           && ( memory == rhs.memory )
6992           && ( memoryOffset == rhs.memoryOffset );
6993 #endif
6994     }
6995 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo6996     bool operator!=( BindBufferMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
6997     {
6998       return !operator==( rhs );
6999     }
7000 #endif
7001 
7002     public:
7003     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo;
7004     const void * pNext = {};
7005     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
7006     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
7007     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
7008 
7009   };
7010 
7011   template <>
7012   struct CppType<StructureType, StructureType::eBindBufferMemoryInfo>
7013   {
7014     using Type = BindBufferMemoryInfo;
7015   };
7016   using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
7017 
7018   struct Offset2D
7019   {
7020     using NativeType = VkOffset2D;
7021 
7022 
7023 
7024 
7025 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Offset2DVULKAN_HPP_NAMESPACE::Offset2D7026 VULKAN_HPP_CONSTEXPR Offset2D(int32_t x_ = {}, int32_t y_ = {}) VULKAN_HPP_NOEXCEPT
7027     : x( x_ ), y( y_ )
7028     {}
7029 
7030     VULKAN_HPP_CONSTEXPR Offset2D( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7031 
Offset2DVULKAN_HPP_NAMESPACE::Offset2D7032     Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
7033       : Offset2D( *reinterpret_cast<Offset2D const *>( &rhs ) )
7034     {}
7035 
7036 
7037     Offset2D & operator=( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7038 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
7039 
operator =VULKAN_HPP_NAMESPACE::Offset2D7040     Offset2D & operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
7041     {
7042       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset2D const *>( &rhs );
7043       return *this;
7044     }
7045 
7046 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setXVULKAN_HPP_NAMESPACE::Offset2D7047     VULKAN_HPP_CONSTEXPR_14 Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
7048     {
7049       x = x_;
7050       return *this;
7051     }
7052 
setYVULKAN_HPP_NAMESPACE::Offset2D7053     VULKAN_HPP_CONSTEXPR_14 Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
7054     {
7055       y = y_;
7056       return *this;
7057     }
7058 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
7059 
7060 
operator VkOffset2D const&VULKAN_HPP_NAMESPACE::Offset2D7061     operator VkOffset2D const &() const VULKAN_HPP_NOEXCEPT
7062     {
7063       return *reinterpret_cast<const VkOffset2D*>( this );
7064     }
7065 
operator VkOffset2D&VULKAN_HPP_NAMESPACE::Offset2D7066     operator VkOffset2D &() VULKAN_HPP_NOEXCEPT
7067     {
7068       return *reinterpret_cast<VkOffset2D*>( this );
7069     }
7070 
7071 #if defined( VULKAN_HPP_USE_REFLECT )
7072 #if 14 <= VULKAN_HPP_CPP_VERSION
7073     auto
7074 #else
7075     std::tuple<int32_t const &, int32_t const &>
7076 #endif
reflectVULKAN_HPP_NAMESPACE::Offset2D7077       reflect() const VULKAN_HPP_NOEXCEPT
7078     {
7079       return std::tie( x, y );
7080     }
7081 #endif
7082 
7083 
7084 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
7085 auto operator<=>( Offset2D const & ) const = default;
7086 #else
operator ==VULKAN_HPP_NAMESPACE::Offset2D7087     bool operator==( Offset2D const & rhs ) const VULKAN_HPP_NOEXCEPT
7088     {
7089 #if defined( VULKAN_HPP_USE_REFLECT )
7090       return this->reflect() == rhs.reflect();
7091 #else
7092       return ( x == rhs.x )
7093           && ( y == rhs.y );
7094 #endif
7095     }
7096 
operator !=VULKAN_HPP_NAMESPACE::Offset2D7097     bool operator!=( Offset2D const & rhs ) const VULKAN_HPP_NOEXCEPT
7098     {
7099       return !operator==( rhs );
7100     }
7101 #endif
7102 
7103     public:
7104     int32_t x = {};
7105     int32_t y = {};
7106 
7107   };
7108 
7109   struct Rect2D
7110   {
7111     using NativeType = VkRect2D;
7112 
7113 
7114 
7115 
7116 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Rect2DVULKAN_HPP_NAMESPACE::Rect2D7117 VULKAN_HPP_CONSTEXPR Rect2D(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}) VULKAN_HPP_NOEXCEPT
7118     : offset( offset_ ), extent( extent_ )
7119     {}
7120 
7121     VULKAN_HPP_CONSTEXPR Rect2D( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7122 
Rect2DVULKAN_HPP_NAMESPACE::Rect2D7123     Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
7124       : Rect2D( *reinterpret_cast<Rect2D const *>( &rhs ) )
7125     {}
7126 
7127 
7128     Rect2D & operator=( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7129 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
7130 
operator =VULKAN_HPP_NAMESPACE::Rect2D7131     Rect2D & operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
7132     {
7133       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Rect2D const *>( &rhs );
7134       return *this;
7135     }
7136 
7137 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setOffsetVULKAN_HPP_NAMESPACE::Rect2D7138     VULKAN_HPP_CONSTEXPR_14 Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
7139     {
7140       offset = offset_;
7141       return *this;
7142     }
7143 
setExtentVULKAN_HPP_NAMESPACE::Rect2D7144     VULKAN_HPP_CONSTEXPR_14 Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
7145     {
7146       extent = extent_;
7147       return *this;
7148     }
7149 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
7150 
7151 
operator VkRect2D const&VULKAN_HPP_NAMESPACE::Rect2D7152     operator VkRect2D const &() const VULKAN_HPP_NOEXCEPT
7153     {
7154       return *reinterpret_cast<const VkRect2D*>( this );
7155     }
7156 
operator VkRect2D&VULKAN_HPP_NAMESPACE::Rect2D7157     operator VkRect2D &() VULKAN_HPP_NOEXCEPT
7158     {
7159       return *reinterpret_cast<VkRect2D*>( this );
7160     }
7161 
7162 #if defined( VULKAN_HPP_USE_REFLECT )
7163 #if 14 <= VULKAN_HPP_CPP_VERSION
7164     auto
7165 #else
7166     std::tuple<VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
7167 #endif
reflectVULKAN_HPP_NAMESPACE::Rect2D7168       reflect() const VULKAN_HPP_NOEXCEPT
7169     {
7170       return std::tie( offset, extent );
7171     }
7172 #endif
7173 
7174 
7175 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
7176 auto operator<=>( Rect2D const & ) const = default;
7177 #else
operator ==VULKAN_HPP_NAMESPACE::Rect2D7178     bool operator==( Rect2D const & rhs ) const VULKAN_HPP_NOEXCEPT
7179     {
7180 #if defined( VULKAN_HPP_USE_REFLECT )
7181       return this->reflect() == rhs.reflect();
7182 #else
7183       return ( offset == rhs.offset )
7184           && ( extent == rhs.extent );
7185 #endif
7186     }
7187 
operator !=VULKAN_HPP_NAMESPACE::Rect2D7188     bool operator!=( Rect2D const & rhs ) const VULKAN_HPP_NOEXCEPT
7189     {
7190       return !operator==( rhs );
7191     }
7192 #endif
7193 
7194     public:
7195     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
7196     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
7197 
7198   };
7199 
7200   struct BindImageMemoryDeviceGroupInfo
7201   {
7202     using NativeType = VkBindImageMemoryDeviceGroupInfo;
7203 
7204     static const bool allowDuplicate = false;
7205     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo;
7206 
7207 
7208 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7209 VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t * pDeviceIndices_ = {}, uint32_t splitInstanceBindRegionCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
7210     : pNext( pNext_ ), deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ), splitInstanceBindRegionCount( splitInstanceBindRegionCount_ ), pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
7211     {}
7212 
7213     VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7214 
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7215     BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
7216       : BindImageMemoryDeviceGroupInfo( *reinterpret_cast<BindImageMemoryDeviceGroupInfo const *>( &rhs ) )
7217     {}
7218 
7219 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7220     BindImageMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ = {}, const void * pNext_ = nullptr )
7221     : pNext( pNext_ ), deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ), splitInstanceBindRegionCount( static_cast<uint32_t>( splitInstanceBindRegions_.size() ) ), pSplitInstanceBindRegions( splitInstanceBindRegions_.data() )
7222     {}
7223 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
7224 
7225 
7226     BindImageMemoryDeviceGroupInfo & operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7227 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
7228 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7229     BindImageMemoryDeviceGroupInfo & operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
7230     {
7231       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const *>( &rhs );
7232       return *this;
7233     }
7234 
7235 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7236     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
7237     {
7238       pNext = pNext_;
7239       return *this;
7240     }
7241 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7242     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
7243     {
7244       deviceIndexCount = deviceIndexCount_;
7245       return *this;
7246     }
7247 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7248     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
7249     {
7250       pDeviceIndices = pDeviceIndices_;
7251       return *this;
7252     }
7253 
7254 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7255     BindImageMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
7256     {
7257       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
7258       pDeviceIndices = deviceIndices_.data();
7259       return *this;
7260     }
7261 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
7262 
setSplitInstanceBindRegionCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7263     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT
7264     {
7265       splitInstanceBindRegionCount = splitInstanceBindRegionCount_;
7266       return *this;
7267     }
7268 
setPSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7269     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
7270     {
7271       pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
7272       return *this;
7273     }
7274 
7275 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7276     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
7277     {
7278       splitInstanceBindRegionCount = static_cast<uint32_t>( splitInstanceBindRegions_.size() );
7279       pSplitInstanceBindRegions = splitInstanceBindRegions_.data();
7280       return *this;
7281     }
7282 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
7283 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
7284 
7285 
operator VkBindImageMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7286     operator VkBindImageMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
7287     {
7288       return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>( this );
7289     }
7290 
operator VkBindImageMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7291     operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
7292     {
7293       return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>( this );
7294     }
7295 
7296 #if defined( VULKAN_HPP_USE_REFLECT )
7297 #if 14 <= VULKAN_HPP_CPP_VERSION
7298     auto
7299 #else
7300     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint32_t * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
7301 #endif
reflectVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7302       reflect() const VULKAN_HPP_NOEXCEPT
7303     {
7304       return std::tie( sType, pNext, deviceIndexCount, pDeviceIndices, splitInstanceBindRegionCount, pSplitInstanceBindRegions );
7305     }
7306 #endif
7307 
7308 
7309 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
7310 auto operator<=>( BindImageMemoryDeviceGroupInfo const & ) const = default;
7311 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7312     bool operator==( BindImageMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
7313     {
7314 #if defined( VULKAN_HPP_USE_REFLECT )
7315       return this->reflect() == rhs.reflect();
7316 #else
7317       return ( sType == rhs.sType )
7318           && ( pNext == rhs.pNext )
7319           && ( deviceIndexCount == rhs.deviceIndexCount )
7320           && ( pDeviceIndices == rhs.pDeviceIndices )
7321           && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount )
7322           && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions );
7323 #endif
7324     }
7325 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo7326     bool operator!=( BindImageMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
7327     {
7328       return !operator==( rhs );
7329     }
7330 #endif
7331 
7332     public:
7333     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo;
7334     const void * pNext = {};
7335     uint32_t deviceIndexCount = {};
7336     const uint32_t * pDeviceIndices = {};
7337     uint32_t splitInstanceBindRegionCount = {};
7338     const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions = {};
7339 
7340   };
7341 
7342   template <>
7343   struct CppType<StructureType, StructureType::eBindImageMemoryDeviceGroupInfo>
7344   {
7345     using Type = BindImageMemoryDeviceGroupInfo;
7346   };
7347   using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
7348 
7349   struct BindImageMemoryInfo
7350   {
7351     using NativeType = VkBindImageMemoryInfo;
7352 
7353     static const bool allowDuplicate = false;
7354     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo;
7355 
7356 
7357 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo7358 VULKAN_HPP_CONSTEXPR BindImageMemoryInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
7359     : pNext( pNext_ ), image( image_ ), memory( memory_ ), memoryOffset( memoryOffset_ )
7360     {}
7361 
7362     VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7363 
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo7364     BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
7365       : BindImageMemoryInfo( *reinterpret_cast<BindImageMemoryInfo const *>( &rhs ) )
7366     {}
7367 
7368 
7369     BindImageMemoryInfo & operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7370 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
7371 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo7372     BindImageMemoryInfo & operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
7373     {
7374       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const *>( &rhs );
7375       return *this;
7376     }
7377 
7378 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryInfo7379     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
7380     {
7381       pNext = pNext_;
7382       return *this;
7383     }
7384 
setImageVULKAN_HPP_NAMESPACE::BindImageMemoryInfo7385     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
7386     {
7387       image = image_;
7388       return *this;
7389     }
7390 
setMemoryVULKAN_HPP_NAMESPACE::BindImageMemoryInfo7391     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
7392     {
7393       memory = memory_;
7394       return *this;
7395     }
7396 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindImageMemoryInfo7397     VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
7398     {
7399       memoryOffset = memoryOffset_;
7400       return *this;
7401     }
7402 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
7403 
7404 
operator VkBindImageMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo7405     operator VkBindImageMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
7406     {
7407       return *reinterpret_cast<const VkBindImageMemoryInfo*>( this );
7408     }
7409 
operator VkBindImageMemoryInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo7410     operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT
7411     {
7412       return *reinterpret_cast<VkBindImageMemoryInfo*>( this );
7413     }
7414 
7415 #if defined( VULKAN_HPP_USE_REFLECT )
7416 #if 14 <= VULKAN_HPP_CPP_VERSION
7417     auto
7418 #else
7419     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
7420 #endif
reflectVULKAN_HPP_NAMESPACE::BindImageMemoryInfo7421       reflect() const VULKAN_HPP_NOEXCEPT
7422     {
7423       return std::tie( sType, pNext, image, memory, memoryOffset );
7424     }
7425 #endif
7426 
7427 
7428 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
7429 auto operator<=>( BindImageMemoryInfo const & ) const = default;
7430 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryInfo7431     bool operator==( BindImageMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
7432     {
7433 #if defined( VULKAN_HPP_USE_REFLECT )
7434       return this->reflect() == rhs.reflect();
7435 #else
7436       return ( sType == rhs.sType )
7437           && ( pNext == rhs.pNext )
7438           && ( image == rhs.image )
7439           && ( memory == rhs.memory )
7440           && ( memoryOffset == rhs.memoryOffset );
7441 #endif
7442     }
7443 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryInfo7444     bool operator!=( BindImageMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
7445     {
7446       return !operator==( rhs );
7447     }
7448 #endif
7449 
7450     public:
7451     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo;
7452     const void * pNext = {};
7453     VULKAN_HPP_NAMESPACE::Image image = {};
7454     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
7455     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
7456 
7457   };
7458 
7459   template <>
7460   struct CppType<StructureType, StructureType::eBindImageMemoryInfo>
7461   {
7462     using Type = BindImageMemoryInfo;
7463   };
7464   using BindImageMemoryInfoKHR = BindImageMemoryInfo;
7465 
7466   struct BindImageMemorySwapchainInfoKHR
7467   {
7468     using NativeType = VkBindImageMemorySwapchainInfoKHR;
7469 
7470     static const bool allowDuplicate = false;
7471     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR;
7472 
7473 
7474 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7475 VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint32_t imageIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
7476     : pNext( pNext_ ), swapchain( swapchain_ ), imageIndex( imageIndex_ )
7477     {}
7478 
7479     VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7480 
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7481     BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
7482       : BindImageMemorySwapchainInfoKHR( *reinterpret_cast<BindImageMemorySwapchainInfoKHR const *>( &rhs ) )
7483     {}
7484 
7485 
7486     BindImageMemorySwapchainInfoKHR & operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7487 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
7488 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7489     BindImageMemorySwapchainInfoKHR & operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
7490     {
7491       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const *>( &rhs );
7492       return *this;
7493     }
7494 
7495 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7496     VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
7497     {
7498       pNext = pNext_;
7499       return *this;
7500     }
7501 
setSwapchainVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7502     VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
7503     {
7504       swapchain = swapchain_;
7505       return *this;
7506     }
7507 
setImageIndexVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7508     VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT
7509     {
7510       imageIndex = imageIndex_;
7511       return *this;
7512     }
7513 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
7514 
7515 
operator VkBindImageMemorySwapchainInfoKHR const&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7516     operator VkBindImageMemorySwapchainInfoKHR const &() const VULKAN_HPP_NOEXCEPT
7517     {
7518       return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>( this );
7519     }
7520 
operator VkBindImageMemorySwapchainInfoKHR&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7521     operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT
7522     {
7523       return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>( this );
7524     }
7525 
7526 #if defined( VULKAN_HPP_USE_REFLECT )
7527 #if 14 <= VULKAN_HPP_CPP_VERSION
7528     auto
7529 #else
7530     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SwapchainKHR const &, uint32_t const &>
7531 #endif
reflectVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7532       reflect() const VULKAN_HPP_NOEXCEPT
7533     {
7534       return std::tie( sType, pNext, swapchain, imageIndex );
7535     }
7536 #endif
7537 
7538 
7539 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
7540 auto operator<=>( BindImageMemorySwapchainInfoKHR const & ) const = default;
7541 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7542     bool operator==( BindImageMemorySwapchainInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
7543     {
7544 #if defined( VULKAN_HPP_USE_REFLECT )
7545       return this->reflect() == rhs.reflect();
7546 #else
7547       return ( sType == rhs.sType )
7548           && ( pNext == rhs.pNext )
7549           && ( swapchain == rhs.swapchain )
7550           && ( imageIndex == rhs.imageIndex );
7551 #endif
7552     }
7553 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR7554     bool operator!=( BindImageMemorySwapchainInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
7555     {
7556       return !operator==( rhs );
7557     }
7558 #endif
7559 
7560     public:
7561     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR;
7562     const void * pNext = {};
7563     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
7564     uint32_t imageIndex = {};
7565 
7566   };
7567 
7568   template <>
7569   struct CppType<StructureType, StructureType::eBindImageMemorySwapchainInfoKHR>
7570   {
7571     using Type = BindImageMemorySwapchainInfoKHR;
7572   };
7573 
7574   struct BindImagePlaneMemoryInfo
7575   {
7576     using NativeType = VkBindImagePlaneMemoryInfo;
7577 
7578     static const bool allowDuplicate = false;
7579     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo;
7580 
7581 
7582 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo7583 VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
7584     : pNext( pNext_ ), planeAspect( planeAspect_ )
7585     {}
7586 
7587     VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7588 
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo7589     BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
7590       : BindImagePlaneMemoryInfo( *reinterpret_cast<BindImagePlaneMemoryInfo const *>( &rhs ) )
7591     {}
7592 
7593 
7594     BindImagePlaneMemoryInfo & operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7595 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
7596 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo7597     BindImagePlaneMemoryInfo & operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
7598     {
7599       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const *>( &rhs );
7600       return *this;
7601     }
7602 
7603 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo7604     VULKAN_HPP_CONSTEXPR_14 BindImagePlaneMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
7605     {
7606       pNext = pNext_;
7607       return *this;
7608     }
7609 
setPlaneAspectVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo7610     VULKAN_HPP_CONSTEXPR_14 BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
7611     {
7612       planeAspect = planeAspect_;
7613       return *this;
7614     }
7615 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
7616 
7617 
operator VkBindImagePlaneMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo7618     operator VkBindImagePlaneMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
7619     {
7620       return *reinterpret_cast<const VkBindImagePlaneMemoryInfo*>( this );
7621     }
7622 
operator VkBindImagePlaneMemoryInfo&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo7623     operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT
7624     {
7625       return *reinterpret_cast<VkBindImagePlaneMemoryInfo*>( this );
7626     }
7627 
7628 #if defined( VULKAN_HPP_USE_REFLECT )
7629 #if 14 <= VULKAN_HPP_CPP_VERSION
7630     auto
7631 #else
7632     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &>
7633 #endif
reflectVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo7634       reflect() const VULKAN_HPP_NOEXCEPT
7635     {
7636       return std::tie( sType, pNext, planeAspect );
7637     }
7638 #endif
7639 
7640 
7641 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
7642 auto operator<=>( BindImagePlaneMemoryInfo const & ) const = default;
7643 #else
operator ==VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo7644     bool operator==( BindImagePlaneMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
7645     {
7646 #if defined( VULKAN_HPP_USE_REFLECT )
7647       return this->reflect() == rhs.reflect();
7648 #else
7649       return ( sType == rhs.sType )
7650           && ( pNext == rhs.pNext )
7651           && ( planeAspect == rhs.planeAspect );
7652 #endif
7653     }
7654 
operator !=VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo7655     bool operator!=( BindImagePlaneMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
7656     {
7657       return !operator==( rhs );
7658     }
7659 #endif
7660 
7661     public:
7662     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo;
7663     const void * pNext = {};
7664     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
7665 
7666   };
7667 
7668   template <>
7669   struct CppType<StructureType, StructureType::eBindImagePlaneMemoryInfo>
7670   {
7671     using Type = BindImagePlaneMemoryInfo;
7672   };
7673   using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
7674 
7675   struct BindIndexBufferIndirectCommandNV
7676   {
7677     using NativeType = VkBindIndexBufferIndirectCommandNV;
7678 
7679 
7680 
7681 
7682 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7683 VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16) VULKAN_HPP_NOEXCEPT
7684     : bufferAddress( bufferAddress_ ), size( size_ ), indexType( indexType_ )
7685     {}
7686 
7687     VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7688 
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7689     BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
7690       : BindIndexBufferIndirectCommandNV( *reinterpret_cast<BindIndexBufferIndirectCommandNV const *>( &rhs ) )
7691     {}
7692 
7693 
7694     BindIndexBufferIndirectCommandNV & operator=( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7695 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
7696 
operator =VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7697     BindIndexBufferIndirectCommandNV & operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
7698     {
7699       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const *>( &rhs );
7700       return *this;
7701     }
7702 
7703 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setBufferAddressVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7704     VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
7705     {
7706       bufferAddress = bufferAddress_;
7707       return *this;
7708     }
7709 
setSizeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7710     VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
7711     {
7712       size = size_;
7713       return *this;
7714     }
7715 
setIndexTypeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7716     VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
7717     {
7718       indexType = indexType_;
7719       return *this;
7720     }
7721 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
7722 
7723 
operator VkBindIndexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7724     operator VkBindIndexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
7725     {
7726       return *reinterpret_cast<const VkBindIndexBufferIndirectCommandNV*>( this );
7727     }
7728 
operator VkBindIndexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7729     operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
7730     {
7731       return *reinterpret_cast<VkBindIndexBufferIndirectCommandNV*>( this );
7732     }
7733 
7734 #if defined( VULKAN_HPP_USE_REFLECT )
7735 #if 14 <= VULKAN_HPP_CPP_VERSION
7736     auto
7737 #else
7738     std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, uint32_t const &, VULKAN_HPP_NAMESPACE::IndexType const &>
7739 #endif
reflectVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7740       reflect() const VULKAN_HPP_NOEXCEPT
7741     {
7742       return std::tie( bufferAddress, size, indexType );
7743     }
7744 #endif
7745 
7746 
7747 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
7748 auto operator<=>( BindIndexBufferIndirectCommandNV const & ) const = default;
7749 #else
operator ==VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7750     bool operator==( BindIndexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
7751     {
7752 #if defined( VULKAN_HPP_USE_REFLECT )
7753       return this->reflect() == rhs.reflect();
7754 #else
7755       return ( bufferAddress == rhs.bufferAddress )
7756           && ( size == rhs.size )
7757           && ( indexType == rhs.indexType );
7758 #endif
7759     }
7760 
operator !=VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV7761     bool operator!=( BindIndexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
7762     {
7763       return !operator==( rhs );
7764     }
7765 #endif
7766 
7767     public:
7768     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
7769     uint32_t size = {};
7770     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
7771 
7772   };
7773 
7774   struct BindPipelineIndirectCommandNV
7775   {
7776     using NativeType = VkBindPipelineIndirectCommandNV;
7777 
7778 
7779 
7780 
7781 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindPipelineIndirectCommandNVVULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV7782 VULKAN_HPP_CONSTEXPR BindPipelineIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress pipelineAddress_ = {}) VULKAN_HPP_NOEXCEPT
7783     : pipelineAddress( pipelineAddress_ )
7784     {}
7785 
7786     VULKAN_HPP_CONSTEXPR BindPipelineIndirectCommandNV( BindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7787 
BindPipelineIndirectCommandNVVULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV7788     BindPipelineIndirectCommandNV( VkBindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
7789       : BindPipelineIndirectCommandNV( *reinterpret_cast<BindPipelineIndirectCommandNV const *>( &rhs ) )
7790     {}
7791 
7792 
7793     BindPipelineIndirectCommandNV & operator=( BindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7794 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
7795 
operator =VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV7796     BindPipelineIndirectCommandNV & operator=( VkBindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
7797     {
7798       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV const *>( &rhs );
7799       return *this;
7800     }
7801 
7802 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPipelineAddressVULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV7803     VULKAN_HPP_CONSTEXPR_14 BindPipelineIndirectCommandNV & setPipelineAddress( VULKAN_HPP_NAMESPACE::DeviceAddress pipelineAddress_ ) VULKAN_HPP_NOEXCEPT
7804     {
7805       pipelineAddress = pipelineAddress_;
7806       return *this;
7807     }
7808 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
7809 
7810 
operator VkBindPipelineIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV7811     operator VkBindPipelineIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
7812     {
7813       return *reinterpret_cast<const VkBindPipelineIndirectCommandNV*>( this );
7814     }
7815 
operator VkBindPipelineIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV7816     operator VkBindPipelineIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
7817     {
7818       return *reinterpret_cast<VkBindPipelineIndirectCommandNV*>( this );
7819     }
7820 
7821 #if defined( VULKAN_HPP_USE_REFLECT )
7822 #if 14 <= VULKAN_HPP_CPP_VERSION
7823     auto
7824 #else
7825     std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &>
7826 #endif
reflectVULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV7827       reflect() const VULKAN_HPP_NOEXCEPT
7828     {
7829       return std::tie( pipelineAddress );
7830     }
7831 #endif
7832 
7833 
7834 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
7835 auto operator<=>( BindPipelineIndirectCommandNV const & ) const = default;
7836 #else
operator ==VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV7837     bool operator==( BindPipelineIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
7838     {
7839 #if defined( VULKAN_HPP_USE_REFLECT )
7840       return this->reflect() == rhs.reflect();
7841 #else
7842       return ( pipelineAddress == rhs.pipelineAddress );
7843 #endif
7844     }
7845 
operator !=VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV7846     bool operator!=( BindPipelineIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
7847     {
7848       return !operator==( rhs );
7849     }
7850 #endif
7851 
7852     public:
7853     VULKAN_HPP_NAMESPACE::DeviceAddress pipelineAddress = {};
7854 
7855   };
7856 
7857   struct BindShaderGroupIndirectCommandNV
7858   {
7859     using NativeType = VkBindShaderGroupIndirectCommandNV;
7860 
7861 
7862 
7863 
7864 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV7865 VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV(uint32_t groupIndex_ = {}) VULKAN_HPP_NOEXCEPT
7866     : groupIndex( groupIndex_ )
7867     {}
7868 
7869     VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7870 
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV7871     BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
7872       : BindShaderGroupIndirectCommandNV( *reinterpret_cast<BindShaderGroupIndirectCommandNV const *>( &rhs ) )
7873     {}
7874 
7875 
7876     BindShaderGroupIndirectCommandNV & operator=( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7877 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
7878 
operator =VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV7879     BindShaderGroupIndirectCommandNV & operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
7880     {
7881       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const *>( &rhs );
7882       return *this;
7883     }
7884 
7885 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setGroupIndexVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV7886     VULKAN_HPP_CONSTEXPR_14 BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT
7887     {
7888       groupIndex = groupIndex_;
7889       return *this;
7890     }
7891 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
7892 
7893 
operator VkBindShaderGroupIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV7894     operator VkBindShaderGroupIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
7895     {
7896       return *reinterpret_cast<const VkBindShaderGroupIndirectCommandNV*>( this );
7897     }
7898 
operator VkBindShaderGroupIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV7899     operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
7900     {
7901       return *reinterpret_cast<VkBindShaderGroupIndirectCommandNV*>( this );
7902     }
7903 
7904 #if defined( VULKAN_HPP_USE_REFLECT )
7905 #if 14 <= VULKAN_HPP_CPP_VERSION
7906     auto
7907 #else
7908     std::tuple<uint32_t const &>
7909 #endif
reflectVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV7910       reflect() const VULKAN_HPP_NOEXCEPT
7911     {
7912       return std::tie( groupIndex );
7913     }
7914 #endif
7915 
7916 
7917 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
7918 auto operator<=>( BindShaderGroupIndirectCommandNV const & ) const = default;
7919 #else
operator ==VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV7920     bool operator==( BindShaderGroupIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
7921     {
7922 #if defined( VULKAN_HPP_USE_REFLECT )
7923       return this->reflect() == rhs.reflect();
7924 #else
7925       return ( groupIndex == rhs.groupIndex );
7926 #endif
7927     }
7928 
operator !=VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV7929     bool operator!=( BindShaderGroupIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
7930     {
7931       return !operator==( rhs );
7932     }
7933 #endif
7934 
7935     public:
7936     uint32_t groupIndex = {};
7937 
7938   };
7939 
7940   struct SparseMemoryBind
7941   {
7942     using NativeType = VkSparseMemoryBind;
7943 
7944 
7945 
7946 
7947 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind7948 VULKAN_HPP_CONSTEXPR SparseMemoryBind(VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
7949     : resourceOffset( resourceOffset_ ), size( size_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ )
7950     {}
7951 
7952     VULKAN_HPP_CONSTEXPR SparseMemoryBind( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7953 
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind7954     SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
7955       : SparseMemoryBind( *reinterpret_cast<SparseMemoryBind const *>( &rhs ) )
7956     {}
7957 
7958 
7959     SparseMemoryBind & operator=( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
7960 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
7961 
operator =VULKAN_HPP_NAMESPACE::SparseMemoryBind7962     SparseMemoryBind & operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
7963     {
7964       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseMemoryBind const *>( &rhs );
7965       return *this;
7966     }
7967 
7968 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setResourceOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind7969     VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT
7970     {
7971       resourceOffset = resourceOffset_;
7972       return *this;
7973     }
7974 
setSizeVULKAN_HPP_NAMESPACE::SparseMemoryBind7975     VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
7976     {
7977       size = size_;
7978       return *this;
7979     }
7980 
setMemoryVULKAN_HPP_NAMESPACE::SparseMemoryBind7981     VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
7982     {
7983       memory = memory_;
7984       return *this;
7985     }
7986 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind7987     VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
7988     {
7989       memoryOffset = memoryOffset_;
7990       return *this;
7991     }
7992 
setFlagsVULKAN_HPP_NAMESPACE::SparseMemoryBind7993     VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
7994     {
7995       flags = flags_;
7996       return *this;
7997     }
7998 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
7999 
8000 
operator VkSparseMemoryBind const&VULKAN_HPP_NAMESPACE::SparseMemoryBind8001     operator VkSparseMemoryBind const &() const VULKAN_HPP_NOEXCEPT
8002     {
8003       return *reinterpret_cast<const VkSparseMemoryBind*>( this );
8004     }
8005 
operator VkSparseMemoryBind&VULKAN_HPP_NAMESPACE::SparseMemoryBind8006     operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT
8007     {
8008       return *reinterpret_cast<VkSparseMemoryBind*>( this );
8009     }
8010 
8011 #if defined( VULKAN_HPP_USE_REFLECT )
8012 #if 14 <= VULKAN_HPP_CPP_VERSION
8013     auto
8014 #else
8015     std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags const &>
8016 #endif
reflectVULKAN_HPP_NAMESPACE::SparseMemoryBind8017       reflect() const VULKAN_HPP_NOEXCEPT
8018     {
8019       return std::tie( resourceOffset, size, memory, memoryOffset, flags );
8020     }
8021 #endif
8022 
8023 
8024 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
8025 auto operator<=>( SparseMemoryBind const & ) const = default;
8026 #else
operator ==VULKAN_HPP_NAMESPACE::SparseMemoryBind8027     bool operator==( SparseMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
8028     {
8029 #if defined( VULKAN_HPP_USE_REFLECT )
8030       return this->reflect() == rhs.reflect();
8031 #else
8032       return ( resourceOffset == rhs.resourceOffset )
8033           && ( size == rhs.size )
8034           && ( memory == rhs.memory )
8035           && ( memoryOffset == rhs.memoryOffset )
8036           && ( flags == rhs.flags );
8037 #endif
8038     }
8039 
operator !=VULKAN_HPP_NAMESPACE::SparseMemoryBind8040     bool operator!=( SparseMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
8041     {
8042       return !operator==( rhs );
8043     }
8044 #endif
8045 
8046     public:
8047     VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {};
8048     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
8049     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
8050     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
8051     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
8052 
8053   };
8054 
8055   struct SparseBufferMemoryBindInfo
8056   {
8057     using NativeType = VkSparseBufferMemoryBindInfo;
8058 
8059 
8060 
8061 
8062 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8063 VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ = {}) VULKAN_HPP_NOEXCEPT
8064     : buffer( buffer_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
8065     {}
8066 
8067     VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8068 
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8069     SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
8070       : SparseBufferMemoryBindInfo( *reinterpret_cast<SparseBufferMemoryBindInfo const *>( &rhs ) )
8071     {}
8072 
8073 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8074     SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
8075     : buffer( buffer_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
8076     {}
8077 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8078 
8079 
8080     SparseBufferMemoryBindInfo & operator=( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8081 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
8082 
operator =VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8083     SparseBufferMemoryBindInfo & operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
8084     {
8085       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo const *>( &rhs );
8086       return *this;
8087     }
8088 
8089 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setBufferVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8090     VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
8091     {
8092       buffer = buffer_;
8093       return *this;
8094     }
8095 
setBindCountVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8096     VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
8097     {
8098       bindCount = bindCount_;
8099       return *this;
8100     }
8101 
setPBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8102     VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT
8103     {
8104       pBinds = pBinds_;
8105       return *this;
8106     }
8107 
8108 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8109     SparseBufferMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
8110     {
8111       bindCount = static_cast<uint32_t>( binds_.size() );
8112       pBinds = binds_.data();
8113       return *this;
8114     }
8115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8116 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
8117 
8118 
operator VkSparseBufferMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8119     operator VkSparseBufferMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
8120     {
8121       return *reinterpret_cast<const VkSparseBufferMemoryBindInfo*>( this );
8122     }
8123 
operator VkSparseBufferMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8124     operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
8125     {
8126       return *reinterpret_cast<VkSparseBufferMemoryBindInfo*>( this );
8127     }
8128 
8129 #if defined( VULKAN_HPP_USE_REFLECT )
8130 #if 14 <= VULKAN_HPP_CPP_VERSION
8131     auto
8132 #else
8133     std::tuple<VULKAN_HPP_NAMESPACE::Buffer const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseMemoryBind * const &>
8134 #endif
reflectVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8135       reflect() const VULKAN_HPP_NOEXCEPT
8136     {
8137       return std::tie( buffer, bindCount, pBinds );
8138     }
8139 #endif
8140 
8141 
8142 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
8143 auto operator<=>( SparseBufferMemoryBindInfo const & ) const = default;
8144 #else
operator ==VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8145     bool operator==( SparseBufferMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
8146     {
8147 #if defined( VULKAN_HPP_USE_REFLECT )
8148       return this->reflect() == rhs.reflect();
8149 #else
8150       return ( buffer == rhs.buffer )
8151           && ( bindCount == rhs.bindCount )
8152           && ( pBinds == rhs.pBinds );
8153 #endif
8154     }
8155 
operator !=VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo8156     bool operator!=( SparseBufferMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
8157     {
8158       return !operator==( rhs );
8159     }
8160 #endif
8161 
8162     public:
8163     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
8164     uint32_t bindCount = {};
8165     const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds = {};
8166 
8167   };
8168 
8169   struct SparseImageOpaqueMemoryBindInfo
8170   {
8171     using NativeType = VkSparseImageOpaqueMemoryBindInfo;
8172 
8173 
8174 
8175 
8176 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8177 VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ = {}) VULKAN_HPP_NOEXCEPT
8178     : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
8179     {}
8180 
8181     VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8182 
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8183     SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
8184       : SparseImageOpaqueMemoryBindInfo( *reinterpret_cast<SparseImageOpaqueMemoryBindInfo const *>( &rhs ) )
8185     {}
8186 
8187 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8188     SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
8189     : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
8190     {}
8191 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8192 
8193 
8194     SparseImageOpaqueMemoryBindInfo & operator=( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8195 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
8196 
operator =VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8197     SparseImageOpaqueMemoryBindInfo & operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
8198     {
8199       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo const *>( &rhs );
8200       return *this;
8201     }
8202 
8203 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setImageVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8204     VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
8205     {
8206       image = image_;
8207       return *this;
8208     }
8209 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8210     VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
8211     {
8212       bindCount = bindCount_;
8213       return *this;
8214     }
8215 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8216     VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT
8217     {
8218       pBinds = pBinds_;
8219       return *this;
8220     }
8221 
8222 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8223     SparseImageOpaqueMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
8224     {
8225       bindCount = static_cast<uint32_t>( binds_.size() );
8226       pBinds = binds_.data();
8227       return *this;
8228     }
8229 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8230 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
8231 
8232 
operator VkSparseImageOpaqueMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8233     operator VkSparseImageOpaqueMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
8234     {
8235       return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo*>( this );
8236     }
8237 
operator VkSparseImageOpaqueMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8238     operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
8239     {
8240       return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>( this );
8241     }
8242 
8243 #if defined( VULKAN_HPP_USE_REFLECT )
8244 #if 14 <= VULKAN_HPP_CPP_VERSION
8245     auto
8246 #else
8247     std::tuple<VULKAN_HPP_NAMESPACE::Image const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseMemoryBind * const &>
8248 #endif
reflectVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8249       reflect() const VULKAN_HPP_NOEXCEPT
8250     {
8251       return std::tie( image, bindCount, pBinds );
8252     }
8253 #endif
8254 
8255 
8256 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
8257 auto operator<=>( SparseImageOpaqueMemoryBindInfo const & ) const = default;
8258 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8259     bool operator==( SparseImageOpaqueMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
8260     {
8261 #if defined( VULKAN_HPP_USE_REFLECT )
8262       return this->reflect() == rhs.reflect();
8263 #else
8264       return ( image == rhs.image )
8265           && ( bindCount == rhs.bindCount )
8266           && ( pBinds == rhs.pBinds );
8267 #endif
8268     }
8269 
operator !=VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo8270     bool operator!=( SparseImageOpaqueMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
8271     {
8272       return !operator==( rhs );
8273     }
8274 #endif
8275 
8276     public:
8277     VULKAN_HPP_NAMESPACE::Image image = {};
8278     uint32_t bindCount = {};
8279     const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds = {};
8280 
8281   };
8282 
8283   struct ImageSubresource
8284   {
8285     using NativeType = VkImageSubresource;
8286 
8287 
8288 
8289 
8290 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource8291 VULKAN_HPP_CONSTEXPR ImageSubresource(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t arrayLayer_ = {}) VULKAN_HPP_NOEXCEPT
8292     : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), arrayLayer( arrayLayer_ )
8293     {}
8294 
8295     VULKAN_HPP_CONSTEXPR ImageSubresource( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8296 
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource8297     ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
8298       : ImageSubresource( *reinterpret_cast<ImageSubresource const *>( &rhs ) )
8299     {}
8300 
8301 
8302     ImageSubresource & operator=( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8303 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
8304 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource8305     ImageSubresource & operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
8306     {
8307       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource const *>( &rhs );
8308       return *this;
8309     }
8310 
8311 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresource8312     VULKAN_HPP_CONSTEXPR_14 ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
8313     {
8314       aspectMask = aspectMask_;
8315       return *this;
8316     }
8317 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresource8318     VULKAN_HPP_CONSTEXPR_14 ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
8319     {
8320       mipLevel = mipLevel_;
8321       return *this;
8322     }
8323 
setArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresource8324     VULKAN_HPP_CONSTEXPR_14 ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT
8325     {
8326       arrayLayer = arrayLayer_;
8327       return *this;
8328     }
8329 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
8330 
8331 
operator VkImageSubresource const&VULKAN_HPP_NAMESPACE::ImageSubresource8332     operator VkImageSubresource const &() const VULKAN_HPP_NOEXCEPT
8333     {
8334       return *reinterpret_cast<const VkImageSubresource*>( this );
8335     }
8336 
operator VkImageSubresource&VULKAN_HPP_NAMESPACE::ImageSubresource8337     operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT
8338     {
8339       return *reinterpret_cast<VkImageSubresource*>( this );
8340     }
8341 
8342 #if defined( VULKAN_HPP_USE_REFLECT )
8343 #if 14 <= VULKAN_HPP_CPP_VERSION
8344     auto
8345 #else
8346     std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, uint32_t const &>
8347 #endif
reflectVULKAN_HPP_NAMESPACE::ImageSubresource8348       reflect() const VULKAN_HPP_NOEXCEPT
8349     {
8350       return std::tie( aspectMask, mipLevel, arrayLayer );
8351     }
8352 #endif
8353 
8354 
8355 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
8356 auto operator<=>( ImageSubresource const & ) const = default;
8357 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresource8358     bool operator==( ImageSubresource const & rhs ) const VULKAN_HPP_NOEXCEPT
8359     {
8360 #if defined( VULKAN_HPP_USE_REFLECT )
8361       return this->reflect() == rhs.reflect();
8362 #else
8363       return ( aspectMask == rhs.aspectMask )
8364           && ( mipLevel == rhs.mipLevel )
8365           && ( arrayLayer == rhs.arrayLayer );
8366 #endif
8367     }
8368 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresource8369     bool operator!=( ImageSubresource const & rhs ) const VULKAN_HPP_NOEXCEPT
8370     {
8371       return !operator==( rhs );
8372     }
8373 #endif
8374 
8375     public:
8376     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
8377     uint32_t mipLevel = {};
8378     uint32_t arrayLayer = {};
8379 
8380   };
8381 
8382   struct Offset3D
8383   {
8384     using NativeType = VkOffset3D;
8385 
8386 
8387 
8388 
8389 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Offset3DVULKAN_HPP_NAMESPACE::Offset3D8390 VULKAN_HPP_CONSTEXPR Offset3D(int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {}) VULKAN_HPP_NOEXCEPT
8391     : x( x_ ), y( y_ ), z( z_ )
8392     {}
8393 
8394     VULKAN_HPP_CONSTEXPR Offset3D( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8395 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D8396     Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
8397       : Offset3D( *reinterpret_cast<Offset3D const *>( &rhs ) )
8398     {}
8399 
8400 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D8401     explicit Offset3D( Offset2D const & offset2D, int32_t z_ = {} )
8402       : x( offset2D.x )
8403       , y( offset2D.y )
8404     , z( z_ )
8405     {}
8406 
8407     Offset3D & operator=( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8408 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
8409 
operator =VULKAN_HPP_NAMESPACE::Offset3D8410     Offset3D & operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
8411     {
8412       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset3D const *>( &rhs );
8413       return *this;
8414     }
8415 
8416 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setXVULKAN_HPP_NAMESPACE::Offset3D8417     VULKAN_HPP_CONSTEXPR_14 Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
8418     {
8419       x = x_;
8420       return *this;
8421     }
8422 
setYVULKAN_HPP_NAMESPACE::Offset3D8423     VULKAN_HPP_CONSTEXPR_14 Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
8424     {
8425       y = y_;
8426       return *this;
8427     }
8428 
setZVULKAN_HPP_NAMESPACE::Offset3D8429     VULKAN_HPP_CONSTEXPR_14 Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT
8430     {
8431       z = z_;
8432       return *this;
8433     }
8434 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
8435 
8436 
operator VkOffset3D const&VULKAN_HPP_NAMESPACE::Offset3D8437     operator VkOffset3D const &() const VULKAN_HPP_NOEXCEPT
8438     {
8439       return *reinterpret_cast<const VkOffset3D*>( this );
8440     }
8441 
operator VkOffset3D&VULKAN_HPP_NAMESPACE::Offset3D8442     operator VkOffset3D &() VULKAN_HPP_NOEXCEPT
8443     {
8444       return *reinterpret_cast<VkOffset3D*>( this );
8445     }
8446 
8447 #if defined( VULKAN_HPP_USE_REFLECT )
8448 #if 14 <= VULKAN_HPP_CPP_VERSION
8449     auto
8450 #else
8451     std::tuple<int32_t const &, int32_t const &, int32_t const &>
8452 #endif
reflectVULKAN_HPP_NAMESPACE::Offset3D8453       reflect() const VULKAN_HPP_NOEXCEPT
8454     {
8455       return std::tie( x, y, z );
8456     }
8457 #endif
8458 
8459 
8460 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
8461 auto operator<=>( Offset3D const & ) const = default;
8462 #else
operator ==VULKAN_HPP_NAMESPACE::Offset3D8463     bool operator==( Offset3D const & rhs ) const VULKAN_HPP_NOEXCEPT
8464     {
8465 #if defined( VULKAN_HPP_USE_REFLECT )
8466       return this->reflect() == rhs.reflect();
8467 #else
8468       return ( x == rhs.x )
8469           && ( y == rhs.y )
8470           && ( z == rhs.z );
8471 #endif
8472     }
8473 
operator !=VULKAN_HPP_NAMESPACE::Offset3D8474     bool operator!=( Offset3D const & rhs ) const VULKAN_HPP_NOEXCEPT
8475     {
8476       return !operator==( rhs );
8477     }
8478 #endif
8479 
8480     public:
8481     int32_t x = {};
8482     int32_t y = {};
8483     int32_t z = {};
8484 
8485   };
8486 
8487   struct Extent3D
8488   {
8489     using NativeType = VkExtent3D;
8490 
8491 
8492 
8493 
8494 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Extent3DVULKAN_HPP_NAMESPACE::Extent3D8495 VULKAN_HPP_CONSTEXPR Extent3D(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
8496     : width( width_ ), height( height_ ), depth( depth_ )
8497     {}
8498 
8499     VULKAN_HPP_CONSTEXPR Extent3D( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8500 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D8501     Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
8502       : Extent3D( *reinterpret_cast<Extent3D const *>( &rhs ) )
8503     {}
8504 
8505 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D8506     explicit Extent3D( Extent2D const & extent2D, uint32_t depth_ = {} )
8507       : width( extent2D.width )
8508       , height( extent2D.height )
8509     , depth( depth_ )
8510     {}
8511 
8512     Extent3D & operator=( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8513 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
8514 
operator =VULKAN_HPP_NAMESPACE::Extent3D8515     Extent3D & operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
8516     {
8517       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent3D const *>( &rhs );
8518       return *this;
8519     }
8520 
8521 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setWidthVULKAN_HPP_NAMESPACE::Extent3D8522     VULKAN_HPP_CONSTEXPR_14 Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
8523     {
8524       width = width_;
8525       return *this;
8526     }
8527 
setHeightVULKAN_HPP_NAMESPACE::Extent3D8528     VULKAN_HPP_CONSTEXPR_14 Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
8529     {
8530       height = height_;
8531       return *this;
8532     }
8533 
setDepthVULKAN_HPP_NAMESPACE::Extent3D8534     VULKAN_HPP_CONSTEXPR_14 Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
8535     {
8536       depth = depth_;
8537       return *this;
8538     }
8539 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
8540 
8541 
operator VkExtent3D const&VULKAN_HPP_NAMESPACE::Extent3D8542     operator VkExtent3D const &() const VULKAN_HPP_NOEXCEPT
8543     {
8544       return *reinterpret_cast<const VkExtent3D*>( this );
8545     }
8546 
operator VkExtent3D&VULKAN_HPP_NAMESPACE::Extent3D8547     operator VkExtent3D &() VULKAN_HPP_NOEXCEPT
8548     {
8549       return *reinterpret_cast<VkExtent3D*>( this );
8550     }
8551 
8552 #if defined( VULKAN_HPP_USE_REFLECT )
8553 #if 14 <= VULKAN_HPP_CPP_VERSION
8554     auto
8555 #else
8556     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
8557 #endif
reflectVULKAN_HPP_NAMESPACE::Extent3D8558       reflect() const VULKAN_HPP_NOEXCEPT
8559     {
8560       return std::tie( width, height, depth );
8561     }
8562 #endif
8563 
8564 
8565 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
8566 auto operator<=>( Extent3D const & ) const = default;
8567 #else
operator ==VULKAN_HPP_NAMESPACE::Extent3D8568     bool operator==( Extent3D const & rhs ) const VULKAN_HPP_NOEXCEPT
8569     {
8570 #if defined( VULKAN_HPP_USE_REFLECT )
8571       return this->reflect() == rhs.reflect();
8572 #else
8573       return ( width == rhs.width )
8574           && ( height == rhs.height )
8575           && ( depth == rhs.depth );
8576 #endif
8577     }
8578 
operator !=VULKAN_HPP_NAMESPACE::Extent3D8579     bool operator!=( Extent3D const & rhs ) const VULKAN_HPP_NOEXCEPT
8580     {
8581       return !operator==( rhs );
8582     }
8583 #endif
8584 
8585     public:
8586     uint32_t width = {};
8587     uint32_t height = {};
8588     uint32_t depth = {};
8589 
8590   };
8591 
8592   struct SparseImageMemoryBind
8593   {
8594     using NativeType = VkSparseImageMemoryBind;
8595 
8596 
8597 
8598 
8599 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind8600 VULKAN_HPP_CONSTEXPR SparseImageMemoryBind(VULKAN_HPP_NAMESPACE::ImageSubresource subresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
8601     : subresource( subresource_ ), offset( offset_ ), extent( extent_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ )
8602     {}
8603 
8604     VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8605 
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind8606     SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
8607       : SparseImageMemoryBind( *reinterpret_cast<SparseImageMemoryBind const *>( &rhs ) )
8608     {}
8609 
8610 
8611     SparseImageMemoryBind & operator=( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8612 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
8613 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBind8614     SparseImageMemoryBind & operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
8615     {
8616       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBind const *>( &rhs );
8617       return *this;
8618     }
8619 
8620 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSubresourceVULKAN_HPP_NAMESPACE::SparseImageMemoryBind8621     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT
8622     {
8623       subresource = subresource_;
8624       return *this;
8625     }
8626 
setOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind8627     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT
8628     {
8629       offset = offset_;
8630       return *this;
8631     }
8632 
setExtentVULKAN_HPP_NAMESPACE::SparseImageMemoryBind8633     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
8634     {
8635       extent = extent_;
8636       return *this;
8637     }
8638 
setMemoryVULKAN_HPP_NAMESPACE::SparseImageMemoryBind8639     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
8640     {
8641       memory = memory_;
8642       return *this;
8643     }
8644 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind8645     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
8646     {
8647       memoryOffset = memoryOffset_;
8648       return *this;
8649     }
8650 
setFlagsVULKAN_HPP_NAMESPACE::SparseImageMemoryBind8651     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
8652     {
8653       flags = flags_;
8654       return *this;
8655     }
8656 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
8657 
8658 
operator VkSparseImageMemoryBind const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind8659     operator VkSparseImageMemoryBind const &() const VULKAN_HPP_NOEXCEPT
8660     {
8661       return *reinterpret_cast<const VkSparseImageMemoryBind*>( this );
8662     }
8663 
operator VkSparseImageMemoryBind&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind8664     operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT
8665     {
8666       return *reinterpret_cast<VkSparseImageMemoryBind*>( this );
8667     }
8668 
8669 #if defined( VULKAN_HPP_USE_REFLECT )
8670 #if 14 <= VULKAN_HPP_CPP_VERSION
8671     auto
8672 #else
8673     std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresource const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::Extent3D const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags const &>
8674 #endif
reflectVULKAN_HPP_NAMESPACE::SparseImageMemoryBind8675       reflect() const VULKAN_HPP_NOEXCEPT
8676     {
8677       return std::tie( subresource, offset, extent, memory, memoryOffset, flags );
8678     }
8679 #endif
8680 
8681 
8682 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
8683 auto operator<=>( SparseImageMemoryBind const & ) const = default;
8684 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBind8685     bool operator==( SparseImageMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
8686     {
8687 #if defined( VULKAN_HPP_USE_REFLECT )
8688       return this->reflect() == rhs.reflect();
8689 #else
8690       return ( subresource == rhs.subresource )
8691           && ( offset == rhs.offset )
8692           && ( extent == rhs.extent )
8693           && ( memory == rhs.memory )
8694           && ( memoryOffset == rhs.memoryOffset )
8695           && ( flags == rhs.flags );
8696 #endif
8697     }
8698 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBind8699     bool operator!=( SparseImageMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
8700     {
8701       return !operator==( rhs );
8702     }
8703 #endif
8704 
8705     public:
8706     VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {};
8707     VULKAN_HPP_NAMESPACE::Offset3D offset = {};
8708     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
8709     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
8710     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
8711     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
8712 
8713   };
8714 
8715   struct SparseImageMemoryBindInfo
8716   {
8717     using NativeType = VkSparseImageMemoryBindInfo;
8718 
8719 
8720 
8721 
8722 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8723 VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds_ = {}) VULKAN_HPP_NOEXCEPT
8724     : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
8725     {}
8726 
8727     VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8728 
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8729     SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
8730       : SparseImageMemoryBindInfo( *reinterpret_cast<SparseImageMemoryBindInfo const *>( &rhs ) )
8731     {}
8732 
8733 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8734     SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ )
8735     : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
8736     {}
8737 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8738 
8739 
8740     SparseImageMemoryBindInfo & operator=( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8741 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
8742 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8743     SparseImageMemoryBindInfo & operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
8744     {
8745       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo const *>( &rhs );
8746       return *this;
8747     }
8748 
8749 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setImageVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8750     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
8751     {
8752       image = image_;
8753       return *this;
8754     }
8755 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8756     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
8757     {
8758       bindCount = bindCount_;
8759       return *this;
8760     }
8761 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8762     VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT
8763     {
8764       pBinds = pBinds_;
8765       return *this;
8766     }
8767 
8768 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8769     SparseImageMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
8770     {
8771       bindCount = static_cast<uint32_t>( binds_.size() );
8772       pBinds = binds_.data();
8773       return *this;
8774     }
8775 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8776 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
8777 
8778 
operator VkSparseImageMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8779     operator VkSparseImageMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
8780     {
8781       return *reinterpret_cast<const VkSparseImageMemoryBindInfo*>( this );
8782     }
8783 
operator VkSparseImageMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8784     operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
8785     {
8786       return *reinterpret_cast<VkSparseImageMemoryBindInfo*>( this );
8787     }
8788 
8789 #if defined( VULKAN_HPP_USE_REFLECT )
8790 #if 14 <= VULKAN_HPP_CPP_VERSION
8791     auto
8792 #else
8793     std::tuple<VULKAN_HPP_NAMESPACE::Image const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * const &>
8794 #endif
reflectVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8795       reflect() const VULKAN_HPP_NOEXCEPT
8796     {
8797       return std::tie( image, bindCount, pBinds );
8798     }
8799 #endif
8800 
8801 
8802 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
8803 auto operator<=>( SparseImageMemoryBindInfo const & ) const = default;
8804 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8805     bool operator==( SparseImageMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
8806     {
8807 #if defined( VULKAN_HPP_USE_REFLECT )
8808       return this->reflect() == rhs.reflect();
8809 #else
8810       return ( image == rhs.image )
8811           && ( bindCount == rhs.bindCount )
8812           && ( pBinds == rhs.pBinds );
8813 #endif
8814     }
8815 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo8816     bool operator!=( SparseImageMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
8817     {
8818       return !operator==( rhs );
8819     }
8820 #endif
8821 
8822     public:
8823     VULKAN_HPP_NAMESPACE::Image image = {};
8824     uint32_t bindCount = {};
8825     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds = {};
8826 
8827   };
8828 
8829   struct BindSparseInfo
8830   {
8831     using NativeType = VkBindSparseInfo;
8832 
8833     static const bool allowDuplicate = false;
8834     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo;
8835 
8836 
8837 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo8838 VULKAN_HPP_CONSTEXPR BindSparseInfo(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {}, uint32_t bufferBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds_ = {}, uint32_t imageOpaqueBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds_ = {}, uint32_t imageBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds_ = {}, uint32_t signalSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
8839     : pNext( pNext_ ), waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), bufferBindCount( bufferBindCount_ ), pBufferBinds( pBufferBinds_ ), imageOpaqueBindCount( imageOpaqueBindCount_ ), pImageOpaqueBinds( pImageOpaqueBinds_ ), imageBindCount( imageBindCount_ ), pImageBinds( pImageBinds_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ )
8840     {}
8841 
8842     VULKAN_HPP_CONSTEXPR BindSparseInfo( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8843 
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo8844     BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
8845       : BindSparseInfo( *reinterpret_cast<BindSparseInfo const *>( &rhs ) )
8846     {}
8847 
8848 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo8849     BindSparseInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ = {}, const void * pNext_ = nullptr )
8850     : pNext( pNext_ ), waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), bufferBindCount( static_cast<uint32_t>( bufferBinds_.size() ) ), pBufferBinds( bufferBinds_.data() ), imageOpaqueBindCount( static_cast<uint32_t>( imageOpaqueBinds_.size() ) ), pImageOpaqueBinds( imageOpaqueBinds_.data() ), imageBindCount( static_cast<uint32_t>( imageBinds_.size() ) ), pImageBinds( imageBinds_.data() ), signalSemaphoreCount( static_cast<uint32_t>( signalSemaphores_.size() ) ), pSignalSemaphores( signalSemaphores_.data() )
8851     {}
8852 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8853 
8854 
8855     BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
8856 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
8857 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo8858     BindSparseInfo & operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
8859     {
8860       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindSparseInfo const *>( &rhs );
8861       return *this;
8862     }
8863 
8864 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BindSparseInfo8865     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
8866     {
8867       pNext = pNext_;
8868       return *this;
8869     }
8870 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo8871     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
8872     {
8873       waitSemaphoreCount = waitSemaphoreCount_;
8874       return *this;
8875     }
8876 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo8877     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
8878     {
8879       pWaitSemaphores = pWaitSemaphores_;
8880       return *this;
8881     }
8882 
8883 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo8884     BindSparseInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
8885     {
8886       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
8887       pWaitSemaphores = waitSemaphores_.data();
8888       return *this;
8889     }
8890 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8891 
setBufferBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo8892     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT
8893     {
8894       bufferBindCount = bufferBindCount_;
8895       return *this;
8896     }
8897 
setPBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo8898     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds_ ) VULKAN_HPP_NOEXCEPT
8899     {
8900       pBufferBinds = pBufferBinds_;
8901       return *this;
8902     }
8903 
8904 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo8905     BindSparseInfo & setBufferBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ ) VULKAN_HPP_NOEXCEPT
8906     {
8907       bufferBindCount = static_cast<uint32_t>( bufferBinds_.size() );
8908       pBufferBinds = bufferBinds_.data();
8909       return *this;
8910     }
8911 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8912 
setImageOpaqueBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo8913     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT
8914     {
8915       imageOpaqueBindCount = imageOpaqueBindCount_;
8916       return *this;
8917     }
8918 
setPImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo8919     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
8920     {
8921       pImageOpaqueBinds = pImageOpaqueBinds_;
8922       return *this;
8923     }
8924 
8925 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo8926     BindSparseInfo & setImageOpaqueBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
8927     {
8928       imageOpaqueBindCount = static_cast<uint32_t>( imageOpaqueBinds_.size() );
8929       pImageOpaqueBinds = imageOpaqueBinds_.data();
8930       return *this;
8931     }
8932 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8933 
setImageBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo8934     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT
8935     {
8936       imageBindCount = imageBindCount_;
8937       return *this;
8938     }
8939 
setPImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo8940     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds_ ) VULKAN_HPP_NOEXCEPT
8941     {
8942       pImageBinds = pImageBinds_;
8943       return *this;
8944     }
8945 
8946 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo8947     BindSparseInfo & setImageBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ ) VULKAN_HPP_NOEXCEPT
8948     {
8949       imageBindCount = static_cast<uint32_t>( imageBinds_.size() );
8950       pImageBinds = imageBinds_.data();
8951       return *this;
8952     }
8953 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8954 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo8955     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
8956     {
8957       signalSemaphoreCount = signalSemaphoreCount_;
8958       return *this;
8959     }
8960 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo8961     VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
8962     {
8963       pSignalSemaphores = pSignalSemaphores_;
8964       return *this;
8965     }
8966 
8967 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo8968     BindSparseInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
8969     {
8970       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
8971       pSignalSemaphores = signalSemaphores_.data();
8972       return *this;
8973     }
8974 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8975 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
8976 
8977 
operator VkBindSparseInfo const&VULKAN_HPP_NAMESPACE::BindSparseInfo8978     operator VkBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
8979     {
8980       return *reinterpret_cast<const VkBindSparseInfo*>( this );
8981     }
8982 
operator VkBindSparseInfo&VULKAN_HPP_NAMESPACE::BindSparseInfo8983     operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT
8984     {
8985       return *reinterpret_cast<VkBindSparseInfo*>( this );
8986     }
8987 
8988 #if defined( VULKAN_HPP_USE_REFLECT )
8989 #if 14 <= VULKAN_HPP_CPP_VERSION
8990     auto
8991 #else
8992     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Semaphore * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Semaphore * const &>
8993 #endif
reflectVULKAN_HPP_NAMESPACE::BindSparseInfo8994       reflect() const VULKAN_HPP_NOEXCEPT
8995     {
8996       return std::tie( sType, pNext, waitSemaphoreCount, pWaitSemaphores, bufferBindCount, pBufferBinds, imageOpaqueBindCount, pImageOpaqueBinds, imageBindCount, pImageBinds, signalSemaphoreCount, pSignalSemaphores );
8997     }
8998 #endif
8999 
9000 
9001 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
9002 auto operator<=>( BindSparseInfo const & ) const = default;
9003 #else
operator ==VULKAN_HPP_NAMESPACE::BindSparseInfo9004     bool operator==( BindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
9005     {
9006 #if defined( VULKAN_HPP_USE_REFLECT )
9007       return this->reflect() == rhs.reflect();
9008 #else
9009       return ( sType == rhs.sType )
9010           && ( pNext == rhs.pNext )
9011           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
9012           && ( pWaitSemaphores == rhs.pWaitSemaphores )
9013           && ( bufferBindCount == rhs.bufferBindCount )
9014           && ( pBufferBinds == rhs.pBufferBinds )
9015           && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount )
9016           && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds )
9017           && ( imageBindCount == rhs.imageBindCount )
9018           && ( pImageBinds == rhs.pImageBinds )
9019           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
9020           && ( pSignalSemaphores == rhs.pSignalSemaphores );
9021 #endif
9022     }
9023 
operator !=VULKAN_HPP_NAMESPACE::BindSparseInfo9024     bool operator!=( BindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
9025     {
9026       return !operator==( rhs );
9027     }
9028 #endif
9029 
9030     public:
9031     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo;
9032     const void * pNext = {};
9033     uint32_t waitSemaphoreCount = {};
9034     const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {};
9035     uint32_t bufferBindCount = {};
9036     const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds = {};
9037     uint32_t imageOpaqueBindCount = {};
9038     const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds = {};
9039     uint32_t imageBindCount = {};
9040     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds = {};
9041     uint32_t signalSemaphoreCount = {};
9042     const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores = {};
9043 
9044   };
9045 
9046   template <>
9047   struct CppType<StructureType, StructureType::eBindSparseInfo>
9048   {
9049     using Type = BindSparseInfo;
9050   };
9051 
9052   struct BindVertexBufferIndirectCommandNV
9053   {
9054     using NativeType = VkBindVertexBufferIndirectCommandNV;
9055 
9056 
9057 
9058 
9059 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9060 VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, uint32_t stride_ = {}) VULKAN_HPP_NOEXCEPT
9061     : bufferAddress( bufferAddress_ ), size( size_ ), stride( stride_ )
9062     {}
9063 
9064     VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9065 
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9066     BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
9067       : BindVertexBufferIndirectCommandNV( *reinterpret_cast<BindVertexBufferIndirectCommandNV const *>( &rhs ) )
9068     {}
9069 
9070 
9071     BindVertexBufferIndirectCommandNV & operator=( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9072 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
9073 
operator =VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9074     BindVertexBufferIndirectCommandNV & operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
9075     {
9076       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const *>( &rhs );
9077       return *this;
9078     }
9079 
9080 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setBufferAddressVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9081     VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
9082     {
9083       bufferAddress = bufferAddress_;
9084       return *this;
9085     }
9086 
setSizeVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9087     VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
9088     {
9089       size = size_;
9090       return *this;
9091     }
9092 
setStrideVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9093     VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
9094     {
9095       stride = stride_;
9096       return *this;
9097     }
9098 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
9099 
9100 
operator VkBindVertexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9101     operator VkBindVertexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
9102     {
9103       return *reinterpret_cast<const VkBindVertexBufferIndirectCommandNV*>( this );
9104     }
9105 
operator VkBindVertexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9106     operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
9107     {
9108       return *reinterpret_cast<VkBindVertexBufferIndirectCommandNV*>( this );
9109     }
9110 
9111 #if defined( VULKAN_HPP_USE_REFLECT )
9112 #if 14 <= VULKAN_HPP_CPP_VERSION
9113     auto
9114 #else
9115     std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, uint32_t const &, uint32_t const &>
9116 #endif
reflectVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9117       reflect() const VULKAN_HPP_NOEXCEPT
9118     {
9119       return std::tie( bufferAddress, size, stride );
9120     }
9121 #endif
9122 
9123 
9124 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
9125 auto operator<=>( BindVertexBufferIndirectCommandNV const & ) const = default;
9126 #else
operator ==VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9127     bool operator==( BindVertexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
9128     {
9129 #if defined( VULKAN_HPP_USE_REFLECT )
9130       return this->reflect() == rhs.reflect();
9131 #else
9132       return ( bufferAddress == rhs.bufferAddress )
9133           && ( size == rhs.size )
9134           && ( stride == rhs.stride );
9135 #endif
9136     }
9137 
operator !=VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV9138     bool operator!=( BindVertexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
9139     {
9140       return !operator==( rhs );
9141     }
9142 #endif
9143 
9144     public:
9145     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
9146     uint32_t size = {};
9147     uint32_t stride = {};
9148 
9149   };
9150 
9151   struct BindVideoSessionMemoryInfoKHR
9152   {
9153     using NativeType = VkBindVideoSessionMemoryInfoKHR;
9154 
9155     static const bool allowDuplicate = false;
9156     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindVideoSessionMemoryInfoKHR;
9157 
9158 
9159 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindVideoSessionMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9160 VULKAN_HPP_CONSTEXPR BindVideoSessionMemoryInfoKHR(uint32_t memoryBindIndex_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memorySize_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
9161     : pNext( pNext_ ), memoryBindIndex( memoryBindIndex_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), memorySize( memorySize_ )
9162     {}
9163 
9164     VULKAN_HPP_CONSTEXPR BindVideoSessionMemoryInfoKHR( BindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9165 
BindVideoSessionMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9166     BindVideoSessionMemoryInfoKHR( VkBindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
9167       : BindVideoSessionMemoryInfoKHR( *reinterpret_cast<BindVideoSessionMemoryInfoKHR const *>( &rhs ) )
9168     {}
9169 
9170 
9171     BindVideoSessionMemoryInfoKHR & operator=( BindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9172 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
9173 
operator =VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9174     BindVideoSessionMemoryInfoKHR & operator=( VkBindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
9175     {
9176       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR const *>( &rhs );
9177       return *this;
9178     }
9179 
9180 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9181     VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
9182     {
9183       pNext = pNext_;
9184       return *this;
9185     }
9186 
setMemoryBindIndexVULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9187     VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemoryBindIndex( uint32_t memoryBindIndex_ ) VULKAN_HPP_NOEXCEPT
9188     {
9189       memoryBindIndex = memoryBindIndex_;
9190       return *this;
9191     }
9192 
setMemoryVULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9193     VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
9194     {
9195       memory = memory_;
9196       return *this;
9197     }
9198 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9199     VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
9200     {
9201       memoryOffset = memoryOffset_;
9202       return *this;
9203     }
9204 
setMemorySizeVULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9205     VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemorySize( VULKAN_HPP_NAMESPACE::DeviceSize memorySize_ ) VULKAN_HPP_NOEXCEPT
9206     {
9207       memorySize = memorySize_;
9208       return *this;
9209     }
9210 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
9211 
9212 
operator VkBindVideoSessionMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9213     operator VkBindVideoSessionMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
9214     {
9215       return *reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR*>( this );
9216     }
9217 
operator VkBindVideoSessionMemoryInfoKHR&VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9218     operator VkBindVideoSessionMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
9219     {
9220       return *reinterpret_cast<VkBindVideoSessionMemoryInfoKHR*>( this );
9221     }
9222 
9223 #if defined( VULKAN_HPP_USE_REFLECT )
9224 #if 14 <= VULKAN_HPP_CPP_VERSION
9225     auto
9226 #else
9227     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
9228 #endif
reflectVULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9229       reflect() const VULKAN_HPP_NOEXCEPT
9230     {
9231       return std::tie( sType, pNext, memoryBindIndex, memory, memoryOffset, memorySize );
9232     }
9233 #endif
9234 
9235 
9236 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
9237 auto operator<=>( BindVideoSessionMemoryInfoKHR const & ) const = default;
9238 #else
operator ==VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9239     bool operator==( BindVideoSessionMemoryInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
9240     {
9241 #if defined( VULKAN_HPP_USE_REFLECT )
9242       return this->reflect() == rhs.reflect();
9243 #else
9244       return ( sType == rhs.sType )
9245           && ( pNext == rhs.pNext )
9246           && ( memoryBindIndex == rhs.memoryBindIndex )
9247           && ( memory == rhs.memory )
9248           && ( memoryOffset == rhs.memoryOffset )
9249           && ( memorySize == rhs.memorySize );
9250 #endif
9251     }
9252 
operator !=VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR9253     bool operator!=( BindVideoSessionMemoryInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
9254     {
9255       return !operator==( rhs );
9256     }
9257 #endif
9258 
9259     public:
9260     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindVideoSessionMemoryInfoKHR;
9261     const void * pNext = {};
9262     uint32_t memoryBindIndex = {};
9263     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
9264     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
9265     VULKAN_HPP_NAMESPACE::DeviceSize memorySize = {};
9266 
9267   };
9268 
9269   template <>
9270   struct CppType<StructureType, StructureType::eBindVideoSessionMemoryInfoKHR>
9271   {
9272     using Type = BindVideoSessionMemoryInfoKHR;
9273   };
9274 
9275   struct BlitImageCubicWeightsInfoQCOM
9276   {
9277     using NativeType = VkBlitImageCubicWeightsInfoQCOM;
9278 
9279     static const bool allowDuplicate = false;
9280     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageCubicWeightsInfoQCOM;
9281 
9282 
9283 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BlitImageCubicWeightsInfoQCOMVULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM9284 VULKAN_HPP_CONSTEXPR BlitImageCubicWeightsInfoQCOM(VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
9285     : pNext( pNext_ ), cubicWeights( cubicWeights_ )
9286     {}
9287 
9288     VULKAN_HPP_CONSTEXPR BlitImageCubicWeightsInfoQCOM( BlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9289 
BlitImageCubicWeightsInfoQCOMVULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM9290     BlitImageCubicWeightsInfoQCOM( VkBlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
9291       : BlitImageCubicWeightsInfoQCOM( *reinterpret_cast<BlitImageCubicWeightsInfoQCOM const *>( &rhs ) )
9292     {}
9293 
9294 
9295     BlitImageCubicWeightsInfoQCOM & operator=( BlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9296 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
9297 
operator =VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM9298     BlitImageCubicWeightsInfoQCOM & operator=( VkBlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
9299     {
9300       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM const *>( &rhs );
9301       return *this;
9302     }
9303 
9304 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM9305     VULKAN_HPP_CONSTEXPR_14 BlitImageCubicWeightsInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
9306     {
9307       pNext = pNext_;
9308       return *this;
9309     }
9310 
setCubicWeightsVULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM9311     VULKAN_HPP_CONSTEXPR_14 BlitImageCubicWeightsInfoQCOM & setCubicWeights( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ ) VULKAN_HPP_NOEXCEPT
9312     {
9313       cubicWeights = cubicWeights_;
9314       return *this;
9315     }
9316 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
9317 
9318 
operator VkBlitImageCubicWeightsInfoQCOM const&VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM9319     operator VkBlitImageCubicWeightsInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
9320     {
9321       return *reinterpret_cast<const VkBlitImageCubicWeightsInfoQCOM*>( this );
9322     }
9323 
operator VkBlitImageCubicWeightsInfoQCOM&VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM9324     operator VkBlitImageCubicWeightsInfoQCOM &() VULKAN_HPP_NOEXCEPT
9325     {
9326       return *reinterpret_cast<VkBlitImageCubicWeightsInfoQCOM*>( this );
9327     }
9328 
9329 #if defined( VULKAN_HPP_USE_REFLECT )
9330 #if 14 <= VULKAN_HPP_CPP_VERSION
9331     auto
9332 #else
9333     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM const &>
9334 #endif
reflectVULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM9335       reflect() const VULKAN_HPP_NOEXCEPT
9336     {
9337       return std::tie( sType, pNext, cubicWeights );
9338     }
9339 #endif
9340 
9341 
9342 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
9343 auto operator<=>( BlitImageCubicWeightsInfoQCOM const & ) const = default;
9344 #else
operator ==VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM9345     bool operator==( BlitImageCubicWeightsInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
9346     {
9347 #if defined( VULKAN_HPP_USE_REFLECT )
9348       return this->reflect() == rhs.reflect();
9349 #else
9350       return ( sType == rhs.sType )
9351           && ( pNext == rhs.pNext )
9352           && ( cubicWeights == rhs.cubicWeights );
9353 #endif
9354     }
9355 
operator !=VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM9356     bool operator!=( BlitImageCubicWeightsInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
9357     {
9358       return !operator==( rhs );
9359     }
9360 #endif
9361 
9362     public:
9363     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageCubicWeightsInfoQCOM;
9364     const void * pNext = {};
9365     VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom;
9366 
9367   };
9368 
9369   template <>
9370   struct CppType<StructureType, StructureType::eBlitImageCubicWeightsInfoQCOM>
9371   {
9372     using Type = BlitImageCubicWeightsInfoQCOM;
9373   };
9374 
9375   struct ImageSubresourceLayers
9376   {
9377     using NativeType = VkImageSubresourceLayers;
9378 
9379 
9380 
9381 
9382 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers9383 VULKAN_HPP_CONSTEXPR ImageSubresourceLayers(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
9384     : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
9385     {}
9386 
9387     VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9388 
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers9389     ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
9390       : ImageSubresourceLayers( *reinterpret_cast<ImageSubresourceLayers const *>( &rhs ) )
9391     {}
9392 
9393 
9394     ImageSubresourceLayers & operator=( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9395 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
9396 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceLayers9397     ImageSubresourceLayers & operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
9398     {
9399       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const *>( &rhs );
9400       return *this;
9401     }
9402 
9403 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceLayers9404     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
9405     {
9406       aspectMask = aspectMask_;
9407       return *this;
9408     }
9409 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceLayers9410     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
9411     {
9412       mipLevel = mipLevel_;
9413       return *this;
9414     }
9415 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceLayers9416     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
9417     {
9418       baseArrayLayer = baseArrayLayer_;
9419       return *this;
9420     }
9421 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceLayers9422     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
9423     {
9424       layerCount = layerCount_;
9425       return *this;
9426     }
9427 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
9428 
9429 
operator VkImageSubresourceLayers const&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers9430     operator VkImageSubresourceLayers const &() const VULKAN_HPP_NOEXCEPT
9431     {
9432       return *reinterpret_cast<const VkImageSubresourceLayers*>( this );
9433     }
9434 
operator VkImageSubresourceLayers&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers9435     operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT
9436     {
9437       return *reinterpret_cast<VkImageSubresourceLayers*>( this );
9438     }
9439 
9440 #if defined( VULKAN_HPP_USE_REFLECT )
9441 #if 14 <= VULKAN_HPP_CPP_VERSION
9442     auto
9443 #else
9444     std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, uint32_t const &, uint32_t const &>
9445 #endif
reflectVULKAN_HPP_NAMESPACE::ImageSubresourceLayers9446       reflect() const VULKAN_HPP_NOEXCEPT
9447     {
9448       return std::tie( aspectMask, mipLevel, baseArrayLayer, layerCount );
9449     }
9450 #endif
9451 
9452 
9453 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
9454 auto operator<=>( ImageSubresourceLayers const & ) const = default;
9455 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceLayers9456     bool operator==( ImageSubresourceLayers const & rhs ) const VULKAN_HPP_NOEXCEPT
9457     {
9458 #if defined( VULKAN_HPP_USE_REFLECT )
9459       return this->reflect() == rhs.reflect();
9460 #else
9461       return ( aspectMask == rhs.aspectMask )
9462           && ( mipLevel == rhs.mipLevel )
9463           && ( baseArrayLayer == rhs.baseArrayLayer )
9464           && ( layerCount == rhs.layerCount );
9465 #endif
9466     }
9467 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceLayers9468     bool operator!=( ImageSubresourceLayers const & rhs ) const VULKAN_HPP_NOEXCEPT
9469     {
9470       return !operator==( rhs );
9471     }
9472 #endif
9473 
9474     public:
9475     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
9476     uint32_t mipLevel = {};
9477     uint32_t baseArrayLayer = {};
9478     uint32_t layerCount = {};
9479 
9480   };
9481 
9482   struct ImageBlit2
9483   {
9484     using NativeType = VkImageBlit2;
9485 
9486     static const bool allowDuplicate = false;
9487     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageBlit2;
9488 
9489 
9490 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageBlit2VULKAN_HPP_NAMESPACE::ImageBlit29491 VULKAN_HPP_CONSTEXPR_14 ImageBlit2(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
9492     : pNext( pNext_ ), srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ )
9493     {}
9494 
9495     VULKAN_HPP_CONSTEXPR_14 ImageBlit2( ImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9496 
ImageBlit2VULKAN_HPP_NAMESPACE::ImageBlit29497     ImageBlit2( VkImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT
9498       : ImageBlit2( *reinterpret_cast<ImageBlit2 const *>( &rhs ) )
9499     {}
9500 
9501 
9502     ImageBlit2 & operator=( ImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9503 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
9504 
operator =VULKAN_HPP_NAMESPACE::ImageBlit29505     ImageBlit2 & operator=( VkImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT
9506     {
9507       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit2 const *>( &rhs );
9508       return *this;
9509     }
9510 
9511 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageBlit29512     VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
9513     {
9514       pNext = pNext_;
9515       return *this;
9516     }
9517 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit29518     VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
9519     {
9520       srcSubresource = srcSubresource_;
9521       return *this;
9522     }
9523 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit29524     VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
9525     {
9526       srcOffsets = srcOffsets_;
9527       return *this;
9528     }
9529 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit29530     VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
9531     {
9532       dstSubresource = dstSubresource_;
9533       return *this;
9534     }
9535 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit29536     VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
9537     {
9538       dstOffsets = dstOffsets_;
9539       return *this;
9540     }
9541 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
9542 
9543 
operator VkImageBlit2 const&VULKAN_HPP_NAMESPACE::ImageBlit29544     operator VkImageBlit2 const &() const VULKAN_HPP_NOEXCEPT
9545     {
9546       return *reinterpret_cast<const VkImageBlit2*>( this );
9547     }
9548 
operator VkImageBlit2&VULKAN_HPP_NAMESPACE::ImageBlit29549     operator VkImageBlit2 &() VULKAN_HPP_NOEXCEPT
9550     {
9551       return *reinterpret_cast<VkImageBlit2*>( this );
9552     }
9553 
9554 #if defined( VULKAN_HPP_USE_REFLECT )
9555 #if 14 <= VULKAN_HPP_CPP_VERSION
9556     auto
9557 #else
9558     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &>
9559 #endif
reflectVULKAN_HPP_NAMESPACE::ImageBlit29560       reflect() const VULKAN_HPP_NOEXCEPT
9561     {
9562       return std::tie( sType, pNext, srcSubresource, srcOffsets, dstSubresource, dstOffsets );
9563     }
9564 #endif
9565 
9566 
9567 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
9568 auto operator<=>( ImageBlit2 const & ) const = default;
9569 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit29570     bool operator==( ImageBlit2 const & rhs ) const VULKAN_HPP_NOEXCEPT
9571     {
9572 #if defined( VULKAN_HPP_USE_REFLECT )
9573       return this->reflect() == rhs.reflect();
9574 #else
9575       return ( sType == rhs.sType )
9576           && ( pNext == rhs.pNext )
9577           && ( srcSubresource == rhs.srcSubresource )
9578           && ( srcOffsets == rhs.srcOffsets )
9579           && ( dstSubresource == rhs.dstSubresource )
9580           && ( dstOffsets == rhs.dstOffsets );
9581 #endif
9582     }
9583 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit29584     bool operator!=( ImageBlit2 const & rhs ) const VULKAN_HPP_NOEXCEPT
9585     {
9586       return !operator==( rhs );
9587     }
9588 #endif
9589 
9590     public:
9591     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageBlit2;
9592     const void * pNext = {};
9593     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
9594     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
9595     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
9596     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
9597 
9598   };
9599 
9600   template <>
9601   struct CppType<StructureType, StructureType::eImageBlit2>
9602   {
9603     using Type = ImageBlit2;
9604   };
9605   using ImageBlit2KHR = ImageBlit2;
9606 
9607   struct BlitImageInfo2
9608   {
9609     using NativeType = VkBlitImageInfo2;
9610 
9611     static const bool allowDuplicate = false;
9612     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageInfo2;
9613 
9614 
9615 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BlitImageInfo2VULKAN_HPP_NAMESPACE::BlitImageInfo29616 VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageBlit2 * pRegions_ = {}, VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
9617     : pNext( pNext_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ), filter( filter_ )
9618     {}
9619 
9620     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2( BlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9621 
BlitImageInfo2VULKAN_HPP_NAMESPACE::BlitImageInfo29622     BlitImageInfo2( VkBlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
9623       : BlitImageInfo2( *reinterpret_cast<BlitImageInfo2 const *>( &rhs ) )
9624     {}
9625 
9626 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BlitImageInfo2VULKAN_HPP_NAMESPACE::BlitImageInfo29627     BlitImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2> const & regions_, VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, const void * pNext_ = nullptr )
9628     : pNext( pNext_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() ), filter( filter_ )
9629     {}
9630 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
9631 
9632 
9633     BlitImageInfo2 & operator=( BlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9634 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
9635 
operator =VULKAN_HPP_NAMESPACE::BlitImageInfo29636     BlitImageInfo2 & operator=( VkBlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
9637     {
9638       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BlitImageInfo2 const *>( &rhs );
9639       return *this;
9640     }
9641 
9642 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BlitImageInfo29643     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
9644     {
9645       pNext = pNext_;
9646       return *this;
9647     }
9648 
setSrcImageVULKAN_HPP_NAMESPACE::BlitImageInfo29649     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
9650     {
9651       srcImage = srcImage_;
9652       return *this;
9653     }
9654 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::BlitImageInfo29655     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
9656     {
9657       srcImageLayout = srcImageLayout_;
9658       return *this;
9659     }
9660 
setDstImageVULKAN_HPP_NAMESPACE::BlitImageInfo29661     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
9662     {
9663       dstImage = dstImage_;
9664       return *this;
9665     }
9666 
setDstImageLayoutVULKAN_HPP_NAMESPACE::BlitImageInfo29667     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
9668     {
9669       dstImageLayout = dstImageLayout_;
9670       return *this;
9671     }
9672 
setRegionCountVULKAN_HPP_NAMESPACE::BlitImageInfo29673     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
9674     {
9675       regionCount = regionCount_;
9676       return *this;
9677     }
9678 
setPRegionsVULKAN_HPP_NAMESPACE::BlitImageInfo29679     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::ImageBlit2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
9680     {
9681       pRegions = pRegions_;
9682       return *this;
9683     }
9684 
9685 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::BlitImageInfo29686     BlitImageInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2> const & regions_ ) VULKAN_HPP_NOEXCEPT
9687     {
9688       regionCount = static_cast<uint32_t>( regions_.size() );
9689       pRegions = regions_.data();
9690       return *this;
9691     }
9692 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
9693 
setFilterVULKAN_HPP_NAMESPACE::BlitImageInfo29694     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT
9695     {
9696       filter = filter_;
9697       return *this;
9698     }
9699 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
9700 
9701 
operator VkBlitImageInfo2 const&VULKAN_HPP_NAMESPACE::BlitImageInfo29702     operator VkBlitImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
9703     {
9704       return *reinterpret_cast<const VkBlitImageInfo2*>( this );
9705     }
9706 
operator VkBlitImageInfo2&VULKAN_HPP_NAMESPACE::BlitImageInfo29707     operator VkBlitImageInfo2 &() VULKAN_HPP_NOEXCEPT
9708     {
9709       return *reinterpret_cast<VkBlitImageInfo2*>( this );
9710     }
9711 
9712 #if defined( VULKAN_HPP_USE_REFLECT )
9713 #if 14 <= VULKAN_HPP_CPP_VERSION
9714     auto
9715 #else
9716     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageBlit2 * const &, VULKAN_HPP_NAMESPACE::Filter const &>
9717 #endif
reflectVULKAN_HPP_NAMESPACE::BlitImageInfo29718       reflect() const VULKAN_HPP_NOEXCEPT
9719     {
9720       return std::tie( sType, pNext, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
9721     }
9722 #endif
9723 
9724 
9725 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
9726 auto operator<=>( BlitImageInfo2 const & ) const = default;
9727 #else
operator ==VULKAN_HPP_NAMESPACE::BlitImageInfo29728     bool operator==( BlitImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
9729     {
9730 #if defined( VULKAN_HPP_USE_REFLECT )
9731       return this->reflect() == rhs.reflect();
9732 #else
9733       return ( sType == rhs.sType )
9734           && ( pNext == rhs.pNext )
9735           && ( srcImage == rhs.srcImage )
9736           && ( srcImageLayout == rhs.srcImageLayout )
9737           && ( dstImage == rhs.dstImage )
9738           && ( dstImageLayout == rhs.dstImageLayout )
9739           && ( regionCount == rhs.regionCount )
9740           && ( pRegions == rhs.pRegions )
9741           && ( filter == rhs.filter );
9742 #endif
9743     }
9744 
operator !=VULKAN_HPP_NAMESPACE::BlitImageInfo29745     bool operator!=( BlitImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
9746     {
9747       return !operator==( rhs );
9748     }
9749 #endif
9750 
9751     public:
9752     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageInfo2;
9753     const void * pNext = {};
9754     VULKAN_HPP_NAMESPACE::Image srcImage = {};
9755     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
9756     VULKAN_HPP_NAMESPACE::Image dstImage = {};
9757     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
9758     uint32_t regionCount = {};
9759     const VULKAN_HPP_NAMESPACE::ImageBlit2 * pRegions = {};
9760     VULKAN_HPP_NAMESPACE::Filter filter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
9761 
9762   };
9763 
9764   template <>
9765   struct CppType<StructureType, StructureType::eBlitImageInfo2>
9766   {
9767     using Type = BlitImageInfo2;
9768   };
9769   using BlitImageInfo2KHR = BlitImageInfo2;
9770 
9771   struct BufferCaptureDescriptorDataInfoEXT
9772   {
9773     using NativeType = VkBufferCaptureDescriptorDataInfoEXT;
9774 
9775     static const bool allowDuplicate = false;
9776     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCaptureDescriptorDataInfoEXT;
9777 
9778 
9779 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCaptureDescriptorDataInfoEXTVULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT9780 VULKAN_HPP_CONSTEXPR BufferCaptureDescriptorDataInfoEXT(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
9781     : pNext( pNext_ ), buffer( buffer_ )
9782     {}
9783 
9784     VULKAN_HPP_CONSTEXPR BufferCaptureDescriptorDataInfoEXT( BufferCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9785 
BufferCaptureDescriptorDataInfoEXTVULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT9786     BufferCaptureDescriptorDataInfoEXT( VkBufferCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
9787       : BufferCaptureDescriptorDataInfoEXT( *reinterpret_cast<BufferCaptureDescriptorDataInfoEXT const *>( &rhs ) )
9788     {}
9789 
9790 
9791     BufferCaptureDescriptorDataInfoEXT & operator=( BufferCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9792 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
9793 
operator =VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT9794     BufferCaptureDescriptorDataInfoEXT & operator=( VkBufferCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
9795     {
9796       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT const *>( &rhs );
9797       return *this;
9798     }
9799 
9800 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT9801     VULKAN_HPP_CONSTEXPR_14 BufferCaptureDescriptorDataInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
9802     {
9803       pNext = pNext_;
9804       return *this;
9805     }
9806 
setBufferVULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT9807     VULKAN_HPP_CONSTEXPR_14 BufferCaptureDescriptorDataInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
9808     {
9809       buffer = buffer_;
9810       return *this;
9811     }
9812 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
9813 
9814 
operator VkBufferCaptureDescriptorDataInfoEXT const&VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT9815     operator VkBufferCaptureDescriptorDataInfoEXT const &() const VULKAN_HPP_NOEXCEPT
9816     {
9817       return *reinterpret_cast<const VkBufferCaptureDescriptorDataInfoEXT*>( this );
9818     }
9819 
operator VkBufferCaptureDescriptorDataInfoEXT&VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT9820     operator VkBufferCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
9821     {
9822       return *reinterpret_cast<VkBufferCaptureDescriptorDataInfoEXT*>( this );
9823     }
9824 
9825 #if defined( VULKAN_HPP_USE_REFLECT )
9826 #if 14 <= VULKAN_HPP_CPP_VERSION
9827     auto
9828 #else
9829     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &>
9830 #endif
reflectVULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT9831       reflect() const VULKAN_HPP_NOEXCEPT
9832     {
9833       return std::tie( sType, pNext, buffer );
9834     }
9835 #endif
9836 
9837 
9838 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
9839 auto operator<=>( BufferCaptureDescriptorDataInfoEXT const & ) const = default;
9840 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT9841     bool operator==( BufferCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
9842     {
9843 #if defined( VULKAN_HPP_USE_REFLECT )
9844       return this->reflect() == rhs.reflect();
9845 #else
9846       return ( sType == rhs.sType )
9847           && ( pNext == rhs.pNext )
9848           && ( buffer == rhs.buffer );
9849 #endif
9850     }
9851 
operator !=VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT9852     bool operator!=( BufferCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
9853     {
9854       return !operator==( rhs );
9855     }
9856 #endif
9857 
9858     public:
9859     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCaptureDescriptorDataInfoEXT;
9860     const void * pNext = {};
9861     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
9862 
9863   };
9864 
9865   template <>
9866   struct CppType<StructureType, StructureType::eBufferCaptureDescriptorDataInfoEXT>
9867   {
9868     using Type = BufferCaptureDescriptorDataInfoEXT;
9869   };
9870 
9871 #if defined( VK_USE_PLATFORM_FUCHSIA )
9872   struct BufferCollectionBufferCreateInfoFUCHSIA
9873   {
9874     using NativeType = VkBufferCollectionBufferCreateInfoFUCHSIA;
9875 
9876     static const bool allowDuplicate = false;
9877     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionBufferCreateInfoFUCHSIA;
9878 
9879 
9880 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCollectionBufferCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9881 VULKAN_HPP_CONSTEXPR BufferCollectionBufferCreateInfoFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {}, uint32_t index_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
9882     : pNext( pNext_ ), collection( collection_ ), index( index_ )
9883     {}
9884 
9885     VULKAN_HPP_CONSTEXPR BufferCollectionBufferCreateInfoFUCHSIA( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9886 
BufferCollectionBufferCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9887     BufferCollectionBufferCreateInfoFUCHSIA( VkBufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
9888       : BufferCollectionBufferCreateInfoFUCHSIA( *reinterpret_cast<BufferCollectionBufferCreateInfoFUCHSIA const *>( &rhs ) )
9889     {}
9890 
9891 
9892     BufferCollectionBufferCreateInfoFUCHSIA & operator=( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9893 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
9894 
operator =VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9895     BufferCollectionBufferCreateInfoFUCHSIA & operator=( VkBufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
9896     {
9897       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA const *>( &rhs );
9898       return *this;
9899     }
9900 
9901 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9902     VULKAN_HPP_CONSTEXPR_14 BufferCollectionBufferCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
9903     {
9904       pNext = pNext_;
9905       return *this;
9906     }
9907 
setCollectionVULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9908     VULKAN_HPP_CONSTEXPR_14 BufferCollectionBufferCreateInfoFUCHSIA & setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
9909     {
9910       collection = collection_;
9911       return *this;
9912     }
9913 
setIndexVULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9914     VULKAN_HPP_CONSTEXPR_14 BufferCollectionBufferCreateInfoFUCHSIA & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
9915     {
9916       index = index_;
9917       return *this;
9918     }
9919 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
9920 
9921 
operator VkBufferCollectionBufferCreateInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9922     operator VkBufferCollectionBufferCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
9923     {
9924       return *reinterpret_cast<const VkBufferCollectionBufferCreateInfoFUCHSIA*>( this );
9925     }
9926 
operator VkBufferCollectionBufferCreateInfoFUCHSIA&VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9927     operator VkBufferCollectionBufferCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
9928     {
9929       return *reinterpret_cast<VkBufferCollectionBufferCreateInfoFUCHSIA*>( this );
9930     }
9931 
9932 #if defined( VULKAN_HPP_USE_REFLECT )
9933 #if 14 <= VULKAN_HPP_CPP_VERSION
9934     auto
9935 #else
9936     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &, uint32_t const &>
9937 #endif
reflectVULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9938       reflect() const VULKAN_HPP_NOEXCEPT
9939     {
9940       return std::tie( sType, pNext, collection, index );
9941     }
9942 #endif
9943 
9944 
9945 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
9946 auto operator<=>( BufferCollectionBufferCreateInfoFUCHSIA const & ) const = default;
9947 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9948     bool operator==( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
9949     {
9950 #if defined( VULKAN_HPP_USE_REFLECT )
9951       return this->reflect() == rhs.reflect();
9952 #else
9953       return ( sType == rhs.sType )
9954           && ( pNext == rhs.pNext )
9955           && ( collection == rhs.collection )
9956           && ( index == rhs.index );
9957 #endif
9958     }
9959 
operator !=VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA9960     bool operator!=( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
9961     {
9962       return !operator==( rhs );
9963     }
9964 #endif
9965 
9966     public:
9967     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionBufferCreateInfoFUCHSIA;
9968     const void * pNext = {};
9969     VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection = {};
9970     uint32_t index = {};
9971 
9972   };
9973 
9974   template <>
9975   struct CppType<StructureType, StructureType::eBufferCollectionBufferCreateInfoFUCHSIA>
9976   {
9977     using Type = BufferCollectionBufferCreateInfoFUCHSIA;
9978   };
9979 #endif /*VK_USE_PLATFORM_FUCHSIA*/
9980 
9981 #if defined( VK_USE_PLATFORM_FUCHSIA )
9982   struct BufferCollectionConstraintsInfoFUCHSIA
9983   {
9984     using NativeType = VkBufferCollectionConstraintsInfoFUCHSIA;
9985 
9986     static const bool allowDuplicate = false;
9987     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionConstraintsInfoFUCHSIA;
9988 
9989 
9990 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCollectionConstraintsInfoFUCHSIAVULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA9991 VULKAN_HPP_CONSTEXPR BufferCollectionConstraintsInfoFUCHSIA(uint32_t minBufferCount_ = {}, uint32_t maxBufferCount_ = {}, uint32_t minBufferCountForCamping_ = {}, uint32_t minBufferCountForDedicatedSlack_ = {}, uint32_t minBufferCountForSharedSlack_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
9992     : pNext( pNext_ ), minBufferCount( minBufferCount_ ), maxBufferCount( maxBufferCount_ ), minBufferCountForCamping( minBufferCountForCamping_ ), minBufferCountForDedicatedSlack( minBufferCountForDedicatedSlack_ ), minBufferCountForSharedSlack( minBufferCountForSharedSlack_ )
9993     {}
9994 
9995     VULKAN_HPP_CONSTEXPR BufferCollectionConstraintsInfoFUCHSIA( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
9996 
BufferCollectionConstraintsInfoFUCHSIAVULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA9997     BufferCollectionConstraintsInfoFUCHSIA( VkBufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
9998       : BufferCollectionConstraintsInfoFUCHSIA( *reinterpret_cast<BufferCollectionConstraintsInfoFUCHSIA const *>( &rhs ) )
9999     {}
10000 
10001 
10002     BufferCollectionConstraintsInfoFUCHSIA & operator=( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10003 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
10004 
operator =VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10005     BufferCollectionConstraintsInfoFUCHSIA & operator=( VkBufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10006     {
10007       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const *>( &rhs );
10008       return *this;
10009     }
10010 
10011 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10012     VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
10013     {
10014       pNext = pNext_;
10015       return *this;
10016     }
10017 
setMinBufferCountVULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10018     VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMinBufferCount( uint32_t minBufferCount_ ) VULKAN_HPP_NOEXCEPT
10019     {
10020       minBufferCount = minBufferCount_;
10021       return *this;
10022     }
10023 
setMaxBufferCountVULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10024     VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMaxBufferCount( uint32_t maxBufferCount_ ) VULKAN_HPP_NOEXCEPT
10025     {
10026       maxBufferCount = maxBufferCount_;
10027       return *this;
10028     }
10029 
setMinBufferCountForCampingVULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10030     VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMinBufferCountForCamping( uint32_t minBufferCountForCamping_ ) VULKAN_HPP_NOEXCEPT
10031     {
10032       minBufferCountForCamping = minBufferCountForCamping_;
10033       return *this;
10034     }
10035 
setMinBufferCountForDedicatedSlackVULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10036     VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMinBufferCountForDedicatedSlack( uint32_t minBufferCountForDedicatedSlack_ ) VULKAN_HPP_NOEXCEPT
10037     {
10038       minBufferCountForDedicatedSlack = minBufferCountForDedicatedSlack_;
10039       return *this;
10040     }
10041 
setMinBufferCountForSharedSlackVULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10042     VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMinBufferCountForSharedSlack( uint32_t minBufferCountForSharedSlack_ ) VULKAN_HPP_NOEXCEPT
10043     {
10044       minBufferCountForSharedSlack = minBufferCountForSharedSlack_;
10045       return *this;
10046     }
10047 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
10048 
10049 
operator VkBufferCollectionConstraintsInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10050     operator VkBufferCollectionConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
10051     {
10052       return *reinterpret_cast<const VkBufferCollectionConstraintsInfoFUCHSIA*>( this );
10053     }
10054 
operator VkBufferCollectionConstraintsInfoFUCHSIA&VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10055     operator VkBufferCollectionConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
10056     {
10057       return *reinterpret_cast<VkBufferCollectionConstraintsInfoFUCHSIA*>( this );
10058     }
10059 
10060 #if defined( VULKAN_HPP_USE_REFLECT )
10061 #if 14 <= VULKAN_HPP_CPP_VERSION
10062     auto
10063 #else
10064     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
10065 #endif
reflectVULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10066       reflect() const VULKAN_HPP_NOEXCEPT
10067     {
10068       return std::tie( sType, pNext, minBufferCount, maxBufferCount, minBufferCountForCamping, minBufferCountForDedicatedSlack, minBufferCountForSharedSlack );
10069     }
10070 #endif
10071 
10072 
10073 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
10074 auto operator<=>( BufferCollectionConstraintsInfoFUCHSIA const & ) const = default;
10075 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10076     bool operator==( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10077     {
10078 #if defined( VULKAN_HPP_USE_REFLECT )
10079       return this->reflect() == rhs.reflect();
10080 #else
10081       return ( sType == rhs.sType )
10082           && ( pNext == rhs.pNext )
10083           && ( minBufferCount == rhs.minBufferCount )
10084           && ( maxBufferCount == rhs.maxBufferCount )
10085           && ( minBufferCountForCamping == rhs.minBufferCountForCamping )
10086           && ( minBufferCountForDedicatedSlack == rhs.minBufferCountForDedicatedSlack )
10087           && ( minBufferCountForSharedSlack == rhs.minBufferCountForSharedSlack );
10088 #endif
10089     }
10090 
operator !=VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA10091     bool operator!=( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10092     {
10093       return !operator==( rhs );
10094     }
10095 #endif
10096 
10097     public:
10098     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionConstraintsInfoFUCHSIA;
10099     const void * pNext = {};
10100     uint32_t minBufferCount = {};
10101     uint32_t maxBufferCount = {};
10102     uint32_t minBufferCountForCamping = {};
10103     uint32_t minBufferCountForDedicatedSlack = {};
10104     uint32_t minBufferCountForSharedSlack = {};
10105 
10106   };
10107 
10108   template <>
10109   struct CppType<StructureType, StructureType::eBufferCollectionConstraintsInfoFUCHSIA>
10110   {
10111     using Type = BufferCollectionConstraintsInfoFUCHSIA;
10112   };
10113 #endif /*VK_USE_PLATFORM_FUCHSIA*/
10114 
10115 #if defined( VK_USE_PLATFORM_FUCHSIA )
10116   struct BufferCollectionCreateInfoFUCHSIA
10117   {
10118     using NativeType = VkBufferCollectionCreateInfoFUCHSIA;
10119 
10120     static const bool allowDuplicate = false;
10121     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionCreateInfoFUCHSIA;
10122 
10123 
10124 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCollectionCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10125 VULKAN_HPP_CONSTEXPR BufferCollectionCreateInfoFUCHSIA(zx_handle_t collectionToken_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
10126     : pNext( pNext_ ), collectionToken( collectionToken_ )
10127     {}
10128 
10129     VULKAN_HPP_CONSTEXPR BufferCollectionCreateInfoFUCHSIA( BufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10130 
BufferCollectionCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10131     BufferCollectionCreateInfoFUCHSIA( VkBufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10132       : BufferCollectionCreateInfoFUCHSIA( *reinterpret_cast<BufferCollectionCreateInfoFUCHSIA const *>( &rhs ) )
10133     {}
10134 
10135 
10136     BufferCollectionCreateInfoFUCHSIA & operator=( BufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10137 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
10138 
operator =VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10139     BufferCollectionCreateInfoFUCHSIA & operator=( VkBufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10140     {
10141       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const *>( &rhs );
10142       return *this;
10143     }
10144 
10145 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10146     VULKAN_HPP_CONSTEXPR_14 BufferCollectionCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
10147     {
10148       pNext = pNext_;
10149       return *this;
10150     }
10151 
setCollectionTokenVULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10152     VULKAN_HPP_CONSTEXPR_14 BufferCollectionCreateInfoFUCHSIA & setCollectionToken( zx_handle_t collectionToken_ ) VULKAN_HPP_NOEXCEPT
10153     {
10154       collectionToken = collectionToken_;
10155       return *this;
10156     }
10157 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
10158 
10159 
operator VkBufferCollectionCreateInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10160     operator VkBufferCollectionCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
10161     {
10162       return *reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA*>( this );
10163     }
10164 
operator VkBufferCollectionCreateInfoFUCHSIA&VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10165     operator VkBufferCollectionCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
10166     {
10167       return *reinterpret_cast<VkBufferCollectionCreateInfoFUCHSIA*>( this );
10168     }
10169 
10170 #if defined( VULKAN_HPP_USE_REFLECT )
10171 #if 14 <= VULKAN_HPP_CPP_VERSION
10172     auto
10173 #else
10174     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, zx_handle_t const &>
10175 #endif
reflectVULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10176       reflect() const VULKAN_HPP_NOEXCEPT
10177     {
10178       return std::tie( sType, pNext, collectionToken );
10179     }
10180 #endif
10181 
10182 
10183 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10184     std::strong_ordering operator<=>( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10185     {
10186       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
10187       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
10188       if ( auto cmp = memcmp( &collectionToken, &rhs.collectionToken, sizeof( zx_handle_t ) ); cmp != 0 )
10189         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
10190 
10191       return std::strong_ordering::equivalent;
10192     }
10193 #endif
10194 
operator ==VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10195     bool operator==( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10196     {
10197       return ( sType == rhs.sType )
10198           && ( pNext == rhs.pNext )
10199           && ( memcmp( &collectionToken, &rhs.collectionToken, sizeof( zx_handle_t ) ) == 0 );
10200     }
10201 
operator !=VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA10202     bool operator!=( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10203     {
10204       return !operator==( rhs );
10205     }
10206 
10207     public:
10208     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionCreateInfoFUCHSIA;
10209     const void * pNext = {};
10210     zx_handle_t collectionToken = {};
10211 
10212   };
10213 
10214   template <>
10215   struct CppType<StructureType, StructureType::eBufferCollectionCreateInfoFUCHSIA>
10216   {
10217     using Type = BufferCollectionCreateInfoFUCHSIA;
10218   };
10219 #endif /*VK_USE_PLATFORM_FUCHSIA*/
10220 
10221 #if defined( VK_USE_PLATFORM_FUCHSIA )
10222   struct BufferCollectionImageCreateInfoFUCHSIA
10223   {
10224     using NativeType = VkBufferCollectionImageCreateInfoFUCHSIA;
10225 
10226     static const bool allowDuplicate = false;
10227     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionImageCreateInfoFUCHSIA;
10228 
10229 
10230 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCollectionImageCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10231 VULKAN_HPP_CONSTEXPR BufferCollectionImageCreateInfoFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {}, uint32_t index_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
10232     : pNext( pNext_ ), collection( collection_ ), index( index_ )
10233     {}
10234 
10235     VULKAN_HPP_CONSTEXPR BufferCollectionImageCreateInfoFUCHSIA( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10236 
BufferCollectionImageCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10237     BufferCollectionImageCreateInfoFUCHSIA( VkBufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10238       : BufferCollectionImageCreateInfoFUCHSIA( *reinterpret_cast<BufferCollectionImageCreateInfoFUCHSIA const *>( &rhs ) )
10239     {}
10240 
10241 
10242     BufferCollectionImageCreateInfoFUCHSIA & operator=( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10243 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
10244 
operator =VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10245     BufferCollectionImageCreateInfoFUCHSIA & operator=( VkBufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10246     {
10247       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA const *>( &rhs );
10248       return *this;
10249     }
10250 
10251 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10252     VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
10253     {
10254       pNext = pNext_;
10255       return *this;
10256     }
10257 
setCollectionVULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10258     VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA & setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
10259     {
10260       collection = collection_;
10261       return *this;
10262     }
10263 
setIndexVULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10264     VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
10265     {
10266       index = index_;
10267       return *this;
10268     }
10269 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
10270 
10271 
operator VkBufferCollectionImageCreateInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10272     operator VkBufferCollectionImageCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
10273     {
10274       return *reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA*>( this );
10275     }
10276 
operator VkBufferCollectionImageCreateInfoFUCHSIA&VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10277     operator VkBufferCollectionImageCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
10278     {
10279       return *reinterpret_cast<VkBufferCollectionImageCreateInfoFUCHSIA*>( this );
10280     }
10281 
10282 #if defined( VULKAN_HPP_USE_REFLECT )
10283 #if 14 <= VULKAN_HPP_CPP_VERSION
10284     auto
10285 #else
10286     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &, uint32_t const &>
10287 #endif
reflectVULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10288       reflect() const VULKAN_HPP_NOEXCEPT
10289     {
10290       return std::tie( sType, pNext, collection, index );
10291     }
10292 #endif
10293 
10294 
10295 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
10296 auto operator<=>( BufferCollectionImageCreateInfoFUCHSIA const & ) const = default;
10297 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10298     bool operator==( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10299     {
10300 #if defined( VULKAN_HPP_USE_REFLECT )
10301       return this->reflect() == rhs.reflect();
10302 #else
10303       return ( sType == rhs.sType )
10304           && ( pNext == rhs.pNext )
10305           && ( collection == rhs.collection )
10306           && ( index == rhs.index );
10307 #endif
10308     }
10309 
operator !=VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA10310     bool operator!=( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10311     {
10312       return !operator==( rhs );
10313     }
10314 #endif
10315 
10316     public:
10317     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionImageCreateInfoFUCHSIA;
10318     const void * pNext = {};
10319     VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection = {};
10320     uint32_t index = {};
10321 
10322   };
10323 
10324   template <>
10325   struct CppType<StructureType, StructureType::eBufferCollectionImageCreateInfoFUCHSIA>
10326   {
10327     using Type = BufferCollectionImageCreateInfoFUCHSIA;
10328   };
10329 #endif /*VK_USE_PLATFORM_FUCHSIA*/
10330 
10331 #if defined( VK_USE_PLATFORM_FUCHSIA )
10332   struct SysmemColorSpaceFUCHSIA
10333   {
10334     using NativeType = VkSysmemColorSpaceFUCHSIA;
10335 
10336     static const bool allowDuplicate = false;
10337     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSysmemColorSpaceFUCHSIA;
10338 
10339 
10340 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SysmemColorSpaceFUCHSIAVULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA10341 VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA(uint32_t colorSpace_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
10342     : pNext( pNext_ ), colorSpace( colorSpace_ )
10343     {}
10344 
10345     VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA( SysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10346 
SysmemColorSpaceFUCHSIAVULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA10347     SysmemColorSpaceFUCHSIA( VkSysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10348       : SysmemColorSpaceFUCHSIA( *reinterpret_cast<SysmemColorSpaceFUCHSIA const *>( &rhs ) )
10349     {}
10350 
10351 
10352     SysmemColorSpaceFUCHSIA & operator=( SysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10353 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
10354 
operator =VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA10355     SysmemColorSpaceFUCHSIA & operator=( VkSysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10356     {
10357       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const *>( &rhs );
10358       return *this;
10359     }
10360 
10361 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA10362     VULKAN_HPP_CONSTEXPR_14 SysmemColorSpaceFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
10363     {
10364       pNext = pNext_;
10365       return *this;
10366     }
10367 
setColorSpaceVULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA10368     VULKAN_HPP_CONSTEXPR_14 SysmemColorSpaceFUCHSIA & setColorSpace( uint32_t colorSpace_ ) VULKAN_HPP_NOEXCEPT
10369     {
10370       colorSpace = colorSpace_;
10371       return *this;
10372     }
10373 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
10374 
10375 
operator VkSysmemColorSpaceFUCHSIA const&VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA10376     operator VkSysmemColorSpaceFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
10377     {
10378       return *reinterpret_cast<const VkSysmemColorSpaceFUCHSIA*>( this );
10379     }
10380 
operator VkSysmemColorSpaceFUCHSIA&VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA10381     operator VkSysmemColorSpaceFUCHSIA &() VULKAN_HPP_NOEXCEPT
10382     {
10383       return *reinterpret_cast<VkSysmemColorSpaceFUCHSIA*>( this );
10384     }
10385 
10386 #if defined( VULKAN_HPP_USE_REFLECT )
10387 #if 14 <= VULKAN_HPP_CPP_VERSION
10388     auto
10389 #else
10390     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
10391 #endif
reflectVULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA10392       reflect() const VULKAN_HPP_NOEXCEPT
10393     {
10394       return std::tie( sType, pNext, colorSpace );
10395     }
10396 #endif
10397 
10398 
10399 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
10400 auto operator<=>( SysmemColorSpaceFUCHSIA const & ) const = default;
10401 #else
operator ==VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA10402     bool operator==( SysmemColorSpaceFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10403     {
10404 #if defined( VULKAN_HPP_USE_REFLECT )
10405       return this->reflect() == rhs.reflect();
10406 #else
10407       return ( sType == rhs.sType )
10408           && ( pNext == rhs.pNext )
10409           && ( colorSpace == rhs.colorSpace );
10410 #endif
10411     }
10412 
operator !=VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA10413     bool operator!=( SysmemColorSpaceFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10414     {
10415       return !operator==( rhs );
10416     }
10417 #endif
10418 
10419     public:
10420     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSysmemColorSpaceFUCHSIA;
10421     const void * pNext = {};
10422     uint32_t colorSpace = {};
10423 
10424   };
10425 
10426   template <>
10427   struct CppType<StructureType, StructureType::eSysmemColorSpaceFUCHSIA>
10428   {
10429     using Type = SysmemColorSpaceFUCHSIA;
10430   };
10431 #endif /*VK_USE_PLATFORM_FUCHSIA*/
10432 
10433 #if defined( VK_USE_PLATFORM_FUCHSIA )
10434   struct BufferCollectionPropertiesFUCHSIA
10435   {
10436     using NativeType = VkBufferCollectionPropertiesFUCHSIA;
10437 
10438     static const bool allowDuplicate = false;
10439     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionPropertiesFUCHSIA;
10440 
10441 
10442 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCollectionPropertiesFUCHSIAVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10443 VULKAN_HPP_CONSTEXPR BufferCollectionPropertiesFUCHSIA(uint32_t memoryTypeBits_ = {}, uint32_t bufferCount_ = {}, uint32_t createInfoIndex_ = {}, uint64_t sysmemPixelFormat_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {}, VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA sysmemColorSpaceIndex_ = {}, VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {}, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
10444     : pNext( pNext_ ), memoryTypeBits( memoryTypeBits_ ), bufferCount( bufferCount_ ), createInfoIndex( createInfoIndex_ ), sysmemPixelFormat( sysmemPixelFormat_ ), formatFeatures( formatFeatures_ ), sysmemColorSpaceIndex( sysmemColorSpaceIndex_ ), samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ), suggestedYcbcrModel( suggestedYcbcrModel_ ), suggestedYcbcrRange( suggestedYcbcrRange_ ), suggestedXChromaOffset( suggestedXChromaOffset_ ), suggestedYChromaOffset( suggestedYChromaOffset_ )
10445     {}
10446 
10447     VULKAN_HPP_CONSTEXPR BufferCollectionPropertiesFUCHSIA( BufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10448 
BufferCollectionPropertiesFUCHSIAVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10449     BufferCollectionPropertiesFUCHSIA( VkBufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10450       : BufferCollectionPropertiesFUCHSIA( *reinterpret_cast<BufferCollectionPropertiesFUCHSIA const *>( &rhs ) )
10451     {}
10452 
10453 
10454     BufferCollectionPropertiesFUCHSIA & operator=( BufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10455 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
10456 
operator =VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10457     BufferCollectionPropertiesFUCHSIA & operator=( VkBufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10458     {
10459       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA const *>( &rhs );
10460       return *this;
10461     }
10462 
10463 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10464     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
10465     {
10466       pNext = pNext_;
10467       return *this;
10468     }
10469 
setMemoryTypeBitsVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10470     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setMemoryTypeBits( uint32_t memoryTypeBits_ ) VULKAN_HPP_NOEXCEPT
10471     {
10472       memoryTypeBits = memoryTypeBits_;
10473       return *this;
10474     }
10475 
setBufferCountVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10476     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setBufferCount( uint32_t bufferCount_ ) VULKAN_HPP_NOEXCEPT
10477     {
10478       bufferCount = bufferCount_;
10479       return *this;
10480     }
10481 
setCreateInfoIndexVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10482     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setCreateInfoIndex( uint32_t createInfoIndex_ ) VULKAN_HPP_NOEXCEPT
10483     {
10484       createInfoIndex = createInfoIndex_;
10485       return *this;
10486     }
10487 
setSysmemPixelFormatVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10488     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSysmemPixelFormat( uint64_t sysmemPixelFormat_ ) VULKAN_HPP_NOEXCEPT
10489     {
10490       sysmemPixelFormat = sysmemPixelFormat_;
10491       return *this;
10492     }
10493 
setFormatFeaturesVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10494     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ ) VULKAN_HPP_NOEXCEPT
10495     {
10496       formatFeatures = formatFeatures_;
10497       return *this;
10498     }
10499 
setSysmemColorSpaceIndexVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10500     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSysmemColorSpaceIndex( VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const & sysmemColorSpaceIndex_ ) VULKAN_HPP_NOEXCEPT
10501     {
10502       sysmemColorSpaceIndex = sysmemColorSpaceIndex_;
10503       return *this;
10504     }
10505 
setSamplerYcbcrConversionComponentsVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10506     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSamplerYcbcrConversionComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & samplerYcbcrConversionComponents_ ) VULKAN_HPP_NOEXCEPT
10507     {
10508       samplerYcbcrConversionComponents = samplerYcbcrConversionComponents_;
10509       return *this;
10510     }
10511 
setSuggestedYcbcrModelVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10512     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSuggestedYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ ) VULKAN_HPP_NOEXCEPT
10513     {
10514       suggestedYcbcrModel = suggestedYcbcrModel_;
10515       return *this;
10516     }
10517 
setSuggestedYcbcrRangeVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10518     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSuggestedYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ ) VULKAN_HPP_NOEXCEPT
10519     {
10520       suggestedYcbcrRange = suggestedYcbcrRange_;
10521       return *this;
10522     }
10523 
setSuggestedXChromaOffsetVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10524     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSuggestedXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ ) VULKAN_HPP_NOEXCEPT
10525     {
10526       suggestedXChromaOffset = suggestedXChromaOffset_;
10527       return *this;
10528     }
10529 
setSuggestedYChromaOffsetVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10530     VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSuggestedYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ ) VULKAN_HPP_NOEXCEPT
10531     {
10532       suggestedYChromaOffset = suggestedYChromaOffset_;
10533       return *this;
10534     }
10535 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
10536 
10537 
operator VkBufferCollectionPropertiesFUCHSIA const&VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10538     operator VkBufferCollectionPropertiesFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
10539     {
10540       return *reinterpret_cast<const VkBufferCollectionPropertiesFUCHSIA*>( this );
10541     }
10542 
operator VkBufferCollectionPropertiesFUCHSIA&VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10543     operator VkBufferCollectionPropertiesFUCHSIA &() VULKAN_HPP_NOEXCEPT
10544     {
10545       return *reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA*>( this );
10546     }
10547 
10548 #if defined( VULKAN_HPP_USE_REFLECT )
10549 #if 14 <= VULKAN_HPP_CPP_VERSION
10550     auto
10551 #else
10552     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint64_t const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &, VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const &, VULKAN_HPP_NAMESPACE::ComponentMapping const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &>
10553 #endif
reflectVULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10554       reflect() const VULKAN_HPP_NOEXCEPT
10555     {
10556       return std::tie( sType, pNext, memoryTypeBits, bufferCount, createInfoIndex, sysmemPixelFormat, formatFeatures, sysmemColorSpaceIndex, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset );
10557     }
10558 #endif
10559 
10560 
10561 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
10562 auto operator<=>( BufferCollectionPropertiesFUCHSIA const & ) const = default;
10563 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10564     bool operator==( BufferCollectionPropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10565     {
10566 #if defined( VULKAN_HPP_USE_REFLECT )
10567       return this->reflect() == rhs.reflect();
10568 #else
10569       return ( sType == rhs.sType )
10570           && ( pNext == rhs.pNext )
10571           && ( memoryTypeBits == rhs.memoryTypeBits )
10572           && ( bufferCount == rhs.bufferCount )
10573           && ( createInfoIndex == rhs.createInfoIndex )
10574           && ( sysmemPixelFormat == rhs.sysmemPixelFormat )
10575           && ( formatFeatures == rhs.formatFeatures )
10576           && ( sysmemColorSpaceIndex == rhs.sysmemColorSpaceIndex )
10577           && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
10578           && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
10579           && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
10580           && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
10581           && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
10582 #endif
10583     }
10584 
operator !=VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA10585     bool operator!=( BufferCollectionPropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10586     {
10587       return !operator==( rhs );
10588     }
10589 #endif
10590 
10591     public:
10592     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionPropertiesFUCHSIA;
10593     void * pNext = {};
10594     uint32_t memoryTypeBits = {};
10595     uint32_t bufferCount = {};
10596     uint32_t createInfoIndex = {};
10597     uint64_t sysmemPixelFormat = {};
10598     VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
10599     VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA sysmemColorSpaceIndex = {};
10600     VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
10601     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
10602     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
10603     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
10604     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
10605 
10606   };
10607 
10608   template <>
10609   struct CppType<StructureType, StructureType::eBufferCollectionPropertiesFUCHSIA>
10610   {
10611     using Type = BufferCollectionPropertiesFUCHSIA;
10612   };
10613 #endif /*VK_USE_PLATFORM_FUCHSIA*/
10614 
10615   struct BufferCreateInfo
10616   {
10617     using NativeType = VkBufferCreateInfo;
10618 
10619     static const bool allowDuplicate = false;
10620     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo;
10621 
10622 
10623 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo10624 VULKAN_HPP_CONSTEXPR BufferCreateInfo(VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t * pQueueFamilyIndices_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
10625     : pNext( pNext_ ), flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ )
10626     {}
10627 
10628     VULKAN_HPP_CONSTEXPR BufferCreateInfo( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10629 
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo10630     BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
10631       : BufferCreateInfo( *reinterpret_cast<BufferCreateInfo const *>( &rhs ) )
10632     {}
10633 
10634 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo10635     BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_, VULKAN_HPP_NAMESPACE::DeviceSize size_, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_, const void * pNext_ = nullptr )
10636     : pNext( pNext_ ), flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() )
10637     {}
10638 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
10639 
10640 
10641     BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10642 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
10643 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo10644     BufferCreateInfo & operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
10645     {
10646       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCreateInfo const *>( &rhs );
10647       return *this;
10648     }
10649 
10650 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferCreateInfo10651     VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
10652     {
10653       pNext = pNext_;
10654       return *this;
10655     }
10656 
setFlagsVULKAN_HPP_NAMESPACE::BufferCreateInfo10657     VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
10658     {
10659       flags = flags_;
10660       return *this;
10661     }
10662 
setSizeVULKAN_HPP_NAMESPACE::BufferCreateInfo10663     VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
10664     {
10665       size = size_;
10666       return *this;
10667     }
10668 
setUsageVULKAN_HPP_NAMESPACE::BufferCreateInfo10669     VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
10670     {
10671       usage = usage_;
10672       return *this;
10673     }
10674 
setSharingModeVULKAN_HPP_NAMESPACE::BufferCreateInfo10675     VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
10676     {
10677       sharingMode = sharingMode_;
10678       return *this;
10679     }
10680 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::BufferCreateInfo10681     VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
10682     {
10683       queueFamilyIndexCount = queueFamilyIndexCount_;
10684       return *this;
10685     }
10686 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo10687     VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
10688     {
10689       pQueueFamilyIndices = pQueueFamilyIndices_;
10690       return *this;
10691     }
10692 
10693 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo10694     BufferCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
10695     {
10696       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
10697       pQueueFamilyIndices = queueFamilyIndices_.data();
10698       return *this;
10699     }
10700 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
10701 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
10702 
10703 
operator VkBufferCreateInfo const&VULKAN_HPP_NAMESPACE::BufferCreateInfo10704     operator VkBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
10705     {
10706       return *reinterpret_cast<const VkBufferCreateInfo*>( this );
10707     }
10708 
operator VkBufferCreateInfo&VULKAN_HPP_NAMESPACE::BufferCreateInfo10709     operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
10710     {
10711       return *reinterpret_cast<VkBufferCreateInfo*>( this );
10712     }
10713 
10714 #if defined( VULKAN_HPP_USE_REFLECT )
10715 #if 14 <= VULKAN_HPP_CPP_VERSION
10716     auto
10717 #else
10718     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCreateFlags const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::BufferUsageFlags const &, VULKAN_HPP_NAMESPACE::SharingMode const &, uint32_t const &, const uint32_t * const &>
10719 #endif
reflectVULKAN_HPP_NAMESPACE::BufferCreateInfo10720       reflect() const VULKAN_HPP_NOEXCEPT
10721     {
10722       return std::tie( sType, pNext, flags, size, usage, sharingMode, queueFamilyIndexCount, pQueueFamilyIndices );
10723     }
10724 #endif
10725 
10726 
10727 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
10728 auto operator<=>( BufferCreateInfo const & ) const = default;
10729 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCreateInfo10730     bool operator==( BufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
10731     {
10732 #if defined( VULKAN_HPP_USE_REFLECT )
10733       return this->reflect() == rhs.reflect();
10734 #else
10735       return ( sType == rhs.sType )
10736           && ( pNext == rhs.pNext )
10737           && ( flags == rhs.flags )
10738           && ( size == rhs.size )
10739           && ( usage == rhs.usage )
10740           && ( sharingMode == rhs.sharingMode )
10741           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
10742           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
10743 #endif
10744     }
10745 
operator !=VULKAN_HPP_NAMESPACE::BufferCreateInfo10746     bool operator!=( BufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
10747     {
10748       return !operator==( rhs );
10749     }
10750 #endif
10751 
10752     public:
10753     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo;
10754     const void * pNext = {};
10755     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
10756     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
10757     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
10758     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
10759     uint32_t queueFamilyIndexCount = {};
10760     const uint32_t * pQueueFamilyIndices = {};
10761 
10762   };
10763 
10764   template <>
10765   struct CppType<StructureType, StructureType::eBufferCreateInfo>
10766   {
10767     using Type = BufferCreateInfo;
10768   };
10769 
10770 #if defined( VK_USE_PLATFORM_FUCHSIA )
10771   struct BufferConstraintsInfoFUCHSIA
10772   {
10773     using NativeType = VkBufferConstraintsInfoFUCHSIA;
10774 
10775     static const bool allowDuplicate = false;
10776     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferConstraintsInfoFUCHSIA;
10777 
10778 
10779 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferConstraintsInfoFUCHSIAVULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10780 VULKAN_HPP_CONSTEXPR BufferConstraintsInfoFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCreateInfo createInfo_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ = {}, VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
10781     : pNext( pNext_ ), createInfo( createInfo_ ), requiredFormatFeatures( requiredFormatFeatures_ ), bufferCollectionConstraints( bufferCollectionConstraints_ )
10782     {}
10783 
10784     VULKAN_HPP_CONSTEXPR BufferConstraintsInfoFUCHSIA( BufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10785 
BufferConstraintsInfoFUCHSIAVULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10786     BufferConstraintsInfoFUCHSIA( VkBufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10787       : BufferConstraintsInfoFUCHSIA( *reinterpret_cast<BufferConstraintsInfoFUCHSIA const *>( &rhs ) )
10788     {}
10789 
10790 
10791     BufferConstraintsInfoFUCHSIA & operator=( BufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10792 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
10793 
operator =VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10794     BufferConstraintsInfoFUCHSIA & operator=( VkBufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
10795     {
10796       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA const *>( &rhs );
10797       return *this;
10798     }
10799 
10800 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10801     VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
10802     {
10803       pNext = pNext_;
10804       return *this;
10805     }
10806 
setCreateInfoVULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10807     VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA & setCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateInfo const & createInfo_ ) VULKAN_HPP_NOEXCEPT
10808     {
10809       createInfo = createInfo_;
10810       return *this;
10811     }
10812 
setRequiredFormatFeaturesVULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10813     VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA & setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
10814     {
10815       requiredFormatFeatures = requiredFormatFeatures_;
10816       return *this;
10817     }
10818 
setBufferCollectionConstraintsVULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10819     VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA & setBufferCollectionConstraints( VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const & bufferCollectionConstraints_ ) VULKAN_HPP_NOEXCEPT
10820     {
10821       bufferCollectionConstraints = bufferCollectionConstraints_;
10822       return *this;
10823     }
10824 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
10825 
10826 
operator VkBufferConstraintsInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10827     operator VkBufferConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
10828     {
10829       return *reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA*>( this );
10830     }
10831 
operator VkBufferConstraintsInfoFUCHSIA&VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10832     operator VkBufferConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
10833     {
10834       return *reinterpret_cast<VkBufferConstraintsInfoFUCHSIA*>( this );
10835     }
10836 
10837 #if defined( VULKAN_HPP_USE_REFLECT )
10838 #if 14 <= VULKAN_HPP_CPP_VERSION
10839     auto
10840 #else
10841     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCreateInfo const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &, VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const &>
10842 #endif
reflectVULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10843       reflect() const VULKAN_HPP_NOEXCEPT
10844     {
10845       return std::tie( sType, pNext, createInfo, requiredFormatFeatures, bufferCollectionConstraints );
10846     }
10847 #endif
10848 
10849 
10850 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
10851 auto operator<=>( BufferConstraintsInfoFUCHSIA const & ) const = default;
10852 #else
operator ==VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10853     bool operator==( BufferConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10854     {
10855 #if defined( VULKAN_HPP_USE_REFLECT )
10856       return this->reflect() == rhs.reflect();
10857 #else
10858       return ( sType == rhs.sType )
10859           && ( pNext == rhs.pNext )
10860           && ( createInfo == rhs.createInfo )
10861           && ( requiredFormatFeatures == rhs.requiredFormatFeatures )
10862           && ( bufferCollectionConstraints == rhs.bufferCollectionConstraints );
10863 #endif
10864     }
10865 
operator !=VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA10866     bool operator!=( BufferConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
10867     {
10868       return !operator==( rhs );
10869     }
10870 #endif
10871 
10872     public:
10873     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferConstraintsInfoFUCHSIA;
10874     const void * pNext = {};
10875     VULKAN_HPP_NAMESPACE::BufferCreateInfo createInfo = {};
10876     VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures = {};
10877     VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints = {};
10878 
10879   };
10880 
10881   template <>
10882   struct CppType<StructureType, StructureType::eBufferConstraintsInfoFUCHSIA>
10883   {
10884     using Type = BufferConstraintsInfoFUCHSIA;
10885   };
10886 #endif /*VK_USE_PLATFORM_FUCHSIA*/
10887 
10888   struct BufferCopy
10889   {
10890     using NativeType = VkBufferCopy;
10891 
10892 
10893 
10894 
10895 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy10896 VULKAN_HPP_CONSTEXPR BufferCopy(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
10897     : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ )
10898     {}
10899 
10900     VULKAN_HPP_CONSTEXPR BufferCopy( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10901 
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy10902     BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
10903       : BufferCopy( *reinterpret_cast<BufferCopy const *>( &rhs ) )
10904     {}
10905 
10906 
10907     BufferCopy & operator=( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
10908 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
10909 
operator =VULKAN_HPP_NAMESPACE::BufferCopy10910     BufferCopy & operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
10911     {
10912       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy const *>( &rhs );
10913       return *this;
10914     }
10915 
10916 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy10917     VULKAN_HPP_CONSTEXPR_14 BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
10918     {
10919       srcOffset = srcOffset_;
10920       return *this;
10921     }
10922 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy10923     VULKAN_HPP_CONSTEXPR_14 BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
10924     {
10925       dstOffset = dstOffset_;
10926       return *this;
10927     }
10928 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy10929     VULKAN_HPP_CONSTEXPR_14 BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
10930     {
10931       size = size_;
10932       return *this;
10933     }
10934 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
10935 
10936 
operator VkBufferCopy const&VULKAN_HPP_NAMESPACE::BufferCopy10937     operator VkBufferCopy const &() const VULKAN_HPP_NOEXCEPT
10938     {
10939       return *reinterpret_cast<const VkBufferCopy*>( this );
10940     }
10941 
operator VkBufferCopy&VULKAN_HPP_NAMESPACE::BufferCopy10942     operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT
10943     {
10944       return *reinterpret_cast<VkBufferCopy*>( this );
10945     }
10946 
10947 #if defined( VULKAN_HPP_USE_REFLECT )
10948 #if 14 <= VULKAN_HPP_CPP_VERSION
10949     auto
10950 #else
10951     std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
10952 #endif
reflectVULKAN_HPP_NAMESPACE::BufferCopy10953       reflect() const VULKAN_HPP_NOEXCEPT
10954     {
10955       return std::tie( srcOffset, dstOffset, size );
10956     }
10957 #endif
10958 
10959 
10960 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
10961 auto operator<=>( BufferCopy const & ) const = default;
10962 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy10963     bool operator==( BufferCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
10964     {
10965 #if defined( VULKAN_HPP_USE_REFLECT )
10966       return this->reflect() == rhs.reflect();
10967 #else
10968       return ( srcOffset == rhs.srcOffset )
10969           && ( dstOffset == rhs.dstOffset )
10970           && ( size == rhs.size );
10971 #endif
10972     }
10973 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy10974     bool operator!=( BufferCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
10975     {
10976       return !operator==( rhs );
10977     }
10978 #endif
10979 
10980     public:
10981     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
10982     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
10983     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
10984 
10985   };
10986 
10987   struct BufferCopy2
10988   {
10989     using NativeType = VkBufferCopy2;
10990 
10991     static const bool allowDuplicate = false;
10992     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCopy2;
10993 
10994 
10995 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCopy2VULKAN_HPP_NAMESPACE::BufferCopy210996 VULKAN_HPP_CONSTEXPR BufferCopy2(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
10997     : pNext( pNext_ ), srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ )
10998     {}
10999 
11000     VULKAN_HPP_CONSTEXPR BufferCopy2( BufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11001 
BufferCopy2VULKAN_HPP_NAMESPACE::BufferCopy211002     BufferCopy2( VkBufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
11003       : BufferCopy2( *reinterpret_cast<BufferCopy2 const *>( &rhs ) )
11004     {}
11005 
11006 
11007     BufferCopy2 & operator=( BufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11008 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
11009 
operator =VULKAN_HPP_NAMESPACE::BufferCopy211010     BufferCopy2 & operator=( VkBufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
11011     {
11012       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy2 const *>( &rhs );
11013       return *this;
11014     }
11015 
11016 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferCopy211017     VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
11018     {
11019       pNext = pNext_;
11020       return *this;
11021     }
11022 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy211023     VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
11024     {
11025       srcOffset = srcOffset_;
11026       return *this;
11027     }
11028 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy211029     VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
11030     {
11031       dstOffset = dstOffset_;
11032       return *this;
11033     }
11034 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy211035     VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
11036     {
11037       size = size_;
11038       return *this;
11039     }
11040 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
11041 
11042 
operator VkBufferCopy2 const&VULKAN_HPP_NAMESPACE::BufferCopy211043     operator VkBufferCopy2 const &() const VULKAN_HPP_NOEXCEPT
11044     {
11045       return *reinterpret_cast<const VkBufferCopy2*>( this );
11046     }
11047 
operator VkBufferCopy2&VULKAN_HPP_NAMESPACE::BufferCopy211048     operator VkBufferCopy2 &() VULKAN_HPP_NOEXCEPT
11049     {
11050       return *reinterpret_cast<VkBufferCopy2*>( this );
11051     }
11052 
11053 #if defined( VULKAN_HPP_USE_REFLECT )
11054 #if 14 <= VULKAN_HPP_CPP_VERSION
11055     auto
11056 #else
11057     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
11058 #endif
reflectVULKAN_HPP_NAMESPACE::BufferCopy211059       reflect() const VULKAN_HPP_NOEXCEPT
11060     {
11061       return std::tie( sType, pNext, srcOffset, dstOffset, size );
11062     }
11063 #endif
11064 
11065 
11066 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
11067 auto operator<=>( BufferCopy2 const & ) const = default;
11068 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy211069     bool operator==( BufferCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
11070     {
11071 #if defined( VULKAN_HPP_USE_REFLECT )
11072       return this->reflect() == rhs.reflect();
11073 #else
11074       return ( sType == rhs.sType )
11075           && ( pNext == rhs.pNext )
11076           && ( srcOffset == rhs.srcOffset )
11077           && ( dstOffset == rhs.dstOffset )
11078           && ( size == rhs.size );
11079 #endif
11080     }
11081 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy211082     bool operator!=( BufferCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
11083     {
11084       return !operator==( rhs );
11085     }
11086 #endif
11087 
11088     public:
11089     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCopy2;
11090     const void * pNext = {};
11091     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
11092     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
11093     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
11094 
11095   };
11096 
11097   template <>
11098   struct CppType<StructureType, StructureType::eBufferCopy2>
11099   {
11100     using Type = BufferCopy2;
11101   };
11102   using BufferCopy2KHR = BufferCopy2;
11103 
11104   struct BufferDeviceAddressCreateInfoEXT
11105   {
11106     using NativeType = VkBufferDeviceAddressCreateInfoEXT;
11107 
11108     static const bool allowDuplicate = false;
11109     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT;
11110 
11111 
11112 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT11113 VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
11114     : pNext( pNext_ ), deviceAddress( deviceAddress_ )
11115     {}
11116 
11117     VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11118 
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT11119     BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
11120       : BufferDeviceAddressCreateInfoEXT( *reinterpret_cast<BufferDeviceAddressCreateInfoEXT const *>( &rhs ) )
11121     {}
11122 
11123 
11124     BufferDeviceAddressCreateInfoEXT & operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11125 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
11126 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT11127     BufferDeviceAddressCreateInfoEXT & operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
11128     {
11129       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const *>( &rhs );
11130       return *this;
11131     }
11132 
11133 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT11134     VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
11135     {
11136       pNext = pNext_;
11137       return *this;
11138     }
11139 
setDeviceAddressVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT11140     VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
11141     {
11142       deviceAddress = deviceAddress_;
11143       return *this;
11144     }
11145 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
11146 
11147 
operator VkBufferDeviceAddressCreateInfoEXT const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT11148     operator VkBufferDeviceAddressCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
11149     {
11150       return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>( this );
11151     }
11152 
operator VkBufferDeviceAddressCreateInfoEXT&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT11153     operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
11154     {
11155       return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>( this );
11156     }
11157 
11158 #if defined( VULKAN_HPP_USE_REFLECT )
11159 #if 14 <= VULKAN_HPP_CPP_VERSION
11160     auto
11161 #else
11162     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &>
11163 #endif
reflectVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT11164       reflect() const VULKAN_HPP_NOEXCEPT
11165     {
11166       return std::tie( sType, pNext, deviceAddress );
11167     }
11168 #endif
11169 
11170 
11171 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
11172 auto operator<=>( BufferDeviceAddressCreateInfoEXT const & ) const = default;
11173 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT11174     bool operator==( BufferDeviceAddressCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
11175     {
11176 #if defined( VULKAN_HPP_USE_REFLECT )
11177       return this->reflect() == rhs.reflect();
11178 #else
11179       return ( sType == rhs.sType )
11180           && ( pNext == rhs.pNext )
11181           && ( deviceAddress == rhs.deviceAddress );
11182 #endif
11183     }
11184 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT11185     bool operator!=( BufferDeviceAddressCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
11186     {
11187       return !operator==( rhs );
11188     }
11189 #endif
11190 
11191     public:
11192     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT;
11193     const void * pNext = {};
11194     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
11195 
11196   };
11197 
11198   template <>
11199   struct CppType<StructureType, StructureType::eBufferDeviceAddressCreateInfoEXT>
11200   {
11201     using Type = BufferDeviceAddressCreateInfoEXT;
11202   };
11203 
11204   struct BufferDeviceAddressInfo
11205   {
11206     using NativeType = VkBufferDeviceAddressInfo;
11207 
11208     static const bool allowDuplicate = false;
11209     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo;
11210 
11211 
11212 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo11213 VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
11214     : pNext( pNext_ ), buffer( buffer_ )
11215     {}
11216 
11217     VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11218 
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo11219     BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
11220       : BufferDeviceAddressInfo( *reinterpret_cast<BufferDeviceAddressInfo const *>( &rhs ) )
11221     {}
11222 
11223 
11224     BufferDeviceAddressInfo & operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11225 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
11226 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo11227     BufferDeviceAddressInfo & operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
11228     {
11229       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const *>( &rhs );
11230       return *this;
11231     }
11232 
11233 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo11234     VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
11235     {
11236       pNext = pNext_;
11237       return *this;
11238     }
11239 
setBufferVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo11240     VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
11241     {
11242       buffer = buffer_;
11243       return *this;
11244     }
11245 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
11246 
11247 
operator VkBufferDeviceAddressInfo const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo11248     operator VkBufferDeviceAddressInfo const &() const VULKAN_HPP_NOEXCEPT
11249     {
11250       return *reinterpret_cast<const VkBufferDeviceAddressInfo*>( this );
11251     }
11252 
operator VkBufferDeviceAddressInfo&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo11253     operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT
11254     {
11255       return *reinterpret_cast<VkBufferDeviceAddressInfo*>( this );
11256     }
11257 
11258 #if defined( VULKAN_HPP_USE_REFLECT )
11259 #if 14 <= VULKAN_HPP_CPP_VERSION
11260     auto
11261 #else
11262     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &>
11263 #endif
reflectVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo11264       reflect() const VULKAN_HPP_NOEXCEPT
11265     {
11266       return std::tie( sType, pNext, buffer );
11267     }
11268 #endif
11269 
11270 
11271 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
11272 auto operator<=>( BufferDeviceAddressInfo const & ) const = default;
11273 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo11274     bool operator==( BufferDeviceAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
11275     {
11276 #if defined( VULKAN_HPP_USE_REFLECT )
11277       return this->reflect() == rhs.reflect();
11278 #else
11279       return ( sType == rhs.sType )
11280           && ( pNext == rhs.pNext )
11281           && ( buffer == rhs.buffer );
11282 #endif
11283     }
11284 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo11285     bool operator!=( BufferDeviceAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
11286     {
11287       return !operator==( rhs );
11288     }
11289 #endif
11290 
11291     public:
11292     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo;
11293     const void * pNext = {};
11294     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
11295 
11296   };
11297 
11298   template <>
11299   struct CppType<StructureType, StructureType::eBufferDeviceAddressInfo>
11300   {
11301     using Type = BufferDeviceAddressInfo;
11302   };
11303   using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
11304   using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
11305 
11306   struct BufferImageCopy
11307   {
11308     using NativeType = VkBufferImageCopy;
11309 
11310 
11311 
11312 
11313 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy11314 VULKAN_HPP_CONSTEXPR BufferImageCopy(VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, uint32_t bufferRowLength_ = {}, uint32_t bufferImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT
11315     : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
11316     {}
11317 
11318     VULKAN_HPP_CONSTEXPR BufferImageCopy( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11319 
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy11320     BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
11321       : BufferImageCopy( *reinterpret_cast<BufferImageCopy const *>( &rhs ) )
11322     {}
11323 
11324 
11325     BufferImageCopy & operator=( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11326 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
11327 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy11328     BufferImageCopy & operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
11329     {
11330       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy const *>( &rhs );
11331       return *this;
11332     }
11333 
11334 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy11335     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
11336     {
11337       bufferOffset = bufferOffset_;
11338       return *this;
11339     }
11340 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy11341     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
11342     {
11343       bufferRowLength = bufferRowLength_;
11344       return *this;
11345     }
11346 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy11347     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
11348     {
11349       bufferImageHeight = bufferImageHeight_;
11350       return *this;
11351     }
11352 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy11353     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
11354     {
11355       imageSubresource = imageSubresource_;
11356       return *this;
11357     }
11358 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy11359     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
11360     {
11361       imageOffset = imageOffset_;
11362       return *this;
11363     }
11364 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy11365     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
11366     {
11367       imageExtent = imageExtent_;
11368       return *this;
11369     }
11370 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
11371 
11372 
operator VkBufferImageCopy const&VULKAN_HPP_NAMESPACE::BufferImageCopy11373     operator VkBufferImageCopy const &() const VULKAN_HPP_NOEXCEPT
11374     {
11375       return *reinterpret_cast<const VkBufferImageCopy*>( this );
11376     }
11377 
operator VkBufferImageCopy&VULKAN_HPP_NAMESPACE::BufferImageCopy11378     operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT
11379     {
11380       return *reinterpret_cast<VkBufferImageCopy*>( this );
11381     }
11382 
11383 #if defined( VULKAN_HPP_USE_REFLECT )
11384 #if 14 <= VULKAN_HPP_CPP_VERSION
11385     auto
11386 #else
11387     std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
11388 #endif
reflectVULKAN_HPP_NAMESPACE::BufferImageCopy11389       reflect() const VULKAN_HPP_NOEXCEPT
11390     {
11391       return std::tie( bufferOffset, bufferRowLength, bufferImageHeight, imageSubresource, imageOffset, imageExtent );
11392     }
11393 #endif
11394 
11395 
11396 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
11397 auto operator<=>( BufferImageCopy const & ) const = default;
11398 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy11399     bool operator==( BufferImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
11400     {
11401 #if defined( VULKAN_HPP_USE_REFLECT )
11402       return this->reflect() == rhs.reflect();
11403 #else
11404       return ( bufferOffset == rhs.bufferOffset )
11405           && ( bufferRowLength == rhs.bufferRowLength )
11406           && ( bufferImageHeight == rhs.bufferImageHeight )
11407           && ( imageSubresource == rhs.imageSubresource )
11408           && ( imageOffset == rhs.imageOffset )
11409           && ( imageExtent == rhs.imageExtent );
11410 #endif
11411     }
11412 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy11413     bool operator!=( BufferImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
11414     {
11415       return !operator==( rhs );
11416     }
11417 #endif
11418 
11419     public:
11420     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
11421     uint32_t bufferRowLength = {};
11422     uint32_t bufferImageHeight = {};
11423     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
11424     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
11425     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
11426 
11427   };
11428 
11429   struct BufferImageCopy2
11430   {
11431     using NativeType = VkBufferImageCopy2;
11432 
11433     static const bool allowDuplicate = false;
11434     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferImageCopy2;
11435 
11436 
11437 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferImageCopy2VULKAN_HPP_NAMESPACE::BufferImageCopy211438 VULKAN_HPP_CONSTEXPR BufferImageCopy2(VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, uint32_t bufferRowLength_ = {}, uint32_t bufferImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
11439     : pNext( pNext_ ), bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
11440     {}
11441 
11442     VULKAN_HPP_CONSTEXPR BufferImageCopy2( BufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11443 
BufferImageCopy2VULKAN_HPP_NAMESPACE::BufferImageCopy211444     BufferImageCopy2( VkBufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
11445       : BufferImageCopy2( *reinterpret_cast<BufferImageCopy2 const *>( &rhs ) )
11446     {}
11447 
11448 
11449     BufferImageCopy2 & operator=( BufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11450 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
11451 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy211452     BufferImageCopy2 & operator=( VkBufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
11453     {
11454       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy2 const *>( &rhs );
11455       return *this;
11456     }
11457 
11458 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferImageCopy211459     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
11460     {
11461       pNext = pNext_;
11462       return *this;
11463     }
11464 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy211465     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
11466     {
11467       bufferOffset = bufferOffset_;
11468       return *this;
11469     }
11470 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy211471     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
11472     {
11473       bufferRowLength = bufferRowLength_;
11474       return *this;
11475     }
11476 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy211477     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
11478     {
11479       bufferImageHeight = bufferImageHeight_;
11480       return *this;
11481     }
11482 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy211483     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
11484     {
11485       imageSubresource = imageSubresource_;
11486       return *this;
11487     }
11488 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy211489     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
11490     {
11491       imageOffset = imageOffset_;
11492       return *this;
11493     }
11494 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy211495     VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
11496     {
11497       imageExtent = imageExtent_;
11498       return *this;
11499     }
11500 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
11501 
11502 
operator VkBufferImageCopy2 const&VULKAN_HPP_NAMESPACE::BufferImageCopy211503     operator VkBufferImageCopy2 const &() const VULKAN_HPP_NOEXCEPT
11504     {
11505       return *reinterpret_cast<const VkBufferImageCopy2*>( this );
11506     }
11507 
operator VkBufferImageCopy2&VULKAN_HPP_NAMESPACE::BufferImageCopy211508     operator VkBufferImageCopy2 &() VULKAN_HPP_NOEXCEPT
11509     {
11510       return *reinterpret_cast<VkBufferImageCopy2*>( this );
11511     }
11512 
11513 #if defined( VULKAN_HPP_USE_REFLECT )
11514 #if 14 <= VULKAN_HPP_CPP_VERSION
11515     auto
11516 #else
11517     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
11518 #endif
reflectVULKAN_HPP_NAMESPACE::BufferImageCopy211519       reflect() const VULKAN_HPP_NOEXCEPT
11520     {
11521       return std::tie( sType, pNext, bufferOffset, bufferRowLength, bufferImageHeight, imageSubresource, imageOffset, imageExtent );
11522     }
11523 #endif
11524 
11525 
11526 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
11527 auto operator<=>( BufferImageCopy2 const & ) const = default;
11528 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy211529     bool operator==( BufferImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
11530     {
11531 #if defined( VULKAN_HPP_USE_REFLECT )
11532       return this->reflect() == rhs.reflect();
11533 #else
11534       return ( sType == rhs.sType )
11535           && ( pNext == rhs.pNext )
11536           && ( bufferOffset == rhs.bufferOffset )
11537           && ( bufferRowLength == rhs.bufferRowLength )
11538           && ( bufferImageHeight == rhs.bufferImageHeight )
11539           && ( imageSubresource == rhs.imageSubresource )
11540           && ( imageOffset == rhs.imageOffset )
11541           && ( imageExtent == rhs.imageExtent );
11542 #endif
11543     }
11544 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy211545     bool operator!=( BufferImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
11546     {
11547       return !operator==( rhs );
11548     }
11549 #endif
11550 
11551     public:
11552     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferImageCopy2;
11553     const void * pNext = {};
11554     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
11555     uint32_t bufferRowLength = {};
11556     uint32_t bufferImageHeight = {};
11557     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
11558     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
11559     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
11560 
11561   };
11562 
11563   template <>
11564   struct CppType<StructureType, StructureType::eBufferImageCopy2>
11565   {
11566     using Type = BufferImageCopy2;
11567   };
11568   using BufferImageCopy2KHR = BufferImageCopy2;
11569 
11570   struct BufferMemoryBarrier
11571   {
11572     using NativeType = VkBufferMemoryBarrier;
11573 
11574     static const bool allowDuplicate = false;
11575     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier;
11576 
11577 
11578 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11579 VULKAN_HPP_CONSTEXPR BufferMemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
11580     : pNext( pNext_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), buffer( buffer_ ), offset( offset_ ), size( size_ )
11581     {}
11582 
11583     VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11584 
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11585     BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
11586       : BufferMemoryBarrier( *reinterpret_cast<BufferMemoryBarrier const *>( &rhs ) )
11587     {}
11588 
11589 
11590     BufferMemoryBarrier & operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11591 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
11592 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier11593     BufferMemoryBarrier & operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
11594     {
11595       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const *>( &rhs );
11596       return *this;
11597     }
11598 
11599 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11600     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
11601     {
11602       pNext = pNext_;
11603       return *this;
11604     }
11605 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11606     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
11607     {
11608       srcAccessMask = srcAccessMask_;
11609       return *this;
11610     }
11611 
setDstAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11612     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
11613     {
11614       dstAccessMask = dstAccessMask_;
11615       return *this;
11616     }
11617 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11618     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
11619     {
11620       srcQueueFamilyIndex = srcQueueFamilyIndex_;
11621       return *this;
11622     }
11623 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11624     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
11625     {
11626       dstQueueFamilyIndex = dstQueueFamilyIndex_;
11627       return *this;
11628     }
11629 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11630     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
11631     {
11632       buffer = buffer_;
11633       return *this;
11634     }
11635 
setOffsetVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11636     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
11637     {
11638       offset = offset_;
11639       return *this;
11640     }
11641 
setSizeVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11642     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
11643     {
11644       size = size_;
11645       return *this;
11646     }
11647 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
11648 
11649 
operator VkBufferMemoryBarrier const&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier11650     operator VkBufferMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
11651     {
11652       return *reinterpret_cast<const VkBufferMemoryBarrier*>( this );
11653     }
11654 
operator VkBufferMemoryBarrier&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier11655     operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT
11656     {
11657       return *reinterpret_cast<VkBufferMemoryBarrier*>( this );
11658     }
11659 
11660 #if defined( VULKAN_HPP_USE_REFLECT )
11661 #if 14 <= VULKAN_HPP_CPP_VERSION
11662     auto
11663 #else
11664     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccessFlags const &, VULKAN_HPP_NAMESPACE::AccessFlags const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
11665 #endif
reflectVULKAN_HPP_NAMESPACE::BufferMemoryBarrier11666       reflect() const VULKAN_HPP_NOEXCEPT
11667     {
11668       return std::tie( sType, pNext, srcAccessMask, dstAccessMask, srcQueueFamilyIndex, dstQueueFamilyIndex, buffer, offset, size );
11669     }
11670 #endif
11671 
11672 
11673 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
11674 auto operator<=>( BufferMemoryBarrier const & ) const = default;
11675 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryBarrier11676     bool operator==( BufferMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
11677     {
11678 #if defined( VULKAN_HPP_USE_REFLECT )
11679       return this->reflect() == rhs.reflect();
11680 #else
11681       return ( sType == rhs.sType )
11682           && ( pNext == rhs.pNext )
11683           && ( srcAccessMask == rhs.srcAccessMask )
11684           && ( dstAccessMask == rhs.dstAccessMask )
11685           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
11686           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
11687           && ( buffer == rhs.buffer )
11688           && ( offset == rhs.offset )
11689           && ( size == rhs.size );
11690 #endif
11691     }
11692 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryBarrier11693     bool operator!=( BufferMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
11694     {
11695       return !operator==( rhs );
11696     }
11697 #endif
11698 
11699     public:
11700     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier;
11701     const void * pNext = {};
11702     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
11703     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
11704     uint32_t srcQueueFamilyIndex = {};
11705     uint32_t dstQueueFamilyIndex = {};
11706     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
11707     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
11708     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
11709 
11710   };
11711 
11712   template <>
11713   struct CppType<StructureType, StructureType::eBufferMemoryBarrier>
11714   {
11715     using Type = BufferMemoryBarrier;
11716   };
11717 
11718   struct BufferMemoryBarrier2
11719   {
11720     using NativeType = VkBufferMemoryBarrier2;
11721 
11722     static const bool allowDuplicate = false;
11723     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier2;
11724 
11725 
11726 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryBarrier2VULKAN_HPP_NAMESPACE::BufferMemoryBarrier211727 VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {}, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
11728     : pNext( pNext_ ), srcStageMask( srcStageMask_ ), srcAccessMask( srcAccessMask_ ), dstStageMask( dstStageMask_ ), dstAccessMask( dstAccessMask_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), buffer( buffer_ ), offset( offset_ ), size( size_ )
11729     {}
11730 
11731     VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2( BufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11732 
BufferMemoryBarrier2VULKAN_HPP_NAMESPACE::BufferMemoryBarrier211733     BufferMemoryBarrier2( VkBufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
11734       : BufferMemoryBarrier2( *reinterpret_cast<BufferMemoryBarrier2 const *>( &rhs ) )
11735     {}
11736 
11737 
11738     BufferMemoryBarrier2 & operator=( BufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11739 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
11740 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier211741     BufferMemoryBarrier2 & operator=( VkBufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
11742     {
11743       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 const *>( &rhs );
11744       return *this;
11745     }
11746 
11747 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211748     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
11749     {
11750       pNext = pNext_;
11751       return *this;
11752     }
11753 
setSrcStageMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211754     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ ) VULKAN_HPP_NOEXCEPT
11755     {
11756       srcStageMask = srcStageMask_;
11757       return *this;
11758     }
11759 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211760     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
11761     {
11762       srcAccessMask = srcAccessMask_;
11763       return *this;
11764     }
11765 
setDstStageMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211766     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ ) VULKAN_HPP_NOEXCEPT
11767     {
11768       dstStageMask = dstStageMask_;
11769       return *this;
11770     }
11771 
setDstAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211772     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
11773     {
11774       dstAccessMask = dstAccessMask_;
11775       return *this;
11776     }
11777 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211778     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
11779     {
11780       srcQueueFamilyIndex = srcQueueFamilyIndex_;
11781       return *this;
11782     }
11783 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211784     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
11785     {
11786       dstQueueFamilyIndex = dstQueueFamilyIndex_;
11787       return *this;
11788     }
11789 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211790     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
11791     {
11792       buffer = buffer_;
11793       return *this;
11794     }
11795 
setOffsetVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211796     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
11797     {
11798       offset = offset_;
11799       return *this;
11800     }
11801 
setSizeVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211802     VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
11803     {
11804       size = size_;
11805       return *this;
11806     }
11807 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
11808 
11809 
operator VkBufferMemoryBarrier2 const&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier211810     operator VkBufferMemoryBarrier2 const &() const VULKAN_HPP_NOEXCEPT
11811     {
11812       return *reinterpret_cast<const VkBufferMemoryBarrier2*>( this );
11813     }
11814 
operator VkBufferMemoryBarrier2&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier211815     operator VkBufferMemoryBarrier2 &() VULKAN_HPP_NOEXCEPT
11816     {
11817       return *reinterpret_cast<VkBufferMemoryBarrier2*>( this );
11818     }
11819 
11820 #if defined( VULKAN_HPP_USE_REFLECT )
11821 #if 14 <= VULKAN_HPP_CPP_VERSION
11822     auto
11823 #else
11824     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &, VULKAN_HPP_NAMESPACE::AccessFlags2 const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &, VULKAN_HPP_NAMESPACE::AccessFlags2 const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
11825 #endif
reflectVULKAN_HPP_NAMESPACE::BufferMemoryBarrier211826       reflect() const VULKAN_HPP_NOEXCEPT
11827     {
11828       return std::tie( sType, pNext, srcStageMask, srcAccessMask, dstStageMask, dstAccessMask, srcQueueFamilyIndex, dstQueueFamilyIndex, buffer, offset, size );
11829     }
11830 #endif
11831 
11832 
11833 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
11834 auto operator<=>( BufferMemoryBarrier2 const & ) const = default;
11835 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryBarrier211836     bool operator==( BufferMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
11837     {
11838 #if defined( VULKAN_HPP_USE_REFLECT )
11839       return this->reflect() == rhs.reflect();
11840 #else
11841       return ( sType == rhs.sType )
11842           && ( pNext == rhs.pNext )
11843           && ( srcStageMask == rhs.srcStageMask )
11844           && ( srcAccessMask == rhs.srcAccessMask )
11845           && ( dstStageMask == rhs.dstStageMask )
11846           && ( dstAccessMask == rhs.dstAccessMask )
11847           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
11848           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
11849           && ( buffer == rhs.buffer )
11850           && ( offset == rhs.offset )
11851           && ( size == rhs.size );
11852 #endif
11853     }
11854 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryBarrier211855     bool operator!=( BufferMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
11856     {
11857       return !operator==( rhs );
11858     }
11859 #endif
11860 
11861     public:
11862     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier2;
11863     const void * pNext = {};
11864     VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask = {};
11865     VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask = {};
11866     VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask = {};
11867     VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask = {};
11868     uint32_t srcQueueFamilyIndex = {};
11869     uint32_t dstQueueFamilyIndex = {};
11870     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
11871     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
11872     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
11873 
11874   };
11875 
11876   template <>
11877   struct CppType<StructureType, StructureType::eBufferMemoryBarrier2>
11878   {
11879     using Type = BufferMemoryBarrier2;
11880   };
11881   using BufferMemoryBarrier2KHR = BufferMemoryBarrier2;
11882 
11883   struct BufferMemoryRequirementsInfo2
11884   {
11885     using NativeType = VkBufferMemoryRequirementsInfo2;
11886 
11887     static const bool allowDuplicate = false;
11888     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2;
11889 
11890 
11891 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo211892 VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
11893     : pNext( pNext_ ), buffer( buffer_ )
11894     {}
11895 
11896     VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11897 
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo211898     BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
11899       : BufferMemoryRequirementsInfo2( *reinterpret_cast<BufferMemoryRequirementsInfo2 const *>( &rhs ) )
11900     {}
11901 
11902 
11903     BufferMemoryRequirementsInfo2 & operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11904 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
11905 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo211906     BufferMemoryRequirementsInfo2 & operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
11907     {
11908       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const *>( &rhs );
11909       return *this;
11910     }
11911 
11912 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo211913     VULKAN_HPP_CONSTEXPR_14 BufferMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
11914     {
11915       pNext = pNext_;
11916       return *this;
11917     }
11918 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo211919     VULKAN_HPP_CONSTEXPR_14 BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
11920     {
11921       buffer = buffer_;
11922       return *this;
11923     }
11924 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
11925 
11926 
operator VkBufferMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo211927     operator VkBufferMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
11928     {
11929       return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( this );
11930     }
11931 
operator VkBufferMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo211932     operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
11933     {
11934       return *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>( this );
11935     }
11936 
11937 #if defined( VULKAN_HPP_USE_REFLECT )
11938 #if 14 <= VULKAN_HPP_CPP_VERSION
11939     auto
11940 #else
11941     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &>
11942 #endif
reflectVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo211943       reflect() const VULKAN_HPP_NOEXCEPT
11944     {
11945       return std::tie( sType, pNext, buffer );
11946     }
11947 #endif
11948 
11949 
11950 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
11951 auto operator<=>( BufferMemoryRequirementsInfo2 const & ) const = default;
11952 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo211953     bool operator==( BufferMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
11954     {
11955 #if defined( VULKAN_HPP_USE_REFLECT )
11956       return this->reflect() == rhs.reflect();
11957 #else
11958       return ( sType == rhs.sType )
11959           && ( pNext == rhs.pNext )
11960           && ( buffer == rhs.buffer );
11961 #endif
11962     }
11963 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo211964     bool operator!=( BufferMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
11965     {
11966       return !operator==( rhs );
11967     }
11968 #endif
11969 
11970     public:
11971     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2;
11972     const void * pNext = {};
11973     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
11974 
11975   };
11976 
11977   template <>
11978   struct CppType<StructureType, StructureType::eBufferMemoryRequirementsInfo2>
11979   {
11980     using Type = BufferMemoryRequirementsInfo2;
11981   };
11982   using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
11983 
11984   struct BufferOpaqueCaptureAddressCreateInfo
11985   {
11986     using NativeType = VkBufferOpaqueCaptureAddressCreateInfo;
11987 
11988     static const bool allowDuplicate = false;
11989     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
11990 
11991 
11992 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo11993 VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo(uint64_t opaqueCaptureAddress_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
11994     : pNext( pNext_ ), opaqueCaptureAddress( opaqueCaptureAddress_ )
11995     {}
11996 
11997     VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11998 
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo11999     BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
12000       : BufferOpaqueCaptureAddressCreateInfo( *reinterpret_cast<BufferOpaqueCaptureAddressCreateInfo const *>( &rhs ) )
12001     {}
12002 
12003 
12004     BufferOpaqueCaptureAddressCreateInfo & operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12005 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
12006 
operator =VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo12007     BufferOpaqueCaptureAddressCreateInfo & operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
12008     {
12009       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const *>( &rhs );
12010       return *this;
12011     }
12012 
12013 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo12014     VULKAN_HPP_CONSTEXPR_14 BufferOpaqueCaptureAddressCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
12015     {
12016       pNext = pNext_;
12017       return *this;
12018     }
12019 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo12020     VULKAN_HPP_CONSTEXPR_14 BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
12021     {
12022       opaqueCaptureAddress = opaqueCaptureAddress_;
12023       return *this;
12024     }
12025 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
12026 
12027 
operator VkBufferOpaqueCaptureAddressCreateInfo const&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo12028     operator VkBufferOpaqueCaptureAddressCreateInfo const &() const VULKAN_HPP_NOEXCEPT
12029     {
12030       return *reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>( this );
12031     }
12032 
operator VkBufferOpaqueCaptureAddressCreateInfo&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo12033     operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT
12034     {
12035       return *reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>( this );
12036     }
12037 
12038 #if defined( VULKAN_HPP_USE_REFLECT )
12039 #if 14 <= VULKAN_HPP_CPP_VERSION
12040     auto
12041 #else
12042     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
12043 #endif
reflectVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo12044       reflect() const VULKAN_HPP_NOEXCEPT
12045     {
12046       return std::tie( sType, pNext, opaqueCaptureAddress );
12047     }
12048 #endif
12049 
12050 
12051 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
12052 auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const & ) const = default;
12053 #else
operator ==VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo12054     bool operator==( BufferOpaqueCaptureAddressCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
12055     {
12056 #if defined( VULKAN_HPP_USE_REFLECT )
12057       return this->reflect() == rhs.reflect();
12058 #else
12059       return ( sType == rhs.sType )
12060           && ( pNext == rhs.pNext )
12061           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
12062 #endif
12063     }
12064 
operator !=VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo12065     bool operator!=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
12066     {
12067       return !operator==( rhs );
12068     }
12069 #endif
12070 
12071     public:
12072     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
12073     const void * pNext = {};
12074     uint64_t opaqueCaptureAddress = {};
12075 
12076   };
12077 
12078   template <>
12079   struct CppType<StructureType, StructureType::eBufferOpaqueCaptureAddressCreateInfo>
12080   {
12081     using Type = BufferOpaqueCaptureAddressCreateInfo;
12082   };
12083   using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
12084 
12085   struct BufferUsageFlags2CreateInfoKHR
12086   {
12087     using NativeType = VkBufferUsageFlags2CreateInfoKHR;
12088 
12089     static const bool allowDuplicate = false;
12090     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferUsageFlags2CreateInfoKHR;
12091 
12092 
12093 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferUsageFlags2CreateInfoKHRVULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR12094 VULKAN_HPP_CONSTEXPR BufferUsageFlags2CreateInfoKHR(VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR usage_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
12095     : pNext( pNext_ ), usage( usage_ )
12096     {}
12097 
12098     VULKAN_HPP_CONSTEXPR BufferUsageFlags2CreateInfoKHR( BufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12099 
BufferUsageFlags2CreateInfoKHRVULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR12100     BufferUsageFlags2CreateInfoKHR( VkBufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
12101       : BufferUsageFlags2CreateInfoKHR( *reinterpret_cast<BufferUsageFlags2CreateInfoKHR const *>( &rhs ) )
12102     {}
12103 
12104 
12105     BufferUsageFlags2CreateInfoKHR & operator=( BufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12106 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
12107 
operator =VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR12108     BufferUsageFlags2CreateInfoKHR & operator=( VkBufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
12109     {
12110       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR const *>( &rhs );
12111       return *this;
12112     }
12113 
12114 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR12115     VULKAN_HPP_CONSTEXPR_14 BufferUsageFlags2CreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
12116     {
12117       pNext = pNext_;
12118       return *this;
12119     }
12120 
setUsageVULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR12121     VULKAN_HPP_CONSTEXPR_14 BufferUsageFlags2CreateInfoKHR & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR usage_ ) VULKAN_HPP_NOEXCEPT
12122     {
12123       usage = usage_;
12124       return *this;
12125     }
12126 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
12127 
12128 
operator VkBufferUsageFlags2CreateInfoKHR const&VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR12129     operator VkBufferUsageFlags2CreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
12130     {
12131       return *reinterpret_cast<const VkBufferUsageFlags2CreateInfoKHR*>( this );
12132     }
12133 
operator VkBufferUsageFlags2CreateInfoKHR&VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR12134     operator VkBufferUsageFlags2CreateInfoKHR &() VULKAN_HPP_NOEXCEPT
12135     {
12136       return *reinterpret_cast<VkBufferUsageFlags2CreateInfoKHR*>( this );
12137     }
12138 
12139 #if defined( VULKAN_HPP_USE_REFLECT )
12140 #if 14 <= VULKAN_HPP_CPP_VERSION
12141     auto
12142 #else
12143     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR const &>
12144 #endif
reflectVULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR12145       reflect() const VULKAN_HPP_NOEXCEPT
12146     {
12147       return std::tie( sType, pNext, usage );
12148     }
12149 #endif
12150 
12151 
12152 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
12153 auto operator<=>( BufferUsageFlags2CreateInfoKHR const & ) const = default;
12154 #else
operator ==VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR12155     bool operator==( BufferUsageFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
12156     {
12157 #if defined( VULKAN_HPP_USE_REFLECT )
12158       return this->reflect() == rhs.reflect();
12159 #else
12160       return ( sType == rhs.sType )
12161           && ( pNext == rhs.pNext )
12162           && ( usage == rhs.usage );
12163 #endif
12164     }
12165 
operator !=VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR12166     bool operator!=( BufferUsageFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
12167     {
12168       return !operator==( rhs );
12169     }
12170 #endif
12171 
12172     public:
12173     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferUsageFlags2CreateInfoKHR;
12174     const void * pNext = {};
12175     VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR usage = {};
12176 
12177   };
12178 
12179   template <>
12180   struct CppType<StructureType, StructureType::eBufferUsageFlags2CreateInfoKHR>
12181   {
12182     using Type = BufferUsageFlags2CreateInfoKHR;
12183   };
12184 
12185   struct BufferViewCreateInfo
12186   {
12187     using NativeType = VkBufferViewCreateInfo;
12188 
12189     static const bool allowDuplicate = false;
12190     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo;
12191 
12192 
12193 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo12194 VULKAN_HPP_CONSTEXPR BufferViewCreateInfo(VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
12195     : pNext( pNext_ ), flags( flags_ ), buffer( buffer_ ), format( format_ ), offset( offset_ ), range( range_ )
12196     {}
12197 
12198     VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12199 
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo12200     BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
12201       : BufferViewCreateInfo( *reinterpret_cast<BufferViewCreateInfo const *>( &rhs ) )
12202     {}
12203 
12204 
12205     BufferViewCreateInfo & operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12206 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
12207 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo12208     BufferViewCreateInfo & operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
12209     {
12210       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const *>( &rhs );
12211       return *this;
12212     }
12213 
12214 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::BufferViewCreateInfo12215     VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
12216     {
12217       pNext = pNext_;
12218       return *this;
12219     }
12220 
setFlagsVULKAN_HPP_NAMESPACE::BufferViewCreateInfo12221     VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
12222     {
12223       flags = flags_;
12224       return *this;
12225     }
12226 
setBufferVULKAN_HPP_NAMESPACE::BufferViewCreateInfo12227     VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
12228     {
12229       buffer = buffer_;
12230       return *this;
12231     }
12232 
setFormatVULKAN_HPP_NAMESPACE::BufferViewCreateInfo12233     VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
12234     {
12235       format = format_;
12236       return *this;
12237     }
12238 
setOffsetVULKAN_HPP_NAMESPACE::BufferViewCreateInfo12239     VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
12240     {
12241       offset = offset_;
12242       return *this;
12243     }
12244 
setRangeVULKAN_HPP_NAMESPACE::BufferViewCreateInfo12245     VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
12246     {
12247       range = range_;
12248       return *this;
12249     }
12250 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
12251 
12252 
operator VkBufferViewCreateInfo const&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo12253     operator VkBufferViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
12254     {
12255       return *reinterpret_cast<const VkBufferViewCreateInfo*>( this );
12256     }
12257 
operator VkBufferViewCreateInfo&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo12258     operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT
12259     {
12260       return *reinterpret_cast<VkBufferViewCreateInfo*>( this );
12261     }
12262 
12263 #if defined( VULKAN_HPP_USE_REFLECT )
12264 #if 14 <= VULKAN_HPP_CPP_VERSION
12265     auto
12266 #else
12267     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferViewCreateFlags const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
12268 #endif
reflectVULKAN_HPP_NAMESPACE::BufferViewCreateInfo12269       reflect() const VULKAN_HPP_NOEXCEPT
12270     {
12271       return std::tie( sType, pNext, flags, buffer, format, offset, range );
12272     }
12273 #endif
12274 
12275 
12276 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
12277 auto operator<=>( BufferViewCreateInfo const & ) const = default;
12278 #else
operator ==VULKAN_HPP_NAMESPACE::BufferViewCreateInfo12279     bool operator==( BufferViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
12280     {
12281 #if defined( VULKAN_HPP_USE_REFLECT )
12282       return this->reflect() == rhs.reflect();
12283 #else
12284       return ( sType == rhs.sType )
12285           && ( pNext == rhs.pNext )
12286           && ( flags == rhs.flags )
12287           && ( buffer == rhs.buffer )
12288           && ( format == rhs.format )
12289           && ( offset == rhs.offset )
12290           && ( range == rhs.range );
12291 #endif
12292     }
12293 
operator !=VULKAN_HPP_NAMESPACE::BufferViewCreateInfo12294     bool operator!=( BufferViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
12295     {
12296       return !operator==( rhs );
12297     }
12298 #endif
12299 
12300     public:
12301     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo;
12302     const void * pNext = {};
12303     VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {};
12304     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
12305     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
12306     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
12307     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
12308 
12309   };
12310 
12311   template <>
12312   struct CppType<StructureType, StructureType::eBufferViewCreateInfo>
12313   {
12314     using Type = BufferViewCreateInfo;
12315   };
12316 
12317   struct CalibratedTimestampInfoEXT
12318   {
12319     using NativeType = VkCalibratedTimestampInfoEXT;
12320 
12321     static const bool allowDuplicate = false;
12322     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT;
12323 
12324 
12325 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT12326 VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT(VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
12327     : pNext( pNext_ ), timeDomain( timeDomain_ )
12328     {}
12329 
12330     VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12331 
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT12332     CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
12333       : CalibratedTimestampInfoEXT( *reinterpret_cast<CalibratedTimestampInfoEXT const *>( &rhs ) )
12334     {}
12335 
12336 
12337     CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12338 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
12339 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT12340     CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
12341     {
12342       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const *>( &rhs );
12343       return *this;
12344     }
12345 
12346 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT12347     VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
12348     {
12349       pNext = pNext_;
12350       return *this;
12351     }
12352 
setTimeDomainVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT12353     VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT
12354     {
12355       timeDomain = timeDomain_;
12356       return *this;
12357     }
12358 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
12359 
12360 
operator VkCalibratedTimestampInfoEXT const&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT12361     operator VkCalibratedTimestampInfoEXT const &() const VULKAN_HPP_NOEXCEPT
12362     {
12363       return *reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( this );
12364     }
12365 
operator VkCalibratedTimestampInfoEXT&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT12366     operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT
12367     {
12368       return *reinterpret_cast<VkCalibratedTimestampInfoEXT*>( this );
12369     }
12370 
12371 #if defined( VULKAN_HPP_USE_REFLECT )
12372 #if 14 <= VULKAN_HPP_CPP_VERSION
12373     auto
12374 #else
12375     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::TimeDomainEXT const &>
12376 #endif
reflectVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT12377       reflect() const VULKAN_HPP_NOEXCEPT
12378     {
12379       return std::tie( sType, pNext, timeDomain );
12380     }
12381 #endif
12382 
12383 
12384 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
12385 auto operator<=>( CalibratedTimestampInfoEXT const & ) const = default;
12386 #else
operator ==VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT12387     bool operator==( CalibratedTimestampInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
12388     {
12389 #if defined( VULKAN_HPP_USE_REFLECT )
12390       return this->reflect() == rhs.reflect();
12391 #else
12392       return ( sType == rhs.sType )
12393           && ( pNext == rhs.pNext )
12394           && ( timeDomain == rhs.timeDomain );
12395 #endif
12396     }
12397 
operator !=VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT12398     bool operator!=( CalibratedTimestampInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
12399     {
12400       return !operator==( rhs );
12401     }
12402 #endif
12403 
12404     public:
12405     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT;
12406     const void * pNext = {};
12407     VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice;
12408 
12409   };
12410 
12411   template <>
12412   struct CppType<StructureType, StructureType::eCalibratedTimestampInfoEXT>
12413   {
12414     using Type = CalibratedTimestampInfoEXT;
12415   };
12416 
12417   struct CheckpointData2NV
12418   {
12419     using NativeType = VkCheckpointData2NV;
12420 
12421     static const bool allowDuplicate = false;
12422     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointData2NV;
12423 
12424 
12425 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CheckpointData2NVVULKAN_HPP_NAMESPACE::CheckpointData2NV12426 VULKAN_HPP_CONSTEXPR CheckpointData2NV(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage_ = {}, void * pCheckpointMarker_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
12427     : pNext( pNext_ ), stage( stage_ ), pCheckpointMarker( pCheckpointMarker_ )
12428     {}
12429 
12430     VULKAN_HPP_CONSTEXPR CheckpointData2NV( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12431 
CheckpointData2NVVULKAN_HPP_NAMESPACE::CheckpointData2NV12432     CheckpointData2NV( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT
12433       : CheckpointData2NV( *reinterpret_cast<CheckpointData2NV const *>( &rhs ) )
12434     {}
12435 
12436 
12437     CheckpointData2NV & operator=( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12438 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
12439 
operator =VULKAN_HPP_NAMESPACE::CheckpointData2NV12440     CheckpointData2NV & operator=( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT
12441     {
12442       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointData2NV const *>( &rhs );
12443       return *this;
12444     }
12445 
12446 
operator VkCheckpointData2NV const&VULKAN_HPP_NAMESPACE::CheckpointData2NV12447     operator VkCheckpointData2NV const &() const VULKAN_HPP_NOEXCEPT
12448     {
12449       return *reinterpret_cast<const VkCheckpointData2NV*>( this );
12450     }
12451 
operator VkCheckpointData2NV&VULKAN_HPP_NAMESPACE::CheckpointData2NV12452     operator VkCheckpointData2NV &() VULKAN_HPP_NOEXCEPT
12453     {
12454       return *reinterpret_cast<VkCheckpointData2NV*>( this );
12455     }
12456 
12457 #if defined( VULKAN_HPP_USE_REFLECT )
12458 #if 14 <= VULKAN_HPP_CPP_VERSION
12459     auto
12460 #else
12461     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &, void * const &>
12462 #endif
reflectVULKAN_HPP_NAMESPACE::CheckpointData2NV12463       reflect() const VULKAN_HPP_NOEXCEPT
12464     {
12465       return std::tie( sType, pNext, stage, pCheckpointMarker );
12466     }
12467 #endif
12468 
12469 
12470 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
12471 auto operator<=>( CheckpointData2NV const & ) const = default;
12472 #else
operator ==VULKAN_HPP_NAMESPACE::CheckpointData2NV12473     bool operator==( CheckpointData2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
12474     {
12475 #if defined( VULKAN_HPP_USE_REFLECT )
12476       return this->reflect() == rhs.reflect();
12477 #else
12478       return ( sType == rhs.sType )
12479           && ( pNext == rhs.pNext )
12480           && ( stage == rhs.stage )
12481           && ( pCheckpointMarker == rhs.pCheckpointMarker );
12482 #endif
12483     }
12484 
operator !=VULKAN_HPP_NAMESPACE::CheckpointData2NV12485     bool operator!=( CheckpointData2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
12486     {
12487       return !operator==( rhs );
12488     }
12489 #endif
12490 
12491     public:
12492     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointData2NV;
12493     void * pNext = {};
12494     VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage = {};
12495     void * pCheckpointMarker = {};
12496 
12497   };
12498 
12499   template <>
12500   struct CppType<StructureType, StructureType::eCheckpointData2NV>
12501   {
12502     using Type = CheckpointData2NV;
12503   };
12504 
12505   struct CheckpointDataNV
12506   {
12507     using NativeType = VkCheckpointDataNV;
12508 
12509     static const bool allowDuplicate = false;
12510     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV;
12511 
12512 
12513 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV12514 VULKAN_HPP_CONSTEXPR CheckpointDataNV(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe, void * pCheckpointMarker_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
12515     : pNext( pNext_ ), stage( stage_ ), pCheckpointMarker( pCheckpointMarker_ )
12516     {}
12517 
12518     VULKAN_HPP_CONSTEXPR CheckpointDataNV( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12519 
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV12520     CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
12521       : CheckpointDataNV( *reinterpret_cast<CheckpointDataNV const *>( &rhs ) )
12522     {}
12523 
12524 
12525     CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12526 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
12527 
operator =VULKAN_HPP_NAMESPACE::CheckpointDataNV12528     CheckpointDataNV & operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
12529     {
12530       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointDataNV const *>( &rhs );
12531       return *this;
12532     }
12533 
12534 
operator VkCheckpointDataNV const&VULKAN_HPP_NAMESPACE::CheckpointDataNV12535     operator VkCheckpointDataNV const &() const VULKAN_HPP_NOEXCEPT
12536     {
12537       return *reinterpret_cast<const VkCheckpointDataNV*>( this );
12538     }
12539 
operator VkCheckpointDataNV&VULKAN_HPP_NAMESPACE::CheckpointDataNV12540     operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT
12541     {
12542       return *reinterpret_cast<VkCheckpointDataNV*>( this );
12543     }
12544 
12545 #if defined( VULKAN_HPP_USE_REFLECT )
12546 #if 14 <= VULKAN_HPP_CPP_VERSION
12547     auto
12548 #else
12549     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlagBits const &, void * const &>
12550 #endif
reflectVULKAN_HPP_NAMESPACE::CheckpointDataNV12551       reflect() const VULKAN_HPP_NOEXCEPT
12552     {
12553       return std::tie( sType, pNext, stage, pCheckpointMarker );
12554     }
12555 #endif
12556 
12557 
12558 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
12559 auto operator<=>( CheckpointDataNV const & ) const = default;
12560 #else
operator ==VULKAN_HPP_NAMESPACE::CheckpointDataNV12561     bool operator==( CheckpointDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
12562     {
12563 #if defined( VULKAN_HPP_USE_REFLECT )
12564       return this->reflect() == rhs.reflect();
12565 #else
12566       return ( sType == rhs.sType )
12567           && ( pNext == rhs.pNext )
12568           && ( stage == rhs.stage )
12569           && ( pCheckpointMarker == rhs.pCheckpointMarker );
12570 #endif
12571     }
12572 
operator !=VULKAN_HPP_NAMESPACE::CheckpointDataNV12573     bool operator!=( CheckpointDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
12574     {
12575       return !operator==( rhs );
12576     }
12577 #endif
12578 
12579     public:
12580     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV;
12581     void * pNext = {};
12582     VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe;
12583     void * pCheckpointMarker = {};
12584 
12585   };
12586 
12587   template <>
12588   struct CppType<StructureType, StructureType::eCheckpointDataNV>
12589   {
12590     using Type = CheckpointDataNV;
12591   };
12592 
12593   union ClearColorValue
12594   {
12595     using NativeType = VkClearColorValue;
12596 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
12597 
ClearColorValue(const std::array<float,4> & float32_={} )12598     VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<float,4>& float32_ = {} )
12599       : float32( float32_ )
12600     {}
12601 
ClearColorValue(float float32_0,float float32_1,float float32_2,float float32_3)12602     VULKAN_HPP_CONSTEXPR ClearColorValue( float float32_0, float float32_1, float float32_2, float float32_3 )
12603       : float32{ { { float32_0, float32_1, float32_2, float32_3 } } }
12604     {}
12605 
ClearColorValue(const std::array<int32_t,4> & int32_)12606     VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<int32_t,4>& int32_ )
12607       : int32( int32_ )
12608     {}
12609 
ClearColorValue(int32_t int32_0,int32_t int32_1,int32_t int32_2,int32_t int32_3)12610     VULKAN_HPP_CONSTEXPR ClearColorValue( int32_t int32_0, int32_t int32_1, int32_t int32_2, int32_t int32_3 )
12611       : int32{ { { int32_0, int32_1, int32_2, int32_3 } } }
12612     {}
12613 
ClearColorValue(const std::array<uint32_t,4> & uint32_)12614     VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<uint32_t,4>& uint32_ )
12615       : uint32( uint32_ )
12616     {}
12617 
ClearColorValue(uint32_t uint32_0,uint32_t uint32_1,uint32_t uint32_2,uint32_t uint32_3)12618     VULKAN_HPP_CONSTEXPR ClearColorValue( uint32_t uint32_0, uint32_t uint32_1, uint32_t uint32_2, uint32_t uint32_3 )
12619       : uint32{ { { uint32_0, uint32_1, uint32_2, uint32_3 } } }
12620     {}
12621 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
12622 
12623 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setFloat32(std::array<float,4> float32_)12624     VULKAN_HPP_CONSTEXPR_14 ClearColorValue & setFloat32( std::array<float,4> float32_ ) VULKAN_HPP_NOEXCEPT
12625     {
12626       float32 = float32_;
12627       return *this;
12628     }
12629 
setInt32(std::array<int32_t,4> int32_)12630     VULKAN_HPP_CONSTEXPR_14 ClearColorValue & setInt32( std::array<int32_t,4> int32_ ) VULKAN_HPP_NOEXCEPT
12631     {
12632       int32 = int32_;
12633       return *this;
12634     }
12635 
setUint32(std::array<uint32_t,4> uint32_)12636     VULKAN_HPP_CONSTEXPR_14 ClearColorValue & setUint32( std::array<uint32_t,4> uint32_ ) VULKAN_HPP_NOEXCEPT
12637     {
12638       uint32 = uint32_;
12639       return *this;
12640     }
12641 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
12642 
operator VkClearColorValue const&() const12643     operator VkClearColorValue const &() const
12644     {
12645       return *reinterpret_cast<const VkClearColorValue*>( this );
12646     }
12647 
operator VkClearColorValue&()12648     operator VkClearColorValue &()
12649     {
12650       return *reinterpret_cast<VkClearColorValue*>( this );
12651     }
12652 
12653     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> float32;
12654     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, 4> int32;
12655     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 4> uint32;
12656 
12657   };
12658 
12659   struct ClearDepthStencilValue
12660   {
12661     using NativeType = VkClearDepthStencilValue;
12662 
12663 
12664 
12665 
12666 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue12667 VULKAN_HPP_CONSTEXPR ClearDepthStencilValue(float depth_ = {}, uint32_t stencil_ = {}) VULKAN_HPP_NOEXCEPT
12668     : depth( depth_ ), stencil( stencil_ )
12669     {}
12670 
12671     VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12672 
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue12673     ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
12674       : ClearDepthStencilValue( *reinterpret_cast<ClearDepthStencilValue const *>( &rhs ) )
12675     {}
12676 
12677 
12678     ClearDepthStencilValue & operator=( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12679 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
12680 
operator =VULKAN_HPP_NAMESPACE::ClearDepthStencilValue12681     ClearDepthStencilValue & operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
12682     {
12683       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const *>( &rhs );
12684       return *this;
12685     }
12686 
12687 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setDepthVULKAN_HPP_NAMESPACE::ClearDepthStencilValue12688     VULKAN_HPP_CONSTEXPR_14 ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT
12689     {
12690       depth = depth_;
12691       return *this;
12692     }
12693 
setStencilVULKAN_HPP_NAMESPACE::ClearDepthStencilValue12694     VULKAN_HPP_CONSTEXPR_14 ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT
12695     {
12696       stencil = stencil_;
12697       return *this;
12698     }
12699 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
12700 
12701 
operator VkClearDepthStencilValue const&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue12702     operator VkClearDepthStencilValue const &() const VULKAN_HPP_NOEXCEPT
12703     {
12704       return *reinterpret_cast<const VkClearDepthStencilValue*>( this );
12705     }
12706 
operator VkClearDepthStencilValue&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue12707     operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT
12708     {
12709       return *reinterpret_cast<VkClearDepthStencilValue*>( this );
12710     }
12711 
12712 #if defined( VULKAN_HPP_USE_REFLECT )
12713 #if 14 <= VULKAN_HPP_CPP_VERSION
12714     auto
12715 #else
12716     std::tuple<float const &, uint32_t const &>
12717 #endif
reflectVULKAN_HPP_NAMESPACE::ClearDepthStencilValue12718       reflect() const VULKAN_HPP_NOEXCEPT
12719     {
12720       return std::tie( depth, stencil );
12721     }
12722 #endif
12723 
12724 
12725 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
12726 auto operator<=>( ClearDepthStencilValue const & ) const = default;
12727 #else
operator ==VULKAN_HPP_NAMESPACE::ClearDepthStencilValue12728     bool operator==( ClearDepthStencilValue const & rhs ) const VULKAN_HPP_NOEXCEPT
12729     {
12730 #if defined( VULKAN_HPP_USE_REFLECT )
12731       return this->reflect() == rhs.reflect();
12732 #else
12733       return ( depth == rhs.depth )
12734           && ( stencil == rhs.stencil );
12735 #endif
12736     }
12737 
operator !=VULKAN_HPP_NAMESPACE::ClearDepthStencilValue12738     bool operator!=( ClearDepthStencilValue const & rhs ) const VULKAN_HPP_NOEXCEPT
12739     {
12740       return !operator==( rhs );
12741     }
12742 #endif
12743 
12744     public:
12745     float depth = {};
12746     uint32_t stencil = {};
12747 
12748   };
12749 
12750   union ClearValue
12751   {
12752     using NativeType = VkClearValue;
12753 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
12754 
ClearValue(VULKAN_HPP_NAMESPACE::ClearColorValue color_={} )12755     VULKAN_HPP_CONSTEXPR_14 ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} )
12756       : color( color_ )
12757     {}
12758 
ClearValue(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_)12759     VULKAN_HPP_CONSTEXPR_14 ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ )
12760       : depthStencil( depthStencil_ )
12761     {}
12762 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
12763 
12764 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setColor(VULKAN_HPP_NAMESPACE::ClearColorValue const & color_)12765     VULKAN_HPP_CONSTEXPR_14 ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT
12766     {
12767       color = color_;
12768       return *this;
12769     }
12770 
setDepthStencil(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_)12771     VULKAN_HPP_CONSTEXPR_14 ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT
12772     {
12773       depthStencil = depthStencil_;
12774       return *this;
12775     }
12776 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
12777 
operator VkClearValue const&() const12778     operator VkClearValue const &() const
12779     {
12780       return *reinterpret_cast<const VkClearValue*>( this );
12781     }
12782 
operator VkClearValue&()12783     operator VkClearValue &()
12784     {
12785       return *reinterpret_cast<VkClearValue*>( this );
12786     }
12787 
12788 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
12789     VULKAN_HPP_NAMESPACE::ClearColorValue color;
12790     VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil;
12791 #else
12792     VkClearColorValue color;
12793     VkClearDepthStencilValue depthStencil;
12794 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
12795 
12796   };
12797 
12798   struct ClearAttachment
12799   {
12800     using NativeType = VkClearAttachment;
12801 
12802 
12803 
12804 
12805 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment12806 VULKAN_HPP_CONSTEXPR_14 ClearAttachment(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t colorAttachment_ = {}, VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {}) VULKAN_HPP_NOEXCEPT
12807     : aspectMask( aspectMask_ ), colorAttachment( colorAttachment_ ), clearValue( clearValue_ )
12808     {}
12809 
12810     VULKAN_HPP_CONSTEXPR_14 ClearAttachment( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12811 
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment12812     ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
12813       : ClearAttachment( *reinterpret_cast<ClearAttachment const *>( &rhs ) )
12814     {}
12815 
12816 
12817     ClearAttachment & operator=( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12818 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
12819 
operator =VULKAN_HPP_NAMESPACE::ClearAttachment12820     ClearAttachment & operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
12821     {
12822       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearAttachment const *>( &rhs );
12823       return *this;
12824     }
12825 
12826 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setAspectMaskVULKAN_HPP_NAMESPACE::ClearAttachment12827     VULKAN_HPP_CONSTEXPR_14 ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
12828     {
12829       aspectMask = aspectMask_;
12830       return *this;
12831     }
12832 
setColorAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment12833     VULKAN_HPP_CONSTEXPR_14 ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT
12834     {
12835       colorAttachment = colorAttachment_;
12836       return *this;
12837     }
12838 
setClearValueVULKAN_HPP_NAMESPACE::ClearAttachment12839     VULKAN_HPP_CONSTEXPR_14 ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
12840     {
12841       clearValue = clearValue_;
12842       return *this;
12843     }
12844 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
12845 
12846 
operator VkClearAttachment const&VULKAN_HPP_NAMESPACE::ClearAttachment12847     operator VkClearAttachment const &() const VULKAN_HPP_NOEXCEPT
12848     {
12849       return *reinterpret_cast<const VkClearAttachment*>( this );
12850     }
12851 
operator VkClearAttachment&VULKAN_HPP_NAMESPACE::ClearAttachment12852     operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT
12853     {
12854       return *reinterpret_cast<VkClearAttachment*>( this );
12855     }
12856 
12857 #if defined( VULKAN_HPP_USE_REFLECT )
12858 #if 14 <= VULKAN_HPP_CPP_VERSION
12859     auto
12860 #else
12861     std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ClearValue const &>
12862 #endif
reflectVULKAN_HPP_NAMESPACE::ClearAttachment12863       reflect() const VULKAN_HPP_NOEXCEPT
12864     {
12865       return std::tie( aspectMask, colorAttachment, clearValue );
12866     }
12867 #endif
12868 
12869 
12870     public:
12871     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
12872     uint32_t colorAttachment = {};
12873     VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
12874 
12875   };
12876 
12877   struct ClearRect
12878   {
12879     using NativeType = VkClearRect;
12880 
12881 
12882 
12883 
12884 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearRectVULKAN_HPP_NAMESPACE::ClearRect12885 VULKAN_HPP_CONSTEXPR ClearRect(VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
12886     : rect( rect_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
12887     {}
12888 
12889     VULKAN_HPP_CONSTEXPR ClearRect( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12890 
ClearRectVULKAN_HPP_NAMESPACE::ClearRect12891     ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
12892       : ClearRect( *reinterpret_cast<ClearRect const *>( &rhs ) )
12893     {}
12894 
12895 
12896     ClearRect & operator=( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12897 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
12898 
operator =VULKAN_HPP_NAMESPACE::ClearRect12899     ClearRect & operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
12900     {
12901       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearRect const *>( &rhs );
12902       return *this;
12903     }
12904 
12905 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setRectVULKAN_HPP_NAMESPACE::ClearRect12906     VULKAN_HPP_CONSTEXPR_14 ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT
12907     {
12908       rect = rect_;
12909       return *this;
12910     }
12911 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ClearRect12912     VULKAN_HPP_CONSTEXPR_14 ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
12913     {
12914       baseArrayLayer = baseArrayLayer_;
12915       return *this;
12916     }
12917 
setLayerCountVULKAN_HPP_NAMESPACE::ClearRect12918     VULKAN_HPP_CONSTEXPR_14 ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
12919     {
12920       layerCount = layerCount_;
12921       return *this;
12922     }
12923 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
12924 
12925 
operator VkClearRect const&VULKAN_HPP_NAMESPACE::ClearRect12926     operator VkClearRect const &() const VULKAN_HPP_NOEXCEPT
12927     {
12928       return *reinterpret_cast<const VkClearRect*>( this );
12929     }
12930 
operator VkClearRect&VULKAN_HPP_NAMESPACE::ClearRect12931     operator VkClearRect &() VULKAN_HPP_NOEXCEPT
12932     {
12933       return *reinterpret_cast<VkClearRect*>( this );
12934     }
12935 
12936 #if defined( VULKAN_HPP_USE_REFLECT )
12937 #if 14 <= VULKAN_HPP_CPP_VERSION
12938     auto
12939 #else
12940     std::tuple<VULKAN_HPP_NAMESPACE::Rect2D const &, uint32_t const &, uint32_t const &>
12941 #endif
reflectVULKAN_HPP_NAMESPACE::ClearRect12942       reflect() const VULKAN_HPP_NOEXCEPT
12943     {
12944       return std::tie( rect, baseArrayLayer, layerCount );
12945     }
12946 #endif
12947 
12948 
12949 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
12950 auto operator<=>( ClearRect const & ) const = default;
12951 #else
operator ==VULKAN_HPP_NAMESPACE::ClearRect12952     bool operator==( ClearRect const & rhs ) const VULKAN_HPP_NOEXCEPT
12953     {
12954 #if defined( VULKAN_HPP_USE_REFLECT )
12955       return this->reflect() == rhs.reflect();
12956 #else
12957       return ( rect == rhs.rect )
12958           && ( baseArrayLayer == rhs.baseArrayLayer )
12959           && ( layerCount == rhs.layerCount );
12960 #endif
12961     }
12962 
operator !=VULKAN_HPP_NAMESPACE::ClearRect12963     bool operator!=( ClearRect const & rhs ) const VULKAN_HPP_NOEXCEPT
12964     {
12965       return !operator==( rhs );
12966     }
12967 #endif
12968 
12969     public:
12970     VULKAN_HPP_NAMESPACE::Rect2D rect = {};
12971     uint32_t baseArrayLayer = {};
12972     uint32_t layerCount = {};
12973 
12974   };
12975 
12976   struct CoarseSampleLocationNV
12977   {
12978     using NativeType = VkCoarseSampleLocationNV;
12979 
12980 
12981 
12982 
12983 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV12984 VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV(uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {}) VULKAN_HPP_NOEXCEPT
12985     : pixelX( pixelX_ ), pixelY( pixelY_ ), sample( sample_ )
12986     {}
12987 
12988     VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12989 
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV12990     CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
12991       : CoarseSampleLocationNV( *reinterpret_cast<CoarseSampleLocationNV const *>( &rhs ) )
12992     {}
12993 
12994 
12995     CoarseSampleLocationNV & operator=( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
12996 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
12997 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV12998     CoarseSampleLocationNV & operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
12999     {
13000       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV const *>( &rhs );
13001       return *this;
13002     }
13003 
13004 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPixelXVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV13005     VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT
13006     {
13007       pixelX = pixelX_;
13008       return *this;
13009     }
13010 
setPixelYVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV13011     VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT
13012     {
13013       pixelY = pixelY_;
13014       return *this;
13015     }
13016 
setSampleVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV13017     VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT
13018     {
13019       sample = sample_;
13020       return *this;
13021     }
13022 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
13023 
13024 
operator VkCoarseSampleLocationNV const&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV13025     operator VkCoarseSampleLocationNV const &() const VULKAN_HPP_NOEXCEPT
13026     {
13027       return *reinterpret_cast<const VkCoarseSampleLocationNV*>( this );
13028     }
13029 
operator VkCoarseSampleLocationNV&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV13030     operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT
13031     {
13032       return *reinterpret_cast<VkCoarseSampleLocationNV*>( this );
13033     }
13034 
13035 #if defined( VULKAN_HPP_USE_REFLECT )
13036 #if 14 <= VULKAN_HPP_CPP_VERSION
13037     auto
13038 #else
13039     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
13040 #endif
reflectVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV13041       reflect() const VULKAN_HPP_NOEXCEPT
13042     {
13043       return std::tie( pixelX, pixelY, sample );
13044     }
13045 #endif
13046 
13047 
13048 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
13049 auto operator<=>( CoarseSampleLocationNV const & ) const = default;
13050 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV13051     bool operator==( CoarseSampleLocationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
13052     {
13053 #if defined( VULKAN_HPP_USE_REFLECT )
13054       return this->reflect() == rhs.reflect();
13055 #else
13056       return ( pixelX == rhs.pixelX )
13057           && ( pixelY == rhs.pixelY )
13058           && ( sample == rhs.sample );
13059 #endif
13060     }
13061 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV13062     bool operator!=( CoarseSampleLocationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
13063     {
13064       return !operator==( rhs );
13065     }
13066 #endif
13067 
13068     public:
13069     uint32_t pixelX = {};
13070     uint32_t pixelY = {};
13071     uint32_t sample = {};
13072 
13073   };
13074 
13075   struct CoarseSampleOrderCustomNV
13076   {
13077     using NativeType = VkCoarseSampleOrderCustomNV;
13078 
13079 
13080 
13081 
13082 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13083 VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV(VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations, uint32_t sampleCount_ = {}, uint32_t sampleLocationCount_ = {}, const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT
13084     : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( sampleLocationCount_ ), pSampleLocations( pSampleLocations_ )
13085     {}
13086 
13087     VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13088 
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13089     CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
13090       : CoarseSampleOrderCustomNV( *reinterpret_cast<CoarseSampleOrderCustomNV const *>( &rhs ) )
13091     {}
13092 
13093 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13094     CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_, uint32_t sampleCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ )
13095     : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( static_cast<uint32_t>( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() )
13096     {}
13097 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13098 
13099 
13100     CoarseSampleOrderCustomNV & operator=( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13101 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
13102 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13103     CoarseSampleOrderCustomNV & operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
13104     {
13105       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV const *>( &rhs );
13106       return *this;
13107     }
13108 
13109 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setShadingRateVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13110     VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
13111     {
13112       shadingRate = shadingRate_;
13113       return *this;
13114     }
13115 
setSampleCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13116     VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT
13117     {
13118       sampleCount = sampleCount_;
13119       return *this;
13120     }
13121 
setSampleLocationCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13122     VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT
13123     {
13124       sampleLocationCount = sampleLocationCount_;
13125       return *this;
13126     }
13127 
setPSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13128     VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
13129     {
13130       pSampleLocations = pSampleLocations_;
13131       return *this;
13132     }
13133 
13134 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13135     CoarseSampleOrderCustomNV & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
13136     {
13137       sampleLocationCount = static_cast<uint32_t>( sampleLocations_.size() );
13138       pSampleLocations = sampleLocations_.data();
13139       return *this;
13140     }
13141 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13142 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
13143 
13144 
operator VkCoarseSampleOrderCustomNV const&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13145     operator VkCoarseSampleOrderCustomNV const &() const VULKAN_HPP_NOEXCEPT
13146     {
13147       return *reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( this );
13148     }
13149 
operator VkCoarseSampleOrderCustomNV&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13150     operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT
13151     {
13152       return *reinterpret_cast<VkCoarseSampleOrderCustomNV*>( this );
13153     }
13154 
13155 #if defined( VULKAN_HPP_USE_REFLECT )
13156 #if 14 <= VULKAN_HPP_CPP_VERSION
13157     auto
13158 #else
13159     std::tuple<VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * const &>
13160 #endif
reflectVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13161       reflect() const VULKAN_HPP_NOEXCEPT
13162     {
13163       return std::tie( shadingRate, sampleCount, sampleLocationCount, pSampleLocations );
13164     }
13165 #endif
13166 
13167 
13168 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
13169 auto operator<=>( CoarseSampleOrderCustomNV const & ) const = default;
13170 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13171     bool operator==( CoarseSampleOrderCustomNV const & rhs ) const VULKAN_HPP_NOEXCEPT
13172     {
13173 #if defined( VULKAN_HPP_USE_REFLECT )
13174       return this->reflect() == rhs.reflect();
13175 #else
13176       return ( shadingRate == rhs.shadingRate )
13177           && ( sampleCount == rhs.sampleCount )
13178           && ( sampleLocationCount == rhs.sampleLocationCount )
13179           && ( pSampleLocations == rhs.pSampleLocations );
13180 #endif
13181     }
13182 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV13183     bool operator!=( CoarseSampleOrderCustomNV const & rhs ) const VULKAN_HPP_NOEXCEPT
13184     {
13185       return !operator==( rhs );
13186     }
13187 #endif
13188 
13189     public:
13190     VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations;
13191     uint32_t sampleCount = {};
13192     uint32_t sampleLocationCount = {};
13193     const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations = {};
13194 
13195   };
13196 
13197   struct ColorBlendAdvancedEXT
13198   {
13199     using NativeType = VkColorBlendAdvancedEXT;
13200 
13201 
13202 
13203 
13204 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ColorBlendAdvancedEXTVULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13205 VULKAN_HPP_CONSTEXPR ColorBlendAdvancedEXT(VULKAN_HPP_NAMESPACE::BlendOp advancedBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {}, VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {}, VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated, VULKAN_HPP_NAMESPACE::Bool32 clampResults_ = {}) VULKAN_HPP_NOEXCEPT
13206     : advancedBlendOp( advancedBlendOp_ ), srcPremultiplied( srcPremultiplied_ ), dstPremultiplied( dstPremultiplied_ ), blendOverlap( blendOverlap_ ), clampResults( clampResults_ )
13207     {}
13208 
13209     VULKAN_HPP_CONSTEXPR ColorBlendAdvancedEXT( ColorBlendAdvancedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13210 
ColorBlendAdvancedEXTVULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13211     ColorBlendAdvancedEXT( VkColorBlendAdvancedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
13212       : ColorBlendAdvancedEXT( *reinterpret_cast<ColorBlendAdvancedEXT const *>( &rhs ) )
13213     {}
13214 
13215 
13216     ColorBlendAdvancedEXT & operator=( ColorBlendAdvancedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13217 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
13218 
operator =VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13219     ColorBlendAdvancedEXT & operator=( VkColorBlendAdvancedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
13220     {
13221       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT const *>( &rhs );
13222       return *this;
13223     }
13224 
13225 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setAdvancedBlendOpVULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13226     VULKAN_HPP_CONSTEXPR_14 ColorBlendAdvancedEXT & setAdvancedBlendOp( VULKAN_HPP_NAMESPACE::BlendOp advancedBlendOp_ ) VULKAN_HPP_NOEXCEPT
13227     {
13228       advancedBlendOp = advancedBlendOp_;
13229       return *this;
13230     }
13231 
setSrcPremultipliedVULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13232     VULKAN_HPP_CONSTEXPR_14 ColorBlendAdvancedEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
13233     {
13234       srcPremultiplied = srcPremultiplied_;
13235       return *this;
13236     }
13237 
setDstPremultipliedVULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13238     VULKAN_HPP_CONSTEXPR_14 ColorBlendAdvancedEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
13239     {
13240       dstPremultiplied = dstPremultiplied_;
13241       return *this;
13242     }
13243 
setBlendOverlapVULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13244     VULKAN_HPP_CONSTEXPR_14 ColorBlendAdvancedEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
13245     {
13246       blendOverlap = blendOverlap_;
13247       return *this;
13248     }
13249 
setClampResultsVULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13250     VULKAN_HPP_CONSTEXPR_14 ColorBlendAdvancedEXT & setClampResults( VULKAN_HPP_NAMESPACE::Bool32 clampResults_ ) VULKAN_HPP_NOEXCEPT
13251     {
13252       clampResults = clampResults_;
13253       return *this;
13254     }
13255 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
13256 
13257 
operator VkColorBlendAdvancedEXT const&VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13258     operator VkColorBlendAdvancedEXT const &() const VULKAN_HPP_NOEXCEPT
13259     {
13260       return *reinterpret_cast<const VkColorBlendAdvancedEXT*>( this );
13261     }
13262 
operator VkColorBlendAdvancedEXT&VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13263     operator VkColorBlendAdvancedEXT &() VULKAN_HPP_NOEXCEPT
13264     {
13265       return *reinterpret_cast<VkColorBlendAdvancedEXT*>( this );
13266     }
13267 
13268 #if defined( VULKAN_HPP_USE_REFLECT )
13269 #if 14 <= VULKAN_HPP_CPP_VERSION
13270     auto
13271 #else
13272     std::tuple<VULKAN_HPP_NAMESPACE::BlendOp const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::BlendOverlapEXT const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
13273 #endif
reflectVULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13274       reflect() const VULKAN_HPP_NOEXCEPT
13275     {
13276       return std::tie( advancedBlendOp, srcPremultiplied, dstPremultiplied, blendOverlap, clampResults );
13277     }
13278 #endif
13279 
13280 
13281 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
13282 auto operator<=>( ColorBlendAdvancedEXT const & ) const = default;
13283 #else
operator ==VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13284     bool operator==( ColorBlendAdvancedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
13285     {
13286 #if defined( VULKAN_HPP_USE_REFLECT )
13287       return this->reflect() == rhs.reflect();
13288 #else
13289       return ( advancedBlendOp == rhs.advancedBlendOp )
13290           && ( srcPremultiplied == rhs.srcPremultiplied )
13291           && ( dstPremultiplied == rhs.dstPremultiplied )
13292           && ( blendOverlap == rhs.blendOverlap )
13293           && ( clampResults == rhs.clampResults );
13294 #endif
13295     }
13296 
operator !=VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT13297     bool operator!=( ColorBlendAdvancedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
13298     {
13299       return !operator==( rhs );
13300     }
13301 #endif
13302 
13303     public:
13304     VULKAN_HPP_NAMESPACE::BlendOp advancedBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
13305     VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {};
13306     VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {};
13307     VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated;
13308     VULKAN_HPP_NAMESPACE::Bool32 clampResults = {};
13309 
13310   };
13311 
13312   struct ColorBlendEquationEXT
13313   {
13314     using NativeType = VkColorBlendEquationEXT;
13315 
13316 
13317 
13318 
13319 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ColorBlendEquationEXTVULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13320 VULKAN_HPP_CONSTEXPR ColorBlendEquationEXT(VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd) VULKAN_HPP_NOEXCEPT
13321     : srcColorBlendFactor( srcColorBlendFactor_ ), dstColorBlendFactor( dstColorBlendFactor_ ), colorBlendOp( colorBlendOp_ ), srcAlphaBlendFactor( srcAlphaBlendFactor_ ), dstAlphaBlendFactor( dstAlphaBlendFactor_ ), alphaBlendOp( alphaBlendOp_ )
13322     {}
13323 
13324     VULKAN_HPP_CONSTEXPR ColorBlendEquationEXT( ColorBlendEquationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13325 
ColorBlendEquationEXTVULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13326     ColorBlendEquationEXT( VkColorBlendEquationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
13327       : ColorBlendEquationEXT( *reinterpret_cast<ColorBlendEquationEXT const *>( &rhs ) )
13328     {}
13329 
13330 
13331     ColorBlendEquationEXT & operator=( ColorBlendEquationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13332 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
13333 
operator =VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13334     ColorBlendEquationEXT & operator=( VkColorBlendEquationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
13335     {
13336       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT const *>( &rhs );
13337       return *this;
13338     }
13339 
13340 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSrcColorBlendFactorVULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13341     VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
13342     {
13343       srcColorBlendFactor = srcColorBlendFactor_;
13344       return *this;
13345     }
13346 
setDstColorBlendFactorVULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13347     VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
13348     {
13349       dstColorBlendFactor = dstColorBlendFactor_;
13350       return *this;
13351     }
13352 
setColorBlendOpVULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13353     VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT
13354     {
13355       colorBlendOp = colorBlendOp_;
13356       return *this;
13357     }
13358 
setSrcAlphaBlendFactorVULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13359     VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
13360     {
13361       srcAlphaBlendFactor = srcAlphaBlendFactor_;
13362       return *this;
13363     }
13364 
setDstAlphaBlendFactorVULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13365     VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
13366     {
13367       dstAlphaBlendFactor = dstAlphaBlendFactor_;
13368       return *this;
13369     }
13370 
setAlphaBlendOpVULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13371     VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT
13372     {
13373       alphaBlendOp = alphaBlendOp_;
13374       return *this;
13375     }
13376 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
13377 
13378 
operator VkColorBlendEquationEXT const&VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13379     operator VkColorBlendEquationEXT const &() const VULKAN_HPP_NOEXCEPT
13380     {
13381       return *reinterpret_cast<const VkColorBlendEquationEXT*>( this );
13382     }
13383 
operator VkColorBlendEquationEXT&VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13384     operator VkColorBlendEquationEXT &() VULKAN_HPP_NOEXCEPT
13385     {
13386       return *reinterpret_cast<VkColorBlendEquationEXT*>( this );
13387     }
13388 
13389 #if defined( VULKAN_HPP_USE_REFLECT )
13390 #if 14 <= VULKAN_HPP_CPP_VERSION
13391     auto
13392 #else
13393     std::tuple<VULKAN_HPP_NAMESPACE::BlendFactor const &, VULKAN_HPP_NAMESPACE::BlendFactor const &, VULKAN_HPP_NAMESPACE::BlendOp const &, VULKAN_HPP_NAMESPACE::BlendFactor const &, VULKAN_HPP_NAMESPACE::BlendFactor const &, VULKAN_HPP_NAMESPACE::BlendOp const &>
13394 #endif
reflectVULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13395       reflect() const VULKAN_HPP_NOEXCEPT
13396     {
13397       return std::tie( srcColorBlendFactor, dstColorBlendFactor, colorBlendOp, srcAlphaBlendFactor, dstAlphaBlendFactor, alphaBlendOp );
13398     }
13399 #endif
13400 
13401 
13402 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
13403 auto operator<=>( ColorBlendEquationEXT const & ) const = default;
13404 #else
operator ==VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13405     bool operator==( ColorBlendEquationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
13406     {
13407 #if defined( VULKAN_HPP_USE_REFLECT )
13408       return this->reflect() == rhs.reflect();
13409 #else
13410       return ( srcColorBlendFactor == rhs.srcColorBlendFactor )
13411           && ( dstColorBlendFactor == rhs.dstColorBlendFactor )
13412           && ( colorBlendOp == rhs.colorBlendOp )
13413           && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor )
13414           && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor )
13415           && ( alphaBlendOp == rhs.alphaBlendOp );
13416 #endif
13417     }
13418 
operator !=VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT13419     bool operator!=( ColorBlendEquationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
13420     {
13421       return !operator==( rhs );
13422     }
13423 #endif
13424 
13425     public:
13426     VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
13427     VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
13428     VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
13429     VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
13430     VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
13431     VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
13432 
13433   };
13434 
13435   struct CommandBufferAllocateInfo
13436   {
13437     using NativeType = VkCommandBufferAllocateInfo;
13438 
13439     static const bool allowDuplicate = false;
13440     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo;
13441 
13442 
13443 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13444 VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo(VULKAN_HPP_NAMESPACE::CommandPool commandPool_ = {}, VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary, uint32_t commandBufferCount_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
13445     : pNext( pNext_ ), commandPool( commandPool_ ), level( level_ ), commandBufferCount( commandBufferCount_ )
13446     {}
13447 
13448     VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13449 
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13450     CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
13451       : CommandBufferAllocateInfo( *reinterpret_cast<CommandBufferAllocateInfo const *>( &rhs ) )
13452     {}
13453 
13454 
13455     CommandBufferAllocateInfo & operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13456 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
13457 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13458     CommandBufferAllocateInfo & operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
13459     {
13460       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const *>( &rhs );
13461       return *this;
13462     }
13463 
13464 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13465     VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
13466     {
13467       pNext = pNext_;
13468       return *this;
13469     }
13470 
setCommandPoolVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13471     VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT
13472     {
13473       commandPool = commandPool_;
13474       return *this;
13475     }
13476 
setLevelVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13477     VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT
13478     {
13479       level = level_;
13480       return *this;
13481     }
13482 
setCommandBufferCountVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13483     VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
13484     {
13485       commandBufferCount = commandBufferCount_;
13486       return *this;
13487     }
13488 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
13489 
13490 
operator VkCommandBufferAllocateInfo const&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13491     operator VkCommandBufferAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
13492     {
13493       return *reinterpret_cast<const VkCommandBufferAllocateInfo*>( this );
13494     }
13495 
operator VkCommandBufferAllocateInfo&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13496     operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT
13497     {
13498       return *reinterpret_cast<VkCommandBufferAllocateInfo*>( this );
13499     }
13500 
13501 #if defined( VULKAN_HPP_USE_REFLECT )
13502 #if 14 <= VULKAN_HPP_CPP_VERSION
13503     auto
13504 #else
13505     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CommandPool const &, VULKAN_HPP_NAMESPACE::CommandBufferLevel const &, uint32_t const &>
13506 #endif
reflectVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13507       reflect() const VULKAN_HPP_NOEXCEPT
13508     {
13509       return std::tie( sType, pNext, commandPool, level, commandBufferCount );
13510     }
13511 #endif
13512 
13513 
13514 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
13515 auto operator<=>( CommandBufferAllocateInfo const & ) const = default;
13516 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13517     bool operator==( CommandBufferAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
13518     {
13519 #if defined( VULKAN_HPP_USE_REFLECT )
13520       return this->reflect() == rhs.reflect();
13521 #else
13522       return ( sType == rhs.sType )
13523           && ( pNext == rhs.pNext )
13524           && ( commandPool == rhs.commandPool )
13525           && ( level == rhs.level )
13526           && ( commandBufferCount == rhs.commandBufferCount );
13527 #endif
13528     }
13529 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo13530     bool operator!=( CommandBufferAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
13531     {
13532       return !operator==( rhs );
13533     }
13534 #endif
13535 
13536     public:
13537     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo;
13538     const void * pNext = {};
13539     VULKAN_HPP_NAMESPACE::CommandPool commandPool = {};
13540     VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary;
13541     uint32_t commandBufferCount = {};
13542 
13543   };
13544 
13545   template <>
13546   struct CppType<StructureType, StructureType::eCommandBufferAllocateInfo>
13547   {
13548     using Type = CommandBufferAllocateInfo;
13549   };
13550 
13551   struct CommandBufferInheritanceInfo
13552   {
13553     using NativeType = VkCommandBufferInheritanceInfo;
13554 
13555     static const bool allowDuplicate = false;
13556     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo;
13557 
13558 
13559 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13560 VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo(VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ = {}, VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ = {}, VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
13561     : pNext( pNext_ ), renderPass( renderPass_ ), subpass( subpass_ ), framebuffer( framebuffer_ ), occlusionQueryEnable( occlusionQueryEnable_ ), queryFlags( queryFlags_ ), pipelineStatistics( pipelineStatistics_ )
13562     {}
13563 
13564     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13565 
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13566     CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
13567       : CommandBufferInheritanceInfo( *reinterpret_cast<CommandBufferInheritanceInfo const *>( &rhs ) )
13568     {}
13569 
13570 
13571     CommandBufferInheritanceInfo & operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13572 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
13573 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13574     CommandBufferInheritanceInfo & operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
13575     {
13576       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const *>( &rhs );
13577       return *this;
13578     }
13579 
13580 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13581     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
13582     {
13583       pNext = pNext_;
13584       return *this;
13585     }
13586 
setRenderPassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13587     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
13588     {
13589       renderPass = renderPass_;
13590       return *this;
13591     }
13592 
setSubpassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13593     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
13594     {
13595       subpass = subpass_;
13596       return *this;
13597     }
13598 
setFramebufferVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13599     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
13600     {
13601       framebuffer = framebuffer_;
13602       return *this;
13603     }
13604 
setOcclusionQueryEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13605     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT
13606     {
13607       occlusionQueryEnable = occlusionQueryEnable_;
13608       return *this;
13609     }
13610 
setQueryFlagsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13611     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT
13612     {
13613       queryFlags = queryFlags_;
13614       return *this;
13615     }
13616 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13617     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
13618     {
13619       pipelineStatistics = pipelineStatistics_;
13620       return *this;
13621     }
13622 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
13623 
13624 
operator VkCommandBufferInheritanceInfo const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13625     operator VkCommandBufferInheritanceInfo const &() const VULKAN_HPP_NOEXCEPT
13626     {
13627       return *reinterpret_cast<const VkCommandBufferInheritanceInfo*>( this );
13628     }
13629 
operator VkCommandBufferInheritanceInfo&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13630     operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT
13631     {
13632       return *reinterpret_cast<VkCommandBufferInheritanceInfo*>( this );
13633     }
13634 
13635 #if defined( VULKAN_HPP_USE_REFLECT )
13636 #if 14 <= VULKAN_HPP_CPP_VERSION
13637     auto
13638 #else
13639     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderPass const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Framebuffer const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::QueryControlFlags const &, VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags const &>
13640 #endif
reflectVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13641       reflect() const VULKAN_HPP_NOEXCEPT
13642     {
13643       return std::tie( sType, pNext, renderPass, subpass, framebuffer, occlusionQueryEnable, queryFlags, pipelineStatistics );
13644     }
13645 #endif
13646 
13647 
13648 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
13649 auto operator<=>( CommandBufferInheritanceInfo const & ) const = default;
13650 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13651     bool operator==( CommandBufferInheritanceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
13652     {
13653 #if defined( VULKAN_HPP_USE_REFLECT )
13654       return this->reflect() == rhs.reflect();
13655 #else
13656       return ( sType == rhs.sType )
13657           && ( pNext == rhs.pNext )
13658           && ( renderPass == rhs.renderPass )
13659           && ( subpass == rhs.subpass )
13660           && ( framebuffer == rhs.framebuffer )
13661           && ( occlusionQueryEnable == rhs.occlusionQueryEnable )
13662           && ( queryFlags == rhs.queryFlags )
13663           && ( pipelineStatistics == rhs.pipelineStatistics );
13664 #endif
13665     }
13666 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo13667     bool operator!=( CommandBufferInheritanceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
13668     {
13669       return !operator==( rhs );
13670     }
13671 #endif
13672 
13673     public:
13674     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo;
13675     const void * pNext = {};
13676     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
13677     uint32_t subpass = {};
13678     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
13679     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {};
13680     VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {};
13681     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
13682 
13683   };
13684 
13685   template <>
13686   struct CppType<StructureType, StructureType::eCommandBufferInheritanceInfo>
13687   {
13688     using Type = CommandBufferInheritanceInfo;
13689   };
13690 
13691   struct CommandBufferBeginInfo
13692   {
13693     using NativeType = VkCommandBufferBeginInfo;
13694 
13695     static const bool allowDuplicate = false;
13696     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo;
13697 
13698 
13699 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13700 VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo(VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
13701     : pNext( pNext_ ), flags( flags_ ), pInheritanceInfo( pInheritanceInfo_ )
13702     {}
13703 
13704     VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13705 
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13706     CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
13707       : CommandBufferBeginInfo( *reinterpret_cast<CommandBufferBeginInfo const *>( &rhs ) )
13708     {}
13709 
13710 
13711     CommandBufferBeginInfo & operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13712 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
13713 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13714     CommandBufferBeginInfo & operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
13715     {
13716       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const *>( &rhs );
13717       return *this;
13718     }
13719 
13720 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13721     VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
13722     {
13723       pNext = pNext_;
13724       return *this;
13725     }
13726 
setFlagsVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13727     VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT
13728     {
13729       flags = flags_;
13730       return *this;
13731     }
13732 
setPInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13733     VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo & setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT
13734     {
13735       pInheritanceInfo = pInheritanceInfo_;
13736       return *this;
13737     }
13738 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
13739 
13740 
operator VkCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13741     operator VkCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
13742     {
13743       return *reinterpret_cast<const VkCommandBufferBeginInfo*>( this );
13744     }
13745 
operator VkCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13746     operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
13747     {
13748       return *reinterpret_cast<VkCommandBufferBeginInfo*>( this );
13749     }
13750 
13751 #if defined( VULKAN_HPP_USE_REFLECT )
13752 #if 14 <= VULKAN_HPP_CPP_VERSION
13753     auto
13754 #else
13755     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags const &, const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * const &>
13756 #endif
reflectVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13757       reflect() const VULKAN_HPP_NOEXCEPT
13758     {
13759       return std::tie( sType, pNext, flags, pInheritanceInfo );
13760     }
13761 #endif
13762 
13763 
13764 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
13765 auto operator<=>( CommandBufferBeginInfo const & ) const = default;
13766 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13767     bool operator==( CommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
13768     {
13769 #if defined( VULKAN_HPP_USE_REFLECT )
13770       return this->reflect() == rhs.reflect();
13771 #else
13772       return ( sType == rhs.sType )
13773           && ( pNext == rhs.pNext )
13774           && ( flags == rhs.flags )
13775           && ( pInheritanceInfo == rhs.pInheritanceInfo );
13776 #endif
13777     }
13778 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo13779     bool operator!=( CommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
13780     {
13781       return !operator==( rhs );
13782     }
13783 #endif
13784 
13785     public:
13786     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo;
13787     const void * pNext = {};
13788     VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {};
13789     const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo = {};
13790 
13791   };
13792 
13793   template <>
13794   struct CppType<StructureType, StructureType::eCommandBufferBeginInfo>
13795   {
13796     using Type = CommandBufferBeginInfo;
13797   };
13798 
13799   struct CommandBufferInheritanceConditionalRenderingInfoEXT
13800   {
13801     using NativeType = VkCommandBufferInheritanceConditionalRenderingInfoEXT;
13802 
13803     static const bool allowDuplicate = false;
13804     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
13805 
13806 
13807 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT13808 VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
13809     : pNext( pNext_ ), conditionalRenderingEnable( conditionalRenderingEnable_ )
13810     {}
13811 
13812     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13813 
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT13814     CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
13815       : CommandBufferInheritanceConditionalRenderingInfoEXT( *reinterpret_cast<CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs ) )
13816     {}
13817 
13818 
13819     CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13820 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
13821 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT13822     CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
13823     {
13824       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs );
13825       return *this;
13826     }
13827 
13828 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT13829     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
13830     {
13831       pNext = pNext_;
13832       return *this;
13833     }
13834 
setConditionalRenderingEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT13835     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT
13836     {
13837       conditionalRenderingEnable = conditionalRenderingEnable_;
13838       return *this;
13839     }
13840 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
13841 
13842 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT13843     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const &() const VULKAN_HPP_NOEXCEPT
13844     {
13845       return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
13846     }
13847 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT13848     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT
13849     {
13850       return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
13851     }
13852 
13853 #if defined( VULKAN_HPP_USE_REFLECT )
13854 #if 14 <= VULKAN_HPP_CPP_VERSION
13855     auto
13856 #else
13857     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
13858 #endif
reflectVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT13859       reflect() const VULKAN_HPP_NOEXCEPT
13860     {
13861       return std::tie( sType, pNext, conditionalRenderingEnable );
13862     }
13863 #endif
13864 
13865 
13866 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
13867 auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const & ) const = default;
13868 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT13869     bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
13870     {
13871 #if defined( VULKAN_HPP_USE_REFLECT )
13872       return this->reflect() == rhs.reflect();
13873 #else
13874       return ( sType == rhs.sType )
13875           && ( pNext == rhs.pNext )
13876           && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable );
13877 #endif
13878     }
13879 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT13880     bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
13881     {
13882       return !operator==( rhs );
13883     }
13884 #endif
13885 
13886     public:
13887     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
13888     const void * pNext = {};
13889     VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {};
13890 
13891   };
13892 
13893   template <>
13894   struct CppType<StructureType, StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT>
13895   {
13896     using Type = CommandBufferInheritanceConditionalRenderingInfoEXT;
13897   };
13898 
13899   struct CommandBufferInheritanceRenderPassTransformInfoQCOM
13900   {
13901     using NativeType = VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
13902 
13903     static const bool allowDuplicate = false;
13904     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
13905 
13906 
13907 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13908 VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
13909     : pNext( pNext_ ), transform( transform_ ), renderArea( renderArea_ )
13910     {}
13911 
13912     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13913 
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13914     CommandBufferInheritanceRenderPassTransformInfoQCOM( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
13915       : CommandBufferInheritanceRenderPassTransformInfoQCOM( *reinterpret_cast<CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs ) )
13916     {}
13917 
13918 
13919     CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
13920 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
13921 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13922     CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
13923     {
13924       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs );
13925       return *this;
13926     }
13927 
13928 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13929     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
13930     {
13931       pNext = pNext_;
13932       return *this;
13933     }
13934 
setTransformVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13935     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
13936     {
13937       transform = transform_;
13938       return *this;
13939     }
13940 
setRenderAreaVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13941     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
13942     {
13943       renderArea = renderArea_;
13944       return *this;
13945     }
13946 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
13947 
13948 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13949     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
13950     {
13951       return *reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
13952     }
13953 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13954     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
13955     {
13956       return *reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
13957     }
13958 
13959 #if defined( VULKAN_HPP_USE_REFLECT )
13960 #if 14 <= VULKAN_HPP_CPP_VERSION
13961     auto
13962 #else
13963     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &, VULKAN_HPP_NAMESPACE::Rect2D const &>
13964 #endif
reflectVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13965       reflect() const VULKAN_HPP_NOEXCEPT
13966     {
13967       return std::tie( sType, pNext, transform, renderArea );
13968     }
13969 #endif
13970 
13971 
13972 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
13973 auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const & ) const = default;
13974 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13975     bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
13976     {
13977 #if defined( VULKAN_HPP_USE_REFLECT )
13978       return this->reflect() == rhs.reflect();
13979 #else
13980       return ( sType == rhs.sType )
13981           && ( pNext == rhs.pNext )
13982           && ( transform == rhs.transform )
13983           && ( renderArea == rhs.renderArea );
13984 #endif
13985     }
13986 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM13987     bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
13988     {
13989       return !operator==( rhs );
13990     }
13991 #endif
13992 
13993     public:
13994     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
13995     void * pNext = {};
13996     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
13997     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
13998 
13999   };
14000 
14001   template <>
14002   struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM>
14003   {
14004     using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM;
14005   };
14006 
14007   struct CommandBufferInheritanceRenderingInfo
14008   {
14009     using NativeType = VkCommandBufferInheritanceRenderingInfo;
14010 
14011     static const bool allowDuplicate = false;
14012     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderingInfo;
14013 
14014 
14015 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceRenderingInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14016 VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderingInfo(VULKAN_HPP_NAMESPACE::RenderingFlags flags_ = {}, uint32_t viewMask_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ = {}, VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
14017     : pNext( pNext_ ), flags( flags_ ), viewMask( viewMask_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachmentFormats( pColorAttachmentFormats_ ), depthAttachmentFormat( depthAttachmentFormat_ ), stencilAttachmentFormat( stencilAttachmentFormat_ ), rasterizationSamples( rasterizationSamples_ )
14018     {}
14019 
14020     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderingInfo( CommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14021 
CommandBufferInheritanceRenderingInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14022     CommandBufferInheritanceRenderingInfo( VkCommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT
14023       : CommandBufferInheritanceRenderingInfo( *reinterpret_cast<CommandBufferInheritanceRenderingInfo const *>( &rhs ) )
14024     {}
14025 
14026 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CommandBufferInheritanceRenderingInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14027     CommandBufferInheritanceRenderingInfo( VULKAN_HPP_NAMESPACE::RenderingFlags flags_, uint32_t viewMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_, VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, const void * pNext_ = nullptr )
14028     : pNext( pNext_ ), flags( flags_ ), viewMask( viewMask_ ), colorAttachmentCount( static_cast<uint32_t>( colorAttachmentFormats_.size() ) ), pColorAttachmentFormats( colorAttachmentFormats_.data() ), depthAttachmentFormat( depthAttachmentFormat_ ), stencilAttachmentFormat( stencilAttachmentFormat_ ), rasterizationSamples( rasterizationSamples_ )
14029     {}
14030 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14031 
14032 
14033     CommandBufferInheritanceRenderingInfo & operator=( CommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14034 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
14035 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14036     CommandBufferInheritanceRenderingInfo & operator=( VkCommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT
14037     {
14038       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo const *>( &rhs );
14039       return *this;
14040     }
14041 
14042 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14043     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
14044     {
14045       pNext = pNext_;
14046       return *this;
14047     }
14048 
setFlagsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14049     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderingFlags flags_ ) VULKAN_HPP_NOEXCEPT
14050     {
14051       flags = flags_;
14052       return *this;
14053     }
14054 
setViewMaskVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14055     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
14056     {
14057       viewMask = viewMask_;
14058       return *this;
14059     }
14060 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14061     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
14062     {
14063       colorAttachmentCount = colorAttachmentCount_;
14064       return *this;
14065     }
14066 
setPColorAttachmentFormatsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14067     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
14068     {
14069       pColorAttachmentFormats = pColorAttachmentFormats_;
14070       return *this;
14071     }
14072 
14073 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setColorAttachmentFormatsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14074     CommandBufferInheritanceRenderingInfo & setColorAttachmentFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
14075     {
14076       colorAttachmentCount = static_cast<uint32_t>( colorAttachmentFormats_.size() );
14077       pColorAttachmentFormats = colorAttachmentFormats_.data();
14078       return *this;
14079     }
14080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14081 
setDepthAttachmentFormatVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14082     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
14083     {
14084       depthAttachmentFormat = depthAttachmentFormat_;
14085       return *this;
14086     }
14087 
setStencilAttachmentFormatVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14088     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
14089     {
14090       stencilAttachmentFormat = stencilAttachmentFormat_;
14091       return *this;
14092     }
14093 
setRasterizationSamplesVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14094     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
14095     {
14096       rasterizationSamples = rasterizationSamples_;
14097       return *this;
14098     }
14099 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
14100 
14101 
operator VkCommandBufferInheritanceRenderingInfo const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14102     operator VkCommandBufferInheritanceRenderingInfo const &() const VULKAN_HPP_NOEXCEPT
14103     {
14104       return *reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo*>( this );
14105     }
14106 
operator VkCommandBufferInheritanceRenderingInfo&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14107     operator VkCommandBufferInheritanceRenderingInfo &() VULKAN_HPP_NOEXCEPT
14108     {
14109       return *reinterpret_cast<VkCommandBufferInheritanceRenderingInfo*>( this );
14110     }
14111 
14112 #if defined( VULKAN_HPP_USE_REFLECT )
14113 #if 14 <= VULKAN_HPP_CPP_VERSION
14114     auto
14115 #else
14116     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderingFlags const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Format * const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
14117 #endif
reflectVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14118       reflect() const VULKAN_HPP_NOEXCEPT
14119     {
14120       return std::tie( sType, pNext, flags, viewMask, colorAttachmentCount, pColorAttachmentFormats, depthAttachmentFormat, stencilAttachmentFormat, rasterizationSamples );
14121     }
14122 #endif
14123 
14124 
14125 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14126 auto operator<=>( CommandBufferInheritanceRenderingInfo const & ) const = default;
14127 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14128     bool operator==( CommandBufferInheritanceRenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14129     {
14130 #if defined( VULKAN_HPP_USE_REFLECT )
14131       return this->reflect() == rhs.reflect();
14132 #else
14133       return ( sType == rhs.sType )
14134           && ( pNext == rhs.pNext )
14135           && ( flags == rhs.flags )
14136           && ( viewMask == rhs.viewMask )
14137           && ( colorAttachmentCount == rhs.colorAttachmentCount )
14138           && ( pColorAttachmentFormats == rhs.pColorAttachmentFormats )
14139           && ( depthAttachmentFormat == rhs.depthAttachmentFormat )
14140           && ( stencilAttachmentFormat == rhs.stencilAttachmentFormat )
14141           && ( rasterizationSamples == rhs.rasterizationSamples );
14142 #endif
14143     }
14144 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo14145     bool operator!=( CommandBufferInheritanceRenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14146     {
14147       return !operator==( rhs );
14148     }
14149 #endif
14150 
14151     public:
14152     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderingInfo;
14153     const void * pNext = {};
14154     VULKAN_HPP_NAMESPACE::RenderingFlags flags = {};
14155     uint32_t viewMask = {};
14156     uint32_t colorAttachmentCount = {};
14157     const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats = {};
14158     VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
14159     VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
14160     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
14161 
14162   };
14163 
14164   template <>
14165   struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderingInfo>
14166   {
14167     using Type = CommandBufferInheritanceRenderingInfo;
14168   };
14169   using CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo;
14170 
14171   struct Viewport
14172   {
14173     using NativeType = VkViewport;
14174 
14175 
14176 
14177 
14178 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportVULKAN_HPP_NAMESPACE::Viewport14179 VULKAN_HPP_CONSTEXPR Viewport(float x_ = {}, float y_ = {}, float width_ = {}, float height_ = {}, float minDepth_ = {}, float maxDepth_ = {}) VULKAN_HPP_NOEXCEPT
14180     : x( x_ ), y( y_ ), width( width_ ), height( height_ ), minDepth( minDepth_ ), maxDepth( maxDepth_ )
14181     {}
14182 
14183     VULKAN_HPP_CONSTEXPR Viewport( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14184 
ViewportVULKAN_HPP_NAMESPACE::Viewport14185     Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
14186       : Viewport( *reinterpret_cast<Viewport const *>( &rhs ) )
14187     {}
14188 
14189 
14190     Viewport & operator=( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14191 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
14192 
operator =VULKAN_HPP_NAMESPACE::Viewport14193     Viewport & operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
14194     {
14195       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Viewport const *>( &rhs );
14196       return *this;
14197     }
14198 
14199 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setXVULKAN_HPP_NAMESPACE::Viewport14200     VULKAN_HPP_CONSTEXPR_14 Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT
14201     {
14202       x = x_;
14203       return *this;
14204     }
14205 
setYVULKAN_HPP_NAMESPACE::Viewport14206     VULKAN_HPP_CONSTEXPR_14 Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT
14207     {
14208       y = y_;
14209       return *this;
14210     }
14211 
setWidthVULKAN_HPP_NAMESPACE::Viewport14212     VULKAN_HPP_CONSTEXPR_14 Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT
14213     {
14214       width = width_;
14215       return *this;
14216     }
14217 
setHeightVULKAN_HPP_NAMESPACE::Viewport14218     VULKAN_HPP_CONSTEXPR_14 Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT
14219     {
14220       height = height_;
14221       return *this;
14222     }
14223 
setMinDepthVULKAN_HPP_NAMESPACE::Viewport14224     VULKAN_HPP_CONSTEXPR_14 Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT
14225     {
14226       minDepth = minDepth_;
14227       return *this;
14228     }
14229 
setMaxDepthVULKAN_HPP_NAMESPACE::Viewport14230     VULKAN_HPP_CONSTEXPR_14 Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT
14231     {
14232       maxDepth = maxDepth_;
14233       return *this;
14234     }
14235 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
14236 
14237 
operator VkViewport const&VULKAN_HPP_NAMESPACE::Viewport14238     operator VkViewport const &() const VULKAN_HPP_NOEXCEPT
14239     {
14240       return *reinterpret_cast<const VkViewport*>( this );
14241     }
14242 
operator VkViewport&VULKAN_HPP_NAMESPACE::Viewport14243     operator VkViewport &() VULKAN_HPP_NOEXCEPT
14244     {
14245       return *reinterpret_cast<VkViewport*>( this );
14246     }
14247 
14248 #if defined( VULKAN_HPP_USE_REFLECT )
14249 #if 14 <= VULKAN_HPP_CPP_VERSION
14250     auto
14251 #else
14252     std::tuple<float const &, float const &, float const &, float const &, float const &, float const &>
14253 #endif
reflectVULKAN_HPP_NAMESPACE::Viewport14254       reflect() const VULKAN_HPP_NOEXCEPT
14255     {
14256       return std::tie( x, y, width, height, minDepth, maxDepth );
14257     }
14258 #endif
14259 
14260 
14261 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14262 auto operator<=>( Viewport const & ) const = default;
14263 #else
operator ==VULKAN_HPP_NAMESPACE::Viewport14264     bool operator==( Viewport const & rhs ) const VULKAN_HPP_NOEXCEPT
14265     {
14266 #if defined( VULKAN_HPP_USE_REFLECT )
14267       return this->reflect() == rhs.reflect();
14268 #else
14269       return ( x == rhs.x )
14270           && ( y == rhs.y )
14271           && ( width == rhs.width )
14272           && ( height == rhs.height )
14273           && ( minDepth == rhs.minDepth )
14274           && ( maxDepth == rhs.maxDepth );
14275 #endif
14276     }
14277 
operator !=VULKAN_HPP_NAMESPACE::Viewport14278     bool operator!=( Viewport const & rhs ) const VULKAN_HPP_NOEXCEPT
14279     {
14280       return !operator==( rhs );
14281     }
14282 #endif
14283 
14284     public:
14285     float x = {};
14286     float y = {};
14287     float width = {};
14288     float height = {};
14289     float minDepth = {};
14290     float maxDepth = {};
14291 
14292   };
14293 
14294   struct CommandBufferInheritanceViewportScissorInfoNV
14295   {
14296     using NativeType = VkCommandBufferInheritanceViewportScissorInfoNV;
14297 
14298     static const bool allowDuplicate = false;
14299     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceViewportScissorInfoNV;
14300 
14301 
14302 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceViewportScissorInfoNVVULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14303 VULKAN_HPP_CONSTEXPR CommandBufferInheritanceViewportScissorInfoNV(VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D_ = {}, uint32_t viewportDepthCount_ = {}, const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
14304     : pNext( pNext_ ), viewportScissor2D( viewportScissor2D_ ), viewportDepthCount( viewportDepthCount_ ), pViewportDepths( pViewportDepths_ )
14305     {}
14306 
14307     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceViewportScissorInfoNV( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14308 
CommandBufferInheritanceViewportScissorInfoNVVULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14309     CommandBufferInheritanceViewportScissorInfoNV( VkCommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
14310       : CommandBufferInheritanceViewportScissorInfoNV( *reinterpret_cast<CommandBufferInheritanceViewportScissorInfoNV const *>( &rhs ) )
14311     {}
14312 
14313 
14314     CommandBufferInheritanceViewportScissorInfoNV & operator=( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14315 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
14316 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14317     CommandBufferInheritanceViewportScissorInfoNV & operator=( VkCommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
14318     {
14319       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV const *>( &rhs );
14320       return *this;
14321     }
14322 
14323 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14324     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
14325     {
14326       pNext = pNext_;
14327       return *this;
14328     }
14329 
setViewportScissor2DVULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14330     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV & setViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D_ ) VULKAN_HPP_NOEXCEPT
14331     {
14332       viewportScissor2D = viewportScissor2D_;
14333       return *this;
14334     }
14335 
setViewportDepthCountVULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14336     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV & setViewportDepthCount( uint32_t viewportDepthCount_ ) VULKAN_HPP_NOEXCEPT
14337     {
14338       viewportDepthCount = viewportDepthCount_;
14339       return *this;
14340     }
14341 
setPViewportDepthsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14342     VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV & setPViewportDepths( const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ ) VULKAN_HPP_NOEXCEPT
14343     {
14344       pViewportDepths = pViewportDepths_;
14345       return *this;
14346     }
14347 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
14348 
14349 
operator VkCommandBufferInheritanceViewportScissorInfoNV const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14350     operator VkCommandBufferInheritanceViewportScissorInfoNV const &() const VULKAN_HPP_NOEXCEPT
14351     {
14352       return *reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV*>( this );
14353     }
14354 
operator VkCommandBufferInheritanceViewportScissorInfoNV&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14355     operator VkCommandBufferInheritanceViewportScissorInfoNV &() VULKAN_HPP_NOEXCEPT
14356     {
14357       return *reinterpret_cast<VkCommandBufferInheritanceViewportScissorInfoNV*>( this );
14358     }
14359 
14360 #if defined( VULKAN_HPP_USE_REFLECT )
14361 #if 14 <= VULKAN_HPP_CPP_VERSION
14362     auto
14363 #else
14364     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Viewport * const &>
14365 #endif
reflectVULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14366       reflect() const VULKAN_HPP_NOEXCEPT
14367     {
14368       return std::tie( sType, pNext, viewportScissor2D, viewportDepthCount, pViewportDepths );
14369     }
14370 #endif
14371 
14372 
14373 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14374 auto operator<=>( CommandBufferInheritanceViewportScissorInfoNV const & ) const = default;
14375 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14376     bool operator==( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
14377     {
14378 #if defined( VULKAN_HPP_USE_REFLECT )
14379       return this->reflect() == rhs.reflect();
14380 #else
14381       return ( sType == rhs.sType )
14382           && ( pNext == rhs.pNext )
14383           && ( viewportScissor2D == rhs.viewportScissor2D )
14384           && ( viewportDepthCount == rhs.viewportDepthCount )
14385           && ( pViewportDepths == rhs.pViewportDepths );
14386 #endif
14387     }
14388 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV14389     bool operator!=( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
14390     {
14391       return !operator==( rhs );
14392     }
14393 #endif
14394 
14395     public:
14396     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceViewportScissorInfoNV;
14397     const void * pNext = {};
14398     VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D = {};
14399     uint32_t viewportDepthCount = {};
14400     const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths = {};
14401 
14402   };
14403 
14404   template <>
14405   struct CppType<StructureType, StructureType::eCommandBufferInheritanceViewportScissorInfoNV>
14406   {
14407     using Type = CommandBufferInheritanceViewportScissorInfoNV;
14408   };
14409 
14410   struct CommandBufferSubmitInfo
14411   {
14412     using NativeType = VkCommandBufferSubmitInfo;
14413 
14414     static const bool allowDuplicate = false;
14415     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferSubmitInfo;
14416 
14417 
14418 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferSubmitInfoVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14419 VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfo(VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ = {}, uint32_t deviceMask_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
14420     : pNext( pNext_ ), commandBuffer( commandBuffer_ ), deviceMask( deviceMask_ )
14421     {}
14422 
14423     VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfo( CommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14424 
CommandBufferSubmitInfoVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14425     CommandBufferSubmitInfo( VkCommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
14426       : CommandBufferSubmitInfo( *reinterpret_cast<CommandBufferSubmitInfo const *>( &rhs ) )
14427     {}
14428 
14429 
14430     CommandBufferSubmitInfo & operator=( CommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14431 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
14432 
operator =VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14433     CommandBufferSubmitInfo & operator=( VkCommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
14434     {
14435       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo const *>( &rhs );
14436       return *this;
14437     }
14438 
14439 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14440     VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
14441     {
14442       pNext = pNext_;
14443       return *this;
14444     }
14445 
setCommandBufferVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14446     VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfo & setCommandBuffer( VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ ) VULKAN_HPP_NOEXCEPT
14447     {
14448       commandBuffer = commandBuffer_;
14449       return *this;
14450     }
14451 
setDeviceMaskVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14452     VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
14453     {
14454       deviceMask = deviceMask_;
14455       return *this;
14456     }
14457 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
14458 
14459 
operator VkCommandBufferSubmitInfo const&VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14460     operator VkCommandBufferSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
14461     {
14462       return *reinterpret_cast<const VkCommandBufferSubmitInfo*>( this );
14463     }
14464 
operator VkCommandBufferSubmitInfo&VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14465     operator VkCommandBufferSubmitInfo &() VULKAN_HPP_NOEXCEPT
14466     {
14467       return *reinterpret_cast<VkCommandBufferSubmitInfo*>( this );
14468     }
14469 
14470 #if defined( VULKAN_HPP_USE_REFLECT )
14471 #if 14 <= VULKAN_HPP_CPP_VERSION
14472     auto
14473 #else
14474     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CommandBuffer const &, uint32_t const &>
14475 #endif
reflectVULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14476       reflect() const VULKAN_HPP_NOEXCEPT
14477     {
14478       return std::tie( sType, pNext, commandBuffer, deviceMask );
14479     }
14480 #endif
14481 
14482 
14483 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14484 auto operator<=>( CommandBufferSubmitInfo const & ) const = default;
14485 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14486     bool operator==( CommandBufferSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14487     {
14488 #if defined( VULKAN_HPP_USE_REFLECT )
14489       return this->reflect() == rhs.reflect();
14490 #else
14491       return ( sType == rhs.sType )
14492           && ( pNext == rhs.pNext )
14493           && ( commandBuffer == rhs.commandBuffer )
14494           && ( deviceMask == rhs.deviceMask );
14495 #endif
14496     }
14497 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo14498     bool operator!=( CommandBufferSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14499     {
14500       return !operator==( rhs );
14501     }
14502 #endif
14503 
14504     public:
14505     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferSubmitInfo;
14506     const void * pNext = {};
14507     VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer = {};
14508     uint32_t deviceMask = {};
14509 
14510   };
14511 
14512   template <>
14513   struct CppType<StructureType, StructureType::eCommandBufferSubmitInfo>
14514   {
14515     using Type = CommandBufferSubmitInfo;
14516   };
14517   using CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo;
14518 
14519   struct CommandPoolCreateInfo
14520   {
14521     using NativeType = VkCommandPoolCreateInfo;
14522 
14523     static const bool allowDuplicate = false;
14524     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo;
14525 
14526 
14527 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14528 VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo(VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
14529     : pNext( pNext_ ), flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ )
14530     {}
14531 
14532     VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14533 
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14534     CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
14535       : CommandPoolCreateInfo( *reinterpret_cast<CommandPoolCreateInfo const *>( &rhs ) )
14536     {}
14537 
14538 
14539     CommandPoolCreateInfo & operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14540 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
14541 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14542     CommandPoolCreateInfo & operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
14543     {
14544       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const *>( &rhs );
14545       return *this;
14546     }
14547 
14548 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14549     VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
14550     {
14551       pNext = pNext_;
14552       return *this;
14553     }
14554 
setFlagsVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14555     VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
14556     {
14557       flags = flags_;
14558       return *this;
14559     }
14560 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14561     VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
14562     {
14563       queueFamilyIndex = queueFamilyIndex_;
14564       return *this;
14565     }
14566 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
14567 
14568 
operator VkCommandPoolCreateInfo const&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14569     operator VkCommandPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
14570     {
14571       return *reinterpret_cast<const VkCommandPoolCreateInfo*>( this );
14572     }
14573 
operator VkCommandPoolCreateInfo&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14574     operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
14575     {
14576       return *reinterpret_cast<VkCommandPoolCreateInfo*>( this );
14577     }
14578 
14579 #if defined( VULKAN_HPP_USE_REFLECT )
14580 #if 14 <= VULKAN_HPP_CPP_VERSION
14581     auto
14582 #else
14583     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags const &, uint32_t const &>
14584 #endif
reflectVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14585       reflect() const VULKAN_HPP_NOEXCEPT
14586     {
14587       return std::tie( sType, pNext, flags, queueFamilyIndex );
14588     }
14589 #endif
14590 
14591 
14592 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14593 auto operator<=>( CommandPoolCreateInfo const & ) const = default;
14594 #else
operator ==VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14595     bool operator==( CommandPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14596     {
14597 #if defined( VULKAN_HPP_USE_REFLECT )
14598       return this->reflect() == rhs.reflect();
14599 #else
14600       return ( sType == rhs.sType )
14601           && ( pNext == rhs.pNext )
14602           && ( flags == rhs.flags )
14603           && ( queueFamilyIndex == rhs.queueFamilyIndex );
14604 #endif
14605     }
14606 
operator !=VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo14607     bool operator!=( CommandPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14608     {
14609       return !operator==( rhs );
14610     }
14611 #endif
14612 
14613     public:
14614     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo;
14615     const void * pNext = {};
14616     VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {};
14617     uint32_t queueFamilyIndex = {};
14618 
14619   };
14620 
14621   template <>
14622   struct CppType<StructureType, StructureType::eCommandPoolCreateInfo>
14623   {
14624     using Type = CommandPoolCreateInfo;
14625   };
14626 
14627   struct SpecializationMapEntry
14628   {
14629     using NativeType = VkSpecializationMapEntry;
14630 
14631 
14632 
14633 
14634 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry14635 VULKAN_HPP_CONSTEXPR SpecializationMapEntry(uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {}) VULKAN_HPP_NOEXCEPT
14636     : constantID( constantID_ ), offset( offset_ ), size( size_ )
14637     {}
14638 
14639     VULKAN_HPP_CONSTEXPR SpecializationMapEntry( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14640 
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry14641     SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
14642       : SpecializationMapEntry( *reinterpret_cast<SpecializationMapEntry const *>( &rhs ) )
14643     {}
14644 
14645 
14646     SpecializationMapEntry & operator=( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14647 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
14648 
operator =VULKAN_HPP_NAMESPACE::SpecializationMapEntry14649     SpecializationMapEntry & operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
14650     {
14651       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationMapEntry const *>( &rhs );
14652       return *this;
14653     }
14654 
14655 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setConstantIDVULKAN_HPP_NAMESPACE::SpecializationMapEntry14656     VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT
14657     {
14658       constantID = constantID_;
14659       return *this;
14660     }
14661 
setOffsetVULKAN_HPP_NAMESPACE::SpecializationMapEntry14662     VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
14663     {
14664       offset = offset_;
14665       return *this;
14666     }
14667 
setSizeVULKAN_HPP_NAMESPACE::SpecializationMapEntry14668     VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT
14669     {
14670       size = size_;
14671       return *this;
14672     }
14673 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
14674 
14675 
operator VkSpecializationMapEntry const&VULKAN_HPP_NAMESPACE::SpecializationMapEntry14676     operator VkSpecializationMapEntry const &() const VULKAN_HPP_NOEXCEPT
14677     {
14678       return *reinterpret_cast<const VkSpecializationMapEntry*>( this );
14679     }
14680 
operator VkSpecializationMapEntry&VULKAN_HPP_NAMESPACE::SpecializationMapEntry14681     operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT
14682     {
14683       return *reinterpret_cast<VkSpecializationMapEntry*>( this );
14684     }
14685 
14686 #if defined( VULKAN_HPP_USE_REFLECT )
14687 #if 14 <= VULKAN_HPP_CPP_VERSION
14688     auto
14689 #else
14690     std::tuple<uint32_t const &, uint32_t const &, size_t const &>
14691 #endif
reflectVULKAN_HPP_NAMESPACE::SpecializationMapEntry14692       reflect() const VULKAN_HPP_NOEXCEPT
14693     {
14694       return std::tie( constantID, offset, size );
14695     }
14696 #endif
14697 
14698 
14699 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14700 auto operator<=>( SpecializationMapEntry const & ) const = default;
14701 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationMapEntry14702     bool operator==( SpecializationMapEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
14703     {
14704 #if defined( VULKAN_HPP_USE_REFLECT )
14705       return this->reflect() == rhs.reflect();
14706 #else
14707       return ( constantID == rhs.constantID )
14708           && ( offset == rhs.offset )
14709           && ( size == rhs.size );
14710 #endif
14711     }
14712 
operator !=VULKAN_HPP_NAMESPACE::SpecializationMapEntry14713     bool operator!=( SpecializationMapEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
14714     {
14715       return !operator==( rhs );
14716     }
14717 #endif
14718 
14719     public:
14720     uint32_t constantID = {};
14721     uint32_t offset = {};
14722     size_t size = {};
14723 
14724   };
14725 
14726   struct SpecializationInfo
14727   {
14728     using NativeType = VkSpecializationInfo;
14729 
14730 
14731 
14732 
14733 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo14734 VULKAN_HPP_CONSTEXPR SpecializationInfo(uint32_t mapEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries_ = {}, size_t dataSize_ = {}, const void * pData_ = {}) VULKAN_HPP_NOEXCEPT
14735     : mapEntryCount( mapEntryCount_ ), pMapEntries( pMapEntries_ ), dataSize( dataSize_ ), pData( pData_ )
14736     {}
14737 
14738     VULKAN_HPP_CONSTEXPR SpecializationInfo( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14739 
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo14740     SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
14741       : SpecializationInfo( *reinterpret_cast<SpecializationInfo const *>( &rhs ) )
14742     {}
14743 
14744 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
14745     template <typename T>
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo14746     SpecializationInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ = {} )
14747     : mapEntryCount( static_cast<uint32_t>( mapEntries_.size() ) ), pMapEntries( mapEntries_.data() ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
14748     {}
14749 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14750 
14751 
14752     SpecializationInfo & operator=( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14753 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
14754 
operator =VULKAN_HPP_NAMESPACE::SpecializationInfo14755     SpecializationInfo & operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
14756     {
14757       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationInfo const *>( &rhs );
14758       return *this;
14759     }
14760 
14761 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setMapEntryCountVULKAN_HPP_NAMESPACE::SpecializationInfo14762     VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT
14763     {
14764       mapEntryCount = mapEntryCount_;
14765       return *this;
14766     }
14767 
setPMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo14768     VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries_ ) VULKAN_HPP_NOEXCEPT
14769     {
14770       pMapEntries = pMapEntries_;
14771       return *this;
14772     }
14773 
14774 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo14775     SpecializationInfo & setMapEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_ ) VULKAN_HPP_NOEXCEPT
14776     {
14777       mapEntryCount = static_cast<uint32_t>( mapEntries_.size() );
14778       pMapEntries = mapEntries_.data();
14779       return *this;
14780     }
14781 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14782 
setDataSizeVULKAN_HPP_NAMESPACE::SpecializationInfo14783     VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
14784     {
14785       dataSize = dataSize_;
14786       return *this;
14787     }
14788 
setPDataVULKAN_HPP_NAMESPACE::SpecializationInfo14789     VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
14790     {
14791       pData = pData_;
14792       return *this;
14793     }
14794 
14795 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
14796     template <typename T>
setDataVULKAN_HPP_NAMESPACE::SpecializationInfo14797     SpecializationInfo & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
14798     {
14799       dataSize = data_.size() * sizeof(T);
14800       pData = data_.data();
14801       return *this;
14802     }
14803 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14804 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
14805 
14806 
operator VkSpecializationInfo const&VULKAN_HPP_NAMESPACE::SpecializationInfo14807     operator VkSpecializationInfo const &() const VULKAN_HPP_NOEXCEPT
14808     {
14809       return *reinterpret_cast<const VkSpecializationInfo*>( this );
14810     }
14811 
operator VkSpecializationInfo&VULKAN_HPP_NAMESPACE::SpecializationInfo14812     operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT
14813     {
14814       return *reinterpret_cast<VkSpecializationInfo*>( this );
14815     }
14816 
14817 #if defined( VULKAN_HPP_USE_REFLECT )
14818 #if 14 <= VULKAN_HPP_CPP_VERSION
14819     auto
14820 #else
14821     std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * const &, size_t const &, const void * const &>
14822 #endif
reflectVULKAN_HPP_NAMESPACE::SpecializationInfo14823       reflect() const VULKAN_HPP_NOEXCEPT
14824     {
14825       return std::tie( mapEntryCount, pMapEntries, dataSize, pData );
14826     }
14827 #endif
14828 
14829 
14830 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14831 auto operator<=>( SpecializationInfo const & ) const = default;
14832 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationInfo14833     bool operator==( SpecializationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14834     {
14835 #if defined( VULKAN_HPP_USE_REFLECT )
14836       return this->reflect() == rhs.reflect();
14837 #else
14838       return ( mapEntryCount == rhs.mapEntryCount )
14839           && ( pMapEntries == rhs.pMapEntries )
14840           && ( dataSize == rhs.dataSize )
14841           && ( pData == rhs.pData );
14842 #endif
14843     }
14844 
operator !=VULKAN_HPP_NAMESPACE::SpecializationInfo14845     bool operator!=( SpecializationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14846     {
14847       return !operator==( rhs );
14848     }
14849 #endif
14850 
14851     public:
14852     uint32_t mapEntryCount = {};
14853     const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries = {};
14854     size_t dataSize = {};
14855     const void * pData = {};
14856 
14857   };
14858 
14859   struct PipelineShaderStageCreateInfo
14860   {
14861     using NativeType = VkPipelineShaderStageCreateInfo;
14862 
14863     static const bool allowDuplicate = false;
14864     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo;
14865 
14866 
14867 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14868 VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo(VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex, VULKAN_HPP_NAMESPACE::ShaderModule module_ = {}, const char * pName_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
14869     : pNext( pNext_ ), flags( flags_ ), stage( stage_ ), module( module_ ), pName( pName_ ), pSpecializationInfo( pSpecializationInfo_ )
14870     {}
14871 
14872     VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14873 
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14874     PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
14875       : PipelineShaderStageCreateInfo( *reinterpret_cast<PipelineShaderStageCreateInfo const *>( &rhs ) )
14876     {}
14877 
14878 
14879     PipelineShaderStageCreateInfo & operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14880 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
14881 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14882     PipelineShaderStageCreateInfo & operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
14883     {
14884       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const *>( &rhs );
14885       return *this;
14886     }
14887 
14888 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14889     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
14890     {
14891       pNext = pNext_;
14892       return *this;
14893     }
14894 
setFlagsVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14895     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
14896     {
14897       flags = flags_;
14898       return *this;
14899     }
14900 
setStageVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14901     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
14902     {
14903       stage = stage_;
14904       return *this;
14905     }
14906 
setModuleVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14907     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT
14908     {
14909       module = module_;
14910       return *this;
14911     }
14912 
setPNameVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14913     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
14914     {
14915       pName = pName_;
14916       return *this;
14917     }
14918 
setPSpecializationInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14919     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
14920     {
14921       pSpecializationInfo = pSpecializationInfo_;
14922       return *this;
14923     }
14924 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
14925 
14926 
operator VkPipelineShaderStageCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14927     operator VkPipelineShaderStageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
14928     {
14929       return *reinterpret_cast<const VkPipelineShaderStageCreateInfo*>( this );
14930     }
14931 
operator VkPipelineShaderStageCreateInfo&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14932     operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT
14933     {
14934       return *reinterpret_cast<VkPipelineShaderStageCreateInfo*>( this );
14935     }
14936 
14937 #if defined( VULKAN_HPP_USE_REFLECT )
14938 #if 14 <= VULKAN_HPP_CPP_VERSION
14939     auto
14940 #else
14941     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags const &, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits const &, VULKAN_HPP_NAMESPACE::ShaderModule const &, const char * const &, const VULKAN_HPP_NAMESPACE::SpecializationInfo * const &>
14942 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14943       reflect() const VULKAN_HPP_NOEXCEPT
14944     {
14945       return std::tie( sType, pNext, flags, stage, module, pName, pSpecializationInfo );
14946     }
14947 #endif
14948 
14949 
14950 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14951     std::strong_ordering operator<=>( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14952     {
14953       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
14954       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
14955       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
14956       if ( auto cmp = stage <=> rhs.stage; cmp != 0 ) return cmp;
14957       if ( auto cmp = module <=> rhs.module; cmp != 0 ) return cmp;
14958      if ( pName != rhs.pName )
14959         if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
14960           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
14961       if ( auto cmp = pSpecializationInfo <=> rhs.pSpecializationInfo; cmp != 0 ) return cmp;
14962 
14963       return std::strong_ordering::equivalent;
14964     }
14965 #endif
14966 
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14967     bool operator==( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14968     {
14969       return ( sType == rhs.sType )
14970           && ( pNext == rhs.pNext )
14971           && ( flags == rhs.flags )
14972           && ( stage == rhs.stage )
14973           && ( module == rhs.module )
14974           && ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) )
14975           && ( pSpecializationInfo == rhs.pSpecializationInfo );
14976     }
14977 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo14978     bool operator!=( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
14979     {
14980       return !operator==( rhs );
14981     }
14982 
14983     public:
14984     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo;
14985     const void * pNext = {};
14986     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {};
14987     VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
14988     VULKAN_HPP_NAMESPACE::ShaderModule module = {};
14989     const char * pName = {};
14990     const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo = {};
14991 
14992   };
14993 
14994   template <>
14995   struct CppType<StructureType, StructureType::ePipelineShaderStageCreateInfo>
14996   {
14997     using Type = PipelineShaderStageCreateInfo;
14998   };
14999 
15000   struct ComputePipelineCreateInfo
15001   {
15002     using NativeType = VkComputePipelineCreateInfo;
15003 
15004     static const bool allowDuplicate = false;
15005     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo;
15006 
15007 
15008 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15009 VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
15010     : pNext( pNext_ ), flags( flags_ ), stage( stage_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
15011     {}
15012 
15013     VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15014 
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15015     ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
15016       : ComputePipelineCreateInfo( *reinterpret_cast<ComputePipelineCreateInfo const *>( &rhs ) )
15017     {}
15018 
15019 
15020     ComputePipelineCreateInfo & operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15021 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
15022 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15023     ComputePipelineCreateInfo & operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
15024     {
15025       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const *>( &rhs );
15026       return *this;
15027     }
15028 
15029 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15030     VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
15031     {
15032       pNext = pNext_;
15033       return *this;
15034     }
15035 
setFlagsVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15036     VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
15037     {
15038       flags = flags_;
15039       return *this;
15040     }
15041 
setStageVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15042     VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT
15043     {
15044       stage = stage_;
15045       return *this;
15046     }
15047 
setLayoutVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15048     VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
15049     {
15050       layout = layout_;
15051       return *this;
15052     }
15053 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15054     VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
15055     {
15056       basePipelineHandle = basePipelineHandle_;
15057       return *this;
15058     }
15059 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15060     VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
15061     {
15062       basePipelineIndex = basePipelineIndex_;
15063       return *this;
15064     }
15065 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
15066 
15067 
operator VkComputePipelineCreateInfo const&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15068     operator VkComputePipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT
15069     {
15070       return *reinterpret_cast<const VkComputePipelineCreateInfo*>( this );
15071     }
15072 
operator VkComputePipelineCreateInfo&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15073     operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
15074     {
15075       return *reinterpret_cast<VkComputePipelineCreateInfo*>( this );
15076     }
15077 
15078 #if defined( VULKAN_HPP_USE_REFLECT )
15079 #if 14 <= VULKAN_HPP_CPP_VERSION
15080     auto
15081 #else
15082     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &, VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const &, VULKAN_HPP_NAMESPACE::PipelineLayout const &, VULKAN_HPP_NAMESPACE::Pipeline const &, int32_t const &>
15083 #endif
reflectVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15084       reflect() const VULKAN_HPP_NOEXCEPT
15085     {
15086       return std::tie( sType, pNext, flags, stage, layout, basePipelineHandle, basePipelineIndex );
15087     }
15088 #endif
15089 
15090 
15091 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15092 auto operator<=>( ComputePipelineCreateInfo const & ) const = default;
15093 #else
operator ==VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15094     bool operator==( ComputePipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
15095     {
15096 #if defined( VULKAN_HPP_USE_REFLECT )
15097       return this->reflect() == rhs.reflect();
15098 #else
15099       return ( sType == rhs.sType )
15100           && ( pNext == rhs.pNext )
15101           && ( flags == rhs.flags )
15102           && ( stage == rhs.stage )
15103           && ( layout == rhs.layout )
15104           && ( basePipelineHandle == rhs.basePipelineHandle )
15105           && ( basePipelineIndex == rhs.basePipelineIndex );
15106 #endif
15107     }
15108 
operator !=VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo15109     bool operator!=( ComputePipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
15110     {
15111       return !operator==( rhs );
15112     }
15113 #endif
15114 
15115     public:
15116     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo;
15117     const void * pNext = {};
15118     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
15119     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {};
15120     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
15121     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
15122     int32_t basePipelineIndex = {};
15123 
15124   };
15125 
15126   template <>
15127   struct CppType<StructureType, StructureType::eComputePipelineCreateInfo>
15128   {
15129     using Type = ComputePipelineCreateInfo;
15130   };
15131 
15132   struct ComputePipelineIndirectBufferInfoNV
15133   {
15134     using NativeType = VkComputePipelineIndirectBufferInfoNV;
15135 
15136     static const bool allowDuplicate = false;
15137     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineIndirectBufferInfoNV;
15138 
15139 
15140 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComputePipelineIndirectBufferInfoNVVULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15141 VULKAN_HPP_CONSTEXPR ComputePipelineIndirectBufferInfoNV(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceAddress pipelineDeviceAddressCaptureReplay_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
15142     : pNext( pNext_ ), deviceAddress( deviceAddress_ ), size( size_ ), pipelineDeviceAddressCaptureReplay( pipelineDeviceAddressCaptureReplay_ )
15143     {}
15144 
15145     VULKAN_HPP_CONSTEXPR ComputePipelineIndirectBufferInfoNV( ComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15146 
ComputePipelineIndirectBufferInfoNVVULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15147     ComputePipelineIndirectBufferInfoNV( VkComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
15148       : ComputePipelineIndirectBufferInfoNV( *reinterpret_cast<ComputePipelineIndirectBufferInfoNV const *>( &rhs ) )
15149     {}
15150 
15151 
15152     ComputePipelineIndirectBufferInfoNV & operator=( ComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15153 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
15154 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15155     ComputePipelineIndirectBufferInfoNV & operator=( VkComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
15156     {
15157       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV const *>( &rhs );
15158       return *this;
15159     }
15160 
15161 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15162     VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
15163     {
15164       pNext = pNext_;
15165       return *this;
15166     }
15167 
setDeviceAddressVULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15168     VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
15169     {
15170       deviceAddress = deviceAddress_;
15171       return *this;
15172     }
15173 
setSizeVULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15174     VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
15175     {
15176       size = size_;
15177       return *this;
15178     }
15179 
setPipelineDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15180     VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV & setPipelineDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::DeviceAddress pipelineDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
15181     {
15182       pipelineDeviceAddressCaptureReplay = pipelineDeviceAddressCaptureReplay_;
15183       return *this;
15184     }
15185 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
15186 
15187 
operator VkComputePipelineIndirectBufferInfoNV const&VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15188     operator VkComputePipelineIndirectBufferInfoNV const &() const VULKAN_HPP_NOEXCEPT
15189     {
15190       return *reinterpret_cast<const VkComputePipelineIndirectBufferInfoNV*>( this );
15191     }
15192 
operator VkComputePipelineIndirectBufferInfoNV&VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15193     operator VkComputePipelineIndirectBufferInfoNV &() VULKAN_HPP_NOEXCEPT
15194     {
15195       return *reinterpret_cast<VkComputePipelineIndirectBufferInfoNV*>( this );
15196     }
15197 
15198 #if defined( VULKAN_HPP_USE_REFLECT )
15199 #if 14 <= VULKAN_HPP_CPP_VERSION
15200     auto
15201 #else
15202     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &>
15203 #endif
reflectVULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15204       reflect() const VULKAN_HPP_NOEXCEPT
15205     {
15206       return std::tie( sType, pNext, deviceAddress, size, pipelineDeviceAddressCaptureReplay );
15207     }
15208 #endif
15209 
15210 
15211 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15212 auto operator<=>( ComputePipelineIndirectBufferInfoNV const & ) const = default;
15213 #else
operator ==VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15214     bool operator==( ComputePipelineIndirectBufferInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
15215     {
15216 #if defined( VULKAN_HPP_USE_REFLECT )
15217       return this->reflect() == rhs.reflect();
15218 #else
15219       return ( sType == rhs.sType )
15220           && ( pNext == rhs.pNext )
15221           && ( deviceAddress == rhs.deviceAddress )
15222           && ( size == rhs.size )
15223           && ( pipelineDeviceAddressCaptureReplay == rhs.pipelineDeviceAddressCaptureReplay );
15224 #endif
15225     }
15226 
operator !=VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV15227     bool operator!=( ComputePipelineIndirectBufferInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
15228     {
15229       return !operator==( rhs );
15230     }
15231 #endif
15232 
15233     public:
15234     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineIndirectBufferInfoNV;
15235     const void * pNext = {};
15236     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
15237     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
15238     VULKAN_HPP_NAMESPACE::DeviceAddress pipelineDeviceAddressCaptureReplay = {};
15239 
15240   };
15241 
15242   template <>
15243   struct CppType<StructureType, StructureType::eComputePipelineIndirectBufferInfoNV>
15244   {
15245     using Type = ComputePipelineIndirectBufferInfoNV;
15246   };
15247 
15248   struct ConditionalRenderingBeginInfoEXT
15249   {
15250     using NativeType = VkConditionalRenderingBeginInfoEXT;
15251 
15252     static const bool allowDuplicate = false;
15253     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT;
15254 
15255 
15256 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15257 VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
15258     : pNext( pNext_ ), buffer( buffer_ ), offset( offset_ ), flags( flags_ )
15259     {}
15260 
15261     VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15262 
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15263     ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
15264       : ConditionalRenderingBeginInfoEXT( *reinterpret_cast<ConditionalRenderingBeginInfoEXT const *>( &rhs ) )
15265     {}
15266 
15267 
15268     ConditionalRenderingBeginInfoEXT & operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15269 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
15270 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15271     ConditionalRenderingBeginInfoEXT & operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
15272     {
15273       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const *>( &rhs );
15274       return *this;
15275     }
15276 
15277 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15278     VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
15279     {
15280       pNext = pNext_;
15281       return *this;
15282     }
15283 
setBufferVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15284     VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
15285     {
15286       buffer = buffer_;
15287       return *this;
15288     }
15289 
setOffsetVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15290     VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
15291     {
15292       offset = offset_;
15293       return *this;
15294     }
15295 
setFlagsVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15296     VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
15297     {
15298       flags = flags_;
15299       return *this;
15300     }
15301 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
15302 
15303 
operator VkConditionalRenderingBeginInfoEXT const&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15304     operator VkConditionalRenderingBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
15305     {
15306       return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( this );
15307     }
15308 
operator VkConditionalRenderingBeginInfoEXT&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15309     operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
15310     {
15311       return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>( this );
15312     }
15313 
15314 #if defined( VULKAN_HPP_USE_REFLECT )
15315 #if 14 <= VULKAN_HPP_CPP_VERSION
15316     auto
15317 #else
15318     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT const &>
15319 #endif
reflectVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15320       reflect() const VULKAN_HPP_NOEXCEPT
15321     {
15322       return std::tie( sType, pNext, buffer, offset, flags );
15323     }
15324 #endif
15325 
15326 
15327 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15328 auto operator<=>( ConditionalRenderingBeginInfoEXT const & ) const = default;
15329 #else
operator ==VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15330     bool operator==( ConditionalRenderingBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
15331     {
15332 #if defined( VULKAN_HPP_USE_REFLECT )
15333       return this->reflect() == rhs.reflect();
15334 #else
15335       return ( sType == rhs.sType )
15336           && ( pNext == rhs.pNext )
15337           && ( buffer == rhs.buffer )
15338           && ( offset == rhs.offset )
15339           && ( flags == rhs.flags );
15340 #endif
15341     }
15342 
operator !=VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT15343     bool operator!=( ConditionalRenderingBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
15344     {
15345       return !operator==( rhs );
15346     }
15347 #endif
15348 
15349     public:
15350     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT;
15351     const void * pNext = {};
15352     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
15353     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
15354     VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {};
15355 
15356   };
15357 
15358   template <>
15359   struct CppType<StructureType, StructureType::eConditionalRenderingBeginInfoEXT>
15360   {
15361     using Type = ConditionalRenderingBeginInfoEXT;
15362   };
15363 
15364   struct ConformanceVersion
15365   {
15366     using NativeType = VkConformanceVersion;
15367 
15368 
15369 
15370 
15371 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion15372 VULKAN_HPP_CONSTEXPR ConformanceVersion(uint8_t major_ = {}, uint8_t minor_ = {}, uint8_t subminor_ = {}, uint8_t patch_ = {}) VULKAN_HPP_NOEXCEPT
15373     : major( major_ ), minor( minor_ ), subminor( subminor_ ), patch( patch_ )
15374     {}
15375 
15376     VULKAN_HPP_CONSTEXPR ConformanceVersion( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15377 
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion15378     ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
15379       : ConformanceVersion( *reinterpret_cast<ConformanceVersion const *>( &rhs ) )
15380     {}
15381 
15382 
15383     ConformanceVersion & operator=( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15384 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
15385 
operator =VULKAN_HPP_NAMESPACE::ConformanceVersion15386     ConformanceVersion & operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
15387     {
15388       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConformanceVersion const *>( &rhs );
15389       return *this;
15390     }
15391 
15392 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setMajorVULKAN_HPP_NAMESPACE::ConformanceVersion15393     VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT
15394     {
15395       major = major_;
15396       return *this;
15397     }
15398 
setMinorVULKAN_HPP_NAMESPACE::ConformanceVersion15399     VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT
15400     {
15401       minor = minor_;
15402       return *this;
15403     }
15404 
setSubminorVULKAN_HPP_NAMESPACE::ConformanceVersion15405     VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT
15406     {
15407       subminor = subminor_;
15408       return *this;
15409     }
15410 
setPatchVULKAN_HPP_NAMESPACE::ConformanceVersion15411     VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT
15412     {
15413       patch = patch_;
15414       return *this;
15415     }
15416 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
15417 
15418 
operator VkConformanceVersion const&VULKAN_HPP_NAMESPACE::ConformanceVersion15419     operator VkConformanceVersion const &() const VULKAN_HPP_NOEXCEPT
15420     {
15421       return *reinterpret_cast<const VkConformanceVersion*>( this );
15422     }
15423 
operator VkConformanceVersion&VULKAN_HPP_NAMESPACE::ConformanceVersion15424     operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT
15425     {
15426       return *reinterpret_cast<VkConformanceVersion*>( this );
15427     }
15428 
15429 #if defined( VULKAN_HPP_USE_REFLECT )
15430 #if 14 <= VULKAN_HPP_CPP_VERSION
15431     auto
15432 #else
15433     std::tuple<uint8_t const &, uint8_t const &, uint8_t const &, uint8_t const &>
15434 #endif
reflectVULKAN_HPP_NAMESPACE::ConformanceVersion15435       reflect() const VULKAN_HPP_NOEXCEPT
15436     {
15437       return std::tie( major, minor, subminor, patch );
15438     }
15439 #endif
15440 
15441 
15442 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15443 auto operator<=>( ConformanceVersion const & ) const = default;
15444 #else
operator ==VULKAN_HPP_NAMESPACE::ConformanceVersion15445     bool operator==( ConformanceVersion const & rhs ) const VULKAN_HPP_NOEXCEPT
15446     {
15447 #if defined( VULKAN_HPP_USE_REFLECT )
15448       return this->reflect() == rhs.reflect();
15449 #else
15450       return ( major == rhs.major )
15451           && ( minor == rhs.minor )
15452           && ( subminor == rhs.subminor )
15453           && ( patch == rhs.patch );
15454 #endif
15455     }
15456 
operator !=VULKAN_HPP_NAMESPACE::ConformanceVersion15457     bool operator!=( ConformanceVersion const & rhs ) const VULKAN_HPP_NOEXCEPT
15458     {
15459       return !operator==( rhs );
15460     }
15461 #endif
15462 
15463     public:
15464     uint8_t major = {};
15465     uint8_t minor = {};
15466     uint8_t subminor = {};
15467     uint8_t patch = {};
15468 
15469   };
15470   using ConformanceVersionKHR = ConformanceVersion;
15471 
15472   struct CooperativeMatrixPropertiesKHR
15473   {
15474     using NativeType = VkCooperativeMatrixPropertiesKHR;
15475 
15476     static const bool allowDuplicate = false;
15477     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesKHR;
15478 
15479 
15480 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CooperativeMatrixPropertiesKHRVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15481 VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesKHR(uint32_t MSize_ = {}, uint32_t NSize_ = {}, uint32_t KSize_ = {}, VULKAN_HPP_NAMESPACE::ComponentTypeKHR AType_ = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeKHR BType_ = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeKHR CType_ = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeKHR ResultType_ = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16, VULKAN_HPP_NAMESPACE::Bool32 saturatingAccumulation_ = {}, VULKAN_HPP_NAMESPACE::ScopeKHR scope_ = VULKAN_HPP_NAMESPACE::ScopeKHR::eDevice, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
15482     : pNext( pNext_ ), MSize( MSize_ ), NSize( NSize_ ), KSize( KSize_ ), AType( AType_ ), BType( BType_ ), CType( CType_ ), ResultType( ResultType_ ), saturatingAccumulation( saturatingAccumulation_ ), scope( scope_ )
15483     {}
15484 
15485     VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesKHR( CooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15486 
CooperativeMatrixPropertiesKHRVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15487     CooperativeMatrixPropertiesKHR( VkCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15488       : CooperativeMatrixPropertiesKHR( *reinterpret_cast<CooperativeMatrixPropertiesKHR const *>( &rhs ) )
15489     {}
15490 
15491 
15492     CooperativeMatrixPropertiesKHR & operator=( CooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15493 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
15494 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15495     CooperativeMatrixPropertiesKHR & operator=( VkCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15496     {
15497       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR const *>( &rhs );
15498       return *this;
15499     }
15500 
15501 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15502     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
15503     {
15504       pNext = pNext_;
15505       return *this;
15506     }
15507 
setMSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15508     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
15509     {
15510       MSize = MSize_;
15511       return *this;
15512     }
15513 
setNSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15514     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
15515     {
15516       NSize = NSize_;
15517       return *this;
15518     }
15519 
setKSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15520     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
15521     {
15522       KSize = KSize_;
15523       return *this;
15524     }
15525 
setATypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15526     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR AType_ ) VULKAN_HPP_NOEXCEPT
15527     {
15528       AType = AType_;
15529       return *this;
15530     }
15531 
setBTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15532     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR BType_ ) VULKAN_HPP_NOEXCEPT
15533     {
15534       BType = BType_;
15535       return *this;
15536     }
15537 
setCTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15538     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR CType_ ) VULKAN_HPP_NOEXCEPT
15539     {
15540       CType = CType_;
15541       return *this;
15542     }
15543 
setResultTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15544     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setResultType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR ResultType_ ) VULKAN_HPP_NOEXCEPT
15545     {
15546       ResultType = ResultType_;
15547       return *this;
15548     }
15549 
setSaturatingAccumulationVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15550     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setSaturatingAccumulation( VULKAN_HPP_NAMESPACE::Bool32 saturatingAccumulation_ ) VULKAN_HPP_NOEXCEPT
15551     {
15552       saturatingAccumulation = saturatingAccumulation_;
15553       return *this;
15554     }
15555 
setScopeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15556     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setScope( VULKAN_HPP_NAMESPACE::ScopeKHR scope_ ) VULKAN_HPP_NOEXCEPT
15557     {
15558       scope = scope_;
15559       return *this;
15560     }
15561 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
15562 
15563 
operator VkCooperativeMatrixPropertiesKHR const&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15564     operator VkCooperativeMatrixPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
15565     {
15566       return *reinterpret_cast<const VkCooperativeMatrixPropertiesKHR*>( this );
15567     }
15568 
operator VkCooperativeMatrixPropertiesKHR&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15569     operator VkCooperativeMatrixPropertiesKHR &() VULKAN_HPP_NOEXCEPT
15570     {
15571       return *reinterpret_cast<VkCooperativeMatrixPropertiesKHR*>( this );
15572     }
15573 
15574 #if defined( VULKAN_HPP_USE_REFLECT )
15575 #if 14 <= VULKAN_HPP_CPP_VERSION
15576     auto
15577 #else
15578     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &, VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &, VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &, VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::ScopeKHR const &>
15579 #endif
reflectVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15580       reflect() const VULKAN_HPP_NOEXCEPT
15581     {
15582       return std::tie( sType, pNext, MSize, NSize, KSize, AType, BType, CType, ResultType, saturatingAccumulation, scope );
15583     }
15584 #endif
15585 
15586 
15587 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15588 auto operator<=>( CooperativeMatrixPropertiesKHR const & ) const = default;
15589 #else
operator ==VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15590     bool operator==( CooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
15591     {
15592 #if defined( VULKAN_HPP_USE_REFLECT )
15593       return this->reflect() == rhs.reflect();
15594 #else
15595       return ( sType == rhs.sType )
15596           && ( pNext == rhs.pNext )
15597           && ( MSize == rhs.MSize )
15598           && ( NSize == rhs.NSize )
15599           && ( KSize == rhs.KSize )
15600           && ( AType == rhs.AType )
15601           && ( BType == rhs.BType )
15602           && ( CType == rhs.CType )
15603           && ( ResultType == rhs.ResultType )
15604           && ( saturatingAccumulation == rhs.saturatingAccumulation )
15605           && ( scope == rhs.scope );
15606 #endif
15607     }
15608 
operator !=VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR15609     bool operator!=( CooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
15610     {
15611       return !operator==( rhs );
15612     }
15613 #endif
15614 
15615     public:
15616     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesKHR;
15617     void * pNext = {};
15618     uint32_t MSize = {};
15619     uint32_t NSize = {};
15620     uint32_t KSize = {};
15621     VULKAN_HPP_NAMESPACE::ComponentTypeKHR AType = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
15622     VULKAN_HPP_NAMESPACE::ComponentTypeKHR BType = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
15623     VULKAN_HPP_NAMESPACE::ComponentTypeKHR CType = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
15624     VULKAN_HPP_NAMESPACE::ComponentTypeKHR ResultType = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
15625     VULKAN_HPP_NAMESPACE::Bool32 saturatingAccumulation = {};
15626     VULKAN_HPP_NAMESPACE::ScopeKHR scope = VULKAN_HPP_NAMESPACE::ScopeKHR::eDevice;
15627 
15628   };
15629 
15630   template <>
15631   struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesKHR>
15632   {
15633     using Type = CooperativeMatrixPropertiesKHR;
15634   };
15635 
15636   struct CooperativeMatrixPropertiesNV
15637   {
15638     using NativeType = VkCooperativeMatrixPropertiesNV;
15639 
15640     static const bool allowDuplicate = false;
15641     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV;
15642 
15643 
15644 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15645 VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV(uint32_t MSize_ = {}, uint32_t NSize_ = {}, uint32_t KSize_ = {}, VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = {}, VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = {}, VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = {}, VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = {}, VULKAN_HPP_NAMESPACE::ScopeNV scope_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
15646     : pNext( pNext_ ), MSize( MSize_ ), NSize( NSize_ ), KSize( KSize_ ), AType( AType_ ), BType( BType_ ), CType( CType_ ), DType( DType_ ), scope( scope_ )
15647     {}
15648 
15649     VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15650 
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15651     CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15652       : CooperativeMatrixPropertiesNV( *reinterpret_cast<CooperativeMatrixPropertiesNV const *>( &rhs ) )
15653     {}
15654 
15655 
15656     CooperativeMatrixPropertiesNV & operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15657 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
15658 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15659     CooperativeMatrixPropertiesNV & operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15660     {
15661       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const *>( &rhs );
15662       return *this;
15663     }
15664 
15665 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15666     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
15667     {
15668       pNext = pNext_;
15669       return *this;
15670     }
15671 
setMSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15672     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
15673     {
15674       MSize = MSize_;
15675       return *this;
15676     }
15677 
setNSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15678     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
15679     {
15680       NSize = NSize_;
15681       return *this;
15682     }
15683 
setKSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15684     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
15685     {
15686       KSize = KSize_;
15687       return *this;
15688     }
15689 
setATypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15690     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT
15691     {
15692       AType = AType_;
15693       return *this;
15694     }
15695 
setBTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15696     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT
15697     {
15698       BType = BType_;
15699       return *this;
15700     }
15701 
setCTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15702     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT
15703     {
15704       CType = CType_;
15705       return *this;
15706     }
15707 
setDTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15708     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT
15709     {
15710       DType = DType_;
15711       return *this;
15712     }
15713 
setScopeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15714     VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT
15715     {
15716       scope = scope_;
15717       return *this;
15718     }
15719 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
15720 
15721 
operator VkCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15722     operator VkCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
15723     {
15724       return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV*>( this );
15725     }
15726 
operator VkCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15727     operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
15728     {
15729       return *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( this );
15730     }
15731 
15732 #if defined( VULKAN_HPP_USE_REFLECT )
15733 #if 14 <= VULKAN_HPP_CPP_VERSION
15734     auto
15735 #else
15736     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ComponentTypeNV const &, VULKAN_HPP_NAMESPACE::ComponentTypeNV const &, VULKAN_HPP_NAMESPACE::ComponentTypeNV const &, VULKAN_HPP_NAMESPACE::ComponentTypeNV const &, VULKAN_HPP_NAMESPACE::ScopeNV const &>
15737 #endif
reflectVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15738       reflect() const VULKAN_HPP_NOEXCEPT
15739     {
15740       return std::tie( sType, pNext, MSize, NSize, KSize, AType, BType, CType, DType, scope );
15741     }
15742 #endif
15743 
15744 
15745 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15746 auto operator<=>( CooperativeMatrixPropertiesNV const & ) const = default;
15747 #else
operator ==VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15748     bool operator==( CooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
15749     {
15750 #if defined( VULKAN_HPP_USE_REFLECT )
15751       return this->reflect() == rhs.reflect();
15752 #else
15753       return ( sType == rhs.sType )
15754           && ( pNext == rhs.pNext )
15755           && ( MSize == rhs.MSize )
15756           && ( NSize == rhs.NSize )
15757           && ( KSize == rhs.KSize )
15758           && ( AType == rhs.AType )
15759           && ( BType == rhs.BType )
15760           && ( CType == rhs.CType )
15761           && ( DType == rhs.DType )
15762           && ( scope == rhs.scope );
15763 #endif
15764     }
15765 
operator !=VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV15766     bool operator!=( CooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
15767     {
15768       return !operator==( rhs );
15769     }
15770 #endif
15771 
15772     public:
15773     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV;
15774     void * pNext = {};
15775     uint32_t MSize = {};
15776     uint32_t NSize = {};
15777     uint32_t KSize = {};
15778     VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = {};
15779     VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = {};
15780     VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = {};
15781     VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = {};
15782     VULKAN_HPP_NAMESPACE::ScopeNV scope = {};
15783 
15784   };
15785 
15786   template <>
15787   struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesNV>
15788   {
15789     using Type = CooperativeMatrixPropertiesNV;
15790   };
15791 
15792   struct CopyAccelerationStructureInfoKHR
15793   {
15794     using NativeType = VkCopyAccelerationStructureInfoKHR;
15795 
15796     static const bool allowDuplicate = false;
15797     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR;
15798 
15799 
15800 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15801 VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
15802     : pNext( pNext_ ), src( src_ ), dst( dst_ ), mode( mode_ )
15803     {}
15804 
15805     VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15806 
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15807     CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15808       : CopyAccelerationStructureInfoKHR( *reinterpret_cast<CopyAccelerationStructureInfoKHR const *>( &rhs ) )
15809     {}
15810 
15811 
15812     CopyAccelerationStructureInfoKHR & operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15813 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
15814 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15815     CopyAccelerationStructureInfoKHR & operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15816     {
15817       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR const *>( &rhs );
15818       return *this;
15819     }
15820 
15821 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15822     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
15823     {
15824       pNext = pNext_;
15825       return *this;
15826     }
15827 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15828     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
15829     {
15830       src = src_;
15831       return *this;
15832     }
15833 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15834     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
15835     {
15836       dst = dst_;
15837       return *this;
15838     }
15839 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15840     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
15841     {
15842       mode = mode_;
15843       return *this;
15844     }
15845 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
15846 
15847 
operator VkCopyAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15848     operator VkCopyAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
15849     {
15850       return *reinterpret_cast<const VkCopyAccelerationStructureInfoKHR*>( this );
15851     }
15852 
operator VkCopyAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15853     operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
15854     {
15855       return *reinterpret_cast<VkCopyAccelerationStructureInfoKHR*>( this );
15856     }
15857 
15858 #if defined( VULKAN_HPP_USE_REFLECT )
15859 #if 14 <= VULKAN_HPP_CPP_VERSION
15860     auto
15861 #else
15862     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR const &>
15863 #endif
reflectVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15864       reflect() const VULKAN_HPP_NOEXCEPT
15865     {
15866       return std::tie( sType, pNext, src, dst, mode );
15867     }
15868 #endif
15869 
15870 
15871 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15872 auto operator<=>( CopyAccelerationStructureInfoKHR const & ) const = default;
15873 #else
operator ==VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15874     bool operator==( CopyAccelerationStructureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
15875     {
15876 #if defined( VULKAN_HPP_USE_REFLECT )
15877       return this->reflect() == rhs.reflect();
15878 #else
15879       return ( sType == rhs.sType )
15880           && ( pNext == rhs.pNext )
15881           && ( src == rhs.src )
15882           && ( dst == rhs.dst )
15883           && ( mode == rhs.mode );
15884 #endif
15885     }
15886 
operator !=VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR15887     bool operator!=( CopyAccelerationStructureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
15888     {
15889       return !operator==( rhs );
15890     }
15891 #endif
15892 
15893     public:
15894     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR;
15895     const void * pNext = {};
15896     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
15897     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
15898     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
15899 
15900   };
15901 
15902   template <>
15903   struct CppType<StructureType, StructureType::eCopyAccelerationStructureInfoKHR>
15904   {
15905     using Type = CopyAccelerationStructureInfoKHR;
15906   };
15907 
15908   struct CopyAccelerationStructureToMemoryInfoKHR
15909   {
15910     using NativeType = VkCopyAccelerationStructureToMemoryInfoKHR;
15911 
15912     static const bool allowDuplicate = false;
15913     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
15914 
15915 
15916 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR15917 VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
15918     : pNext( pNext_ ), src( src_ ), dst( dst_ ), mode( mode_ )
15919     {}
15920 
15921     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15922 
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR15923     CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15924       : CopyAccelerationStructureToMemoryInfoKHR( *reinterpret_cast<CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs ) )
15925     {}
15926 
15927 
15928     CopyAccelerationStructureToMemoryInfoKHR & operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15929 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
15930 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR15931     CopyAccelerationStructureToMemoryInfoKHR & operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15932     {
15933       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs );
15934       return *this;
15935     }
15936 
15937 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR15938     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
15939     {
15940       pNext = pNext_;
15941       return *this;
15942     }
15943 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR15944     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
15945     {
15946       src = src_;
15947       return *this;
15948     }
15949 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR15950     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT
15951     {
15952       dst = dst_;
15953       return *this;
15954     }
15955 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR15956     VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
15957     {
15958       mode = mode_;
15959       return *this;
15960     }
15961 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
15962 
15963 
operator VkCopyAccelerationStructureToMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR15964     operator VkCopyAccelerationStructureToMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
15965     {
15966       return *reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
15967     }
15968 
operator VkCopyAccelerationStructureToMemoryInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR15969     operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
15970     {
15971       return *reinterpret_cast<VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
15972     }
15973 
15974 #if defined( VULKAN_HPP_USE_REFLECT )
15975 #if 14 <= VULKAN_HPP_CPP_VERSION
15976     auto
15977 #else
15978     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const &, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR const &>
15979 #endif
reflectVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR15980       reflect() const VULKAN_HPP_NOEXCEPT
15981     {
15982       return std::tie( sType, pNext, src, dst, mode );
15983     }
15984 #endif
15985 
15986 
15987     public:
15988     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
15989     const void * pNext = {};
15990     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
15991     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {};
15992     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
15993 
15994   };
15995 
15996   template <>
15997   struct CppType<StructureType, StructureType::eCopyAccelerationStructureToMemoryInfoKHR>
15998   {
15999     using Type = CopyAccelerationStructureToMemoryInfoKHR;
16000   };
16001 
16002   struct CopyBufferInfo2
16003   {
16004     using NativeType = VkCopyBufferInfo2;
16005 
16006     static const bool allowDuplicate = false;
16007     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferInfo2;
16008 
16009 
16010 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyBufferInfo2VULKAN_HPP_NAMESPACE::CopyBufferInfo216011 VULKAN_HPP_CONSTEXPR CopyBufferInfo2(VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferCopy2 * pRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
16012     : pNext( pNext_ ), srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
16013     {}
16014 
16015     VULKAN_HPP_CONSTEXPR CopyBufferInfo2( CopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16016 
CopyBufferInfo2VULKAN_HPP_NAMESPACE::CopyBufferInfo216017     CopyBufferInfo2( VkCopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
16018       : CopyBufferInfo2( *reinterpret_cast<CopyBufferInfo2 const *>( &rhs ) )
16019     {}
16020 
16021 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyBufferInfo2VULKAN_HPP_NAMESPACE::CopyBufferInfo216022     CopyBufferInfo2( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2> const & regions_, const void * pNext_ = nullptr )
16023     : pNext( pNext_ ), srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
16024     {}
16025 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16026 
16027 
16028     CopyBufferInfo2 & operator=( CopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16029 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
16030 
operator =VULKAN_HPP_NAMESPACE::CopyBufferInfo216031     CopyBufferInfo2 & operator=( VkCopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
16032     {
16033       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferInfo2 const *>( &rhs );
16034       return *this;
16035     }
16036 
16037 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyBufferInfo216038     VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
16039     {
16040       pNext = pNext_;
16041       return *this;
16042     }
16043 
setSrcBufferVULKAN_HPP_NAMESPACE::CopyBufferInfo216044     VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
16045     {
16046       srcBuffer = srcBuffer_;
16047       return *this;
16048     }
16049 
setDstBufferVULKAN_HPP_NAMESPACE::CopyBufferInfo216050     VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
16051     {
16052       dstBuffer = dstBuffer_;
16053       return *this;
16054     }
16055 
setRegionCountVULKAN_HPP_NAMESPACE::CopyBufferInfo216056     VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
16057     {
16058       regionCount = regionCount_;
16059       return *this;
16060     }
16061 
setPRegionsVULKAN_HPP_NAMESPACE::CopyBufferInfo216062     VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::BufferCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
16063     {
16064       pRegions = pRegions_;
16065       return *this;
16066     }
16067 
16068 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::CopyBufferInfo216069     CopyBufferInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
16070     {
16071       regionCount = static_cast<uint32_t>( regions_.size() );
16072       pRegions = regions_.data();
16073       return *this;
16074     }
16075 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16076 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
16077 
16078 
operator VkCopyBufferInfo2 const&VULKAN_HPP_NAMESPACE::CopyBufferInfo216079     operator VkCopyBufferInfo2 const &() const VULKAN_HPP_NOEXCEPT
16080     {
16081       return *reinterpret_cast<const VkCopyBufferInfo2*>( this );
16082     }
16083 
operator VkCopyBufferInfo2&VULKAN_HPP_NAMESPACE::CopyBufferInfo216084     operator VkCopyBufferInfo2 &() VULKAN_HPP_NOEXCEPT
16085     {
16086       return *reinterpret_cast<VkCopyBufferInfo2*>( this );
16087     }
16088 
16089 #if defined( VULKAN_HPP_USE_REFLECT )
16090 #if 14 <= VULKAN_HPP_CPP_VERSION
16091     auto
16092 #else
16093     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::Buffer const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::BufferCopy2 * const &>
16094 #endif
reflectVULKAN_HPP_NAMESPACE::CopyBufferInfo216095       reflect() const VULKAN_HPP_NOEXCEPT
16096     {
16097       return std::tie( sType, pNext, srcBuffer, dstBuffer, regionCount, pRegions );
16098     }
16099 #endif
16100 
16101 
16102 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16103 auto operator<=>( CopyBufferInfo2 const & ) const = default;
16104 #else
operator ==VULKAN_HPP_NAMESPACE::CopyBufferInfo216105     bool operator==( CopyBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
16106     {
16107 #if defined( VULKAN_HPP_USE_REFLECT )
16108       return this->reflect() == rhs.reflect();
16109 #else
16110       return ( sType == rhs.sType )
16111           && ( pNext == rhs.pNext )
16112           && ( srcBuffer == rhs.srcBuffer )
16113           && ( dstBuffer == rhs.dstBuffer )
16114           && ( regionCount == rhs.regionCount )
16115           && ( pRegions == rhs.pRegions );
16116 #endif
16117     }
16118 
operator !=VULKAN_HPP_NAMESPACE::CopyBufferInfo216119     bool operator!=( CopyBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
16120     {
16121       return !operator==( rhs );
16122     }
16123 #endif
16124 
16125     public:
16126     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferInfo2;
16127     const void * pNext = {};
16128     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
16129     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
16130     uint32_t regionCount = {};
16131     const VULKAN_HPP_NAMESPACE::BufferCopy2 * pRegions = {};
16132 
16133   };
16134 
16135   template <>
16136   struct CppType<StructureType, StructureType::eCopyBufferInfo2>
16137   {
16138     using Type = CopyBufferInfo2;
16139   };
16140   using CopyBufferInfo2KHR = CopyBufferInfo2;
16141 
16142   struct CopyBufferToImageInfo2
16143   {
16144     using NativeType = VkCopyBufferToImageInfo2;
16145 
16146     static const bool allowDuplicate = false;
16147     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferToImageInfo2;
16148 
16149 
16150 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyBufferToImageInfo2VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216151 VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2(VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
16152     : pNext( pNext_ ), srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
16153     {}
16154 
16155     VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2( CopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16156 
CopyBufferToImageInfo2VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216157     CopyBufferToImageInfo2( VkCopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
16158       : CopyBufferToImageInfo2( *reinterpret_cast<CopyBufferToImageInfo2 const *>( &rhs ) )
16159     {}
16160 
16161 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyBufferToImageInfo2VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216162     CopyBufferToImageInfo2( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_, const void * pNext_ = nullptr )
16163     : pNext( pNext_ ), srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
16164     {}
16165 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16166 
16167 
16168     CopyBufferToImageInfo2 & operator=( CopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16169 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
16170 
operator =VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216171     CopyBufferToImageInfo2 & operator=( VkCopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
16172     {
16173       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 const *>( &rhs );
16174       return *this;
16175     }
16176 
16177 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216178     VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
16179     {
16180       pNext = pNext_;
16181       return *this;
16182     }
16183 
setSrcBufferVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216184     VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
16185     {
16186       srcBuffer = srcBuffer_;
16187       return *this;
16188     }
16189 
setDstImageVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216190     VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
16191     {
16192       dstImage = dstImage_;
16193       return *this;
16194     }
16195 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216196     VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
16197     {
16198       dstImageLayout = dstImageLayout_;
16199       return *this;
16200     }
16201 
setRegionCountVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216202     VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
16203     {
16204       regionCount = regionCount_;
16205       return *this;
16206     }
16207 
setPRegionsVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216208     VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
16209     {
16210       pRegions = pRegions_;
16211       return *this;
16212     }
16213 
16214 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216215     CopyBufferToImageInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
16216     {
16217       regionCount = static_cast<uint32_t>( regions_.size() );
16218       pRegions = regions_.data();
16219       return *this;
16220     }
16221 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16222 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
16223 
16224 
operator VkCopyBufferToImageInfo2 const&VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216225     operator VkCopyBufferToImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
16226     {
16227       return *reinterpret_cast<const VkCopyBufferToImageInfo2*>( this );
16228     }
16229 
operator VkCopyBufferToImageInfo2&VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216230     operator VkCopyBufferToImageInfo2 &() VULKAN_HPP_NOEXCEPT
16231     {
16232       return *reinterpret_cast<VkCopyBufferToImageInfo2*>( this );
16233     }
16234 
16235 #if defined( VULKAN_HPP_USE_REFLECT )
16236 #if 14 <= VULKAN_HPP_CPP_VERSION
16237     auto
16238 #else
16239     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * const &>
16240 #endif
reflectVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216241       reflect() const VULKAN_HPP_NOEXCEPT
16242     {
16243       return std::tie( sType, pNext, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
16244     }
16245 #endif
16246 
16247 
16248 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16249 auto operator<=>( CopyBufferToImageInfo2 const & ) const = default;
16250 #else
operator ==VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216251     bool operator==( CopyBufferToImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
16252     {
16253 #if defined( VULKAN_HPP_USE_REFLECT )
16254       return this->reflect() == rhs.reflect();
16255 #else
16256       return ( sType == rhs.sType )
16257           && ( pNext == rhs.pNext )
16258           && ( srcBuffer == rhs.srcBuffer )
16259           && ( dstImage == rhs.dstImage )
16260           && ( dstImageLayout == rhs.dstImageLayout )
16261           && ( regionCount == rhs.regionCount )
16262           && ( pRegions == rhs.pRegions );
16263 #endif
16264     }
16265 
operator !=VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo216266     bool operator!=( CopyBufferToImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
16267     {
16268       return !operator==( rhs );
16269     }
16270 #endif
16271 
16272     public:
16273     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferToImageInfo2;
16274     const void * pNext = {};
16275     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
16276     VULKAN_HPP_NAMESPACE::Image dstImage = {};
16277     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
16278     uint32_t regionCount = {};
16279     const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions = {};
16280 
16281   };
16282 
16283   template <>
16284   struct CppType<StructureType, StructureType::eCopyBufferToImageInfo2>
16285   {
16286     using Type = CopyBufferToImageInfo2;
16287   };
16288   using CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2;
16289 
16290   struct CopyCommandTransformInfoQCOM
16291   {
16292     using NativeType = VkCopyCommandTransformInfoQCOM;
16293 
16294     static const bool allowDuplicate = false;
16295     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyCommandTransformInfoQCOM;
16296 
16297 
16298 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyCommandTransformInfoQCOMVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM16299 VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
16300     : pNext( pNext_ ), transform( transform_ )
16301     {}
16302 
16303     VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16304 
CopyCommandTransformInfoQCOMVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM16305     CopyCommandTransformInfoQCOM( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
16306       : CopyCommandTransformInfoQCOM( *reinterpret_cast<CopyCommandTransformInfoQCOM const *>( &rhs ) )
16307     {}
16308 
16309 
16310     CopyCommandTransformInfoQCOM & operator=( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16311 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
16312 
operator =VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM16313     CopyCommandTransformInfoQCOM & operator=( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
16314     {
16315       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM const *>( &rhs );
16316       return *this;
16317     }
16318 
16319 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM16320     VULKAN_HPP_CONSTEXPR_14 CopyCommandTransformInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
16321     {
16322       pNext = pNext_;
16323       return *this;
16324     }
16325 
setTransformVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM16326     VULKAN_HPP_CONSTEXPR_14 CopyCommandTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
16327     {
16328       transform = transform_;
16329       return *this;
16330     }
16331 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
16332 
16333 
operator VkCopyCommandTransformInfoQCOM const&VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM16334     operator VkCopyCommandTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
16335     {
16336       return *reinterpret_cast<const VkCopyCommandTransformInfoQCOM*>( this );
16337     }
16338 
operator VkCopyCommandTransformInfoQCOM&VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM16339     operator VkCopyCommandTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
16340     {
16341       return *reinterpret_cast<VkCopyCommandTransformInfoQCOM*>( this );
16342     }
16343 
16344 #if defined( VULKAN_HPP_USE_REFLECT )
16345 #if 14 <= VULKAN_HPP_CPP_VERSION
16346     auto
16347 #else
16348     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &>
16349 #endif
reflectVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM16350       reflect() const VULKAN_HPP_NOEXCEPT
16351     {
16352       return std::tie( sType, pNext, transform );
16353     }
16354 #endif
16355 
16356 
16357 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16358 auto operator<=>( CopyCommandTransformInfoQCOM const & ) const = default;
16359 #else
operator ==VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM16360     bool operator==( CopyCommandTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
16361     {
16362 #if defined( VULKAN_HPP_USE_REFLECT )
16363       return this->reflect() == rhs.reflect();
16364 #else
16365       return ( sType == rhs.sType )
16366           && ( pNext == rhs.pNext )
16367           && ( transform == rhs.transform );
16368 #endif
16369     }
16370 
operator !=VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM16371     bool operator!=( CopyCommandTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
16372     {
16373       return !operator==( rhs );
16374     }
16375 #endif
16376 
16377     public:
16378     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyCommandTransformInfoQCOM;
16379     const void * pNext = {};
16380     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
16381 
16382   };
16383 
16384   template <>
16385   struct CppType<StructureType, StructureType::eCopyCommandTransformInfoQCOM>
16386   {
16387     using Type = CopyCommandTransformInfoQCOM;
16388   };
16389 
16390   struct CopyDescriptorSet
16391   {
16392     using NativeType = VkCopyDescriptorSet;
16393 
16394     static const bool allowDuplicate = false;
16395     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet;
16396 
16397 
16398 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet16399 VULKAN_HPP_CONSTEXPR CopyDescriptorSet(VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ = {}, uint32_t srcBinding_ = {}, uint32_t srcArrayElement_ = {}, VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
16400     : pNext( pNext_ ), srcSet( srcSet_ ), srcBinding( srcBinding_ ), srcArrayElement( srcArrayElement_ ), dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ )
16401     {}
16402 
16403     VULKAN_HPP_CONSTEXPR CopyDescriptorSet( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16404 
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet16405     CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
16406       : CopyDescriptorSet( *reinterpret_cast<CopyDescriptorSet const *>( &rhs ) )
16407     {}
16408 
16409 
16410     CopyDescriptorSet & operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16411 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
16412 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet16413     CopyDescriptorSet & operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
16414     {
16415       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyDescriptorSet const *>( &rhs );
16416       return *this;
16417     }
16418 
16419 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyDescriptorSet16420     VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
16421     {
16422       pNext = pNext_;
16423       return *this;
16424     }
16425 
setSrcSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet16426     VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT
16427     {
16428       srcSet = srcSet_;
16429       return *this;
16430     }
16431 
setSrcBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet16432     VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT
16433     {
16434       srcBinding = srcBinding_;
16435       return *this;
16436     }
16437 
setSrcArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet16438     VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT
16439     {
16440       srcArrayElement = srcArrayElement_;
16441       return *this;
16442     }
16443 
setDstSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet16444     VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
16445     {
16446       dstSet = dstSet_;
16447       return *this;
16448     }
16449 
setDstBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet16450     VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
16451     {
16452       dstBinding = dstBinding_;
16453       return *this;
16454     }
16455 
setDstArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet16456     VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
16457     {
16458       dstArrayElement = dstArrayElement_;
16459       return *this;
16460     }
16461 
setDescriptorCountVULKAN_HPP_NAMESPACE::CopyDescriptorSet16462     VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
16463     {
16464       descriptorCount = descriptorCount_;
16465       return *this;
16466     }
16467 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
16468 
16469 
operator VkCopyDescriptorSet const&VULKAN_HPP_NAMESPACE::CopyDescriptorSet16470     operator VkCopyDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
16471     {
16472       return *reinterpret_cast<const VkCopyDescriptorSet*>( this );
16473     }
16474 
operator VkCopyDescriptorSet&VULKAN_HPP_NAMESPACE::CopyDescriptorSet16475     operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT
16476     {
16477       return *reinterpret_cast<VkCopyDescriptorSet*>( this );
16478     }
16479 
16480 #if defined( VULKAN_HPP_USE_REFLECT )
16481 #if 14 <= VULKAN_HPP_CPP_VERSION
16482     auto
16483 #else
16484     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DescriptorSet const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DescriptorSet const &, uint32_t const &, uint32_t const &, uint32_t const &>
16485 #endif
reflectVULKAN_HPP_NAMESPACE::CopyDescriptorSet16486       reflect() const VULKAN_HPP_NOEXCEPT
16487     {
16488       return std::tie( sType, pNext, srcSet, srcBinding, srcArrayElement, dstSet, dstBinding, dstArrayElement, descriptorCount );
16489     }
16490 #endif
16491 
16492 
16493 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16494 auto operator<=>( CopyDescriptorSet const & ) const = default;
16495 #else
operator ==VULKAN_HPP_NAMESPACE::CopyDescriptorSet16496     bool operator==( CopyDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
16497     {
16498 #if defined( VULKAN_HPP_USE_REFLECT )
16499       return this->reflect() == rhs.reflect();
16500 #else
16501       return ( sType == rhs.sType )
16502           && ( pNext == rhs.pNext )
16503           && ( srcSet == rhs.srcSet )
16504           && ( srcBinding == rhs.srcBinding )
16505           && ( srcArrayElement == rhs.srcArrayElement )
16506           && ( dstSet == rhs.dstSet )
16507           && ( dstBinding == rhs.dstBinding )
16508           && ( dstArrayElement == rhs.dstArrayElement )
16509           && ( descriptorCount == rhs.descriptorCount );
16510 #endif
16511     }
16512 
operator !=VULKAN_HPP_NAMESPACE::CopyDescriptorSet16513     bool operator!=( CopyDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
16514     {
16515       return !operator==( rhs );
16516     }
16517 #endif
16518 
16519     public:
16520     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet;
16521     const void * pNext = {};
16522     VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {};
16523     uint32_t srcBinding = {};
16524     uint32_t srcArrayElement = {};
16525     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
16526     uint32_t dstBinding = {};
16527     uint32_t dstArrayElement = {};
16528     uint32_t descriptorCount = {};
16529 
16530   };
16531 
16532   template <>
16533   struct CppType<StructureType, StructureType::eCopyDescriptorSet>
16534   {
16535     using Type = CopyDescriptorSet;
16536   };
16537 
16538   struct ImageCopy2
16539   {
16540     using NativeType = VkImageCopy2;
16541 
16542     static const bool allowDuplicate = false;
16543     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCopy2;
16544 
16545 
16546 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCopy2VULKAN_HPP_NAMESPACE::ImageCopy216547 VULKAN_HPP_CONSTEXPR ImageCopy2(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
16548     : pNext( pNext_ ), srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
16549     {}
16550 
16551     VULKAN_HPP_CONSTEXPR ImageCopy2( ImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16552 
ImageCopy2VULKAN_HPP_NAMESPACE::ImageCopy216553     ImageCopy2( VkImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
16554       : ImageCopy2( *reinterpret_cast<ImageCopy2 const *>( &rhs ) )
16555     {}
16556 
16557 
16558     ImageCopy2 & operator=( ImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16559 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
16560 
operator =VULKAN_HPP_NAMESPACE::ImageCopy216561     ImageCopy2 & operator=( VkImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
16562     {
16563       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy2 const *>( &rhs );
16564       return *this;
16565     }
16566 
16567 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageCopy216568     VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
16569     {
16570       pNext = pNext_;
16571       return *this;
16572     }
16573 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy216574     VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
16575     {
16576       srcSubresource = srcSubresource_;
16577       return *this;
16578     }
16579 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy216580     VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
16581     {
16582       srcOffset = srcOffset_;
16583       return *this;
16584     }
16585 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy216586     VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
16587     {
16588       dstSubresource = dstSubresource_;
16589       return *this;
16590     }
16591 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy216592     VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
16593     {
16594       dstOffset = dstOffset_;
16595       return *this;
16596     }
16597 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy216598     VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
16599     {
16600       extent = extent_;
16601       return *this;
16602     }
16603 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
16604 
16605 
operator VkImageCopy2 const&VULKAN_HPP_NAMESPACE::ImageCopy216606     operator VkImageCopy2 const &() const VULKAN_HPP_NOEXCEPT
16607     {
16608       return *reinterpret_cast<const VkImageCopy2*>( this );
16609     }
16610 
operator VkImageCopy2&VULKAN_HPP_NAMESPACE::ImageCopy216611     operator VkImageCopy2 &() VULKAN_HPP_NOEXCEPT
16612     {
16613       return *reinterpret_cast<VkImageCopy2*>( this );
16614     }
16615 
16616 #if defined( VULKAN_HPP_USE_REFLECT )
16617 #if 14 <= VULKAN_HPP_CPP_VERSION
16618     auto
16619 #else
16620     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
16621 #endif
reflectVULKAN_HPP_NAMESPACE::ImageCopy216622       reflect() const VULKAN_HPP_NOEXCEPT
16623     {
16624       return std::tie( sType, pNext, srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
16625     }
16626 #endif
16627 
16628 
16629 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16630 auto operator<=>( ImageCopy2 const & ) const = default;
16631 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy216632     bool operator==( ImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
16633     {
16634 #if defined( VULKAN_HPP_USE_REFLECT )
16635       return this->reflect() == rhs.reflect();
16636 #else
16637       return ( sType == rhs.sType )
16638           && ( pNext == rhs.pNext )
16639           && ( srcSubresource == rhs.srcSubresource )
16640           && ( srcOffset == rhs.srcOffset )
16641           && ( dstSubresource == rhs.dstSubresource )
16642           && ( dstOffset == rhs.dstOffset )
16643           && ( extent == rhs.extent );
16644 #endif
16645     }
16646 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy216647     bool operator!=( ImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
16648     {
16649       return !operator==( rhs );
16650     }
16651 #endif
16652 
16653     public:
16654     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCopy2;
16655     const void * pNext = {};
16656     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
16657     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
16658     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
16659     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
16660     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
16661 
16662   };
16663 
16664   template <>
16665   struct CppType<StructureType, StructureType::eImageCopy2>
16666   {
16667     using Type = ImageCopy2;
16668   };
16669   using ImageCopy2KHR = ImageCopy2;
16670 
16671   struct CopyImageInfo2
16672   {
16673     using NativeType = VkCopyImageInfo2;
16674 
16675     static const bool allowDuplicate = false;
16676     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageInfo2;
16677 
16678 
16679 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageInfo2VULKAN_HPP_NAMESPACE::CopyImageInfo216680 VULKAN_HPP_CONSTEXPR CopyImageInfo2(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
16681     : pNext( pNext_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
16682     {}
16683 
16684     VULKAN_HPP_CONSTEXPR CopyImageInfo2( CopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16685 
CopyImageInfo2VULKAN_HPP_NAMESPACE::CopyImageInfo216686     CopyImageInfo2( VkCopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
16687       : CopyImageInfo2( *reinterpret_cast<CopyImageInfo2 const *>( &rhs ) )
16688     {}
16689 
16690 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyImageInfo2VULKAN_HPP_NAMESPACE::CopyImageInfo216691     CopyImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_, const void * pNext_ = nullptr )
16692     : pNext( pNext_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
16693     {}
16694 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16695 
16696 
16697     CopyImageInfo2 & operator=( CopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16698 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
16699 
operator =VULKAN_HPP_NAMESPACE::CopyImageInfo216700     CopyImageInfo2 & operator=( VkCopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
16701     {
16702       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageInfo2 const *>( &rhs );
16703       return *this;
16704     }
16705 
16706 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyImageInfo216707     VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
16708     {
16709       pNext = pNext_;
16710       return *this;
16711     }
16712 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageInfo216713     VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
16714     {
16715       srcImage = srcImage_;
16716       return *this;
16717     }
16718 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageInfo216719     VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
16720     {
16721       srcImageLayout = srcImageLayout_;
16722       return *this;
16723     }
16724 
setDstImageVULKAN_HPP_NAMESPACE::CopyImageInfo216725     VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
16726     {
16727       dstImage = dstImage_;
16728       return *this;
16729     }
16730 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyImageInfo216731     VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
16732     {
16733       dstImageLayout = dstImageLayout_;
16734       return *this;
16735     }
16736 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageInfo216737     VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
16738     {
16739       regionCount = regionCount_;
16740       return *this;
16741     }
16742 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageInfo216743     VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
16744     {
16745       pRegions = pRegions_;
16746       return *this;
16747     }
16748 
16749 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::CopyImageInfo216750     CopyImageInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
16751     {
16752       regionCount = static_cast<uint32_t>( regions_.size() );
16753       pRegions = regions_.data();
16754       return *this;
16755     }
16756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16757 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
16758 
16759 
operator VkCopyImageInfo2 const&VULKAN_HPP_NAMESPACE::CopyImageInfo216760     operator VkCopyImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
16761     {
16762       return *reinterpret_cast<const VkCopyImageInfo2*>( this );
16763     }
16764 
operator VkCopyImageInfo2&VULKAN_HPP_NAMESPACE::CopyImageInfo216765     operator VkCopyImageInfo2 &() VULKAN_HPP_NOEXCEPT
16766     {
16767       return *reinterpret_cast<VkCopyImageInfo2*>( this );
16768     }
16769 
16770 #if defined( VULKAN_HPP_USE_REFLECT )
16771 #if 14 <= VULKAN_HPP_CPP_VERSION
16772     auto
16773 #else
16774     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageCopy2 * const &>
16775 #endif
reflectVULKAN_HPP_NAMESPACE::CopyImageInfo216776       reflect() const VULKAN_HPP_NOEXCEPT
16777     {
16778       return std::tie( sType, pNext, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
16779     }
16780 #endif
16781 
16782 
16783 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16784 auto operator<=>( CopyImageInfo2 const & ) const = default;
16785 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageInfo216786     bool operator==( CopyImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
16787     {
16788 #if defined( VULKAN_HPP_USE_REFLECT )
16789       return this->reflect() == rhs.reflect();
16790 #else
16791       return ( sType == rhs.sType )
16792           && ( pNext == rhs.pNext )
16793           && ( srcImage == rhs.srcImage )
16794           && ( srcImageLayout == rhs.srcImageLayout )
16795           && ( dstImage == rhs.dstImage )
16796           && ( dstImageLayout == rhs.dstImageLayout )
16797           && ( regionCount == rhs.regionCount )
16798           && ( pRegions == rhs.pRegions );
16799 #endif
16800     }
16801 
operator !=VULKAN_HPP_NAMESPACE::CopyImageInfo216802     bool operator!=( CopyImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
16803     {
16804       return !operator==( rhs );
16805     }
16806 #endif
16807 
16808     public:
16809     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageInfo2;
16810     const void * pNext = {};
16811     VULKAN_HPP_NAMESPACE::Image srcImage = {};
16812     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
16813     VULKAN_HPP_NAMESPACE::Image dstImage = {};
16814     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
16815     uint32_t regionCount = {};
16816     const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions = {};
16817 
16818   };
16819 
16820   template <>
16821   struct CppType<StructureType, StructureType::eCopyImageInfo2>
16822   {
16823     using Type = CopyImageInfo2;
16824   };
16825   using CopyImageInfo2KHR = CopyImageInfo2;
16826 
16827   struct CopyImageToBufferInfo2
16828   {
16829     using NativeType = VkCopyImageToBufferInfo2;
16830 
16831     static const bool allowDuplicate = false;
16832     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToBufferInfo2;
16833 
16834 
16835 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageToBufferInfo2VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216836 VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
16837     : pNext( pNext_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
16838     {}
16839 
16840     VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2( CopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16841 
CopyImageToBufferInfo2VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216842     CopyImageToBufferInfo2( VkCopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
16843       : CopyImageToBufferInfo2( *reinterpret_cast<CopyImageToBufferInfo2 const *>( &rhs ) )
16844     {}
16845 
16846 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyImageToBufferInfo2VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216847     CopyImageToBufferInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_, const void * pNext_ = nullptr )
16848     : pNext( pNext_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
16849     {}
16850 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16851 
16852 
16853     CopyImageToBufferInfo2 & operator=( CopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16854 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
16855 
operator =VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216856     CopyImageToBufferInfo2 & operator=( VkCopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
16857     {
16858       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 const *>( &rhs );
16859       return *this;
16860     }
16861 
16862 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216863     VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
16864     {
16865       pNext = pNext_;
16866       return *this;
16867     }
16868 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216869     VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
16870     {
16871       srcImage = srcImage_;
16872       return *this;
16873     }
16874 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216875     VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
16876     {
16877       srcImageLayout = srcImageLayout_;
16878       return *this;
16879     }
16880 
setDstBufferVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216881     VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
16882     {
16883       dstBuffer = dstBuffer_;
16884       return *this;
16885     }
16886 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216887     VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
16888     {
16889       regionCount = regionCount_;
16890       return *this;
16891     }
16892 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216893     VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
16894     {
16895       pRegions = pRegions_;
16896       return *this;
16897     }
16898 
16899 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216900     CopyImageToBufferInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
16901     {
16902       regionCount = static_cast<uint32_t>( regions_.size() );
16903       pRegions = regions_.data();
16904       return *this;
16905     }
16906 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16907 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
16908 
16909 
operator VkCopyImageToBufferInfo2 const&VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216910     operator VkCopyImageToBufferInfo2 const &() const VULKAN_HPP_NOEXCEPT
16911     {
16912       return *reinterpret_cast<const VkCopyImageToBufferInfo2*>( this );
16913     }
16914 
operator VkCopyImageToBufferInfo2&VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216915     operator VkCopyImageToBufferInfo2 &() VULKAN_HPP_NOEXCEPT
16916     {
16917       return *reinterpret_cast<VkCopyImageToBufferInfo2*>( this );
16918     }
16919 
16920 #if defined( VULKAN_HPP_USE_REFLECT )
16921 #if 14 <= VULKAN_HPP_CPP_VERSION
16922     auto
16923 #else
16924     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::Buffer const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * const &>
16925 #endif
reflectVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216926       reflect() const VULKAN_HPP_NOEXCEPT
16927     {
16928       return std::tie( sType, pNext, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
16929     }
16930 #endif
16931 
16932 
16933 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16934 auto operator<=>( CopyImageToBufferInfo2 const & ) const = default;
16935 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216936     bool operator==( CopyImageToBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
16937     {
16938 #if defined( VULKAN_HPP_USE_REFLECT )
16939       return this->reflect() == rhs.reflect();
16940 #else
16941       return ( sType == rhs.sType )
16942           && ( pNext == rhs.pNext )
16943           && ( srcImage == rhs.srcImage )
16944           && ( srcImageLayout == rhs.srcImageLayout )
16945           && ( dstBuffer == rhs.dstBuffer )
16946           && ( regionCount == rhs.regionCount )
16947           && ( pRegions == rhs.pRegions );
16948 #endif
16949     }
16950 
operator !=VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo216951     bool operator!=( CopyImageToBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
16952     {
16953       return !operator==( rhs );
16954     }
16955 #endif
16956 
16957     public:
16958     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToBufferInfo2;
16959     const void * pNext = {};
16960     VULKAN_HPP_NAMESPACE::Image srcImage = {};
16961     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
16962     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
16963     uint32_t regionCount = {};
16964     const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions = {};
16965 
16966   };
16967 
16968   template <>
16969   struct CppType<StructureType, StructureType::eCopyImageToBufferInfo2>
16970   {
16971     using Type = CopyImageToBufferInfo2;
16972   };
16973   using CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2;
16974 
16975   struct CopyImageToImageInfoEXT
16976   {
16977     using NativeType = VkCopyImageToImageInfoEXT;
16978 
16979     static const bool allowDuplicate = false;
16980     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToImageInfoEXT;
16981 
16982 
16983 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageToImageInfoEXTVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT16984 VULKAN_HPP_CONSTEXPR CopyImageToImageInfoEXT(VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
16985     : pNext( pNext_ ), flags( flags_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
16986     {}
16987 
16988     VULKAN_HPP_CONSTEXPR CopyImageToImageInfoEXT( CopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16989 
CopyImageToImageInfoEXTVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT16990     CopyImageToImageInfoEXT( VkCopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
16991       : CopyImageToImageInfoEXT( *reinterpret_cast<CopyImageToImageInfoEXT const *>( &rhs ) )
16992     {}
16993 
16994 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyImageToImageInfoEXTVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT16995     CopyImageToImageInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_, VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_, const void * pNext_ = nullptr )
16996     : pNext( pNext_ ), flags( flags_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
16997     {}
16998 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16999 
17000 
17001     CopyImageToImageInfoEXT & operator=( CopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17002 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
17003 
operator =VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17004     CopyImageToImageInfoEXT & operator=( VkCopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
17005     {
17006       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT const *>( &rhs );
17007       return *this;
17008     }
17009 
17010 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17011     VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
17012     {
17013       pNext = pNext_;
17014       return *this;
17015     }
17016 
setFlagsVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17017     VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
17018     {
17019       flags = flags_;
17020       return *this;
17021     }
17022 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17023     VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
17024     {
17025       srcImage = srcImage_;
17026       return *this;
17027     }
17028 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17029     VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
17030     {
17031       srcImageLayout = srcImageLayout_;
17032       return *this;
17033     }
17034 
setDstImageVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17035     VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
17036     {
17037       dstImage = dstImage_;
17038       return *this;
17039     }
17040 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17041     VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
17042     {
17043       dstImageLayout = dstImageLayout_;
17044       return *this;
17045     }
17046 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17047     VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
17048     {
17049       regionCount = regionCount_;
17050       return *this;
17051     }
17052 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17053     VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
17054     {
17055       pRegions = pRegions_;
17056       return *this;
17057     }
17058 
17059 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17060     CopyImageToImageInfoEXT & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
17061     {
17062       regionCount = static_cast<uint32_t>( regions_.size() );
17063       pRegions = regions_.data();
17064       return *this;
17065     }
17066 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17067 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
17068 
17069 
operator VkCopyImageToImageInfoEXT const&VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17070     operator VkCopyImageToImageInfoEXT const &() const VULKAN_HPP_NOEXCEPT
17071     {
17072       return *reinterpret_cast<const VkCopyImageToImageInfoEXT*>( this );
17073     }
17074 
operator VkCopyImageToImageInfoEXT&VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17075     operator VkCopyImageToImageInfoEXT &() VULKAN_HPP_NOEXCEPT
17076     {
17077       return *reinterpret_cast<VkCopyImageToImageInfoEXT*>( this );
17078     }
17079 
17080 #if defined( VULKAN_HPP_USE_REFLECT )
17081 #if 14 <= VULKAN_HPP_CPP_VERSION
17082     auto
17083 #else
17084     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageCopy2 * const &>
17085 #endif
reflectVULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17086       reflect() const VULKAN_HPP_NOEXCEPT
17087     {
17088       return std::tie( sType, pNext, flags, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
17089     }
17090 #endif
17091 
17092 
17093 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17094 auto operator<=>( CopyImageToImageInfoEXT const & ) const = default;
17095 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17096     bool operator==( CopyImageToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17097     {
17098 #if defined( VULKAN_HPP_USE_REFLECT )
17099       return this->reflect() == rhs.reflect();
17100 #else
17101       return ( sType == rhs.sType )
17102           && ( pNext == rhs.pNext )
17103           && ( flags == rhs.flags )
17104           && ( srcImage == rhs.srcImage )
17105           && ( srcImageLayout == rhs.srcImageLayout )
17106           && ( dstImage == rhs.dstImage )
17107           && ( dstImageLayout == rhs.dstImageLayout )
17108           && ( regionCount == rhs.regionCount )
17109           && ( pRegions == rhs.pRegions );
17110 #endif
17111     }
17112 
operator !=VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT17113     bool operator!=( CopyImageToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17114     {
17115       return !operator==( rhs );
17116     }
17117 #endif
17118 
17119     public:
17120     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToImageInfoEXT;
17121     const void * pNext = {};
17122     VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags = {};
17123     VULKAN_HPP_NAMESPACE::Image srcImage = {};
17124     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
17125     VULKAN_HPP_NAMESPACE::Image dstImage = {};
17126     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
17127     uint32_t regionCount = {};
17128     const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions = {};
17129 
17130   };
17131 
17132   template <>
17133   struct CppType<StructureType, StructureType::eCopyImageToImageInfoEXT>
17134   {
17135     using Type = CopyImageToImageInfoEXT;
17136   };
17137 
17138   struct ImageToMemoryCopyEXT
17139   {
17140     using NativeType = VkImageToMemoryCopyEXT;
17141 
17142     static const bool allowDuplicate = false;
17143     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageToMemoryCopyEXT;
17144 
17145 
17146 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageToMemoryCopyEXTVULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17147 VULKAN_HPP_CONSTEXPR ImageToMemoryCopyEXT(void * pHostPointer_ = {}, uint32_t memoryRowLength_ = {}, uint32_t memoryImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
17148     : pNext( pNext_ ), pHostPointer( pHostPointer_ ), memoryRowLength( memoryRowLength_ ), memoryImageHeight( memoryImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
17149     {}
17150 
17151     VULKAN_HPP_CONSTEXPR ImageToMemoryCopyEXT( ImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17152 
ImageToMemoryCopyEXTVULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17153     ImageToMemoryCopyEXT( VkImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
17154       : ImageToMemoryCopyEXT( *reinterpret_cast<ImageToMemoryCopyEXT const *>( &rhs ) )
17155     {}
17156 
17157 
17158     ImageToMemoryCopyEXT & operator=( ImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17159 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
17160 
operator =VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17161     ImageToMemoryCopyEXT & operator=( VkImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
17162     {
17163       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT const *>( &rhs );
17164       return *this;
17165     }
17166 
17167 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17168     VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
17169     {
17170       pNext = pNext_;
17171       return *this;
17172     }
17173 
setPHostPointerVULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17174     VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setPHostPointer( void * pHostPointer_ ) VULKAN_HPP_NOEXCEPT
17175     {
17176       pHostPointer = pHostPointer_;
17177       return *this;
17178     }
17179 
setMemoryRowLengthVULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17180     VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setMemoryRowLength( uint32_t memoryRowLength_ ) VULKAN_HPP_NOEXCEPT
17181     {
17182       memoryRowLength = memoryRowLength_;
17183       return *this;
17184     }
17185 
setMemoryImageHeightVULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17186     VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setMemoryImageHeight( uint32_t memoryImageHeight_ ) VULKAN_HPP_NOEXCEPT
17187     {
17188       memoryImageHeight = memoryImageHeight_;
17189       return *this;
17190     }
17191 
setImageSubresourceVULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17192     VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
17193     {
17194       imageSubresource = imageSubresource_;
17195       return *this;
17196     }
17197 
setImageOffsetVULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17198     VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
17199     {
17200       imageOffset = imageOffset_;
17201       return *this;
17202     }
17203 
setImageExtentVULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17204     VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
17205     {
17206       imageExtent = imageExtent_;
17207       return *this;
17208     }
17209 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
17210 
17211 
operator VkImageToMemoryCopyEXT const&VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17212     operator VkImageToMemoryCopyEXT const &() const VULKAN_HPP_NOEXCEPT
17213     {
17214       return *reinterpret_cast<const VkImageToMemoryCopyEXT*>( this );
17215     }
17216 
operator VkImageToMemoryCopyEXT&VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17217     operator VkImageToMemoryCopyEXT &() VULKAN_HPP_NOEXCEPT
17218     {
17219       return *reinterpret_cast<VkImageToMemoryCopyEXT*>( this );
17220     }
17221 
17222 #if defined( VULKAN_HPP_USE_REFLECT )
17223 #if 14 <= VULKAN_HPP_CPP_VERSION
17224     auto
17225 #else
17226     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
17227 #endif
reflectVULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17228       reflect() const VULKAN_HPP_NOEXCEPT
17229     {
17230       return std::tie( sType, pNext, pHostPointer, memoryRowLength, memoryImageHeight, imageSubresource, imageOffset, imageExtent );
17231     }
17232 #endif
17233 
17234 
17235 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17236 auto operator<=>( ImageToMemoryCopyEXT const & ) const = default;
17237 #else
operator ==VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17238     bool operator==( ImageToMemoryCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17239     {
17240 #if defined( VULKAN_HPP_USE_REFLECT )
17241       return this->reflect() == rhs.reflect();
17242 #else
17243       return ( sType == rhs.sType )
17244           && ( pNext == rhs.pNext )
17245           && ( pHostPointer == rhs.pHostPointer )
17246           && ( memoryRowLength == rhs.memoryRowLength )
17247           && ( memoryImageHeight == rhs.memoryImageHeight )
17248           && ( imageSubresource == rhs.imageSubresource )
17249           && ( imageOffset == rhs.imageOffset )
17250           && ( imageExtent == rhs.imageExtent );
17251 #endif
17252     }
17253 
operator !=VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT17254     bool operator!=( ImageToMemoryCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17255     {
17256       return !operator==( rhs );
17257     }
17258 #endif
17259 
17260     public:
17261     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageToMemoryCopyEXT;
17262     const void * pNext = {};
17263     void * pHostPointer = {};
17264     uint32_t memoryRowLength = {};
17265     uint32_t memoryImageHeight = {};
17266     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
17267     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
17268     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
17269 
17270   };
17271 
17272   template <>
17273   struct CppType<StructureType, StructureType::eImageToMemoryCopyEXT>
17274   {
17275     using Type = ImageToMemoryCopyEXT;
17276   };
17277 
17278   struct CopyImageToMemoryInfoEXT
17279   {
17280     using NativeType = VkCopyImageToMemoryInfoEXT;
17281 
17282     static const bool allowDuplicate = false;
17283     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToMemoryInfoEXT;
17284 
17285 
17286 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageToMemoryInfoEXTVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17287 VULKAN_HPP_CONSTEXPR CopyImageToMemoryInfoEXT(VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * pRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
17288     : pNext( pNext_ ), flags( flags_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
17289     {}
17290 
17291     VULKAN_HPP_CONSTEXPR CopyImageToMemoryInfoEXT( CopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17292 
CopyImageToMemoryInfoEXTVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17293     CopyImageToMemoryInfoEXT( VkCopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
17294       : CopyImageToMemoryInfoEXT( *reinterpret_cast<CopyImageToMemoryInfoEXT const *>( &rhs ) )
17295     {}
17296 
17297 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyImageToMemoryInfoEXTVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17298     CopyImageToMemoryInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_, VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT> const & regions_, const void * pNext_ = nullptr )
17299     : pNext( pNext_ ), flags( flags_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
17300     {}
17301 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17302 
17303 
17304     CopyImageToMemoryInfoEXT & operator=( CopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17305 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
17306 
operator =VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17307     CopyImageToMemoryInfoEXT & operator=( VkCopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
17308     {
17309       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT const *>( &rhs );
17310       return *this;
17311     }
17312 
17313 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17314     VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
17315     {
17316       pNext = pNext_;
17317       return *this;
17318     }
17319 
setFlagsVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17320     VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
17321     {
17322       flags = flags_;
17323       return *this;
17324     }
17325 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17326     VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
17327     {
17328       srcImage = srcImage_;
17329       return *this;
17330     }
17331 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17332     VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
17333     {
17334       srcImageLayout = srcImageLayout_;
17335       return *this;
17336     }
17337 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17338     VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
17339     {
17340       regionCount = regionCount_;
17341       return *this;
17342     }
17343 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17344     VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setPRegions( const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * pRegions_ ) VULKAN_HPP_NOEXCEPT
17345     {
17346       pRegions = pRegions_;
17347       return *this;
17348     }
17349 
17350 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17351     CopyImageToMemoryInfoEXT & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT> const & regions_ ) VULKAN_HPP_NOEXCEPT
17352     {
17353       regionCount = static_cast<uint32_t>( regions_.size() );
17354       pRegions = regions_.data();
17355       return *this;
17356     }
17357 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17358 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
17359 
17360 
operator VkCopyImageToMemoryInfoEXT const&VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17361     operator VkCopyImageToMemoryInfoEXT const &() const VULKAN_HPP_NOEXCEPT
17362     {
17363       return *reinterpret_cast<const VkCopyImageToMemoryInfoEXT*>( this );
17364     }
17365 
operator VkCopyImageToMemoryInfoEXT&VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17366     operator VkCopyImageToMemoryInfoEXT &() VULKAN_HPP_NOEXCEPT
17367     {
17368       return *reinterpret_cast<VkCopyImageToMemoryInfoEXT*>( this );
17369     }
17370 
17371 #if defined( VULKAN_HPP_USE_REFLECT )
17372 #if 14 <= VULKAN_HPP_CPP_VERSION
17373     auto
17374 #else
17375     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * const &>
17376 #endif
reflectVULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17377       reflect() const VULKAN_HPP_NOEXCEPT
17378     {
17379       return std::tie( sType, pNext, flags, srcImage, srcImageLayout, regionCount, pRegions );
17380     }
17381 #endif
17382 
17383 
17384 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17385 auto operator<=>( CopyImageToMemoryInfoEXT const & ) const = default;
17386 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17387     bool operator==( CopyImageToMemoryInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17388     {
17389 #if defined( VULKAN_HPP_USE_REFLECT )
17390       return this->reflect() == rhs.reflect();
17391 #else
17392       return ( sType == rhs.sType )
17393           && ( pNext == rhs.pNext )
17394           && ( flags == rhs.flags )
17395           && ( srcImage == rhs.srcImage )
17396           && ( srcImageLayout == rhs.srcImageLayout )
17397           && ( regionCount == rhs.regionCount )
17398           && ( pRegions == rhs.pRegions );
17399 #endif
17400     }
17401 
operator !=VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT17402     bool operator!=( CopyImageToMemoryInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17403     {
17404       return !operator==( rhs );
17405     }
17406 #endif
17407 
17408     public:
17409     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToMemoryInfoEXT;
17410     const void * pNext = {};
17411     VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags = {};
17412     VULKAN_HPP_NAMESPACE::Image srcImage = {};
17413     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
17414     uint32_t regionCount = {};
17415     const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * pRegions = {};
17416 
17417   };
17418 
17419   template <>
17420   struct CppType<StructureType, StructureType::eCopyImageToMemoryInfoEXT>
17421   {
17422     using Type = CopyImageToMemoryInfoEXT;
17423   };
17424 
17425   struct CopyMemoryIndirectCommandNV
17426   {
17427     using NativeType = VkCopyMemoryIndirectCommandNV;
17428 
17429 
17430 
17431 
17432 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMemoryIndirectCommandNVVULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17433 VULKAN_HPP_CONSTEXPR CopyMemoryIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
17434     : srcAddress( srcAddress_ ), dstAddress( dstAddress_ ), size( size_ )
17435     {}
17436 
17437     VULKAN_HPP_CONSTEXPR CopyMemoryIndirectCommandNV( CopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17438 
CopyMemoryIndirectCommandNVVULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17439     CopyMemoryIndirectCommandNV( VkCopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
17440       : CopyMemoryIndirectCommandNV( *reinterpret_cast<CopyMemoryIndirectCommandNV const *>( &rhs ) )
17441     {}
17442 
17443 
17444     CopyMemoryIndirectCommandNV & operator=( CopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17445 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
17446 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17447     CopyMemoryIndirectCommandNV & operator=( VkCopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
17448     {
17449       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV const *>( &rhs );
17450       return *this;
17451     }
17452 
17453 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSrcAddressVULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17454     VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandNV & setSrcAddress( VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ ) VULKAN_HPP_NOEXCEPT
17455     {
17456       srcAddress = srcAddress_;
17457       return *this;
17458     }
17459 
setDstAddressVULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17460     VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandNV & setDstAddress( VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress_ ) VULKAN_HPP_NOEXCEPT
17461     {
17462       dstAddress = dstAddress_;
17463       return *this;
17464     }
17465 
setSizeVULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17466     VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandNV & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
17467     {
17468       size = size_;
17469       return *this;
17470     }
17471 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
17472 
17473 
operator VkCopyMemoryIndirectCommandNV const&VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17474     operator VkCopyMemoryIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
17475     {
17476       return *reinterpret_cast<const VkCopyMemoryIndirectCommandNV*>( this );
17477     }
17478 
operator VkCopyMemoryIndirectCommandNV&VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17479     operator VkCopyMemoryIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
17480     {
17481       return *reinterpret_cast<VkCopyMemoryIndirectCommandNV*>( this );
17482     }
17483 
17484 #if defined( VULKAN_HPP_USE_REFLECT )
17485 #if 14 <= VULKAN_HPP_CPP_VERSION
17486     auto
17487 #else
17488     std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
17489 #endif
reflectVULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17490       reflect() const VULKAN_HPP_NOEXCEPT
17491     {
17492       return std::tie( srcAddress, dstAddress, size );
17493     }
17494 #endif
17495 
17496 
17497 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17498 auto operator<=>( CopyMemoryIndirectCommandNV const & ) const = default;
17499 #else
operator ==VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17500     bool operator==( CopyMemoryIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
17501     {
17502 #if defined( VULKAN_HPP_USE_REFLECT )
17503       return this->reflect() == rhs.reflect();
17504 #else
17505       return ( srcAddress == rhs.srcAddress )
17506           && ( dstAddress == rhs.dstAddress )
17507           && ( size == rhs.size );
17508 #endif
17509     }
17510 
operator !=VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV17511     bool operator!=( CopyMemoryIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
17512     {
17513       return !operator==( rhs );
17514     }
17515 #endif
17516 
17517     public:
17518     VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress = {};
17519     VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress = {};
17520     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
17521 
17522   };
17523 
17524   struct CopyMemoryToAccelerationStructureInfoKHR
17525   {
17526     using NativeType = VkCopyMemoryToAccelerationStructureInfoKHR;
17527 
17528     static const bool allowDuplicate = false;
17529     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
17530 
17531 
17532 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR17533 VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
17534     : pNext( pNext_ ), src( src_ ), dst( dst_ ), mode( mode_ )
17535     {}
17536 
17537     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17538 
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR17539     CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17540       : CopyMemoryToAccelerationStructureInfoKHR( *reinterpret_cast<CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs ) )
17541     {}
17542 
17543 
17544     CopyMemoryToAccelerationStructureInfoKHR & operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17545 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
17546 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR17547     CopyMemoryToAccelerationStructureInfoKHR & operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17548     {
17549       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs );
17550       return *this;
17551     }
17552 
17553 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR17554     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
17555     {
17556       pNext = pNext_;
17557       return *this;
17558     }
17559 
setSrcVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR17560     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
17561     {
17562       src = src_;
17563       return *this;
17564     }
17565 
setDstVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR17566     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
17567     {
17568       dst = dst_;
17569       return *this;
17570     }
17571 
setModeVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR17572     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
17573     {
17574       mode = mode_;
17575       return *this;
17576     }
17577 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
17578 
17579 
operator VkCopyMemoryToAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR17580     operator VkCopyMemoryToAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
17581     {
17582       return *reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
17583     }
17584 
operator VkCopyMemoryToAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR17585     operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
17586     {
17587       return *reinterpret_cast<VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
17588     }
17589 
17590 #if defined( VULKAN_HPP_USE_REFLECT )
17591 #if 14 <= VULKAN_HPP_CPP_VERSION
17592     auto
17593 #else
17594     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR const &>
17595 #endif
reflectVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR17596       reflect() const VULKAN_HPP_NOEXCEPT
17597     {
17598       return std::tie( sType, pNext, src, dst, mode );
17599     }
17600 #endif
17601 
17602 
17603     public:
17604     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
17605     const void * pNext = {};
17606     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {};
17607     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
17608     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
17609 
17610   };
17611 
17612   template <>
17613   struct CppType<StructureType, StructureType::eCopyMemoryToAccelerationStructureInfoKHR>
17614   {
17615     using Type = CopyMemoryToAccelerationStructureInfoKHR;
17616   };
17617 
17618   struct CopyMemoryToImageIndirectCommandNV
17619   {
17620     using NativeType = VkCopyMemoryToImageIndirectCommandNV;
17621 
17622 
17623 
17624 
17625 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMemoryToImageIndirectCommandNVVULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17626 VULKAN_HPP_CONSTEXPR CopyMemoryToImageIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ = {}, uint32_t bufferRowLength_ = {}, uint32_t bufferImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT
17627     : srcAddress( srcAddress_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
17628     {}
17629 
17630     VULKAN_HPP_CONSTEXPR CopyMemoryToImageIndirectCommandNV( CopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17631 
CopyMemoryToImageIndirectCommandNVVULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17632     CopyMemoryToImageIndirectCommandNV( VkCopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
17633       : CopyMemoryToImageIndirectCommandNV( *reinterpret_cast<CopyMemoryToImageIndirectCommandNV const *>( &rhs ) )
17634     {}
17635 
17636 
17637     CopyMemoryToImageIndirectCommandNV & operator=( CopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17638 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
17639 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17640     CopyMemoryToImageIndirectCommandNV & operator=( VkCopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
17641     {
17642       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV const *>( &rhs );
17643       return *this;
17644     }
17645 
17646 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSrcAddressVULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17647     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setSrcAddress( VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ ) VULKAN_HPP_NOEXCEPT
17648     {
17649       srcAddress = srcAddress_;
17650       return *this;
17651     }
17652 
setBufferRowLengthVULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17653     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
17654     {
17655       bufferRowLength = bufferRowLength_;
17656       return *this;
17657     }
17658 
setBufferImageHeightVULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17659     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
17660     {
17661       bufferImageHeight = bufferImageHeight_;
17662       return *this;
17663     }
17664 
setImageSubresourceVULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17665     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
17666     {
17667       imageSubresource = imageSubresource_;
17668       return *this;
17669     }
17670 
setImageOffsetVULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17671     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
17672     {
17673       imageOffset = imageOffset_;
17674       return *this;
17675     }
17676 
setImageExtentVULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17677     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
17678     {
17679       imageExtent = imageExtent_;
17680       return *this;
17681     }
17682 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
17683 
17684 
operator VkCopyMemoryToImageIndirectCommandNV const&VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17685     operator VkCopyMemoryToImageIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
17686     {
17687       return *reinterpret_cast<const VkCopyMemoryToImageIndirectCommandNV*>( this );
17688     }
17689 
operator VkCopyMemoryToImageIndirectCommandNV&VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17690     operator VkCopyMemoryToImageIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
17691     {
17692       return *reinterpret_cast<VkCopyMemoryToImageIndirectCommandNV*>( this );
17693     }
17694 
17695 #if defined( VULKAN_HPP_USE_REFLECT )
17696 #if 14 <= VULKAN_HPP_CPP_VERSION
17697     auto
17698 #else
17699     std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
17700 #endif
reflectVULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17701       reflect() const VULKAN_HPP_NOEXCEPT
17702     {
17703       return std::tie( srcAddress, bufferRowLength, bufferImageHeight, imageSubresource, imageOffset, imageExtent );
17704     }
17705 #endif
17706 
17707 
17708 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17709 auto operator<=>( CopyMemoryToImageIndirectCommandNV const & ) const = default;
17710 #else
operator ==VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17711     bool operator==( CopyMemoryToImageIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
17712     {
17713 #if defined( VULKAN_HPP_USE_REFLECT )
17714       return this->reflect() == rhs.reflect();
17715 #else
17716       return ( srcAddress == rhs.srcAddress )
17717           && ( bufferRowLength == rhs.bufferRowLength )
17718           && ( bufferImageHeight == rhs.bufferImageHeight )
17719           && ( imageSubresource == rhs.imageSubresource )
17720           && ( imageOffset == rhs.imageOffset )
17721           && ( imageExtent == rhs.imageExtent );
17722 #endif
17723     }
17724 
operator !=VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV17725     bool operator!=( CopyMemoryToImageIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
17726     {
17727       return !operator==( rhs );
17728     }
17729 #endif
17730 
17731     public:
17732     VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress = {};
17733     uint32_t bufferRowLength = {};
17734     uint32_t bufferImageHeight = {};
17735     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
17736     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
17737     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
17738 
17739   };
17740 
17741   struct MemoryToImageCopyEXT
17742   {
17743     using NativeType = VkMemoryToImageCopyEXT;
17744 
17745     static const bool allowDuplicate = false;
17746     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryToImageCopyEXT;
17747 
17748 
17749 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryToImageCopyEXTVULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17750 VULKAN_HPP_CONSTEXPR MemoryToImageCopyEXT(const void * pHostPointer_ = {}, uint32_t memoryRowLength_ = {}, uint32_t memoryImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
17751     : pNext( pNext_ ), pHostPointer( pHostPointer_ ), memoryRowLength( memoryRowLength_ ), memoryImageHeight( memoryImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
17752     {}
17753 
17754     VULKAN_HPP_CONSTEXPR MemoryToImageCopyEXT( MemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17755 
MemoryToImageCopyEXTVULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17756     MemoryToImageCopyEXT( VkMemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
17757       : MemoryToImageCopyEXT( *reinterpret_cast<MemoryToImageCopyEXT const *>( &rhs ) )
17758     {}
17759 
17760 
17761     MemoryToImageCopyEXT & operator=( MemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17762 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
17763 
operator =VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17764     MemoryToImageCopyEXT & operator=( VkMemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
17765     {
17766       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT const *>( &rhs );
17767       return *this;
17768     }
17769 
17770 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17771     VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
17772     {
17773       pNext = pNext_;
17774       return *this;
17775     }
17776 
setPHostPointerVULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17777     VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setPHostPointer( const void * pHostPointer_ ) VULKAN_HPP_NOEXCEPT
17778     {
17779       pHostPointer = pHostPointer_;
17780       return *this;
17781     }
17782 
setMemoryRowLengthVULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17783     VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setMemoryRowLength( uint32_t memoryRowLength_ ) VULKAN_HPP_NOEXCEPT
17784     {
17785       memoryRowLength = memoryRowLength_;
17786       return *this;
17787     }
17788 
setMemoryImageHeightVULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17789     VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setMemoryImageHeight( uint32_t memoryImageHeight_ ) VULKAN_HPP_NOEXCEPT
17790     {
17791       memoryImageHeight = memoryImageHeight_;
17792       return *this;
17793     }
17794 
setImageSubresourceVULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17795     VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
17796     {
17797       imageSubresource = imageSubresource_;
17798       return *this;
17799     }
17800 
setImageOffsetVULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17801     VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
17802     {
17803       imageOffset = imageOffset_;
17804       return *this;
17805     }
17806 
setImageExtentVULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17807     VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
17808     {
17809       imageExtent = imageExtent_;
17810       return *this;
17811     }
17812 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
17813 
17814 
operator VkMemoryToImageCopyEXT const&VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17815     operator VkMemoryToImageCopyEXT const &() const VULKAN_HPP_NOEXCEPT
17816     {
17817       return *reinterpret_cast<const VkMemoryToImageCopyEXT*>( this );
17818     }
17819 
operator VkMemoryToImageCopyEXT&VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17820     operator VkMemoryToImageCopyEXT &() VULKAN_HPP_NOEXCEPT
17821     {
17822       return *reinterpret_cast<VkMemoryToImageCopyEXT*>( this );
17823     }
17824 
17825 #if defined( VULKAN_HPP_USE_REFLECT )
17826 #if 14 <= VULKAN_HPP_CPP_VERSION
17827     auto
17828 #else
17829     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
17830 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17831       reflect() const VULKAN_HPP_NOEXCEPT
17832     {
17833       return std::tie( sType, pNext, pHostPointer, memoryRowLength, memoryImageHeight, imageSubresource, imageOffset, imageExtent );
17834     }
17835 #endif
17836 
17837 
17838 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17839 auto operator<=>( MemoryToImageCopyEXT const & ) const = default;
17840 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17841     bool operator==( MemoryToImageCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17842     {
17843 #if defined( VULKAN_HPP_USE_REFLECT )
17844       return this->reflect() == rhs.reflect();
17845 #else
17846       return ( sType == rhs.sType )
17847           && ( pNext == rhs.pNext )
17848           && ( pHostPointer == rhs.pHostPointer )
17849           && ( memoryRowLength == rhs.memoryRowLength )
17850           && ( memoryImageHeight == rhs.memoryImageHeight )
17851           && ( imageSubresource == rhs.imageSubresource )
17852           && ( imageOffset == rhs.imageOffset )
17853           && ( imageExtent == rhs.imageExtent );
17854 #endif
17855     }
17856 
operator !=VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT17857     bool operator!=( MemoryToImageCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17858     {
17859       return !operator==( rhs );
17860     }
17861 #endif
17862 
17863     public:
17864     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryToImageCopyEXT;
17865     const void * pNext = {};
17866     const void * pHostPointer = {};
17867     uint32_t memoryRowLength = {};
17868     uint32_t memoryImageHeight = {};
17869     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
17870     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
17871     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
17872 
17873   };
17874 
17875   template <>
17876   struct CppType<StructureType, StructureType::eMemoryToImageCopyEXT>
17877   {
17878     using Type = MemoryToImageCopyEXT;
17879   };
17880 
17881   struct CopyMemoryToImageInfoEXT
17882   {
17883     using NativeType = VkCopyMemoryToImageInfoEXT;
17884 
17885     static const bool allowDuplicate = false;
17886     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToImageInfoEXT;
17887 
17888 
17889 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMemoryToImageInfoEXTVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17890 VULKAN_HPP_CONSTEXPR CopyMemoryToImageInfoEXT(VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * pRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
17891     : pNext( pNext_ ), flags( flags_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
17892     {}
17893 
17894     VULKAN_HPP_CONSTEXPR CopyMemoryToImageInfoEXT( CopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17895 
CopyMemoryToImageInfoEXTVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17896     CopyMemoryToImageInfoEXT( VkCopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
17897       : CopyMemoryToImageInfoEXT( *reinterpret_cast<CopyMemoryToImageInfoEXT const *>( &rhs ) )
17898     {}
17899 
17900 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CopyMemoryToImageInfoEXTVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17901     CopyMemoryToImageInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT> const & regions_, const void * pNext_ = nullptr )
17902     : pNext( pNext_ ), flags( flags_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
17903     {}
17904 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17905 
17906 
17907     CopyMemoryToImageInfoEXT & operator=( CopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17908 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
17909 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17910     CopyMemoryToImageInfoEXT & operator=( VkCopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
17911     {
17912       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT const *>( &rhs );
17913       return *this;
17914     }
17915 
17916 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17917     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
17918     {
17919       pNext = pNext_;
17920       return *this;
17921     }
17922 
setFlagsVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17923     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
17924     {
17925       flags = flags_;
17926       return *this;
17927     }
17928 
setDstImageVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17929     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
17930     {
17931       dstImage = dstImage_;
17932       return *this;
17933     }
17934 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17935     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
17936     {
17937       dstImageLayout = dstImageLayout_;
17938       return *this;
17939     }
17940 
setRegionCountVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17941     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
17942     {
17943       regionCount = regionCount_;
17944       return *this;
17945     }
17946 
setPRegionsVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17947     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setPRegions( const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * pRegions_ ) VULKAN_HPP_NOEXCEPT
17948     {
17949       pRegions = pRegions_;
17950       return *this;
17951     }
17952 
17953 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17954     CopyMemoryToImageInfoEXT & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT> const & regions_ ) VULKAN_HPP_NOEXCEPT
17955     {
17956       regionCount = static_cast<uint32_t>( regions_.size() );
17957       pRegions = regions_.data();
17958       return *this;
17959     }
17960 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17961 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
17962 
17963 
operator VkCopyMemoryToImageInfoEXT const&VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17964     operator VkCopyMemoryToImageInfoEXT const &() const VULKAN_HPP_NOEXCEPT
17965     {
17966       return *reinterpret_cast<const VkCopyMemoryToImageInfoEXT*>( this );
17967     }
17968 
operator VkCopyMemoryToImageInfoEXT&VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17969     operator VkCopyMemoryToImageInfoEXT &() VULKAN_HPP_NOEXCEPT
17970     {
17971       return *reinterpret_cast<VkCopyMemoryToImageInfoEXT*>( this );
17972     }
17973 
17974 #if defined( VULKAN_HPP_USE_REFLECT )
17975 #if 14 <= VULKAN_HPP_CPP_VERSION
17976     auto
17977 #else
17978     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * const &>
17979 #endif
reflectVULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17980       reflect() const VULKAN_HPP_NOEXCEPT
17981     {
17982       return std::tie( sType, pNext, flags, dstImage, dstImageLayout, regionCount, pRegions );
17983     }
17984 #endif
17985 
17986 
17987 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17988 auto operator<=>( CopyMemoryToImageInfoEXT const & ) const = default;
17989 #else
operator ==VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT17990     bool operator==( CopyMemoryToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
17991     {
17992 #if defined( VULKAN_HPP_USE_REFLECT )
17993       return this->reflect() == rhs.reflect();
17994 #else
17995       return ( sType == rhs.sType )
17996           && ( pNext == rhs.pNext )
17997           && ( flags == rhs.flags )
17998           && ( dstImage == rhs.dstImage )
17999           && ( dstImageLayout == rhs.dstImageLayout )
18000           && ( regionCount == rhs.regionCount )
18001           && ( pRegions == rhs.pRegions );
18002 #endif
18003     }
18004 
operator !=VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT18005     bool operator!=( CopyMemoryToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
18006     {
18007       return !operator==( rhs );
18008     }
18009 #endif
18010 
18011     public:
18012     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToImageInfoEXT;
18013     const void * pNext = {};
18014     VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags = {};
18015     VULKAN_HPP_NAMESPACE::Image dstImage = {};
18016     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18017     uint32_t regionCount = {};
18018     const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * pRegions = {};
18019 
18020   };
18021 
18022   template <>
18023   struct CppType<StructureType, StructureType::eCopyMemoryToImageInfoEXT>
18024   {
18025     using Type = CopyMemoryToImageInfoEXT;
18026   };
18027 
18028   struct CopyMemoryToMicromapInfoEXT
18029   {
18030     using NativeType = VkCopyMemoryToMicromapInfoEXT;
18031 
18032     static const bool allowDuplicate = false;
18033     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToMicromapInfoEXT;
18034 
18035 
18036 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMemoryToMicromapInfoEXTVULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT18037 VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {}, VULKAN_HPP_NAMESPACE::MicromapEXT dst_ = {}, VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
18038     : pNext( pNext_ ), src( src_ ), dst( dst_ ), mode( mode_ )
18039     {}
18040 
18041     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT( CopyMemoryToMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18042 
CopyMemoryToMicromapInfoEXTVULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT18043     CopyMemoryToMicromapInfoEXT( VkCopyMemoryToMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18044       : CopyMemoryToMicromapInfoEXT( *reinterpret_cast<CopyMemoryToMicromapInfoEXT const *>( &rhs ) )
18045     {}
18046 
18047 
18048     CopyMemoryToMicromapInfoEXT & operator=( CopyMemoryToMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18049 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
18050 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT18051     CopyMemoryToMicromapInfoEXT & operator=( VkCopyMemoryToMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18052     {
18053       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT const *>( &rhs );
18054       return *this;
18055     }
18056 
18057 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT18058     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
18059     {
18060       pNext = pNext_;
18061       return *this;
18062     }
18063 
setSrcVULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT18064     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT & setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
18065     {
18066       src = src_;
18067       return *this;
18068     }
18069 
setDstVULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT18070     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT & setDst( VULKAN_HPP_NAMESPACE::MicromapEXT dst_ ) VULKAN_HPP_NOEXCEPT
18071     {
18072       dst = dst_;
18073       return *this;
18074     }
18075 
setModeVULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT18076     VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT & setMode( VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ ) VULKAN_HPP_NOEXCEPT
18077     {
18078       mode = mode_;
18079       return *this;
18080     }
18081 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
18082 
18083 
operator VkCopyMemoryToMicromapInfoEXT const&VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT18084     operator VkCopyMemoryToMicromapInfoEXT const &() const VULKAN_HPP_NOEXCEPT
18085     {
18086       return *reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT*>( this );
18087     }
18088 
operator VkCopyMemoryToMicromapInfoEXT&VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT18089     operator VkCopyMemoryToMicromapInfoEXT &() VULKAN_HPP_NOEXCEPT
18090     {
18091       return *reinterpret_cast<VkCopyMemoryToMicromapInfoEXT*>( this );
18092     }
18093 
18094 #if defined( VULKAN_HPP_USE_REFLECT )
18095 #if 14 <= VULKAN_HPP_CPP_VERSION
18096     auto
18097 #else
18098     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::MicromapEXT const &, VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT const &>
18099 #endif
reflectVULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT18100       reflect() const VULKAN_HPP_NOEXCEPT
18101     {
18102       return std::tie( sType, pNext, src, dst, mode );
18103     }
18104 #endif
18105 
18106 
18107     public:
18108     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToMicromapInfoEXT;
18109     const void * pNext = {};
18110     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {};
18111     VULKAN_HPP_NAMESPACE::MicromapEXT dst = {};
18112     VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone;
18113 
18114   };
18115 
18116   template <>
18117   struct CppType<StructureType, StructureType::eCopyMemoryToMicromapInfoEXT>
18118   {
18119     using Type = CopyMemoryToMicromapInfoEXT;
18120   };
18121 
18122   struct CopyMicromapInfoEXT
18123   {
18124     using NativeType = VkCopyMicromapInfoEXT;
18125 
18126     static const bool allowDuplicate = false;
18127     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMicromapInfoEXT;
18128 
18129 
18130 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMicromapInfoEXTVULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18131 VULKAN_HPP_CONSTEXPR CopyMicromapInfoEXT(VULKAN_HPP_NAMESPACE::MicromapEXT src_ = {}, VULKAN_HPP_NAMESPACE::MicromapEXT dst_ = {}, VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
18132     : pNext( pNext_ ), src( src_ ), dst( dst_ ), mode( mode_ )
18133     {}
18134 
18135     VULKAN_HPP_CONSTEXPR CopyMicromapInfoEXT( CopyMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18136 
CopyMicromapInfoEXTVULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18137     CopyMicromapInfoEXT( VkCopyMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18138       : CopyMicromapInfoEXT( *reinterpret_cast<CopyMicromapInfoEXT const *>( &rhs ) )
18139     {}
18140 
18141 
18142     CopyMicromapInfoEXT & operator=( CopyMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18143 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
18144 
operator =VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18145     CopyMicromapInfoEXT & operator=( VkCopyMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18146     {
18147       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT const *>( &rhs );
18148       return *this;
18149     }
18150 
18151 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18152     VULKAN_HPP_CONSTEXPR_14 CopyMicromapInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
18153     {
18154       pNext = pNext_;
18155       return *this;
18156     }
18157 
setSrcVULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18158     VULKAN_HPP_CONSTEXPR_14 CopyMicromapInfoEXT & setSrc( VULKAN_HPP_NAMESPACE::MicromapEXT src_ ) VULKAN_HPP_NOEXCEPT
18159     {
18160       src = src_;
18161       return *this;
18162     }
18163 
setDstVULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18164     VULKAN_HPP_CONSTEXPR_14 CopyMicromapInfoEXT & setDst( VULKAN_HPP_NAMESPACE::MicromapEXT dst_ ) VULKAN_HPP_NOEXCEPT
18165     {
18166       dst = dst_;
18167       return *this;
18168     }
18169 
setModeVULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18170     VULKAN_HPP_CONSTEXPR_14 CopyMicromapInfoEXT & setMode( VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ ) VULKAN_HPP_NOEXCEPT
18171     {
18172       mode = mode_;
18173       return *this;
18174     }
18175 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
18176 
18177 
operator VkCopyMicromapInfoEXT const&VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18178     operator VkCopyMicromapInfoEXT const &() const VULKAN_HPP_NOEXCEPT
18179     {
18180       return *reinterpret_cast<const VkCopyMicromapInfoEXT*>( this );
18181     }
18182 
operator VkCopyMicromapInfoEXT&VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18183     operator VkCopyMicromapInfoEXT &() VULKAN_HPP_NOEXCEPT
18184     {
18185       return *reinterpret_cast<VkCopyMicromapInfoEXT*>( this );
18186     }
18187 
18188 #if defined( VULKAN_HPP_USE_REFLECT )
18189 #if 14 <= VULKAN_HPP_CPP_VERSION
18190     auto
18191 #else
18192     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MicromapEXT const &, VULKAN_HPP_NAMESPACE::MicromapEXT const &, VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT const &>
18193 #endif
reflectVULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18194       reflect() const VULKAN_HPP_NOEXCEPT
18195     {
18196       return std::tie( sType, pNext, src, dst, mode );
18197     }
18198 #endif
18199 
18200 
18201 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18202 auto operator<=>( CopyMicromapInfoEXT const & ) const = default;
18203 #else
operator ==VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18204     bool operator==( CopyMicromapInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
18205     {
18206 #if defined( VULKAN_HPP_USE_REFLECT )
18207       return this->reflect() == rhs.reflect();
18208 #else
18209       return ( sType == rhs.sType )
18210           && ( pNext == rhs.pNext )
18211           && ( src == rhs.src )
18212           && ( dst == rhs.dst )
18213           && ( mode == rhs.mode );
18214 #endif
18215     }
18216 
operator !=VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT18217     bool operator!=( CopyMicromapInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
18218     {
18219       return !operator==( rhs );
18220     }
18221 #endif
18222 
18223     public:
18224     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMicromapInfoEXT;
18225     const void * pNext = {};
18226     VULKAN_HPP_NAMESPACE::MicromapEXT src = {};
18227     VULKAN_HPP_NAMESPACE::MicromapEXT dst = {};
18228     VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone;
18229 
18230   };
18231 
18232   template <>
18233   struct CppType<StructureType, StructureType::eCopyMicromapInfoEXT>
18234   {
18235     using Type = CopyMicromapInfoEXT;
18236   };
18237 
18238   struct CopyMicromapToMemoryInfoEXT
18239   {
18240     using NativeType = VkCopyMicromapToMemoryInfoEXT;
18241 
18242     static const bool allowDuplicate = false;
18243     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMicromapToMemoryInfoEXT;
18244 
18245 
18246 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMicromapToMemoryInfoEXTVULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT18247 VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT(VULKAN_HPP_NAMESPACE::MicromapEXT src_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
18248     : pNext( pNext_ ), src( src_ ), dst( dst_ ), mode( mode_ )
18249     {}
18250 
18251     VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT( CopyMicromapToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18252 
CopyMicromapToMemoryInfoEXTVULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT18253     CopyMicromapToMemoryInfoEXT( VkCopyMicromapToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18254       : CopyMicromapToMemoryInfoEXT( *reinterpret_cast<CopyMicromapToMemoryInfoEXT const *>( &rhs ) )
18255     {}
18256 
18257 
18258     CopyMicromapToMemoryInfoEXT & operator=( CopyMicromapToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18259 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
18260 
operator =VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT18261     CopyMicromapToMemoryInfoEXT & operator=( VkCopyMicromapToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18262     {
18263       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT const *>( &rhs );
18264       return *this;
18265     }
18266 
18267 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT18268     VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
18269     {
18270       pNext = pNext_;
18271       return *this;
18272     }
18273 
setSrcVULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT18274     VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT & setSrc( VULKAN_HPP_NAMESPACE::MicromapEXT src_ ) VULKAN_HPP_NOEXCEPT
18275     {
18276       src = src_;
18277       return *this;
18278     }
18279 
setDstVULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT18280     VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT
18281     {
18282       dst = dst_;
18283       return *this;
18284     }
18285 
setModeVULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT18286     VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT & setMode( VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ ) VULKAN_HPP_NOEXCEPT
18287     {
18288       mode = mode_;
18289       return *this;
18290     }
18291 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
18292 
18293 
operator VkCopyMicromapToMemoryInfoEXT const&VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT18294     operator VkCopyMicromapToMemoryInfoEXT const &() const VULKAN_HPP_NOEXCEPT
18295     {
18296       return *reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT*>( this );
18297     }
18298 
operator VkCopyMicromapToMemoryInfoEXT&VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT18299     operator VkCopyMicromapToMemoryInfoEXT &() VULKAN_HPP_NOEXCEPT
18300     {
18301       return *reinterpret_cast<VkCopyMicromapToMemoryInfoEXT*>( this );
18302     }
18303 
18304 #if defined( VULKAN_HPP_USE_REFLECT )
18305 #if 14 <= VULKAN_HPP_CPP_VERSION
18306     auto
18307 #else
18308     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MicromapEXT const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const &, VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT const &>
18309 #endif
reflectVULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT18310       reflect() const VULKAN_HPP_NOEXCEPT
18311     {
18312       return std::tie( sType, pNext, src, dst, mode );
18313     }
18314 #endif
18315 
18316 
18317     public:
18318     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMicromapToMemoryInfoEXT;
18319     const void * pNext = {};
18320     VULKAN_HPP_NAMESPACE::MicromapEXT src = {};
18321     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {};
18322     VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone;
18323 
18324   };
18325 
18326   template <>
18327   struct CppType<StructureType, StructureType::eCopyMicromapToMemoryInfoEXT>
18328   {
18329     using Type = CopyMicromapToMemoryInfoEXT;
18330   };
18331 
18332   struct CuFunctionCreateInfoNVX
18333   {
18334     using NativeType = VkCuFunctionCreateInfoNVX;
18335 
18336     static const bool allowDuplicate = false;
18337     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCuFunctionCreateInfoNVX;
18338 
18339 
18340 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CuFunctionCreateInfoNVXVULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18341 VULKAN_HPP_CONSTEXPR CuFunctionCreateInfoNVX(VULKAN_HPP_NAMESPACE::CuModuleNVX module_ = {}, const char * pName_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
18342     : pNext( pNext_ ), module( module_ ), pName( pName_ )
18343     {}
18344 
18345     VULKAN_HPP_CONSTEXPR CuFunctionCreateInfoNVX( CuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18346 
CuFunctionCreateInfoNVXVULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18347     CuFunctionCreateInfoNVX( VkCuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
18348       : CuFunctionCreateInfoNVX( *reinterpret_cast<CuFunctionCreateInfoNVX const *>( &rhs ) )
18349     {}
18350 
18351 
18352     CuFunctionCreateInfoNVX & operator=( CuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18353 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
18354 
operator =VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18355     CuFunctionCreateInfoNVX & operator=( VkCuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
18356     {
18357       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const *>( &rhs );
18358       return *this;
18359     }
18360 
18361 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18362     VULKAN_HPP_CONSTEXPR_14 CuFunctionCreateInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
18363     {
18364       pNext = pNext_;
18365       return *this;
18366     }
18367 
setModuleVULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18368     VULKAN_HPP_CONSTEXPR_14 CuFunctionCreateInfoNVX & setModule( VULKAN_HPP_NAMESPACE::CuModuleNVX module_ ) VULKAN_HPP_NOEXCEPT
18369     {
18370       module = module_;
18371       return *this;
18372     }
18373 
setPNameVULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18374     VULKAN_HPP_CONSTEXPR_14 CuFunctionCreateInfoNVX & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
18375     {
18376       pName = pName_;
18377       return *this;
18378     }
18379 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
18380 
18381 
operator VkCuFunctionCreateInfoNVX const&VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18382     operator VkCuFunctionCreateInfoNVX const &() const VULKAN_HPP_NOEXCEPT
18383     {
18384       return *reinterpret_cast<const VkCuFunctionCreateInfoNVX*>( this );
18385     }
18386 
operator VkCuFunctionCreateInfoNVX&VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18387     operator VkCuFunctionCreateInfoNVX &() VULKAN_HPP_NOEXCEPT
18388     {
18389       return *reinterpret_cast<VkCuFunctionCreateInfoNVX*>( this );
18390     }
18391 
18392 #if defined( VULKAN_HPP_USE_REFLECT )
18393 #if 14 <= VULKAN_HPP_CPP_VERSION
18394     auto
18395 #else
18396     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CuModuleNVX const &, const char * const &>
18397 #endif
reflectVULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18398       reflect() const VULKAN_HPP_NOEXCEPT
18399     {
18400       return std::tie( sType, pNext, module, pName );
18401     }
18402 #endif
18403 
18404 
18405 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18406     std::strong_ordering operator<=>( CuFunctionCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
18407     {
18408       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
18409       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
18410       if ( auto cmp = module <=> rhs.module; cmp != 0 ) return cmp;
18411      if ( pName != rhs.pName )
18412         if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
18413           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
18414 
18415       return std::strong_ordering::equivalent;
18416     }
18417 #endif
18418 
operator ==VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18419     bool operator==( CuFunctionCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
18420     {
18421       return ( sType == rhs.sType )
18422           && ( pNext == rhs.pNext )
18423           && ( module == rhs.module )
18424           && ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) );
18425     }
18426 
operator !=VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX18427     bool operator!=( CuFunctionCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
18428     {
18429       return !operator==( rhs );
18430     }
18431 
18432     public:
18433     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCuFunctionCreateInfoNVX;
18434     const void * pNext = {};
18435     VULKAN_HPP_NAMESPACE::CuModuleNVX module = {};
18436     const char * pName = {};
18437 
18438   };
18439 
18440   template <>
18441   struct CppType<StructureType, StructureType::eCuFunctionCreateInfoNVX>
18442   {
18443     using Type = CuFunctionCreateInfoNVX;
18444   };
18445 
18446   struct CuLaunchInfoNVX
18447   {
18448     using NativeType = VkCuLaunchInfoNVX;
18449 
18450     static const bool allowDuplicate = false;
18451     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCuLaunchInfoNVX;
18452 
18453 
18454 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CuLaunchInfoNVXVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18455 VULKAN_HPP_CONSTEXPR CuLaunchInfoNVX(VULKAN_HPP_NAMESPACE::CuFunctionNVX function_ = {}, uint32_t gridDimX_ = {}, uint32_t gridDimY_ = {}, uint32_t gridDimZ_ = {}, uint32_t blockDimX_ = {}, uint32_t blockDimY_ = {}, uint32_t blockDimZ_ = {}, uint32_t sharedMemBytes_ = {}, size_t paramCount_ = {}, const void * const * pParams_ = {}, size_t extraCount_ = {}, const void * const * pExtras_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
18456     : pNext( pNext_ ), function( function_ ), gridDimX( gridDimX_ ), gridDimY( gridDimY_ ), gridDimZ( gridDimZ_ ), blockDimX( blockDimX_ ), blockDimY( blockDimY_ ), blockDimZ( blockDimZ_ ), sharedMemBytes( sharedMemBytes_ ), paramCount( paramCount_ ), pParams( pParams_ ), extraCount( extraCount_ ), pExtras( pExtras_ )
18457     {}
18458 
18459     VULKAN_HPP_CONSTEXPR CuLaunchInfoNVX( CuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18460 
CuLaunchInfoNVXVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18461     CuLaunchInfoNVX( VkCuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
18462       : CuLaunchInfoNVX( *reinterpret_cast<CuLaunchInfoNVX const *>( &rhs ) )
18463     {}
18464 
18465 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
CuLaunchInfoNVXVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18466     CuLaunchInfoNVX( VULKAN_HPP_NAMESPACE::CuFunctionNVX function_, uint32_t gridDimX_, uint32_t gridDimY_, uint32_t gridDimZ_, uint32_t blockDimX_, uint32_t blockDimY_, uint32_t blockDimZ_, uint32_t sharedMemBytes_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & params_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & extras_ = {}, const void * pNext_ = nullptr )
18467     : pNext( pNext_ ), function( function_ ), gridDimX( gridDimX_ ), gridDimY( gridDimY_ ), gridDimZ( gridDimZ_ ), blockDimX( blockDimX_ ), blockDimY( blockDimY_ ), blockDimZ( blockDimZ_ ), sharedMemBytes( sharedMemBytes_ ), paramCount( params_.size() ), pParams( params_.data() ), extraCount( extras_.size() ), pExtras( extras_.data() )
18468     {}
18469 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18470 
18471 
18472     CuLaunchInfoNVX & operator=( CuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18473 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
18474 
operator =VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18475     CuLaunchInfoNVX & operator=( VkCuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
18476     {
18477       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX const *>( &rhs );
18478       return *this;
18479     }
18480 
18481 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18482     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
18483     {
18484       pNext = pNext_;
18485       return *this;
18486     }
18487 
setFunctionVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18488     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setFunction( VULKAN_HPP_NAMESPACE::CuFunctionNVX function_ ) VULKAN_HPP_NOEXCEPT
18489     {
18490       function = function_;
18491       return *this;
18492     }
18493 
setGridDimXVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18494     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setGridDimX( uint32_t gridDimX_ ) VULKAN_HPP_NOEXCEPT
18495     {
18496       gridDimX = gridDimX_;
18497       return *this;
18498     }
18499 
setGridDimYVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18500     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setGridDimY( uint32_t gridDimY_ ) VULKAN_HPP_NOEXCEPT
18501     {
18502       gridDimY = gridDimY_;
18503       return *this;
18504     }
18505 
setGridDimZVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18506     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setGridDimZ( uint32_t gridDimZ_ ) VULKAN_HPP_NOEXCEPT
18507     {
18508       gridDimZ = gridDimZ_;
18509       return *this;
18510     }
18511 
setBlockDimXVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18512     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setBlockDimX( uint32_t blockDimX_ ) VULKAN_HPP_NOEXCEPT
18513     {
18514       blockDimX = blockDimX_;
18515       return *this;
18516     }
18517 
setBlockDimYVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18518     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setBlockDimY( uint32_t blockDimY_ ) VULKAN_HPP_NOEXCEPT
18519     {
18520       blockDimY = blockDimY_;
18521       return *this;
18522     }
18523 
setBlockDimZVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18524     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setBlockDimZ( uint32_t blockDimZ_ ) VULKAN_HPP_NOEXCEPT
18525     {
18526       blockDimZ = blockDimZ_;
18527       return *this;
18528     }
18529 
setSharedMemBytesVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18530     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setSharedMemBytes( uint32_t sharedMemBytes_ ) VULKAN_HPP_NOEXCEPT
18531     {
18532       sharedMemBytes = sharedMemBytes_;
18533       return *this;
18534     }
18535 
setParamCountVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18536     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setParamCount( size_t paramCount_ ) VULKAN_HPP_NOEXCEPT
18537     {
18538       paramCount = paramCount_;
18539       return *this;
18540     }
18541 
setPParamsVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18542     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setPParams( const void * const * pParams_ ) VULKAN_HPP_NOEXCEPT
18543     {
18544       pParams = pParams_;
18545       return *this;
18546     }
18547 
18548 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setParamsVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18549     CuLaunchInfoNVX & setParams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & params_ ) VULKAN_HPP_NOEXCEPT
18550     {
18551       paramCount = params_.size();
18552       pParams = params_.data();
18553       return *this;
18554     }
18555 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18556 
setExtraCountVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18557     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setExtraCount( size_t extraCount_ ) VULKAN_HPP_NOEXCEPT
18558     {
18559       extraCount = extraCount_;
18560       return *this;
18561     }
18562 
setPExtrasVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18563     VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setPExtras( const void * const * pExtras_ ) VULKAN_HPP_NOEXCEPT
18564     {
18565       pExtras = pExtras_;
18566       return *this;
18567     }
18568 
18569 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setExtrasVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18570     CuLaunchInfoNVX & setExtras( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & extras_ ) VULKAN_HPP_NOEXCEPT
18571     {
18572       extraCount = extras_.size();
18573       pExtras = extras_.data();
18574       return *this;
18575     }
18576 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18577 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
18578 
18579 
operator VkCuLaunchInfoNVX const&VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18580     operator VkCuLaunchInfoNVX const &() const VULKAN_HPP_NOEXCEPT
18581     {
18582       return *reinterpret_cast<const VkCuLaunchInfoNVX*>( this );
18583     }
18584 
operator VkCuLaunchInfoNVX&VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18585     operator VkCuLaunchInfoNVX &() VULKAN_HPP_NOEXCEPT
18586     {
18587       return *reinterpret_cast<VkCuLaunchInfoNVX*>( this );
18588     }
18589 
18590 #if defined( VULKAN_HPP_USE_REFLECT )
18591 #if 14 <= VULKAN_HPP_CPP_VERSION
18592     auto
18593 #else
18594     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CuFunctionNVX const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, size_t const &, const void * const * const &, size_t const &, const void * const * const &>
18595 #endif
reflectVULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18596       reflect() const VULKAN_HPP_NOEXCEPT
18597     {
18598       return std::tie( sType, pNext, function, gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, paramCount, pParams, extraCount, pExtras );
18599     }
18600 #endif
18601 
18602 
18603 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18604 auto operator<=>( CuLaunchInfoNVX const & ) const = default;
18605 #else
operator ==VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18606     bool operator==( CuLaunchInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
18607     {
18608 #if defined( VULKAN_HPP_USE_REFLECT )
18609       return this->reflect() == rhs.reflect();
18610 #else
18611       return ( sType == rhs.sType )
18612           && ( pNext == rhs.pNext )
18613           && ( function == rhs.function )
18614           && ( gridDimX == rhs.gridDimX )
18615           && ( gridDimY == rhs.gridDimY )
18616           && ( gridDimZ == rhs.gridDimZ )
18617           && ( blockDimX == rhs.blockDimX )
18618           && ( blockDimY == rhs.blockDimY )
18619           && ( blockDimZ == rhs.blockDimZ )
18620           && ( sharedMemBytes == rhs.sharedMemBytes )
18621           && ( paramCount == rhs.paramCount )
18622           && ( pParams == rhs.pParams )
18623           && ( extraCount == rhs.extraCount )
18624           && ( pExtras == rhs.pExtras );
18625 #endif
18626     }
18627 
operator !=VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX18628     bool operator!=( CuLaunchInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
18629     {
18630       return !operator==( rhs );
18631     }
18632 #endif
18633 
18634     public:
18635     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCuLaunchInfoNVX;
18636     const void * pNext = {};
18637     VULKAN_HPP_NAMESPACE::CuFunctionNVX function = {};
18638     uint32_t gridDimX = {};
18639     uint32_t gridDimY = {};
18640     uint32_t gridDimZ = {};
18641     uint32_t blockDimX = {};
18642     uint32_t blockDimY = {};
18643     uint32_t blockDimZ = {};
18644     uint32_t sharedMemBytes = {};
18645     size_t paramCount = {};
18646     const void * const * pParams = {};
18647     size_t extraCount = {};
18648     const void * const * pExtras = {};
18649 
18650   };
18651 
18652   template <>
18653   struct CppType<StructureType, StructureType::eCuLaunchInfoNVX>
18654   {
18655     using Type = CuLaunchInfoNVX;
18656   };
18657 
18658   struct CuModuleCreateInfoNVX
18659   {
18660     using NativeType = VkCuModuleCreateInfoNVX;
18661 
18662     static const bool allowDuplicate = false;
18663     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCuModuleCreateInfoNVX;
18664 
18665 
18666 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CuModuleCreateInfoNVXVULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18667 VULKAN_HPP_CONSTEXPR CuModuleCreateInfoNVX(size_t dataSize_ = {}, const void * pData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
18668     : pNext( pNext_ ), dataSize( dataSize_ ), pData( pData_ )
18669     {}
18670 
18671     VULKAN_HPP_CONSTEXPR CuModuleCreateInfoNVX( CuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18672 
CuModuleCreateInfoNVXVULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18673     CuModuleCreateInfoNVX( VkCuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
18674       : CuModuleCreateInfoNVX( *reinterpret_cast<CuModuleCreateInfoNVX const *>( &rhs ) )
18675     {}
18676 
18677 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
18678     template <typename T>
CuModuleCreateInfoNVXVULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18679     CuModuleCreateInfoNVX( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_, const void * pNext_ = nullptr )
18680     : pNext( pNext_ ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
18681     {}
18682 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18683 
18684 
18685     CuModuleCreateInfoNVX & operator=( CuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18686 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
18687 
operator =VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18688     CuModuleCreateInfoNVX & operator=( VkCuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
18689     {
18690       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const *>( &rhs );
18691       return *this;
18692     }
18693 
18694 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18695     VULKAN_HPP_CONSTEXPR_14 CuModuleCreateInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
18696     {
18697       pNext = pNext_;
18698       return *this;
18699     }
18700 
setDataSizeVULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18701     VULKAN_HPP_CONSTEXPR_14 CuModuleCreateInfoNVX & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
18702     {
18703       dataSize = dataSize_;
18704       return *this;
18705     }
18706 
setPDataVULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18707     VULKAN_HPP_CONSTEXPR_14 CuModuleCreateInfoNVX & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
18708     {
18709       pData = pData_;
18710       return *this;
18711     }
18712 
18713 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
18714     template <typename T>
setDataVULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18715     CuModuleCreateInfoNVX & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
18716     {
18717       dataSize = data_.size() * sizeof(T);
18718       pData = data_.data();
18719       return *this;
18720     }
18721 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18722 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
18723 
18724 
operator VkCuModuleCreateInfoNVX const&VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18725     operator VkCuModuleCreateInfoNVX const &() const VULKAN_HPP_NOEXCEPT
18726     {
18727       return *reinterpret_cast<const VkCuModuleCreateInfoNVX*>( this );
18728     }
18729 
operator VkCuModuleCreateInfoNVX&VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18730     operator VkCuModuleCreateInfoNVX &() VULKAN_HPP_NOEXCEPT
18731     {
18732       return *reinterpret_cast<VkCuModuleCreateInfoNVX*>( this );
18733     }
18734 
18735 #if defined( VULKAN_HPP_USE_REFLECT )
18736 #if 14 <= VULKAN_HPP_CPP_VERSION
18737     auto
18738 #else
18739     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, size_t const &, const void * const &>
18740 #endif
reflectVULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18741       reflect() const VULKAN_HPP_NOEXCEPT
18742     {
18743       return std::tie( sType, pNext, dataSize, pData );
18744     }
18745 #endif
18746 
18747 
18748 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18749 auto operator<=>( CuModuleCreateInfoNVX const & ) const = default;
18750 #else
operator ==VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18751     bool operator==( CuModuleCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
18752     {
18753 #if defined( VULKAN_HPP_USE_REFLECT )
18754       return this->reflect() == rhs.reflect();
18755 #else
18756       return ( sType == rhs.sType )
18757           && ( pNext == rhs.pNext )
18758           && ( dataSize == rhs.dataSize )
18759           && ( pData == rhs.pData );
18760 #endif
18761     }
18762 
operator !=VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX18763     bool operator!=( CuModuleCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
18764     {
18765       return !operator==( rhs );
18766     }
18767 #endif
18768 
18769     public:
18770     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCuModuleCreateInfoNVX;
18771     const void * pNext = {};
18772     size_t dataSize = {};
18773     const void * pData = {};
18774 
18775   };
18776 
18777   template <>
18778   struct CppType<StructureType, StructureType::eCuModuleCreateInfoNVX>
18779   {
18780     using Type = CuModuleCreateInfoNVX;
18781   };
18782 
18783 #if defined( VK_USE_PLATFORM_WIN32_KHR )
18784   struct D3D12FenceSubmitInfoKHR
18785   {
18786     using NativeType = VkD3D12FenceSubmitInfoKHR;
18787 
18788     static const bool allowDuplicate = false;
18789     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR;
18790 
18791 
18792 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18793 VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR(uint32_t waitSemaphoreValuesCount_ = {}, const uint64_t * pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValuesCount_ = {}, const uint64_t * pSignalSemaphoreValues_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
18794     : pNext( pNext_ ), waitSemaphoreValuesCount( waitSemaphoreValuesCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValuesCount( signalSemaphoreValuesCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ )
18795     {}
18796 
18797     VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18798 
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18799     D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
18800       : D3D12FenceSubmitInfoKHR( *reinterpret_cast<D3D12FenceSubmitInfoKHR const *>( &rhs ) )
18801     {}
18802 
18803 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18804     D3D12FenceSubmitInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {}, const void * pNext_ = nullptr )
18805     : pNext( pNext_ ), waitSemaphoreValuesCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValuesCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() )
18806     {}
18807 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18808 
18809 
18810     D3D12FenceSubmitInfoKHR & operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18811 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
18812 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18813     D3D12FenceSubmitInfoKHR & operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
18814     {
18815       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const *>( &rhs );
18816       return *this;
18817     }
18818 
18819 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18820     VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
18821     {
18822       pNext = pNext_;
18823       return *this;
18824     }
18825 
setWaitSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18826     VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
18827     {
18828       waitSemaphoreValuesCount = waitSemaphoreValuesCount_;
18829       return *this;
18830     }
18831 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18832     VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t * pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
18833     {
18834       pWaitSemaphoreValues = pWaitSemaphoreValues_;
18835       return *this;
18836     }
18837 
18838 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18839     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
18840     {
18841       waitSemaphoreValuesCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
18842       pWaitSemaphoreValues = waitSemaphoreValues_.data();
18843       return *this;
18844     }
18845 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18846 
setSignalSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18847     VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
18848     {
18849       signalSemaphoreValuesCount = signalSemaphoreValuesCount_;
18850       return *this;
18851     }
18852 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18853     VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t * pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
18854     {
18855       pSignalSemaphoreValues = pSignalSemaphoreValues_;
18856       return *this;
18857     }
18858 
18859 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18860     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
18861     {
18862       signalSemaphoreValuesCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
18863       pSignalSemaphoreValues = signalSemaphoreValues_.data();
18864       return *this;
18865     }
18866 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
18867 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
18868 
18869 
operator VkD3D12FenceSubmitInfoKHR const&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18870     operator VkD3D12FenceSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
18871     {
18872       return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>( this );
18873     }
18874 
operator VkD3D12FenceSubmitInfoKHR&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18875     operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
18876     {
18877       return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>( this );
18878     }
18879 
18880 #if defined( VULKAN_HPP_USE_REFLECT )
18881 #if 14 <= VULKAN_HPP_CPP_VERSION
18882     auto
18883 #else
18884     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint64_t * const &, uint32_t const &, const uint64_t * const &>
18885 #endif
reflectVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18886       reflect() const VULKAN_HPP_NOEXCEPT
18887     {
18888       return std::tie( sType, pNext, waitSemaphoreValuesCount, pWaitSemaphoreValues, signalSemaphoreValuesCount, pSignalSemaphoreValues );
18889     }
18890 #endif
18891 
18892 
18893 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18894 auto operator<=>( D3D12FenceSubmitInfoKHR const & ) const = default;
18895 #else
operator ==VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18896     bool operator==( D3D12FenceSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
18897     {
18898 #if defined( VULKAN_HPP_USE_REFLECT )
18899       return this->reflect() == rhs.reflect();
18900 #else
18901       return ( sType == rhs.sType )
18902           && ( pNext == rhs.pNext )
18903           && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount )
18904           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
18905           && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount )
18906           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
18907 #endif
18908     }
18909 
operator !=VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR18910     bool operator!=( D3D12FenceSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
18911     {
18912       return !operator==( rhs );
18913     }
18914 #endif
18915 
18916     public:
18917     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR;
18918     const void * pNext = {};
18919     uint32_t waitSemaphoreValuesCount = {};
18920     const uint64_t * pWaitSemaphoreValues = {};
18921     uint32_t signalSemaphoreValuesCount = {};
18922     const uint64_t * pSignalSemaphoreValues = {};
18923 
18924   };
18925 
18926   template <>
18927   struct CppType<StructureType, StructureType::eD3D12FenceSubmitInfoKHR>
18928   {
18929     using Type = D3D12FenceSubmitInfoKHR;
18930   };
18931 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
18932 
18933   struct DebugMarkerMarkerInfoEXT
18934   {
18935     using NativeType = VkDebugMarkerMarkerInfoEXT;
18936 
18937     static const bool allowDuplicate = false;
18938     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT;
18939 
18940 
18941 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT18942 VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT(const char * pMarkerName_ = {}, std::array<float,4> const & color_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
18943     : pNext( pNext_ ), pMarkerName( pMarkerName_ ), color( color_ )
18944     {}
18945 
18946     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18947 
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT18948     DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18949       : DebugMarkerMarkerInfoEXT( *reinterpret_cast<DebugMarkerMarkerInfoEXT const *>( &rhs ) )
18950     {}
18951 
18952 
18953     DebugMarkerMarkerInfoEXT & operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18954 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
18955 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT18956     DebugMarkerMarkerInfoEXT & operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18957     {
18958       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const *>( &rhs );
18959       return *this;
18960     }
18961 
18962 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT18963     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
18964     {
18965       pNext = pNext_;
18966       return *this;
18967     }
18968 
setPMarkerNameVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT18969     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & setPMarkerName( const char * pMarkerName_ ) VULKAN_HPP_NOEXCEPT
18970     {
18971       pMarkerName = pMarkerName_;
18972       return *this;
18973     }
18974 
setColorVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT18975     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
18976     {
18977       color = color_;
18978       return *this;
18979     }
18980 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
18981 
18982 
operator VkDebugMarkerMarkerInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT18983     operator VkDebugMarkerMarkerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
18984     {
18985       return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( this );
18986     }
18987 
operator VkDebugMarkerMarkerInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT18988     operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT
18989     {
18990       return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>( this );
18991     }
18992 
18993 #if defined( VULKAN_HPP_USE_REFLECT )
18994 #if 14 <= VULKAN_HPP_CPP_VERSION
18995     auto
18996 #else
18997     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const char * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> const &>
18998 #endif
reflectVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT18999       reflect() const VULKAN_HPP_NOEXCEPT
19000     {
19001       return std::tie( sType, pNext, pMarkerName, color );
19002     }
19003 #endif
19004 
19005 
19006 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT19007     std::partial_ordering operator<=>( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19008     {
19009       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
19010       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
19011      if ( pMarkerName != rhs.pMarkerName )
19012         if ( auto cmp = strcmp( pMarkerName, rhs.pMarkerName ); cmp != 0 )
19013           return ( cmp < 0 ) ? std::partial_ordering::less : std::partial_ordering::greater;
19014       if ( auto cmp = color <=> rhs.color; cmp != 0 ) return cmp;
19015 
19016       return std::partial_ordering::equivalent;
19017     }
19018 #endif
19019 
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT19020     bool operator==( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19021     {
19022       return ( sType == rhs.sType )
19023           && ( pNext == rhs.pNext )
19024           && ( ( pMarkerName == rhs.pMarkerName ) || ( strcmp( pMarkerName, rhs.pMarkerName ) == 0 ) )
19025           && ( color == rhs.color );
19026     }
19027 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT19028     bool operator!=( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19029     {
19030       return !operator==( rhs );
19031     }
19032 
19033     public:
19034     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT;
19035     const void * pNext = {};
19036     const char * pMarkerName = {};
19037     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
19038 
19039   };
19040 
19041   template <>
19042   struct CppType<StructureType, StructureType::eDebugMarkerMarkerInfoEXT>
19043   {
19044     using Type = DebugMarkerMarkerInfoEXT;
19045   };
19046 
19047   struct DebugMarkerObjectNameInfoEXT
19048   {
19049     using NativeType = VkDebugMarkerObjectNameInfoEXT;
19050 
19051     static const bool allowDuplicate = false;
19052     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT;
19053 
19054 
19055 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19056 VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, const char * pObjectName_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
19057     : pNext( pNext_ ), objectType( objectType_ ), object( object_ ), pObjectName( pObjectName_ )
19058     {}
19059 
19060     VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19061 
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19062     DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19063       : DebugMarkerObjectNameInfoEXT( *reinterpret_cast<DebugMarkerObjectNameInfoEXT const *>( &rhs ) )
19064     {}
19065 
19066 
19067     DebugMarkerObjectNameInfoEXT & operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19068 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
19069 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19070     DebugMarkerObjectNameInfoEXT & operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19071     {
19072       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const *>( &rhs );
19073       return *this;
19074     }
19075 
19076 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19077     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
19078     {
19079       pNext = pNext_;
19080       return *this;
19081     }
19082 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19083     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
19084     {
19085       objectType = objectType_;
19086       return *this;
19087     }
19088 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19089     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
19090     {
19091       object = object_;
19092       return *this;
19093     }
19094 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19095     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setPObjectName( const char * pObjectName_ ) VULKAN_HPP_NOEXCEPT
19096     {
19097       pObjectName = pObjectName_;
19098       return *this;
19099     }
19100 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
19101 
19102 
operator VkDebugMarkerObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19103     operator VkDebugMarkerObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
19104     {
19105       return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( this );
19106     }
19107 
operator VkDebugMarkerObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19108     operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
19109     {
19110       return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>( this );
19111     }
19112 
19113 #if defined( VULKAN_HPP_USE_REFLECT )
19114 #if 14 <= VULKAN_HPP_CPP_VERSION
19115     auto
19116 #else
19117     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT const &, uint64_t const &, const char * const &>
19118 #endif
reflectVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19119       reflect() const VULKAN_HPP_NOEXCEPT
19120     {
19121       return std::tie( sType, pNext, objectType, object, pObjectName );
19122     }
19123 #endif
19124 
19125 
19126 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19127     std::strong_ordering operator<=>( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19128     {
19129       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
19130       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
19131       if ( auto cmp = objectType <=> rhs.objectType; cmp != 0 ) return cmp;
19132       if ( auto cmp = object <=> rhs.object; cmp != 0 ) return cmp;
19133      if ( pObjectName != rhs.pObjectName )
19134         if ( auto cmp = strcmp( pObjectName, rhs.pObjectName ); cmp != 0 )
19135           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
19136 
19137       return std::strong_ordering::equivalent;
19138     }
19139 #endif
19140 
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19141     bool operator==( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19142     {
19143       return ( sType == rhs.sType )
19144           && ( pNext == rhs.pNext )
19145           && ( objectType == rhs.objectType )
19146           && ( object == rhs.object )
19147           && ( ( pObjectName == rhs.pObjectName ) || ( strcmp( pObjectName, rhs.pObjectName ) == 0 ) );
19148     }
19149 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT19150     bool operator!=( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19151     {
19152       return !operator==( rhs );
19153     }
19154 
19155     public:
19156     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT;
19157     const void * pNext = {};
19158     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
19159     uint64_t object = {};
19160     const char * pObjectName = {};
19161 
19162   };
19163 
19164   template <>
19165   struct CppType<StructureType, StructureType::eDebugMarkerObjectNameInfoEXT>
19166   {
19167     using Type = DebugMarkerObjectNameInfoEXT;
19168   };
19169 
19170   struct DebugMarkerObjectTagInfoEXT
19171   {
19172     using NativeType = VkDebugMarkerObjectTagInfoEXT;
19173 
19174     static const bool allowDuplicate = false;
19175     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT;
19176 
19177 
19178 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19179 VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, uint64_t tagName_ = {}, size_t tagSize_ = {}, const void * pTag_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
19180     : pNext( pNext_ ), objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
19181     {}
19182 
19183     VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19184 
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19185     DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19186       : DebugMarkerObjectTagInfoEXT( *reinterpret_cast<DebugMarkerObjectTagInfoEXT const *>( &rhs ) )
19187     {}
19188 
19189 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
19190     template <typename T>
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19191     DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, uint64_t object_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_, const void * pNext_ = nullptr )
19192     : pNext( pNext_ ), objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
19193     {}
19194 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19195 
19196 
19197     DebugMarkerObjectTagInfoEXT & operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19198 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
19199 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19200     DebugMarkerObjectTagInfoEXT & operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19201     {
19202       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const *>( &rhs );
19203       return *this;
19204     }
19205 
19206 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19207     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
19208     {
19209       pNext = pNext_;
19210       return *this;
19211     }
19212 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19213     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
19214     {
19215       objectType = objectType_;
19216       return *this;
19217     }
19218 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19219     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
19220     {
19221       object = object_;
19222       return *this;
19223     }
19224 
setTagNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19225     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
19226     {
19227       tagName = tagName_;
19228       return *this;
19229     }
19230 
setTagSizeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19231     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
19232     {
19233       tagSize = tagSize_;
19234       return *this;
19235     }
19236 
setPTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19237     VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT
19238     {
19239       pTag = pTag_;
19240       return *this;
19241     }
19242 
19243 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
19244     template <typename T>
setTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19245     DebugMarkerObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
19246     {
19247       tagSize = tag_.size() * sizeof(T);
19248       pTag = tag_.data();
19249       return *this;
19250     }
19251 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19252 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
19253 
19254 
operator VkDebugMarkerObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19255     operator VkDebugMarkerObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
19256     {
19257       return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( this );
19258     }
19259 
operator VkDebugMarkerObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19260     operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
19261     {
19262       return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>( this );
19263     }
19264 
19265 #if defined( VULKAN_HPP_USE_REFLECT )
19266 #if 14 <= VULKAN_HPP_CPP_VERSION
19267     auto
19268 #else
19269     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT const &, uint64_t const &, uint64_t const &, size_t const &, const void * const &>
19270 #endif
reflectVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19271       reflect() const VULKAN_HPP_NOEXCEPT
19272     {
19273       return std::tie( sType, pNext, objectType, object, tagName, tagSize, pTag );
19274     }
19275 #endif
19276 
19277 
19278 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19279 auto operator<=>( DebugMarkerObjectTagInfoEXT const & ) const = default;
19280 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19281     bool operator==( DebugMarkerObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19282     {
19283 #if defined( VULKAN_HPP_USE_REFLECT )
19284       return this->reflect() == rhs.reflect();
19285 #else
19286       return ( sType == rhs.sType )
19287           && ( pNext == rhs.pNext )
19288           && ( objectType == rhs.objectType )
19289           && ( object == rhs.object )
19290           && ( tagName == rhs.tagName )
19291           && ( tagSize == rhs.tagSize )
19292           && ( pTag == rhs.pTag );
19293 #endif
19294     }
19295 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT19296     bool operator!=( DebugMarkerObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19297     {
19298       return !operator==( rhs );
19299     }
19300 #endif
19301 
19302     public:
19303     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT;
19304     const void * pNext = {};
19305     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
19306     uint64_t object = {};
19307     uint64_t tagName = {};
19308     size_t tagSize = {};
19309     const void * pTag = {};
19310 
19311   };
19312 
19313   template <>
19314   struct CppType<StructureType, StructureType::eDebugMarkerObjectTagInfoEXT>
19315   {
19316     using Type = DebugMarkerObjectTagInfoEXT;
19317   };
19318 
19319   struct DebugReportCallbackCreateInfoEXT
19320   {
19321     using NativeType = VkDebugReportCallbackCreateInfoEXT;
19322 
19323     static const bool allowDuplicate = false;
19324     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT;
19325 
19326 
19327 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19328 VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {}, PFN_vkDebugReportCallbackEXT pfnCallback_ = {}, void * pUserData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
19329     : pNext( pNext_ ), flags( flags_ ), pfnCallback( pfnCallback_ ), pUserData( pUserData_ )
19330     {}
19331 
19332     VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19333 
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19334     DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19335       : DebugReportCallbackCreateInfoEXT( *reinterpret_cast<DebugReportCallbackCreateInfoEXT const *>( &rhs ) )
19336     {}
19337 
19338 
19339     DebugReportCallbackCreateInfoEXT & operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19340 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
19341 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19342     DebugReportCallbackCreateInfoEXT & operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19343     {
19344       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const *>( &rhs );
19345       return *this;
19346     }
19347 
19348 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19349     VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
19350     {
19351       pNext = pNext_;
19352       return *this;
19353     }
19354 
setFlagsVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19355     VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
19356     {
19357       flags = flags_;
19358       return *this;
19359     }
19360 
setPfnCallbackVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19361     VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT
19362     {
19363       pfnCallback = pfnCallback_;
19364       return *this;
19365     }
19366 
setPUserDataVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19367     VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
19368     {
19369       pUserData = pUserData_;
19370       return *this;
19371     }
19372 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
19373 
19374 
operator VkDebugReportCallbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19375     operator VkDebugReportCallbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
19376     {
19377       return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( this );
19378     }
19379 
operator VkDebugReportCallbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19380     operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
19381     {
19382       return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>( this );
19383     }
19384 
19385 #if defined( VULKAN_HPP_USE_REFLECT )
19386 #if 14 <= VULKAN_HPP_CPP_VERSION
19387     auto
19388 #else
19389     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT const &, PFN_vkDebugReportCallbackEXT const &, void * const &>
19390 #endif
reflectVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19391       reflect() const VULKAN_HPP_NOEXCEPT
19392     {
19393       return std::tie( sType, pNext, flags, pfnCallback, pUserData );
19394     }
19395 #endif
19396 
19397 
19398 
19399 
19400 
operator ==VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19401     bool operator==( DebugReportCallbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19402     {
19403 #if defined( VULKAN_HPP_USE_REFLECT )
19404       return this->reflect() == rhs.reflect();
19405 #else
19406       return ( sType == rhs.sType )
19407           && ( pNext == rhs.pNext )
19408           && ( flags == rhs.flags )
19409           && ( pfnCallback == rhs.pfnCallback )
19410           && ( pUserData == rhs.pUserData );
19411 #endif
19412     }
19413 
operator !=VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT19414     bool operator!=( DebugReportCallbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19415     {
19416       return !operator==( rhs );
19417     }
19418 
19419     public:
19420     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT;
19421     const void * pNext = {};
19422     VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {};
19423     PFN_vkDebugReportCallbackEXT pfnCallback = {};
19424     void * pUserData = {};
19425 
19426   };
19427 
19428   template <>
19429   struct CppType<StructureType, StructureType::eDebugReportCallbackCreateInfoEXT>
19430   {
19431     using Type = DebugReportCallbackCreateInfoEXT;
19432   };
19433 
19434   struct DebugUtilsLabelEXT
19435   {
19436     using NativeType = VkDebugUtilsLabelEXT;
19437 
19438     static const bool allowDuplicate = false;
19439     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT;
19440 
19441 
19442 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19443 VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT(const char * pLabelName_ = {}, std::array<float,4> const & color_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
19444     : pNext( pNext_ ), pLabelName( pLabelName_ ), color( color_ )
19445     {}
19446 
19447     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19448 
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19449     DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19450       : DebugUtilsLabelEXT( *reinterpret_cast<DebugUtilsLabelEXT const *>( &rhs ) )
19451     {}
19452 
19453 
19454     DebugUtilsLabelEXT & operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19455 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
19456 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19457     DebugUtilsLabelEXT & operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19458     {
19459       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const *>( &rhs );
19460       return *this;
19461     }
19462 
19463 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19464     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
19465     {
19466       pNext = pNext_;
19467       return *this;
19468     }
19469 
setPLabelNameVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19470     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & setPLabelName( const char * pLabelName_ ) VULKAN_HPP_NOEXCEPT
19471     {
19472       pLabelName = pLabelName_;
19473       return *this;
19474     }
19475 
setColorVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19476     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
19477     {
19478       color = color_;
19479       return *this;
19480     }
19481 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
19482 
19483 
operator VkDebugUtilsLabelEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19484     operator VkDebugUtilsLabelEXT const &() const VULKAN_HPP_NOEXCEPT
19485     {
19486       return *reinterpret_cast<const VkDebugUtilsLabelEXT*>( this );
19487     }
19488 
operator VkDebugUtilsLabelEXT&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19489     operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT
19490     {
19491       return *reinterpret_cast<VkDebugUtilsLabelEXT*>( this );
19492     }
19493 
19494 #if defined( VULKAN_HPP_USE_REFLECT )
19495 #if 14 <= VULKAN_HPP_CPP_VERSION
19496     auto
19497 #else
19498     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const char * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> const &>
19499 #endif
reflectVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19500       reflect() const VULKAN_HPP_NOEXCEPT
19501     {
19502       return std::tie( sType, pNext, pLabelName, color );
19503     }
19504 #endif
19505 
19506 
19507 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19508     std::partial_ordering operator<=>( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19509     {
19510       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
19511       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
19512      if ( pLabelName != rhs.pLabelName )
19513         if ( auto cmp = strcmp( pLabelName, rhs.pLabelName ); cmp != 0 )
19514           return ( cmp < 0 ) ? std::partial_ordering::less : std::partial_ordering::greater;
19515       if ( auto cmp = color <=> rhs.color; cmp != 0 ) return cmp;
19516 
19517       return std::partial_ordering::equivalent;
19518     }
19519 #endif
19520 
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19521     bool operator==( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19522     {
19523       return ( sType == rhs.sType )
19524           && ( pNext == rhs.pNext )
19525           && ( ( pLabelName == rhs.pLabelName ) || ( strcmp( pLabelName, rhs.pLabelName ) == 0 ) )
19526           && ( color == rhs.color );
19527     }
19528 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT19529     bool operator!=( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19530     {
19531       return !operator==( rhs );
19532     }
19533 
19534     public:
19535     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT;
19536     const void * pNext = {};
19537     const char * pLabelName = {};
19538     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
19539 
19540   };
19541 
19542   template <>
19543   struct CppType<StructureType, StructureType::eDebugUtilsLabelEXT>
19544   {
19545     using Type = DebugUtilsLabelEXT;
19546   };
19547 
19548   struct DebugUtilsObjectNameInfoEXT
19549   {
19550     using NativeType = VkDebugUtilsObjectNameInfoEXT;
19551 
19552     static const bool allowDuplicate = false;
19553     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT;
19554 
19555 
19556 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19557 VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, const char * pObjectName_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
19558     : pNext( pNext_ ), objectType( objectType_ ), objectHandle( objectHandle_ ), pObjectName( pObjectName_ )
19559     {}
19560 
19561     VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19562 
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19563     DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19564       : DebugUtilsObjectNameInfoEXT( *reinterpret_cast<DebugUtilsObjectNameInfoEXT const *>( &rhs ) )
19565     {}
19566 
19567 
19568     DebugUtilsObjectNameInfoEXT & operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19569 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
19570 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19571     DebugUtilsObjectNameInfoEXT & operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19572     {
19573       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const *>( &rhs );
19574       return *this;
19575     }
19576 
19577 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19578     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
19579     {
19580       pNext = pNext_;
19581       return *this;
19582     }
19583 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19584     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
19585     {
19586       objectType = objectType_;
19587       return *this;
19588     }
19589 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19590     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
19591     {
19592       objectHandle = objectHandle_;
19593       return *this;
19594     }
19595 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19596     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setPObjectName( const char * pObjectName_ ) VULKAN_HPP_NOEXCEPT
19597     {
19598       pObjectName = pObjectName_;
19599       return *this;
19600     }
19601 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
19602 
19603 
operator VkDebugUtilsObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19604     operator VkDebugUtilsObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
19605     {
19606       return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( this );
19607     }
19608 
operator VkDebugUtilsObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19609     operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
19610     {
19611       return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>( this );
19612     }
19613 
19614 #if defined( VULKAN_HPP_USE_REFLECT )
19615 #if 14 <= VULKAN_HPP_CPP_VERSION
19616     auto
19617 #else
19618     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ObjectType const &, uint64_t const &, const char * const &>
19619 #endif
reflectVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19620       reflect() const VULKAN_HPP_NOEXCEPT
19621     {
19622       return std::tie( sType, pNext, objectType, objectHandle, pObjectName );
19623     }
19624 #endif
19625 
19626 
19627 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19628     std::strong_ordering operator<=>( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19629     {
19630       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
19631       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
19632       if ( auto cmp = objectType <=> rhs.objectType; cmp != 0 ) return cmp;
19633       if ( auto cmp = objectHandle <=> rhs.objectHandle; cmp != 0 ) return cmp;
19634      if ( pObjectName != rhs.pObjectName )
19635         if ( auto cmp = strcmp( pObjectName, rhs.pObjectName ); cmp != 0 )
19636           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
19637 
19638       return std::strong_ordering::equivalent;
19639     }
19640 #endif
19641 
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19642     bool operator==( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19643     {
19644       return ( sType == rhs.sType )
19645           && ( pNext == rhs.pNext )
19646           && ( objectType == rhs.objectType )
19647           && ( objectHandle == rhs.objectHandle )
19648           && ( ( pObjectName == rhs.pObjectName ) || ( strcmp( pObjectName, rhs.pObjectName ) == 0 ) );
19649     }
19650 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT19651     bool operator!=( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19652     {
19653       return !operator==( rhs );
19654     }
19655 
19656     public:
19657     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT;
19658     const void * pNext = {};
19659     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
19660     uint64_t objectHandle = {};
19661     const char * pObjectName = {};
19662 
19663   };
19664 
19665   template <>
19666   struct CppType<StructureType, StructureType::eDebugUtilsObjectNameInfoEXT>
19667   {
19668     using Type = DebugUtilsObjectNameInfoEXT;
19669   };
19670 
19671   struct DebugUtilsMessengerCallbackDataEXT
19672   {
19673     using NativeType = VkDebugUtilsMessengerCallbackDataEXT;
19674 
19675     static const bool allowDuplicate = false;
19676     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
19677 
19678 
19679 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19680 VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = {}, const char * pMessageIdName_ = {}, int32_t messageIdNumber_ = {}, const char * pMessage_ = {}, uint32_t queueLabelCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels_ = {}, uint32_t cmdBufLabelCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels_ = {}, uint32_t objectCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
19681     : pNext( pNext_ ), flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( queueLabelCount_ ), pQueueLabels( pQueueLabels_ ), cmdBufLabelCount( cmdBufLabelCount_ ), pCmdBufLabels( pCmdBufLabels_ ), objectCount( objectCount_ ), pObjects( pObjects_ )
19682     {}
19683 
19684     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19685 
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19686     DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19687       : DebugUtilsMessengerCallbackDataEXT( *reinterpret_cast<DebugUtilsMessengerCallbackDataEXT const *>( &rhs ) )
19688     {}
19689 
19690 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19691     DebugUtilsMessengerCallbackDataEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_, const char * pMessageIdName_, int32_t messageIdNumber_, const char * pMessage_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ = {}, const void * pNext_ = nullptr )
19692     : pNext( pNext_ ), flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( static_cast<uint32_t>( queueLabels_.size() ) ), pQueueLabels( queueLabels_.data() ), cmdBufLabelCount( static_cast<uint32_t>( cmdBufLabels_.size() ) ), pCmdBufLabels( cmdBufLabels_.data() ), objectCount( static_cast<uint32_t>( objects_.size() ) ), pObjects( objects_.data() )
19693     {}
19694 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19695 
19696 
19697     DebugUtilsMessengerCallbackDataEXT & operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19698 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
19699 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19700     DebugUtilsMessengerCallbackDataEXT & operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19701     {
19702       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const *>( &rhs );
19703       return *this;
19704     }
19705 
19706 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19707     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
19708     {
19709       pNext = pNext_;
19710       return *this;
19711     }
19712 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19713     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
19714     {
19715       flags = flags_;
19716       return *this;
19717     }
19718 
setPMessageIdNameVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19719     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char * pMessageIdName_ ) VULKAN_HPP_NOEXCEPT
19720     {
19721       pMessageIdName = pMessageIdName_;
19722       return *this;
19723     }
19724 
setMessageIdNumberVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19725     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT
19726     {
19727       messageIdNumber = messageIdNumber_;
19728       return *this;
19729     }
19730 
setPMessageVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19731     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPMessage( const char * pMessage_ ) VULKAN_HPP_NOEXCEPT
19732     {
19733       pMessage = pMessage_;
19734       return *this;
19735     }
19736 
setQueueLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19737     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT
19738     {
19739       queueLabelCount = queueLabelCount_;
19740       return *this;
19741     }
19742 
setPQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19743     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels_ ) VULKAN_HPP_NOEXCEPT
19744     {
19745       pQueueLabels = pQueueLabels_;
19746       return *this;
19747     }
19748 
19749 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19750     DebugUtilsMessengerCallbackDataEXT & setQueueLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_ ) VULKAN_HPP_NOEXCEPT
19751     {
19752       queueLabelCount = static_cast<uint32_t>( queueLabels_.size() );
19753       pQueueLabels = queueLabels_.data();
19754       return *this;
19755     }
19756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19757 
setCmdBufLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19758     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT
19759     {
19760       cmdBufLabelCount = cmdBufLabelCount_;
19761       return *this;
19762     }
19763 
setPCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19764     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
19765     {
19766       pCmdBufLabels = pCmdBufLabels_;
19767       return *this;
19768     }
19769 
19770 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19771     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
19772     {
19773       cmdBufLabelCount = static_cast<uint32_t>( cmdBufLabels_.size() );
19774       pCmdBufLabels = cmdBufLabels_.data();
19775       return *this;
19776     }
19777 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19778 
setObjectCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19779     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT
19780     {
19781       objectCount = objectCount_;
19782       return *this;
19783     }
19784 
setPObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19785     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ ) VULKAN_HPP_NOEXCEPT
19786     {
19787       pObjects = pObjects_;
19788       return *this;
19789     }
19790 
19791 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19792     DebugUtilsMessengerCallbackDataEXT & setObjects( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ ) VULKAN_HPP_NOEXCEPT
19793     {
19794       objectCount = static_cast<uint32_t>( objects_.size() );
19795       pObjects = objects_.data();
19796       return *this;
19797     }
19798 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
19799 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
19800 
19801 
operator VkDebugUtilsMessengerCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19802     operator VkDebugUtilsMessengerCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
19803     {
19804       return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( this );
19805     }
19806 
operator VkDebugUtilsMessengerCallbackDataEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19807     operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
19808     {
19809       return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>( this );
19810     }
19811 
19812 #if defined( VULKAN_HPP_USE_REFLECT )
19813 #if 14 <= VULKAN_HPP_CPP_VERSION
19814     auto
19815 #else
19816     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT const &, const char * const &, int32_t const &, const char * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * const &>
19817 #endif
reflectVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19818       reflect() const VULKAN_HPP_NOEXCEPT
19819     {
19820       return std::tie( sType, pNext, flags, pMessageIdName, messageIdNumber, pMessage, queueLabelCount, pQueueLabels, cmdBufLabelCount, pCmdBufLabels, objectCount, pObjects );
19821     }
19822 #endif
19823 
19824 
19825 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19826     std::strong_ordering operator<=>( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19827     {
19828       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
19829       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
19830       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
19831      if ( pMessageIdName != rhs.pMessageIdName )
19832         if ( auto cmp = strcmp( pMessageIdName, rhs.pMessageIdName ); cmp != 0 )
19833           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
19834       if ( auto cmp = messageIdNumber <=> rhs.messageIdNumber; cmp != 0 ) return cmp;
19835      if ( pMessage != rhs.pMessage )
19836         if ( auto cmp = strcmp( pMessage, rhs.pMessage ); cmp != 0 )
19837           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
19838       if ( auto cmp = queueLabelCount <=> rhs.queueLabelCount; cmp != 0 ) return cmp;
19839       if ( auto cmp = pQueueLabels <=> rhs.pQueueLabels; cmp != 0 ) return cmp;
19840       if ( auto cmp = cmdBufLabelCount <=> rhs.cmdBufLabelCount; cmp != 0 ) return cmp;
19841       if ( auto cmp = pCmdBufLabels <=> rhs.pCmdBufLabels; cmp != 0 ) return cmp;
19842       if ( auto cmp = objectCount <=> rhs.objectCount; cmp != 0 ) return cmp;
19843       if ( auto cmp = pObjects <=> rhs.pObjects; cmp != 0 ) return cmp;
19844 
19845       return std::strong_ordering::equivalent;
19846     }
19847 #endif
19848 
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19849     bool operator==( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19850     {
19851       return ( sType == rhs.sType )
19852           && ( pNext == rhs.pNext )
19853           && ( flags == rhs.flags )
19854           && ( ( pMessageIdName == rhs.pMessageIdName ) || ( strcmp( pMessageIdName, rhs.pMessageIdName ) == 0 ) )
19855           && ( messageIdNumber == rhs.messageIdNumber )
19856           && ( ( pMessage == rhs.pMessage ) || ( strcmp( pMessage, rhs.pMessage ) == 0 ) )
19857           && ( queueLabelCount == rhs.queueLabelCount )
19858           && ( pQueueLabels == rhs.pQueueLabels )
19859           && ( cmdBufLabelCount == rhs.cmdBufLabelCount )
19860           && ( pCmdBufLabels == rhs.pCmdBufLabels )
19861           && ( objectCount == rhs.objectCount )
19862           && ( pObjects == rhs.pObjects );
19863     }
19864 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT19865     bool operator!=( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19866     {
19867       return !operator==( rhs );
19868     }
19869 
19870     public:
19871     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
19872     const void * pNext = {};
19873     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {};
19874     const char * pMessageIdName = {};
19875     int32_t messageIdNumber = {};
19876     const char * pMessage = {};
19877     uint32_t queueLabelCount = {};
19878     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels = {};
19879     uint32_t cmdBufLabelCount = {};
19880     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels = {};
19881     uint32_t objectCount = {};
19882     const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects = {};
19883 
19884   };
19885 
19886   template <>
19887   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCallbackDataEXT>
19888   {
19889     using Type = DebugUtilsMessengerCallbackDataEXT;
19890   };
19891 
19892   struct DebugUtilsMessengerCreateInfoEXT
19893   {
19894     using NativeType = VkDebugUtilsMessengerCreateInfoEXT;
19895 
19896     static const bool allowDuplicate = true;
19897     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
19898 
19899 
19900 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19901 VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = {}, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ = {}, PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = {}, void * pUserData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
19902     : pNext( pNext_ ), flags( flags_ ), messageSeverity( messageSeverity_ ), messageType( messageType_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ )
19903     {}
19904 
19905     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19906 
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19907     DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19908       : DebugUtilsMessengerCreateInfoEXT( *reinterpret_cast<DebugUtilsMessengerCreateInfoEXT const *>( &rhs ) )
19909     {}
19910 
19911 
19912     DebugUtilsMessengerCreateInfoEXT & operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19913 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
19914 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19915     DebugUtilsMessengerCreateInfoEXT & operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19916     {
19917       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const *>( &rhs );
19918       return *this;
19919     }
19920 
19921 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19922     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
19923     {
19924       pNext = pNext_;
19925       return *this;
19926     }
19927 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19928     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
19929     {
19930       flags = flags_;
19931       return *this;
19932     }
19933 
setMessageSeverityVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19934     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT
19935     {
19936       messageSeverity = messageSeverity_;
19937       return *this;
19938     }
19939 
setMessageTypeVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19940     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT
19941     {
19942       messageType = messageType_;
19943       return *this;
19944     }
19945 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19946     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
19947     {
19948       pfnUserCallback = pfnUserCallback_;
19949       return *this;
19950     }
19951 
setPUserDataVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19952     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
19953     {
19954       pUserData = pUserData_;
19955       return *this;
19956     }
19957 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
19958 
19959 
operator VkDebugUtilsMessengerCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19960     operator VkDebugUtilsMessengerCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
19961     {
19962       return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( this );
19963     }
19964 
operator VkDebugUtilsMessengerCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19965     operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
19966     {
19967       return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>( this );
19968     }
19969 
19970 #if defined( VULKAN_HPP_USE_REFLECT )
19971 #if 14 <= VULKAN_HPP_CPP_VERSION
19972     auto
19973 #else
19974     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT const &, VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT const &, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT const &, PFN_vkDebugUtilsMessengerCallbackEXT const &, void * const &>
19975 #endif
reflectVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19976       reflect() const VULKAN_HPP_NOEXCEPT
19977     {
19978       return std::tie( sType, pNext, flags, messageSeverity, messageType, pfnUserCallback, pUserData );
19979     }
19980 #endif
19981 
19982 
19983 
19984 
19985 
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT19986     bool operator==( DebugUtilsMessengerCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
19987     {
19988 #if defined( VULKAN_HPP_USE_REFLECT )
19989       return this->reflect() == rhs.reflect();
19990 #else
19991       return ( sType == rhs.sType )
19992           && ( pNext == rhs.pNext )
19993           && ( flags == rhs.flags )
19994           && ( messageSeverity == rhs.messageSeverity )
19995           && ( messageType == rhs.messageType )
19996           && ( pfnUserCallback == rhs.pfnUserCallback )
19997           && ( pUserData == rhs.pUserData );
19998 #endif
19999     }
20000 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT20001     bool operator!=( DebugUtilsMessengerCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
20002     {
20003       return !operator==( rhs );
20004     }
20005 
20006     public:
20007     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
20008     const void * pNext = {};
20009     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {};
20010     VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {};
20011     VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {};
20012     PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {};
20013     void * pUserData = {};
20014 
20015   };
20016 
20017   template <>
20018   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCreateInfoEXT>
20019   {
20020     using Type = DebugUtilsMessengerCreateInfoEXT;
20021   };
20022 
20023   struct DebugUtilsObjectTagInfoEXT
20024   {
20025     using NativeType = VkDebugUtilsObjectTagInfoEXT;
20026 
20027     static const bool allowDuplicate = false;
20028     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT;
20029 
20030 
20031 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20032 VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, uint64_t tagName_ = {}, size_t tagSize_ = {}, const void * pTag_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
20033     : pNext( pNext_ ), objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
20034     {}
20035 
20036     VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20037 
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20038     DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
20039       : DebugUtilsObjectTagInfoEXT( *reinterpret_cast<DebugUtilsObjectTagInfoEXT const *>( &rhs ) )
20040     {}
20041 
20042 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
20043     template <typename T>
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20044     DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_, const void * pNext_ = nullptr )
20045     : pNext( pNext_ ), objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
20046     {}
20047 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20048 
20049 
20050     DebugUtilsObjectTagInfoEXT & operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20051 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
20052 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20053     DebugUtilsObjectTagInfoEXT & operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
20054     {
20055       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const *>( &rhs );
20056       return *this;
20057     }
20058 
20059 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20060     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
20061     {
20062       pNext = pNext_;
20063       return *this;
20064     }
20065 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20066     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
20067     {
20068       objectType = objectType_;
20069       return *this;
20070     }
20071 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20072     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
20073     {
20074       objectHandle = objectHandle_;
20075       return *this;
20076     }
20077 
setTagNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20078     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
20079     {
20080       tagName = tagName_;
20081       return *this;
20082     }
20083 
setTagSizeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20084     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
20085     {
20086       tagSize = tagSize_;
20087       return *this;
20088     }
20089 
setPTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20090     VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT
20091     {
20092       pTag = pTag_;
20093       return *this;
20094     }
20095 
20096 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
20097     template <typename T>
setTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20098     DebugUtilsObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
20099     {
20100       tagSize = tag_.size() * sizeof(T);
20101       pTag = tag_.data();
20102       return *this;
20103     }
20104 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20105 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
20106 
20107 
operator VkDebugUtilsObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20108     operator VkDebugUtilsObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
20109     {
20110       return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( this );
20111     }
20112 
operator VkDebugUtilsObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20113     operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
20114     {
20115       return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>( this );
20116     }
20117 
20118 #if defined( VULKAN_HPP_USE_REFLECT )
20119 #if 14 <= VULKAN_HPP_CPP_VERSION
20120     auto
20121 #else
20122     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ObjectType const &, uint64_t const &, uint64_t const &, size_t const &, const void * const &>
20123 #endif
reflectVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20124       reflect() const VULKAN_HPP_NOEXCEPT
20125     {
20126       return std::tie( sType, pNext, objectType, objectHandle, tagName, tagSize, pTag );
20127     }
20128 #endif
20129 
20130 
20131 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20132 auto operator<=>( DebugUtilsObjectTagInfoEXT const & ) const = default;
20133 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20134     bool operator==( DebugUtilsObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
20135     {
20136 #if defined( VULKAN_HPP_USE_REFLECT )
20137       return this->reflect() == rhs.reflect();
20138 #else
20139       return ( sType == rhs.sType )
20140           && ( pNext == rhs.pNext )
20141           && ( objectType == rhs.objectType )
20142           && ( objectHandle == rhs.objectHandle )
20143           && ( tagName == rhs.tagName )
20144           && ( tagSize == rhs.tagSize )
20145           && ( pTag == rhs.pTag );
20146 #endif
20147     }
20148 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT20149     bool operator!=( DebugUtilsObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
20150     {
20151       return !operator==( rhs );
20152     }
20153 #endif
20154 
20155     public:
20156     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT;
20157     const void * pNext = {};
20158     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
20159     uint64_t objectHandle = {};
20160     uint64_t tagName = {};
20161     size_t tagSize = {};
20162     const void * pTag = {};
20163 
20164   };
20165 
20166   template <>
20167   struct CppType<StructureType, StructureType::eDebugUtilsObjectTagInfoEXT>
20168   {
20169     using Type = DebugUtilsObjectTagInfoEXT;
20170   };
20171 
20172   struct DecompressMemoryRegionNV
20173   {
20174     using NativeType = VkDecompressMemoryRegionNV;
20175 
20176 
20177 
20178 
20179 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DecompressMemoryRegionNVVULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20180 VULKAN_HPP_CONSTEXPR DecompressMemoryRegionNV(VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize compressedSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize decompressedSize_ = {}, VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethod_ = {}) VULKAN_HPP_NOEXCEPT
20181     : srcAddress( srcAddress_ ), dstAddress( dstAddress_ ), compressedSize( compressedSize_ ), decompressedSize( decompressedSize_ ), decompressionMethod( decompressionMethod_ )
20182     {}
20183 
20184     VULKAN_HPP_CONSTEXPR DecompressMemoryRegionNV( DecompressMemoryRegionNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20185 
DecompressMemoryRegionNVVULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20186     DecompressMemoryRegionNV( VkDecompressMemoryRegionNV const & rhs ) VULKAN_HPP_NOEXCEPT
20187       : DecompressMemoryRegionNV( *reinterpret_cast<DecompressMemoryRegionNV const *>( &rhs ) )
20188     {}
20189 
20190 
20191     DecompressMemoryRegionNV & operator=( DecompressMemoryRegionNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20192 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
20193 
operator =VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20194     DecompressMemoryRegionNV & operator=( VkDecompressMemoryRegionNV const & rhs ) VULKAN_HPP_NOEXCEPT
20195     {
20196       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV const *>( &rhs );
20197       return *this;
20198     }
20199 
20200 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSrcAddressVULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20201     VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV & setSrcAddress( VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ ) VULKAN_HPP_NOEXCEPT
20202     {
20203       srcAddress = srcAddress_;
20204       return *this;
20205     }
20206 
setDstAddressVULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20207     VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV & setDstAddress( VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress_ ) VULKAN_HPP_NOEXCEPT
20208     {
20209       dstAddress = dstAddress_;
20210       return *this;
20211     }
20212 
setCompressedSizeVULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20213     VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV & setCompressedSize( VULKAN_HPP_NAMESPACE::DeviceSize compressedSize_ ) VULKAN_HPP_NOEXCEPT
20214     {
20215       compressedSize = compressedSize_;
20216       return *this;
20217     }
20218 
setDecompressedSizeVULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20219     VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV & setDecompressedSize( VULKAN_HPP_NAMESPACE::DeviceSize decompressedSize_ ) VULKAN_HPP_NOEXCEPT
20220     {
20221       decompressedSize = decompressedSize_;
20222       return *this;
20223     }
20224 
setDecompressionMethodVULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20225     VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV & setDecompressionMethod( VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethod_ ) VULKAN_HPP_NOEXCEPT
20226     {
20227       decompressionMethod = decompressionMethod_;
20228       return *this;
20229     }
20230 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
20231 
20232 
operator VkDecompressMemoryRegionNV const&VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20233     operator VkDecompressMemoryRegionNV const &() const VULKAN_HPP_NOEXCEPT
20234     {
20235       return *reinterpret_cast<const VkDecompressMemoryRegionNV*>( this );
20236     }
20237 
operator VkDecompressMemoryRegionNV&VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20238     operator VkDecompressMemoryRegionNV &() VULKAN_HPP_NOEXCEPT
20239     {
20240       return *reinterpret_cast<VkDecompressMemoryRegionNV*>( this );
20241     }
20242 
20243 #if defined( VULKAN_HPP_USE_REFLECT )
20244 #if 14 <= VULKAN_HPP_CPP_VERSION
20245     auto
20246 #else
20247     std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV const &>
20248 #endif
reflectVULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20249       reflect() const VULKAN_HPP_NOEXCEPT
20250     {
20251       return std::tie( srcAddress, dstAddress, compressedSize, decompressedSize, decompressionMethod );
20252     }
20253 #endif
20254 
20255 
20256 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20257 auto operator<=>( DecompressMemoryRegionNV const & ) const = default;
20258 #else
operator ==VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20259     bool operator==( DecompressMemoryRegionNV const & rhs ) const VULKAN_HPP_NOEXCEPT
20260     {
20261 #if defined( VULKAN_HPP_USE_REFLECT )
20262       return this->reflect() == rhs.reflect();
20263 #else
20264       return ( srcAddress == rhs.srcAddress )
20265           && ( dstAddress == rhs.dstAddress )
20266           && ( compressedSize == rhs.compressedSize )
20267           && ( decompressedSize == rhs.decompressedSize )
20268           && ( decompressionMethod == rhs.decompressionMethod );
20269 #endif
20270     }
20271 
operator !=VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV20272     bool operator!=( DecompressMemoryRegionNV const & rhs ) const VULKAN_HPP_NOEXCEPT
20273     {
20274       return !operator==( rhs );
20275     }
20276 #endif
20277 
20278     public:
20279     VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress = {};
20280     VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress = {};
20281     VULKAN_HPP_NAMESPACE::DeviceSize compressedSize = {};
20282     VULKAN_HPP_NAMESPACE::DeviceSize decompressedSize = {};
20283     VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethod = {};
20284 
20285   };
20286 
20287   struct DedicatedAllocationBufferCreateInfoNV
20288   {
20289     using NativeType = VkDedicatedAllocationBufferCreateInfoNV;
20290 
20291     static const bool allowDuplicate = false;
20292     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
20293 
20294 
20295 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV20296 VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
20297     : pNext( pNext_ ), dedicatedAllocation( dedicatedAllocation_ )
20298     {}
20299 
20300     VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20301 
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV20302     DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
20303       : DedicatedAllocationBufferCreateInfoNV( *reinterpret_cast<DedicatedAllocationBufferCreateInfoNV const *>( &rhs ) )
20304     {}
20305 
20306 
20307     DedicatedAllocationBufferCreateInfoNV & operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20308 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
20309 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV20310     DedicatedAllocationBufferCreateInfoNV & operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
20311     {
20312       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const *>( &rhs );
20313       return *this;
20314     }
20315 
20316 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV20317     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationBufferCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
20318     {
20319       pNext = pNext_;
20320       return *this;
20321     }
20322 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV20323     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
20324     {
20325       dedicatedAllocation = dedicatedAllocation_;
20326       return *this;
20327     }
20328 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
20329 
20330 
operator VkDedicatedAllocationBufferCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV20331     operator VkDedicatedAllocationBufferCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
20332     {
20333       return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>( this );
20334     }
20335 
operator VkDedicatedAllocationBufferCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV20336     operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT
20337     {
20338       return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>( this );
20339     }
20340 
20341 #if defined( VULKAN_HPP_USE_REFLECT )
20342 #if 14 <= VULKAN_HPP_CPP_VERSION
20343     auto
20344 #else
20345     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
20346 #endif
reflectVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV20347       reflect() const VULKAN_HPP_NOEXCEPT
20348     {
20349       return std::tie( sType, pNext, dedicatedAllocation );
20350     }
20351 #endif
20352 
20353 
20354 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20355 auto operator<=>( DedicatedAllocationBufferCreateInfoNV const & ) const = default;
20356 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV20357     bool operator==( DedicatedAllocationBufferCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
20358     {
20359 #if defined( VULKAN_HPP_USE_REFLECT )
20360       return this->reflect() == rhs.reflect();
20361 #else
20362       return ( sType == rhs.sType )
20363           && ( pNext == rhs.pNext )
20364           && ( dedicatedAllocation == rhs.dedicatedAllocation );
20365 #endif
20366     }
20367 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV20368     bool operator!=( DedicatedAllocationBufferCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
20369     {
20370       return !operator==( rhs );
20371     }
20372 #endif
20373 
20374     public:
20375     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
20376     const void * pNext = {};
20377     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
20378 
20379   };
20380 
20381   template <>
20382   struct CppType<StructureType, StructureType::eDedicatedAllocationBufferCreateInfoNV>
20383   {
20384     using Type = DedicatedAllocationBufferCreateInfoNV;
20385   };
20386 
20387   struct DedicatedAllocationImageCreateInfoNV
20388   {
20389     using NativeType = VkDedicatedAllocationImageCreateInfoNV;
20390 
20391     static const bool allowDuplicate = false;
20392     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationImageCreateInfoNV;
20393 
20394 
20395 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV20396 VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
20397     : pNext( pNext_ ), dedicatedAllocation( dedicatedAllocation_ )
20398     {}
20399 
20400     VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20401 
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV20402     DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
20403       : DedicatedAllocationImageCreateInfoNV( *reinterpret_cast<DedicatedAllocationImageCreateInfoNV const *>( &rhs ) )
20404     {}
20405 
20406 
20407     DedicatedAllocationImageCreateInfoNV & operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20408 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
20409 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV20410     DedicatedAllocationImageCreateInfoNV & operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
20411     {
20412       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const *>( &rhs );
20413       return *this;
20414     }
20415 
20416 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV20417     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationImageCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
20418     {
20419       pNext = pNext_;
20420       return *this;
20421     }
20422 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV20423     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
20424     {
20425       dedicatedAllocation = dedicatedAllocation_;
20426       return *this;
20427     }
20428 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
20429 
20430 
operator VkDedicatedAllocationImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV20431     operator VkDedicatedAllocationImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
20432     {
20433       return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>( this );
20434     }
20435 
operator VkDedicatedAllocationImageCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV20436     operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
20437     {
20438       return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>( this );
20439     }
20440 
20441 #if defined( VULKAN_HPP_USE_REFLECT )
20442 #if 14 <= VULKAN_HPP_CPP_VERSION
20443     auto
20444 #else
20445     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
20446 #endif
reflectVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV20447       reflect() const VULKAN_HPP_NOEXCEPT
20448     {
20449       return std::tie( sType, pNext, dedicatedAllocation );
20450     }
20451 #endif
20452 
20453 
20454 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20455 auto operator<=>( DedicatedAllocationImageCreateInfoNV const & ) const = default;
20456 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV20457     bool operator==( DedicatedAllocationImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
20458     {
20459 #if defined( VULKAN_HPP_USE_REFLECT )
20460       return this->reflect() == rhs.reflect();
20461 #else
20462       return ( sType == rhs.sType )
20463           && ( pNext == rhs.pNext )
20464           && ( dedicatedAllocation == rhs.dedicatedAllocation );
20465 #endif
20466     }
20467 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV20468     bool operator!=( DedicatedAllocationImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
20469     {
20470       return !operator==( rhs );
20471     }
20472 #endif
20473 
20474     public:
20475     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV;
20476     const void * pNext = {};
20477     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
20478 
20479   };
20480 
20481   template <>
20482   struct CppType<StructureType, StructureType::eDedicatedAllocationImageCreateInfoNV>
20483   {
20484     using Type = DedicatedAllocationImageCreateInfoNV;
20485   };
20486 
20487   struct DedicatedAllocationMemoryAllocateInfoNV
20488   {
20489     using NativeType = VkDedicatedAllocationMemoryAllocateInfoNV;
20490 
20491     static const bool allowDuplicate = false;
20492     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
20493 
20494 
20495 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20496 VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
20497     : pNext( pNext_ ), image( image_ ), buffer( buffer_ )
20498     {}
20499 
20500     VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20501 
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20502     DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
20503       : DedicatedAllocationMemoryAllocateInfoNV( *reinterpret_cast<DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs ) )
20504     {}
20505 
20506 
20507     DedicatedAllocationMemoryAllocateInfoNV & operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20508 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
20509 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20510     DedicatedAllocationMemoryAllocateInfoNV & operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
20511     {
20512       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs );
20513       return *this;
20514     }
20515 
20516 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20517     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
20518     {
20519       pNext = pNext_;
20520       return *this;
20521     }
20522 
setImageVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20523     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
20524     {
20525       image = image_;
20526       return *this;
20527     }
20528 
setBufferVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20529     VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
20530     {
20531       buffer = buffer_;
20532       return *this;
20533     }
20534 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
20535 
20536 
operator VkDedicatedAllocationMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20537     operator VkDedicatedAllocationMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT
20538     {
20539       return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
20540     }
20541 
operator VkDedicatedAllocationMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20542     operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
20543     {
20544       return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
20545     }
20546 
20547 #if defined( VULKAN_HPP_USE_REFLECT )
20548 #if 14 <= VULKAN_HPP_CPP_VERSION
20549     auto
20550 #else
20551     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::Buffer const &>
20552 #endif
reflectVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20553       reflect() const VULKAN_HPP_NOEXCEPT
20554     {
20555       return std::tie( sType, pNext, image, buffer );
20556     }
20557 #endif
20558 
20559 
20560 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20561 auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const & ) const = default;
20562 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20563     bool operator==( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
20564     {
20565 #if defined( VULKAN_HPP_USE_REFLECT )
20566       return this->reflect() == rhs.reflect();
20567 #else
20568       return ( sType == rhs.sType )
20569           && ( pNext == rhs.pNext )
20570           && ( image == rhs.image )
20571           && ( buffer == rhs.buffer );
20572 #endif
20573     }
20574 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV20575     bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
20576     {
20577       return !operator==( rhs );
20578     }
20579 #endif
20580 
20581     public:
20582     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
20583     const void * pNext = {};
20584     VULKAN_HPP_NAMESPACE::Image image = {};
20585     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
20586 
20587   };
20588 
20589   template <>
20590   struct CppType<StructureType, StructureType::eDedicatedAllocationMemoryAllocateInfoNV>
20591   {
20592     using Type = DedicatedAllocationMemoryAllocateInfoNV;
20593   };
20594 
20595   struct MemoryBarrier2
20596   {
20597     using NativeType = VkMemoryBarrier2;
20598 
20599     static const bool allowDuplicate = false;
20600     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier2;
20601 
20602 
20603 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryBarrier2VULKAN_HPP_NAMESPACE::MemoryBarrier220604 VULKAN_HPP_CONSTEXPR MemoryBarrier2(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
20605     : pNext( pNext_ ), srcStageMask( srcStageMask_ ), srcAccessMask( srcAccessMask_ ), dstStageMask( dstStageMask_ ), dstAccessMask( dstAccessMask_ )
20606     {}
20607 
20608     VULKAN_HPP_CONSTEXPR MemoryBarrier2( MemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20609 
MemoryBarrier2VULKAN_HPP_NAMESPACE::MemoryBarrier220610     MemoryBarrier2( VkMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
20611       : MemoryBarrier2( *reinterpret_cast<MemoryBarrier2 const *>( &rhs ) )
20612     {}
20613 
20614 
20615     MemoryBarrier2 & operator=( MemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20616 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
20617 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier220618     MemoryBarrier2 & operator=( VkMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
20619     {
20620       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier2 const *>( &rhs );
20621       return *this;
20622     }
20623 
20624 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryBarrier220625     VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
20626     {
20627       pNext = pNext_;
20628       return *this;
20629     }
20630 
setSrcStageMaskVULKAN_HPP_NAMESPACE::MemoryBarrier220631     VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ ) VULKAN_HPP_NOEXCEPT
20632     {
20633       srcStageMask = srcStageMask_;
20634       return *this;
20635     }
20636 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier220637     VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
20638     {
20639       srcAccessMask = srcAccessMask_;
20640       return *this;
20641     }
20642 
setDstStageMaskVULKAN_HPP_NAMESPACE::MemoryBarrier220643     VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ ) VULKAN_HPP_NOEXCEPT
20644     {
20645       dstStageMask = dstStageMask_;
20646       return *this;
20647     }
20648 
setDstAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier220649     VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
20650     {
20651       dstAccessMask = dstAccessMask_;
20652       return *this;
20653     }
20654 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
20655 
20656 
operator VkMemoryBarrier2 const&VULKAN_HPP_NAMESPACE::MemoryBarrier220657     operator VkMemoryBarrier2 const &() const VULKAN_HPP_NOEXCEPT
20658     {
20659       return *reinterpret_cast<const VkMemoryBarrier2*>( this );
20660     }
20661 
operator VkMemoryBarrier2&VULKAN_HPP_NAMESPACE::MemoryBarrier220662     operator VkMemoryBarrier2 &() VULKAN_HPP_NOEXCEPT
20663     {
20664       return *reinterpret_cast<VkMemoryBarrier2*>( this );
20665     }
20666 
20667 #if defined( VULKAN_HPP_USE_REFLECT )
20668 #if 14 <= VULKAN_HPP_CPP_VERSION
20669     auto
20670 #else
20671     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &, VULKAN_HPP_NAMESPACE::AccessFlags2 const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &, VULKAN_HPP_NAMESPACE::AccessFlags2 const &>
20672 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryBarrier220673       reflect() const VULKAN_HPP_NOEXCEPT
20674     {
20675       return std::tie( sType, pNext, srcStageMask, srcAccessMask, dstStageMask, dstAccessMask );
20676     }
20677 #endif
20678 
20679 
20680 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20681 auto operator<=>( MemoryBarrier2 const & ) const = default;
20682 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryBarrier220683     bool operator==( MemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
20684     {
20685 #if defined( VULKAN_HPP_USE_REFLECT )
20686       return this->reflect() == rhs.reflect();
20687 #else
20688       return ( sType == rhs.sType )
20689           && ( pNext == rhs.pNext )
20690           && ( srcStageMask == rhs.srcStageMask )
20691           && ( srcAccessMask == rhs.srcAccessMask )
20692           && ( dstStageMask == rhs.dstStageMask )
20693           && ( dstAccessMask == rhs.dstAccessMask );
20694 #endif
20695     }
20696 
operator !=VULKAN_HPP_NAMESPACE::MemoryBarrier220697     bool operator!=( MemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
20698     {
20699       return !operator==( rhs );
20700     }
20701 #endif
20702 
20703     public:
20704     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier2;
20705     const void * pNext = {};
20706     VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask = {};
20707     VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask = {};
20708     VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask = {};
20709     VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask = {};
20710 
20711   };
20712 
20713   template <>
20714   struct CppType<StructureType, StructureType::eMemoryBarrier2>
20715   {
20716     using Type = MemoryBarrier2;
20717   };
20718   using MemoryBarrier2KHR = MemoryBarrier2;
20719 
20720   struct ImageSubresourceRange
20721   {
20722     using NativeType = VkImageSubresourceRange;
20723 
20724 
20725 
20726 
20727 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange20728 VULKAN_HPP_CONSTEXPR ImageSubresourceRange(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t baseMipLevel_ = {}, uint32_t levelCount_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
20729     : aspectMask( aspectMask_ ), baseMipLevel( baseMipLevel_ ), levelCount( levelCount_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
20730     {}
20731 
20732     VULKAN_HPP_CONSTEXPR ImageSubresourceRange( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20733 
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange20734     ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
20735       : ImageSubresourceRange( *reinterpret_cast<ImageSubresourceRange const *>( &rhs ) )
20736     {}
20737 
20738 
20739     ImageSubresourceRange & operator=( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20740 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
20741 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceRange20742     ImageSubresourceRange & operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
20743     {
20744       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceRange const *>( &rhs );
20745       return *this;
20746     }
20747 
20748 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceRange20749     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
20750     {
20751       aspectMask = aspectMask_;
20752       return *this;
20753     }
20754 
setBaseMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceRange20755     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT
20756     {
20757       baseMipLevel = baseMipLevel_;
20758       return *this;
20759     }
20760 
setLevelCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange20761     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT
20762     {
20763       levelCount = levelCount_;
20764       return *this;
20765     }
20766 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceRange20767     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
20768     {
20769       baseArrayLayer = baseArrayLayer_;
20770       return *this;
20771     }
20772 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange20773     VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
20774     {
20775       layerCount = layerCount_;
20776       return *this;
20777     }
20778 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
20779 
20780 
operator VkImageSubresourceRange const&VULKAN_HPP_NAMESPACE::ImageSubresourceRange20781     operator VkImageSubresourceRange const &() const VULKAN_HPP_NOEXCEPT
20782     {
20783       return *reinterpret_cast<const VkImageSubresourceRange*>( this );
20784     }
20785 
operator VkImageSubresourceRange&VULKAN_HPP_NAMESPACE::ImageSubresourceRange20786     operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT
20787     {
20788       return *reinterpret_cast<VkImageSubresourceRange*>( this );
20789     }
20790 
20791 #if defined( VULKAN_HPP_USE_REFLECT )
20792 #if 14 <= VULKAN_HPP_CPP_VERSION
20793     auto
20794 #else
20795     std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
20796 #endif
reflectVULKAN_HPP_NAMESPACE::ImageSubresourceRange20797       reflect() const VULKAN_HPP_NOEXCEPT
20798     {
20799       return std::tie( aspectMask, baseMipLevel, levelCount, baseArrayLayer, layerCount );
20800     }
20801 #endif
20802 
20803 
20804 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20805 auto operator<=>( ImageSubresourceRange const & ) const = default;
20806 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceRange20807     bool operator==( ImageSubresourceRange const & rhs ) const VULKAN_HPP_NOEXCEPT
20808     {
20809 #if defined( VULKAN_HPP_USE_REFLECT )
20810       return this->reflect() == rhs.reflect();
20811 #else
20812       return ( aspectMask == rhs.aspectMask )
20813           && ( baseMipLevel == rhs.baseMipLevel )
20814           && ( levelCount == rhs.levelCount )
20815           && ( baseArrayLayer == rhs.baseArrayLayer )
20816           && ( layerCount == rhs.layerCount );
20817 #endif
20818     }
20819 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceRange20820     bool operator!=( ImageSubresourceRange const & rhs ) const VULKAN_HPP_NOEXCEPT
20821     {
20822       return !operator==( rhs );
20823     }
20824 #endif
20825 
20826     public:
20827     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
20828     uint32_t baseMipLevel = {};
20829     uint32_t levelCount = {};
20830     uint32_t baseArrayLayer = {};
20831     uint32_t layerCount = {};
20832 
20833   };
20834 
20835   struct ImageMemoryBarrier2
20836   {
20837     using NativeType = VkImageMemoryBarrier2;
20838 
20839     static const bool allowDuplicate = false;
20840     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier2;
20841 
20842 
20843 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryBarrier2VULKAN_HPP_NAMESPACE::ImageMemoryBarrier220844 VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
20845     : pNext( pNext_ ), srcStageMask( srcStageMask_ ), srcAccessMask( srcAccessMask_ ), dstStageMask( dstStageMask_ ), dstAccessMask( dstAccessMask_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), image( image_ ), subresourceRange( subresourceRange_ )
20846     {}
20847 
20848     VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2( ImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20849 
ImageMemoryBarrier2VULKAN_HPP_NAMESPACE::ImageMemoryBarrier220850     ImageMemoryBarrier2( VkImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
20851       : ImageMemoryBarrier2( *reinterpret_cast<ImageMemoryBarrier2 const *>( &rhs ) )
20852     {}
20853 
20854 
20855     ImageMemoryBarrier2 & operator=( ImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20856 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
20857 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier220858     ImageMemoryBarrier2 & operator=( VkImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
20859     {
20860       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 const *>( &rhs );
20861       return *this;
20862     }
20863 
20864 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220865     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
20866     {
20867       pNext = pNext_;
20868       return *this;
20869     }
20870 
setSrcStageMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220871     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ ) VULKAN_HPP_NOEXCEPT
20872     {
20873       srcStageMask = srcStageMask_;
20874       return *this;
20875     }
20876 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220877     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
20878     {
20879       srcAccessMask = srcAccessMask_;
20880       return *this;
20881     }
20882 
setDstStageMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220883     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ ) VULKAN_HPP_NOEXCEPT
20884     {
20885       dstStageMask = dstStageMask_;
20886       return *this;
20887     }
20888 
setDstAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220889     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
20890     {
20891       dstAccessMask = dstAccessMask_;
20892       return *this;
20893     }
20894 
setOldLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220895     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
20896     {
20897       oldLayout = oldLayout_;
20898       return *this;
20899     }
20900 
setNewLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220901     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
20902     {
20903       newLayout = newLayout_;
20904       return *this;
20905     }
20906 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220907     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
20908     {
20909       srcQueueFamilyIndex = srcQueueFamilyIndex_;
20910       return *this;
20911     }
20912 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220913     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
20914     {
20915       dstQueueFamilyIndex = dstQueueFamilyIndex_;
20916       return *this;
20917     }
20918 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220919     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
20920     {
20921       image = image_;
20922       return *this;
20923     }
20924 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220925     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
20926     {
20927       subresourceRange = subresourceRange_;
20928       return *this;
20929     }
20930 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
20931 
20932 
operator VkImageMemoryBarrier2 const&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier220933     operator VkImageMemoryBarrier2 const &() const VULKAN_HPP_NOEXCEPT
20934     {
20935       return *reinterpret_cast<const VkImageMemoryBarrier2*>( this );
20936     }
20937 
operator VkImageMemoryBarrier2&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier220938     operator VkImageMemoryBarrier2 &() VULKAN_HPP_NOEXCEPT
20939     {
20940       return *reinterpret_cast<VkImageMemoryBarrier2*>( this );
20941     }
20942 
20943 #if defined( VULKAN_HPP_USE_REFLECT )
20944 #if 14 <= VULKAN_HPP_CPP_VERSION
20945     auto
20946 #else
20947     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &, VULKAN_HPP_NAMESPACE::AccessFlags2 const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &, VULKAN_HPP_NAMESPACE::AccessFlags2 const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
20948 #endif
reflectVULKAN_HPP_NAMESPACE::ImageMemoryBarrier220949       reflect() const VULKAN_HPP_NOEXCEPT
20950     {
20951       return std::tie( sType, pNext, srcStageMask, srcAccessMask, dstStageMask, dstAccessMask, oldLayout, newLayout, srcQueueFamilyIndex, dstQueueFamilyIndex, image, subresourceRange );
20952     }
20953 #endif
20954 
20955 
20956 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20957 auto operator<=>( ImageMemoryBarrier2 const & ) const = default;
20958 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryBarrier220959     bool operator==( ImageMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
20960     {
20961 #if defined( VULKAN_HPP_USE_REFLECT )
20962       return this->reflect() == rhs.reflect();
20963 #else
20964       return ( sType == rhs.sType )
20965           && ( pNext == rhs.pNext )
20966           && ( srcStageMask == rhs.srcStageMask )
20967           && ( srcAccessMask == rhs.srcAccessMask )
20968           && ( dstStageMask == rhs.dstStageMask )
20969           && ( dstAccessMask == rhs.dstAccessMask )
20970           && ( oldLayout == rhs.oldLayout )
20971           && ( newLayout == rhs.newLayout )
20972           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
20973           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
20974           && ( image == rhs.image )
20975           && ( subresourceRange == rhs.subresourceRange );
20976 #endif
20977     }
20978 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryBarrier220979     bool operator!=( ImageMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
20980     {
20981       return !operator==( rhs );
20982     }
20983 #endif
20984 
20985     public:
20986     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier2;
20987     const void * pNext = {};
20988     VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask = {};
20989     VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask = {};
20990     VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask = {};
20991     VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask = {};
20992     VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
20993     VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
20994     uint32_t srcQueueFamilyIndex = {};
20995     uint32_t dstQueueFamilyIndex = {};
20996     VULKAN_HPP_NAMESPACE::Image image = {};
20997     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
20998 
20999   };
21000 
21001   template <>
21002   struct CppType<StructureType, StructureType::eImageMemoryBarrier2>
21003   {
21004     using Type = ImageMemoryBarrier2;
21005   };
21006   using ImageMemoryBarrier2KHR = ImageMemoryBarrier2;
21007 
21008   struct DependencyInfo
21009   {
21010     using NativeType = VkDependencyInfo;
21011 
21012     static const bool allowDuplicate = false;
21013     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDependencyInfo;
21014 
21015 
21016 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DependencyInfoVULKAN_HPP_NAMESPACE::DependencyInfo21017 VULKAN_HPP_CONSTEXPR DependencyInfo(VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}, uint32_t memoryBarrierCount_ = {}, const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * pMemoryBarriers_ = {}, uint32_t bufferMemoryBarrierCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers_ = {}, uint32_t imageMemoryBarrierCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
21018     : pNext( pNext_ ), dependencyFlags( dependencyFlags_ ), memoryBarrierCount( memoryBarrierCount_ ), pMemoryBarriers( pMemoryBarriers_ ), bufferMemoryBarrierCount( bufferMemoryBarrierCount_ ), pBufferMemoryBarriers( pBufferMemoryBarriers_ ), imageMemoryBarrierCount( imageMemoryBarrierCount_ ), pImageMemoryBarriers( pImageMemoryBarriers_ )
21019     {}
21020 
21021     VULKAN_HPP_CONSTEXPR DependencyInfo( DependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21022 
DependencyInfoVULKAN_HPP_NAMESPACE::DependencyInfo21023     DependencyInfo( VkDependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21024       : DependencyInfo( *reinterpret_cast<DependencyInfo const *>( &rhs ) )
21025     {}
21026 
21027 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DependencyInfoVULKAN_HPP_NAMESPACE::DependencyInfo21028     DependencyInfo( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryBarrier2> const & memoryBarriers_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2> const & bufferMemoryBarriers_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2> const & imageMemoryBarriers_ = {}, const void * pNext_ = nullptr )
21029     : pNext( pNext_ ), dependencyFlags( dependencyFlags_ ), memoryBarrierCount( static_cast<uint32_t>( memoryBarriers_.size() ) ), pMemoryBarriers( memoryBarriers_.data() ), bufferMemoryBarrierCount( static_cast<uint32_t>( bufferMemoryBarriers_.size() ) ), pBufferMemoryBarriers( bufferMemoryBarriers_.data() ), imageMemoryBarrierCount( static_cast<uint32_t>( imageMemoryBarriers_.size() ) ), pImageMemoryBarriers( imageMemoryBarriers_.data() )
21030     {}
21031 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21032 
21033 
21034     DependencyInfo & operator=( DependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21035 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
21036 
operator =VULKAN_HPP_NAMESPACE::DependencyInfo21037     DependencyInfo & operator=( VkDependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21038     {
21039       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DependencyInfo const *>( &rhs );
21040       return *this;
21041     }
21042 
21043 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DependencyInfo21044     VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
21045     {
21046       pNext = pNext_;
21047       return *this;
21048     }
21049 
setDependencyFlagsVULKAN_HPP_NAMESPACE::DependencyInfo21050     VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
21051     {
21052       dependencyFlags = dependencyFlags_;
21053       return *this;
21054     }
21055 
setMemoryBarrierCountVULKAN_HPP_NAMESPACE::DependencyInfo21056     VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setMemoryBarrierCount( uint32_t memoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
21057     {
21058       memoryBarrierCount = memoryBarrierCount_;
21059       return *this;
21060     }
21061 
setPMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfo21062     VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setPMemoryBarriers( const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * pMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
21063     {
21064       pMemoryBarriers = pMemoryBarriers_;
21065       return *this;
21066     }
21067 
21068 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfo21069     DependencyInfo & setMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryBarrier2> const & memoryBarriers_ ) VULKAN_HPP_NOEXCEPT
21070     {
21071       memoryBarrierCount = static_cast<uint32_t>( memoryBarriers_.size() );
21072       pMemoryBarriers = memoryBarriers_.data();
21073       return *this;
21074     }
21075 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21076 
setBufferMemoryBarrierCountVULKAN_HPP_NAMESPACE::DependencyInfo21077     VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setBufferMemoryBarrierCount( uint32_t bufferMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
21078     {
21079       bufferMemoryBarrierCount = bufferMemoryBarrierCount_;
21080       return *this;
21081     }
21082 
setPBufferMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfo21083     VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setPBufferMemoryBarriers( const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
21084     {
21085       pBufferMemoryBarriers = pBufferMemoryBarriers_;
21086       return *this;
21087     }
21088 
21089 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setBufferMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfo21090     DependencyInfo & setBufferMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2> const & bufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
21091     {
21092       bufferMemoryBarrierCount = static_cast<uint32_t>( bufferMemoryBarriers_.size() );
21093       pBufferMemoryBarriers = bufferMemoryBarriers_.data();
21094       return *this;
21095     }
21096 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21097 
setImageMemoryBarrierCountVULKAN_HPP_NAMESPACE::DependencyInfo21098     VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setImageMemoryBarrierCount( uint32_t imageMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
21099     {
21100       imageMemoryBarrierCount = imageMemoryBarrierCount_;
21101       return *this;
21102     }
21103 
setPImageMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfo21104     VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setPImageMemoryBarriers( const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
21105     {
21106       pImageMemoryBarriers = pImageMemoryBarriers_;
21107       return *this;
21108     }
21109 
21110 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setImageMemoryBarriersVULKAN_HPP_NAMESPACE::DependencyInfo21111     DependencyInfo & setImageMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2> const & imageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
21112     {
21113       imageMemoryBarrierCount = static_cast<uint32_t>( imageMemoryBarriers_.size() );
21114       pImageMemoryBarriers = imageMemoryBarriers_.data();
21115       return *this;
21116     }
21117 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21118 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
21119 
21120 
operator VkDependencyInfo const&VULKAN_HPP_NAMESPACE::DependencyInfo21121     operator VkDependencyInfo const &() const VULKAN_HPP_NOEXCEPT
21122     {
21123       return *reinterpret_cast<const VkDependencyInfo*>( this );
21124     }
21125 
operator VkDependencyInfo&VULKAN_HPP_NAMESPACE::DependencyInfo21126     operator VkDependencyInfo &() VULKAN_HPP_NOEXCEPT
21127     {
21128       return *reinterpret_cast<VkDependencyInfo*>( this );
21129     }
21130 
21131 #if defined( VULKAN_HPP_USE_REFLECT )
21132 #if 14 <= VULKAN_HPP_CPP_VERSION
21133     auto
21134 #else
21135     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DependencyFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * const &>
21136 #endif
reflectVULKAN_HPP_NAMESPACE::DependencyInfo21137       reflect() const VULKAN_HPP_NOEXCEPT
21138     {
21139       return std::tie( sType, pNext, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
21140     }
21141 #endif
21142 
21143 
21144 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21145 auto operator<=>( DependencyInfo const & ) const = default;
21146 #else
operator ==VULKAN_HPP_NAMESPACE::DependencyInfo21147     bool operator==( DependencyInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
21148     {
21149 #if defined( VULKAN_HPP_USE_REFLECT )
21150       return this->reflect() == rhs.reflect();
21151 #else
21152       return ( sType == rhs.sType )
21153           && ( pNext == rhs.pNext )
21154           && ( dependencyFlags == rhs.dependencyFlags )
21155           && ( memoryBarrierCount == rhs.memoryBarrierCount )
21156           && ( pMemoryBarriers == rhs.pMemoryBarriers )
21157           && ( bufferMemoryBarrierCount == rhs.bufferMemoryBarrierCount )
21158           && ( pBufferMemoryBarriers == rhs.pBufferMemoryBarriers )
21159           && ( imageMemoryBarrierCount == rhs.imageMemoryBarrierCount )
21160           && ( pImageMemoryBarriers == rhs.pImageMemoryBarriers );
21161 #endif
21162     }
21163 
operator !=VULKAN_HPP_NAMESPACE::DependencyInfo21164     bool operator!=( DependencyInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
21165     {
21166       return !operator==( rhs );
21167     }
21168 #endif
21169 
21170     public:
21171     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDependencyInfo;
21172     const void * pNext = {};
21173     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
21174     uint32_t memoryBarrierCount = {};
21175     const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * pMemoryBarriers = {};
21176     uint32_t bufferMemoryBarrierCount = {};
21177     const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers = {};
21178     uint32_t imageMemoryBarrierCount = {};
21179     const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers = {};
21180 
21181   };
21182 
21183   template <>
21184   struct CppType<StructureType, StructureType::eDependencyInfo>
21185   {
21186     using Type = DependencyInfo;
21187   };
21188   using DependencyInfoKHR = DependencyInfo;
21189 
21190   struct DepthBiasInfoEXT
21191   {
21192     using NativeType = VkDepthBiasInfoEXT;
21193 
21194     static const bool allowDuplicate = false;
21195     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDepthBiasInfoEXT;
21196 
21197 
21198 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DepthBiasInfoEXTVULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21199 VULKAN_HPP_CONSTEXPR DepthBiasInfoEXT(float depthBiasConstantFactor_ = {}, float depthBiasClamp_ = {}, float depthBiasSlopeFactor_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
21200     : pNext( pNext_ ), depthBiasConstantFactor( depthBiasConstantFactor_ ), depthBiasClamp( depthBiasClamp_ ), depthBiasSlopeFactor( depthBiasSlopeFactor_ )
21201     {}
21202 
21203     VULKAN_HPP_CONSTEXPR DepthBiasInfoEXT( DepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21204 
DepthBiasInfoEXTVULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21205     DepthBiasInfoEXT( VkDepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
21206       : DepthBiasInfoEXT( *reinterpret_cast<DepthBiasInfoEXT const *>( &rhs ) )
21207     {}
21208 
21209 
21210     DepthBiasInfoEXT & operator=( DepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21211 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
21212 
operator =VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21213     DepthBiasInfoEXT & operator=( VkDepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
21214     {
21215       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT const *>( &rhs );
21216       return *this;
21217     }
21218 
21219 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21220     VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
21221     {
21222       pNext = pNext_;
21223       return *this;
21224     }
21225 
setDepthBiasConstantFactorVULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21226     VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
21227     {
21228       depthBiasConstantFactor = depthBiasConstantFactor_;
21229       return *this;
21230     }
21231 
setDepthBiasClampVULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21232     VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
21233     {
21234       depthBiasClamp = depthBiasClamp_;
21235       return *this;
21236     }
21237 
setDepthBiasSlopeFactorVULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21238     VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
21239     {
21240       depthBiasSlopeFactor = depthBiasSlopeFactor_;
21241       return *this;
21242     }
21243 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
21244 
21245 
operator VkDepthBiasInfoEXT const&VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21246     operator VkDepthBiasInfoEXT const &() const VULKAN_HPP_NOEXCEPT
21247     {
21248       return *reinterpret_cast<const VkDepthBiasInfoEXT*>( this );
21249     }
21250 
operator VkDepthBiasInfoEXT&VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21251     operator VkDepthBiasInfoEXT &() VULKAN_HPP_NOEXCEPT
21252     {
21253       return *reinterpret_cast<VkDepthBiasInfoEXT*>( this );
21254     }
21255 
21256 #if defined( VULKAN_HPP_USE_REFLECT )
21257 #if 14 <= VULKAN_HPP_CPP_VERSION
21258     auto
21259 #else
21260     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, float const &, float const &, float const &>
21261 #endif
reflectVULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21262       reflect() const VULKAN_HPP_NOEXCEPT
21263     {
21264       return std::tie( sType, pNext, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
21265     }
21266 #endif
21267 
21268 
21269 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21270 auto operator<=>( DepthBiasInfoEXT const & ) const = default;
21271 #else
operator ==VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21272     bool operator==( DepthBiasInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
21273     {
21274 #if defined( VULKAN_HPP_USE_REFLECT )
21275       return this->reflect() == rhs.reflect();
21276 #else
21277       return ( sType == rhs.sType )
21278           && ( pNext == rhs.pNext )
21279           && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor )
21280           && ( depthBiasClamp == rhs.depthBiasClamp )
21281           && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor );
21282 #endif
21283     }
21284 
operator !=VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT21285     bool operator!=( DepthBiasInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
21286     {
21287       return !operator==( rhs );
21288     }
21289 #endif
21290 
21291     public:
21292     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDepthBiasInfoEXT;
21293     const void * pNext = {};
21294     float depthBiasConstantFactor = {};
21295     float depthBiasClamp = {};
21296     float depthBiasSlopeFactor = {};
21297 
21298   };
21299 
21300   template <>
21301   struct CppType<StructureType, StructureType::eDepthBiasInfoEXT>
21302   {
21303     using Type = DepthBiasInfoEXT;
21304   };
21305 
21306   struct DepthBiasRepresentationInfoEXT
21307   {
21308     using NativeType = VkDepthBiasRepresentationInfoEXT;
21309 
21310     static const bool allowDuplicate = false;
21311     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDepthBiasRepresentationInfoEXT;
21312 
21313 
21314 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DepthBiasRepresentationInfoEXTVULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21315 VULKAN_HPP_CONSTEXPR DepthBiasRepresentationInfoEXT(VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT depthBiasRepresentation_ = VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT::eLeastRepresentableValueFormat, VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
21316     : pNext( pNext_ ), depthBiasRepresentation( depthBiasRepresentation_ ), depthBiasExact( depthBiasExact_ )
21317     {}
21318 
21319     VULKAN_HPP_CONSTEXPR DepthBiasRepresentationInfoEXT( DepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21320 
DepthBiasRepresentationInfoEXTVULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21321     DepthBiasRepresentationInfoEXT( VkDepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
21322       : DepthBiasRepresentationInfoEXT( *reinterpret_cast<DepthBiasRepresentationInfoEXT const *>( &rhs ) )
21323     {}
21324 
21325 
21326     DepthBiasRepresentationInfoEXT & operator=( DepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21327 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
21328 
operator =VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21329     DepthBiasRepresentationInfoEXT & operator=( VkDepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
21330     {
21331       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT const *>( &rhs );
21332       return *this;
21333     }
21334 
21335 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21336     VULKAN_HPP_CONSTEXPR_14 DepthBiasRepresentationInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
21337     {
21338       pNext = pNext_;
21339       return *this;
21340     }
21341 
setDepthBiasRepresentationVULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21342     VULKAN_HPP_CONSTEXPR_14 DepthBiasRepresentationInfoEXT & setDepthBiasRepresentation( VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT depthBiasRepresentation_ ) VULKAN_HPP_NOEXCEPT
21343     {
21344       depthBiasRepresentation = depthBiasRepresentation_;
21345       return *this;
21346     }
21347 
setDepthBiasExactVULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21348     VULKAN_HPP_CONSTEXPR_14 DepthBiasRepresentationInfoEXT & setDepthBiasExact( VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ ) VULKAN_HPP_NOEXCEPT
21349     {
21350       depthBiasExact = depthBiasExact_;
21351       return *this;
21352     }
21353 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
21354 
21355 
operator VkDepthBiasRepresentationInfoEXT const&VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21356     operator VkDepthBiasRepresentationInfoEXT const &() const VULKAN_HPP_NOEXCEPT
21357     {
21358       return *reinterpret_cast<const VkDepthBiasRepresentationInfoEXT*>( this );
21359     }
21360 
operator VkDepthBiasRepresentationInfoEXT&VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21361     operator VkDepthBiasRepresentationInfoEXT &() VULKAN_HPP_NOEXCEPT
21362     {
21363       return *reinterpret_cast<VkDepthBiasRepresentationInfoEXT*>( this );
21364     }
21365 
21366 #if defined( VULKAN_HPP_USE_REFLECT )
21367 #if 14 <= VULKAN_HPP_CPP_VERSION
21368     auto
21369 #else
21370     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
21371 #endif
reflectVULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21372       reflect() const VULKAN_HPP_NOEXCEPT
21373     {
21374       return std::tie( sType, pNext, depthBiasRepresentation, depthBiasExact );
21375     }
21376 #endif
21377 
21378 
21379 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21380 auto operator<=>( DepthBiasRepresentationInfoEXT const & ) const = default;
21381 #else
operator ==VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21382     bool operator==( DepthBiasRepresentationInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
21383     {
21384 #if defined( VULKAN_HPP_USE_REFLECT )
21385       return this->reflect() == rhs.reflect();
21386 #else
21387       return ( sType == rhs.sType )
21388           && ( pNext == rhs.pNext )
21389           && ( depthBiasRepresentation == rhs.depthBiasRepresentation )
21390           && ( depthBiasExact == rhs.depthBiasExact );
21391 #endif
21392     }
21393 
operator !=VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT21394     bool operator!=( DepthBiasRepresentationInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
21395     {
21396       return !operator==( rhs );
21397     }
21398 #endif
21399 
21400     public:
21401     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDepthBiasRepresentationInfoEXT;
21402     const void * pNext = {};
21403     VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT depthBiasRepresentation = VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT::eLeastRepresentableValueFormat;
21404     VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact = {};
21405 
21406   };
21407 
21408   template <>
21409   struct CppType<StructureType, StructureType::eDepthBiasRepresentationInfoEXT>
21410   {
21411     using Type = DepthBiasRepresentationInfoEXT;
21412   };
21413 
21414   struct DescriptorAddressInfoEXT
21415   {
21416     using NativeType = VkDescriptorAddressInfoEXT;
21417 
21418     static const bool allowDuplicate = false;
21419     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorAddressInfoEXT;
21420 
21421 
21422 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorAddressInfoEXTVULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21423 VULKAN_HPP_CONSTEXPR DescriptorAddressInfoEXT(VULKAN_HPP_NAMESPACE::DeviceAddress address_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
21424     : pNext( pNext_ ), address( address_ ), range( range_ ), format( format_ )
21425     {}
21426 
21427     VULKAN_HPP_CONSTEXPR DescriptorAddressInfoEXT( DescriptorAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21428 
DescriptorAddressInfoEXTVULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21429     DescriptorAddressInfoEXT( VkDescriptorAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
21430       : DescriptorAddressInfoEXT( *reinterpret_cast<DescriptorAddressInfoEXT const *>( &rhs ) )
21431     {}
21432 
21433 
21434     DescriptorAddressInfoEXT & operator=( DescriptorAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21435 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
21436 
operator =VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21437     DescriptorAddressInfoEXT & operator=( VkDescriptorAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
21438     {
21439       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT const *>( &rhs );
21440       return *this;
21441     }
21442 
21443 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21444     VULKAN_HPP_CONSTEXPR_14 DescriptorAddressInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
21445     {
21446       pNext = pNext_;
21447       return *this;
21448     }
21449 
setAddressVULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21450     VULKAN_HPP_CONSTEXPR_14 DescriptorAddressInfoEXT & setAddress( VULKAN_HPP_NAMESPACE::DeviceAddress address_ ) VULKAN_HPP_NOEXCEPT
21451     {
21452       address = address_;
21453       return *this;
21454     }
21455 
setRangeVULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21456     VULKAN_HPP_CONSTEXPR_14 DescriptorAddressInfoEXT & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
21457     {
21458       range = range_;
21459       return *this;
21460     }
21461 
setFormatVULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21462     VULKAN_HPP_CONSTEXPR_14 DescriptorAddressInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
21463     {
21464       format = format_;
21465       return *this;
21466     }
21467 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
21468 
21469 
operator VkDescriptorAddressInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21470     operator VkDescriptorAddressInfoEXT const &() const VULKAN_HPP_NOEXCEPT
21471     {
21472       return *reinterpret_cast<const VkDescriptorAddressInfoEXT*>( this );
21473     }
21474 
operator VkDescriptorAddressInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21475     operator VkDescriptorAddressInfoEXT &() VULKAN_HPP_NOEXCEPT
21476     {
21477       return *reinterpret_cast<VkDescriptorAddressInfoEXT*>( this );
21478     }
21479 
21480 #if defined( VULKAN_HPP_USE_REFLECT )
21481 #if 14 <= VULKAN_HPP_CPP_VERSION
21482     auto
21483 #else
21484     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::Format const &>
21485 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21486       reflect() const VULKAN_HPP_NOEXCEPT
21487     {
21488       return std::tie( sType, pNext, address, range, format );
21489     }
21490 #endif
21491 
21492 
21493 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21494 auto operator<=>( DescriptorAddressInfoEXT const & ) const = default;
21495 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21496     bool operator==( DescriptorAddressInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
21497     {
21498 #if defined( VULKAN_HPP_USE_REFLECT )
21499       return this->reflect() == rhs.reflect();
21500 #else
21501       return ( sType == rhs.sType )
21502           && ( pNext == rhs.pNext )
21503           && ( address == rhs.address )
21504           && ( range == rhs.range )
21505           && ( format == rhs.format );
21506 #endif
21507     }
21508 
operator !=VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT21509     bool operator!=( DescriptorAddressInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
21510     {
21511       return !operator==( rhs );
21512     }
21513 #endif
21514 
21515     public:
21516     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorAddressInfoEXT;
21517     void * pNext = {};
21518     VULKAN_HPP_NAMESPACE::DeviceAddress address = {};
21519     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
21520     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
21521 
21522   };
21523 
21524   template <>
21525   struct CppType<StructureType, StructureType::eDescriptorAddressInfoEXT>
21526   {
21527     using Type = DescriptorAddressInfoEXT;
21528   };
21529 
21530   struct DescriptorBufferBindingInfoEXT
21531   {
21532     using NativeType = VkDescriptorBufferBindingInfoEXT;
21533 
21534     static const bool allowDuplicate = false;
21535     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorBufferBindingInfoEXT;
21536 
21537 
21538 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorBufferBindingInfoEXTVULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21539 VULKAN_HPP_CONSTEXPR DescriptorBufferBindingInfoEXT(VULKAN_HPP_NAMESPACE::DeviceAddress address_ = {}, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
21540     : pNext( pNext_ ), address( address_ ), usage( usage_ )
21541     {}
21542 
21543     VULKAN_HPP_CONSTEXPR DescriptorBufferBindingInfoEXT( DescriptorBufferBindingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21544 
DescriptorBufferBindingInfoEXTVULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21545     DescriptorBufferBindingInfoEXT( VkDescriptorBufferBindingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
21546       : DescriptorBufferBindingInfoEXT( *reinterpret_cast<DescriptorBufferBindingInfoEXT const *>( &rhs ) )
21547     {}
21548 
21549 
21550     DescriptorBufferBindingInfoEXT & operator=( DescriptorBufferBindingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21551 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
21552 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21553     DescriptorBufferBindingInfoEXT & operator=( VkDescriptorBufferBindingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
21554     {
21555       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT const *>( &rhs );
21556       return *this;
21557     }
21558 
21559 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21560     VULKAN_HPP_CONSTEXPR_14 DescriptorBufferBindingInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
21561     {
21562       pNext = pNext_;
21563       return *this;
21564     }
21565 
setAddressVULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21566     VULKAN_HPP_CONSTEXPR_14 DescriptorBufferBindingInfoEXT & setAddress( VULKAN_HPP_NAMESPACE::DeviceAddress address_ ) VULKAN_HPP_NOEXCEPT
21567     {
21568       address = address_;
21569       return *this;
21570     }
21571 
setUsageVULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21572     VULKAN_HPP_CONSTEXPR_14 DescriptorBufferBindingInfoEXT & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
21573     {
21574       usage = usage_;
21575       return *this;
21576     }
21577 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
21578 
21579 
operator VkDescriptorBufferBindingInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21580     operator VkDescriptorBufferBindingInfoEXT const &() const VULKAN_HPP_NOEXCEPT
21581     {
21582       return *reinterpret_cast<const VkDescriptorBufferBindingInfoEXT*>( this );
21583     }
21584 
operator VkDescriptorBufferBindingInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21585     operator VkDescriptorBufferBindingInfoEXT &() VULKAN_HPP_NOEXCEPT
21586     {
21587       return *reinterpret_cast<VkDescriptorBufferBindingInfoEXT*>( this );
21588     }
21589 
21590 #if defined( VULKAN_HPP_USE_REFLECT )
21591 #if 14 <= VULKAN_HPP_CPP_VERSION
21592     auto
21593 #else
21594     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::BufferUsageFlags const &>
21595 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21596       reflect() const VULKAN_HPP_NOEXCEPT
21597     {
21598       return std::tie( sType, pNext, address, usage );
21599     }
21600 #endif
21601 
21602 
21603 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21604 auto operator<=>( DescriptorBufferBindingInfoEXT const & ) const = default;
21605 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21606     bool operator==( DescriptorBufferBindingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
21607     {
21608 #if defined( VULKAN_HPP_USE_REFLECT )
21609       return this->reflect() == rhs.reflect();
21610 #else
21611       return ( sType == rhs.sType )
21612           && ( pNext == rhs.pNext )
21613           && ( address == rhs.address )
21614           && ( usage == rhs.usage );
21615 #endif
21616     }
21617 
operator !=VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT21618     bool operator!=( DescriptorBufferBindingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
21619     {
21620       return !operator==( rhs );
21621     }
21622 #endif
21623 
21624     public:
21625     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorBufferBindingInfoEXT;
21626     void * pNext = {};
21627     VULKAN_HPP_NAMESPACE::DeviceAddress address = {};
21628     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
21629 
21630   };
21631 
21632   template <>
21633   struct CppType<StructureType, StructureType::eDescriptorBufferBindingInfoEXT>
21634   {
21635     using Type = DescriptorBufferBindingInfoEXT;
21636   };
21637 
21638   struct DescriptorBufferBindingPushDescriptorBufferHandleEXT
21639   {
21640     using NativeType = VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
21641 
21642     static const bool allowDuplicate = false;
21643     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorBufferBindingPushDescriptorBufferHandleEXT;
21644 
21645 
21646 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorBufferBindingPushDescriptorBufferHandleEXTVULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT21647 VULKAN_HPP_CONSTEXPR DescriptorBufferBindingPushDescriptorBufferHandleEXT(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
21648     : pNext( pNext_ ), buffer( buffer_ )
21649     {}
21650 
21651     VULKAN_HPP_CONSTEXPR DescriptorBufferBindingPushDescriptorBufferHandleEXT( DescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21652 
DescriptorBufferBindingPushDescriptorBufferHandleEXTVULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT21653     DescriptorBufferBindingPushDescriptorBufferHandleEXT( VkDescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) VULKAN_HPP_NOEXCEPT
21654       : DescriptorBufferBindingPushDescriptorBufferHandleEXT( *reinterpret_cast<DescriptorBufferBindingPushDescriptorBufferHandleEXT const *>( &rhs ) )
21655     {}
21656 
21657 
21658     DescriptorBufferBindingPushDescriptorBufferHandleEXT & operator=( DescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21659 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
21660 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT21661     DescriptorBufferBindingPushDescriptorBufferHandleEXT & operator=( VkDescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) VULKAN_HPP_NOEXCEPT
21662     {
21663       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT const *>( &rhs );
21664       return *this;
21665     }
21666 
21667 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT21668     VULKAN_HPP_CONSTEXPR_14 DescriptorBufferBindingPushDescriptorBufferHandleEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
21669     {
21670       pNext = pNext_;
21671       return *this;
21672     }
21673 
setBufferVULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT21674     VULKAN_HPP_CONSTEXPR_14 DescriptorBufferBindingPushDescriptorBufferHandleEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
21675     {
21676       buffer = buffer_;
21677       return *this;
21678     }
21679 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
21680 
21681 
operator VkDescriptorBufferBindingPushDescriptorBufferHandleEXT const&VULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT21682     operator VkDescriptorBufferBindingPushDescriptorBufferHandleEXT const &() const VULKAN_HPP_NOEXCEPT
21683     {
21684       return *reinterpret_cast<const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT*>( this );
21685     }
21686 
operator VkDescriptorBufferBindingPushDescriptorBufferHandleEXT&VULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT21687     operator VkDescriptorBufferBindingPushDescriptorBufferHandleEXT &() VULKAN_HPP_NOEXCEPT
21688     {
21689       return *reinterpret_cast<VkDescriptorBufferBindingPushDescriptorBufferHandleEXT*>( this );
21690     }
21691 
21692 #if defined( VULKAN_HPP_USE_REFLECT )
21693 #if 14 <= VULKAN_HPP_CPP_VERSION
21694     auto
21695 #else
21696     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Buffer const &>
21697 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT21698       reflect() const VULKAN_HPP_NOEXCEPT
21699     {
21700       return std::tie( sType, pNext, buffer );
21701     }
21702 #endif
21703 
21704 
21705 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21706 auto operator<=>( DescriptorBufferBindingPushDescriptorBufferHandleEXT const & ) const = default;
21707 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT21708     bool operator==( DescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
21709     {
21710 #if defined( VULKAN_HPP_USE_REFLECT )
21711       return this->reflect() == rhs.reflect();
21712 #else
21713       return ( sType == rhs.sType )
21714           && ( pNext == rhs.pNext )
21715           && ( buffer == rhs.buffer );
21716 #endif
21717     }
21718 
operator !=VULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT21719     bool operator!=( DescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
21720     {
21721       return !operator==( rhs );
21722     }
21723 #endif
21724 
21725     public:
21726     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorBufferBindingPushDescriptorBufferHandleEXT;
21727     void * pNext = {};
21728     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
21729 
21730   };
21731 
21732   template <>
21733   struct CppType<StructureType, StructureType::eDescriptorBufferBindingPushDescriptorBufferHandleEXT>
21734   {
21735     using Type = DescriptorBufferBindingPushDescriptorBufferHandleEXT;
21736   };
21737 
21738   struct DescriptorBufferInfo
21739   {
21740     using NativeType = VkDescriptorBufferInfo;
21741 
21742 
21743 
21744 
21745 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo21746 VULKAN_HPP_CONSTEXPR DescriptorBufferInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}) VULKAN_HPP_NOEXCEPT
21747     : buffer( buffer_ ), offset( offset_ ), range( range_ )
21748     {}
21749 
21750     VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21751 
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo21752     DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21753       : DescriptorBufferInfo( *reinterpret_cast<DescriptorBufferInfo const *>( &rhs ) )
21754     {}
21755 
21756 
21757     DescriptorBufferInfo & operator=( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21758 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
21759 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferInfo21760     DescriptorBufferInfo & operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21761     {
21762       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferInfo const *>( &rhs );
21763       return *this;
21764     }
21765 
21766 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setBufferVULKAN_HPP_NAMESPACE::DescriptorBufferInfo21767     VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
21768     {
21769       buffer = buffer_;
21770       return *this;
21771     }
21772 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorBufferInfo21773     VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
21774     {
21775       offset = offset_;
21776       return *this;
21777     }
21778 
setRangeVULKAN_HPP_NAMESPACE::DescriptorBufferInfo21779     VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
21780     {
21781       range = range_;
21782       return *this;
21783     }
21784 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
21785 
21786 
operator VkDescriptorBufferInfo const&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo21787     operator VkDescriptorBufferInfo const &() const VULKAN_HPP_NOEXCEPT
21788     {
21789       return *reinterpret_cast<const VkDescriptorBufferInfo*>( this );
21790     }
21791 
operator VkDescriptorBufferInfo&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo21792     operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT
21793     {
21794       return *reinterpret_cast<VkDescriptorBufferInfo*>( this );
21795     }
21796 
21797 #if defined( VULKAN_HPP_USE_REFLECT )
21798 #if 14 <= VULKAN_HPP_CPP_VERSION
21799     auto
21800 #else
21801     std::tuple<VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
21802 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorBufferInfo21803       reflect() const VULKAN_HPP_NOEXCEPT
21804     {
21805       return std::tie( buffer, offset, range );
21806     }
21807 #endif
21808 
21809 
21810 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21811 auto operator<=>( DescriptorBufferInfo const & ) const = default;
21812 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorBufferInfo21813     bool operator==( DescriptorBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
21814     {
21815 #if defined( VULKAN_HPP_USE_REFLECT )
21816       return this->reflect() == rhs.reflect();
21817 #else
21818       return ( buffer == rhs.buffer )
21819           && ( offset == rhs.offset )
21820           && ( range == rhs.range );
21821 #endif
21822     }
21823 
operator !=VULKAN_HPP_NAMESPACE::DescriptorBufferInfo21824     bool operator!=( DescriptorBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
21825     {
21826       return !operator==( rhs );
21827     }
21828 #endif
21829 
21830     public:
21831     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
21832     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
21833     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
21834 
21835   };
21836 
21837   struct DescriptorImageInfo
21838   {
21839     using NativeType = VkDescriptorImageInfo;
21840 
21841 
21842 
21843 
21844 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo21845 VULKAN_HPP_CONSTEXPR DescriptorImageInfo(VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}, VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
21846     : sampler( sampler_ ), imageView( imageView_ ), imageLayout( imageLayout_ )
21847     {}
21848 
21849     VULKAN_HPP_CONSTEXPR DescriptorImageInfo( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21850 
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo21851     DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21852       : DescriptorImageInfo( *reinterpret_cast<DescriptorImageInfo const *>( &rhs ) )
21853     {}
21854 
21855 
21856     DescriptorImageInfo & operator=( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21857 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
21858 
operator =VULKAN_HPP_NAMESPACE::DescriptorImageInfo21859     DescriptorImageInfo & operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21860     {
21861       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorImageInfo const *>( &rhs );
21862       return *this;
21863     }
21864 
21865 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSamplerVULKAN_HPP_NAMESPACE::DescriptorImageInfo21866     VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
21867     {
21868       sampler = sampler_;
21869       return *this;
21870     }
21871 
setImageViewVULKAN_HPP_NAMESPACE::DescriptorImageInfo21872     VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
21873     {
21874       imageView = imageView_;
21875       return *this;
21876     }
21877 
setImageLayoutVULKAN_HPP_NAMESPACE::DescriptorImageInfo21878     VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
21879     {
21880       imageLayout = imageLayout_;
21881       return *this;
21882     }
21883 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
21884 
21885 
operator VkDescriptorImageInfo const&VULKAN_HPP_NAMESPACE::DescriptorImageInfo21886     operator VkDescriptorImageInfo const &() const VULKAN_HPP_NOEXCEPT
21887     {
21888       return *reinterpret_cast<const VkDescriptorImageInfo*>( this );
21889     }
21890 
operator VkDescriptorImageInfo&VULKAN_HPP_NAMESPACE::DescriptorImageInfo21891     operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT
21892     {
21893       return *reinterpret_cast<VkDescriptorImageInfo*>( this );
21894     }
21895 
21896 #if defined( VULKAN_HPP_USE_REFLECT )
21897 #if 14 <= VULKAN_HPP_CPP_VERSION
21898     auto
21899 #else
21900     std::tuple<VULKAN_HPP_NAMESPACE::Sampler const &, VULKAN_HPP_NAMESPACE::ImageView const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
21901 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorImageInfo21902       reflect() const VULKAN_HPP_NOEXCEPT
21903     {
21904       return std::tie( sampler, imageView, imageLayout );
21905     }
21906 #endif
21907 
21908 
21909 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21910 auto operator<=>( DescriptorImageInfo const & ) const = default;
21911 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorImageInfo21912     bool operator==( DescriptorImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
21913     {
21914 #if defined( VULKAN_HPP_USE_REFLECT )
21915       return this->reflect() == rhs.reflect();
21916 #else
21917       return ( sampler == rhs.sampler )
21918           && ( imageView == rhs.imageView )
21919           && ( imageLayout == rhs.imageLayout );
21920 #endif
21921     }
21922 
operator !=VULKAN_HPP_NAMESPACE::DescriptorImageInfo21923     bool operator!=( DescriptorImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
21924     {
21925       return !operator==( rhs );
21926     }
21927 #endif
21928 
21929     public:
21930     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
21931     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
21932     VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
21933 
21934   };
21935 
21936   union DescriptorDataEXT
21937   {
21938     using NativeType = VkDescriptorDataEXT;
21939 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
21940 
DescriptorDataEXT(const VULKAN_HPP_NAMESPACE::Sampler * pSampler_={} )21941     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT( const VULKAN_HPP_NAMESPACE::Sampler * pSampler_ = {} )
21942       : pSampler( pSampler_ )
21943     {}
21944 
DescriptorDataEXT(const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pDescriptorImageInfo_)21945     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pDescriptorImageInfo_ )
21946       : pCombinedImageSampler( pDescriptorImageInfo_ )
21947     {}
21948 
DescriptorDataEXT(const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pDescriptorAddressInfoEXT_)21949     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pDescriptorAddressInfoEXT_ )
21950       : pUniformTexelBuffer( pDescriptorAddressInfoEXT_ )
21951     {}
21952 
DescriptorDataEXT(VULKAN_HPP_NAMESPACE::DeviceAddress accelerationStructure_)21953     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT( VULKAN_HPP_NAMESPACE::DeviceAddress accelerationStructure_ )
21954       : accelerationStructure( accelerationStructure_ )
21955     {}
21956 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
21957 
21958 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setPSampler(const VULKAN_HPP_NAMESPACE::Sampler * pSampler_)21959     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPSampler( const VULKAN_HPP_NAMESPACE::Sampler * pSampler_ ) VULKAN_HPP_NOEXCEPT
21960     {
21961       pSampler = pSampler_;
21962       return *this;
21963     }
21964 
setPCombinedImageSampler(const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pCombinedImageSampler_)21965     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPCombinedImageSampler( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pCombinedImageSampler_ ) VULKAN_HPP_NOEXCEPT
21966     {
21967       pCombinedImageSampler = pCombinedImageSampler_;
21968       return *this;
21969     }
21970 
setPInputAttachmentImage(const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pInputAttachmentImage_)21971     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPInputAttachmentImage( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pInputAttachmentImage_ ) VULKAN_HPP_NOEXCEPT
21972     {
21973       pInputAttachmentImage = pInputAttachmentImage_;
21974       return *this;
21975     }
21976 
setPSampledImage(const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pSampledImage_)21977     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPSampledImage( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pSampledImage_ ) VULKAN_HPP_NOEXCEPT
21978     {
21979       pSampledImage = pSampledImage_;
21980       return *this;
21981     }
21982 
setPStorageImage(const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pStorageImage_)21983     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPStorageImage( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pStorageImage_ ) VULKAN_HPP_NOEXCEPT
21984     {
21985       pStorageImage = pStorageImage_;
21986       return *this;
21987     }
21988 
setPUniformTexelBuffer(const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformTexelBuffer_)21989     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPUniformTexelBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformTexelBuffer_ ) VULKAN_HPP_NOEXCEPT
21990     {
21991       pUniformTexelBuffer = pUniformTexelBuffer_;
21992       return *this;
21993     }
21994 
setPStorageTexelBuffer(const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageTexelBuffer_)21995     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPStorageTexelBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageTexelBuffer_ ) VULKAN_HPP_NOEXCEPT
21996     {
21997       pStorageTexelBuffer = pStorageTexelBuffer_;
21998       return *this;
21999     }
22000 
setPUniformBuffer(const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformBuffer_)22001     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPUniformBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformBuffer_ ) VULKAN_HPP_NOEXCEPT
22002     {
22003       pUniformBuffer = pUniformBuffer_;
22004       return *this;
22005     }
22006 
setPStorageBuffer(const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageBuffer_)22007     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPStorageBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
22008     {
22009       pStorageBuffer = pStorageBuffer_;
22010       return *this;
22011     }
22012 
setAccelerationStructure(VULKAN_HPP_NAMESPACE::DeviceAddress accelerationStructure_)22013     VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setAccelerationStructure( VULKAN_HPP_NAMESPACE::DeviceAddress accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
22014     {
22015       accelerationStructure = accelerationStructure_;
22016       return *this;
22017     }
22018 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
22019 
operator VkDescriptorDataEXT const&() const22020     operator VkDescriptorDataEXT const &() const
22021     {
22022       return *reinterpret_cast<const VkDescriptorDataEXT*>( this );
22023     }
22024 
operator VkDescriptorDataEXT&()22025     operator VkDescriptorDataEXT &()
22026     {
22027       return *reinterpret_cast<VkDescriptorDataEXT*>( this );
22028     }
22029 
22030 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
22031     const VULKAN_HPP_NAMESPACE::Sampler * pSampler;
22032     const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pCombinedImageSampler;
22033     const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pInputAttachmentImage;
22034     const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pSampledImage;
22035     const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pStorageImage;
22036     const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformTexelBuffer;
22037     const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageTexelBuffer;
22038     const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformBuffer;
22039     const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageBuffer;
22040     VULKAN_HPP_NAMESPACE::DeviceAddress accelerationStructure;
22041 #else
22042     const VkSampler * pSampler;
22043     const VkDescriptorImageInfo * pCombinedImageSampler;
22044     const VkDescriptorImageInfo * pInputAttachmentImage;
22045     const VkDescriptorImageInfo * pSampledImage;
22046     const VkDescriptorImageInfo * pStorageImage;
22047     const VkDescriptorAddressInfoEXT * pUniformTexelBuffer;
22048     const VkDescriptorAddressInfoEXT * pStorageTexelBuffer;
22049     const VkDescriptorAddressInfoEXT * pUniformBuffer;
22050     const VkDescriptorAddressInfoEXT * pStorageBuffer;
22051     VkDeviceAddress accelerationStructure;
22052 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
22053 
22054   };
22055 
22056   struct DescriptorGetInfoEXT
22057   {
22058     using NativeType = VkDescriptorGetInfoEXT;
22059 
22060     static const bool allowDuplicate = false;
22061     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorGetInfoEXT;
22062 
22063 
22064 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorGetInfoEXTVULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT22065 VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT(VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, VULKAN_HPP_NAMESPACE::DescriptorDataEXT data_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
22066     : pNext( pNext_ ), type( type_ ), data( data_ )
22067     {}
22068 
22069     VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT( DescriptorGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22070 
DescriptorGetInfoEXTVULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT22071     DescriptorGetInfoEXT( VkDescriptorGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22072       : DescriptorGetInfoEXT( *reinterpret_cast<DescriptorGetInfoEXT const *>( &rhs ) )
22073     {}
22074 
22075 
22076     DescriptorGetInfoEXT & operator=( DescriptorGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22077 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
22078 
operator =VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT22079     DescriptorGetInfoEXT & operator=( VkDescriptorGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22080     {
22081       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT const *>( &rhs );
22082       return *this;
22083     }
22084 
22085 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT22086     VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
22087     {
22088       pNext = pNext_;
22089       return *this;
22090     }
22091 
setTypeVULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT22092     VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
22093     {
22094       type = type_;
22095       return *this;
22096     }
22097 
setDataVULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT22098     VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT & setData( VULKAN_HPP_NAMESPACE::DescriptorDataEXT const & data_ ) VULKAN_HPP_NOEXCEPT
22099     {
22100       data = data_;
22101       return *this;
22102     }
22103 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
22104 
22105 
operator VkDescriptorGetInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT22106     operator VkDescriptorGetInfoEXT const &() const VULKAN_HPP_NOEXCEPT
22107     {
22108       return *reinterpret_cast<const VkDescriptorGetInfoEXT*>( this );
22109     }
22110 
operator VkDescriptorGetInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT22111     operator VkDescriptorGetInfoEXT &() VULKAN_HPP_NOEXCEPT
22112     {
22113       return *reinterpret_cast<VkDescriptorGetInfoEXT*>( this );
22114     }
22115 
22116 #if defined( VULKAN_HPP_USE_REFLECT )
22117 #if 14 <= VULKAN_HPP_CPP_VERSION
22118     auto
22119 #else
22120     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DescriptorType const &, VULKAN_HPP_NAMESPACE::DescriptorDataEXT const &>
22121 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT22122       reflect() const VULKAN_HPP_NOEXCEPT
22123     {
22124       return std::tie( sType, pNext, type, data );
22125     }
22126 #endif
22127 
22128 
22129     public:
22130     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorGetInfoEXT;
22131     const void * pNext = {};
22132     VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
22133     VULKAN_HPP_NAMESPACE::DescriptorDataEXT data = {};
22134 
22135   };
22136 
22137   template <>
22138   struct CppType<StructureType, StructureType::eDescriptorGetInfoEXT>
22139   {
22140     using Type = DescriptorGetInfoEXT;
22141   };
22142 
22143   struct DescriptorPoolSize
22144   {
22145     using NativeType = VkDescriptorPoolSize;
22146 
22147 
22148 
22149 
22150 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize22151 VULKAN_HPP_CONSTEXPR DescriptorPoolSize(VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
22152     : type( type_ ), descriptorCount( descriptorCount_ )
22153     {}
22154 
22155     VULKAN_HPP_CONSTEXPR DescriptorPoolSize( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22156 
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize22157     DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
22158       : DescriptorPoolSize( *reinterpret_cast<DescriptorPoolSize const *>( &rhs ) )
22159     {}
22160 
22161 
22162     DescriptorPoolSize & operator=( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22163 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
22164 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolSize22165     DescriptorPoolSize & operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
22166     {
22167       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolSize const *>( &rhs );
22168       return *this;
22169     }
22170 
22171 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setTypeVULKAN_HPP_NAMESPACE::DescriptorPoolSize22172     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
22173     {
22174       type = type_;
22175       return *this;
22176     }
22177 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorPoolSize22178     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
22179     {
22180       descriptorCount = descriptorCount_;
22181       return *this;
22182     }
22183 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
22184 
22185 
operator VkDescriptorPoolSize const&VULKAN_HPP_NAMESPACE::DescriptorPoolSize22186     operator VkDescriptorPoolSize const &() const VULKAN_HPP_NOEXCEPT
22187     {
22188       return *reinterpret_cast<const VkDescriptorPoolSize*>( this );
22189     }
22190 
operator VkDescriptorPoolSize&VULKAN_HPP_NAMESPACE::DescriptorPoolSize22191     operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT
22192     {
22193       return *reinterpret_cast<VkDescriptorPoolSize*>( this );
22194     }
22195 
22196 #if defined( VULKAN_HPP_USE_REFLECT )
22197 #if 14 <= VULKAN_HPP_CPP_VERSION
22198     auto
22199 #else
22200     std::tuple<VULKAN_HPP_NAMESPACE::DescriptorType const &, uint32_t const &>
22201 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorPoolSize22202       reflect() const VULKAN_HPP_NOEXCEPT
22203     {
22204       return std::tie( type, descriptorCount );
22205     }
22206 #endif
22207 
22208 
22209 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22210 auto operator<=>( DescriptorPoolSize const & ) const = default;
22211 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolSize22212     bool operator==( DescriptorPoolSize const & rhs ) const VULKAN_HPP_NOEXCEPT
22213     {
22214 #if defined( VULKAN_HPP_USE_REFLECT )
22215       return this->reflect() == rhs.reflect();
22216 #else
22217       return ( type == rhs.type )
22218           && ( descriptorCount == rhs.descriptorCount );
22219 #endif
22220     }
22221 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolSize22222     bool operator!=( DescriptorPoolSize const & rhs ) const VULKAN_HPP_NOEXCEPT
22223     {
22224       return !operator==( rhs );
22225     }
22226 #endif
22227 
22228     public:
22229     VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
22230     uint32_t descriptorCount = {};
22231 
22232   };
22233 
22234   struct DescriptorPoolCreateInfo
22235   {
22236     using NativeType = VkDescriptorPoolCreateInfo;
22237 
22238     static const bool allowDuplicate = false;
22239     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo;
22240 
22241 
22242 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22243 VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {}, uint32_t maxSets_ = {}, uint32_t poolSizeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
22244     : pNext( pNext_ ), flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( poolSizeCount_ ), pPoolSizes( pPoolSizes_ )
22245     {}
22246 
22247     VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22248 
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22249     DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22250       : DescriptorPoolCreateInfo( *reinterpret_cast<DescriptorPoolCreateInfo const *>( &rhs ) )
22251     {}
22252 
22253 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22254     DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_, uint32_t maxSets_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_, const void * pNext_ = nullptr )
22255     : pNext( pNext_ ), flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( static_cast<uint32_t>( poolSizes_.size() ) ), pPoolSizes( poolSizes_.data() )
22256     {}
22257 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22258 
22259 
22260     DescriptorPoolCreateInfo & operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22261 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
22262 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22263     DescriptorPoolCreateInfo & operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22264     {
22265       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const *>( &rhs );
22266       return *this;
22267     }
22268 
22269 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22270     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
22271     {
22272       pNext = pNext_;
22273       return *this;
22274     }
22275 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22276     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
22277     {
22278       flags = flags_;
22279       return *this;
22280     }
22281 
setMaxSetsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22282     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT
22283     {
22284       maxSets = maxSets_;
22285       return *this;
22286     }
22287 
setPoolSizeCountVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22288     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT
22289     {
22290       poolSizeCount = poolSizeCount_;
22291       return *this;
22292     }
22293 
setPPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22294     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes_ ) VULKAN_HPP_NOEXCEPT
22295     {
22296       pPoolSizes = pPoolSizes_;
22297       return *this;
22298     }
22299 
22300 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22301     DescriptorPoolCreateInfo & setPoolSizes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ ) VULKAN_HPP_NOEXCEPT
22302     {
22303       poolSizeCount = static_cast<uint32_t>( poolSizes_.size() );
22304       pPoolSizes = poolSizes_.data();
22305       return *this;
22306     }
22307 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22308 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
22309 
22310 
operator VkDescriptorPoolCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22311     operator VkDescriptorPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
22312     {
22313       return *reinterpret_cast<const VkDescriptorPoolCreateInfo*>( this );
22314     }
22315 
operator VkDescriptorPoolCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22316     operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
22317     {
22318       return *reinterpret_cast<VkDescriptorPoolCreateInfo*>( this );
22319     }
22320 
22321 #if defined( VULKAN_HPP_USE_REFLECT )
22322 #if 14 <= VULKAN_HPP_CPP_VERSION
22323     auto
22324 #else
22325     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * const &>
22326 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22327       reflect() const VULKAN_HPP_NOEXCEPT
22328     {
22329       return std::tie( sType, pNext, flags, maxSets, poolSizeCount, pPoolSizes );
22330     }
22331 #endif
22332 
22333 
22334 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22335 auto operator<=>( DescriptorPoolCreateInfo const & ) const = default;
22336 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22337     bool operator==( DescriptorPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
22338     {
22339 #if defined( VULKAN_HPP_USE_REFLECT )
22340       return this->reflect() == rhs.reflect();
22341 #else
22342       return ( sType == rhs.sType )
22343           && ( pNext == rhs.pNext )
22344           && ( flags == rhs.flags )
22345           && ( maxSets == rhs.maxSets )
22346           && ( poolSizeCount == rhs.poolSizeCount )
22347           && ( pPoolSizes == rhs.pPoolSizes );
22348 #endif
22349     }
22350 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo22351     bool operator!=( DescriptorPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
22352     {
22353       return !operator==( rhs );
22354     }
22355 #endif
22356 
22357     public:
22358     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo;
22359     const void * pNext = {};
22360     VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {};
22361     uint32_t maxSets = {};
22362     uint32_t poolSizeCount = {};
22363     const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes = {};
22364 
22365   };
22366 
22367   template <>
22368   struct CppType<StructureType, StructureType::eDescriptorPoolCreateInfo>
22369   {
22370     using Type = DescriptorPoolCreateInfo;
22371   };
22372 
22373   struct DescriptorPoolInlineUniformBlockCreateInfo
22374   {
22375     using NativeType = VkDescriptorPoolInlineUniformBlockCreateInfo;
22376 
22377     static const bool allowDuplicate = false;
22378     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfo;
22379 
22380 
22381 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolInlineUniformBlockCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo22382 VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfo(uint32_t maxInlineUniformBlockBindings_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
22383     : pNext( pNext_ ), maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
22384     {}
22385 
22386     VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfo( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22387 
DescriptorPoolInlineUniformBlockCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo22388     DescriptorPoolInlineUniformBlockCreateInfo( VkDescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22389       : DescriptorPoolInlineUniformBlockCreateInfo( *reinterpret_cast<DescriptorPoolInlineUniformBlockCreateInfo const *>( &rhs ) )
22390     {}
22391 
22392 
22393     DescriptorPoolInlineUniformBlockCreateInfo & operator=( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22394 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
22395 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo22396     DescriptorPoolInlineUniformBlockCreateInfo & operator=( VkDescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22397     {
22398       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo const *>( &rhs );
22399       return *this;
22400     }
22401 
22402 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo22403     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolInlineUniformBlockCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
22404     {
22405       pNext = pNext_;
22406       return *this;
22407     }
22408 
setMaxInlineUniformBlockBindingsVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo22409     VULKAN_HPP_CONSTEXPR_14 DescriptorPoolInlineUniformBlockCreateInfo & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT
22410     {
22411       maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
22412       return *this;
22413     }
22414 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
22415 
22416 
operator VkDescriptorPoolInlineUniformBlockCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo22417     operator VkDescriptorPoolInlineUniformBlockCreateInfo const &() const VULKAN_HPP_NOEXCEPT
22418     {
22419       return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo*>( this );
22420     }
22421 
operator VkDescriptorPoolInlineUniformBlockCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo22422     operator VkDescriptorPoolInlineUniformBlockCreateInfo &() VULKAN_HPP_NOEXCEPT
22423     {
22424       return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfo*>( this );
22425     }
22426 
22427 #if defined( VULKAN_HPP_USE_REFLECT )
22428 #if 14 <= VULKAN_HPP_CPP_VERSION
22429     auto
22430 #else
22431     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
22432 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo22433       reflect() const VULKAN_HPP_NOEXCEPT
22434     {
22435       return std::tie( sType, pNext, maxInlineUniformBlockBindings );
22436     }
22437 #endif
22438 
22439 
22440 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22441 auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfo const & ) const = default;
22442 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo22443     bool operator==( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
22444     {
22445 #if defined( VULKAN_HPP_USE_REFLECT )
22446       return this->reflect() == rhs.reflect();
22447 #else
22448       return ( sType == rhs.sType )
22449           && ( pNext == rhs.pNext )
22450           && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings );
22451 #endif
22452     }
22453 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo22454     bool operator!=( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
22455     {
22456       return !operator==( rhs );
22457     }
22458 #endif
22459 
22460     public:
22461     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfo;
22462     const void * pNext = {};
22463     uint32_t maxInlineUniformBlockBindings = {};
22464 
22465   };
22466 
22467   template <>
22468   struct CppType<StructureType, StructureType::eDescriptorPoolInlineUniformBlockCreateInfo>
22469   {
22470     using Type = DescriptorPoolInlineUniformBlockCreateInfo;
22471   };
22472   using DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo;
22473 
22474   struct DescriptorSetAllocateInfo
22475   {
22476     using NativeType = VkDescriptorSetAllocateInfo;
22477 
22478     static const bool allowDuplicate = false;
22479     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo;
22480 
22481 
22482 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22483 VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {}, uint32_t descriptorSetCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
22484     : pNext( pNext_ ), descriptorPool( descriptorPool_ ), descriptorSetCount( descriptorSetCount_ ), pSetLayouts( pSetLayouts_ )
22485     {}
22486 
22487     VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22488 
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22489     DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22490       : DescriptorSetAllocateInfo( *reinterpret_cast<DescriptorSetAllocateInfo const *>( &rhs ) )
22491     {}
22492 
22493 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22494     DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_, const void * pNext_ = nullptr )
22495     : pNext( pNext_ ), descriptorPool( descriptorPool_ ), descriptorSetCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() )
22496     {}
22497 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22498 
22499 
22500     DescriptorSetAllocateInfo & operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22501 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
22502 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22503     DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22504     {
22505       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const *>( &rhs );
22506       return *this;
22507     }
22508 
22509 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22510     VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
22511     {
22512       pNext = pNext_;
22513       return *this;
22514     }
22515 
setDescriptorPoolVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22516     VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT
22517     {
22518       descriptorPool = descriptorPool_;
22519       return *this;
22520     }
22521 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22522     VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
22523     {
22524       descriptorSetCount = descriptorSetCount_;
22525       return *this;
22526     }
22527 
setPSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22528     VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
22529     {
22530       pSetLayouts = pSetLayouts_;
22531       return *this;
22532     }
22533 
22534 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22535     DescriptorSetAllocateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
22536     {
22537       descriptorSetCount = static_cast<uint32_t>( setLayouts_.size() );
22538       pSetLayouts = setLayouts_.data();
22539       return *this;
22540     }
22541 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22542 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
22543 
22544 
operator VkDescriptorSetAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22545     operator VkDescriptorSetAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
22546     {
22547       return *reinterpret_cast<const VkDescriptorSetAllocateInfo*>( this );
22548     }
22549 
operator VkDescriptorSetAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22550     operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT
22551     {
22552       return *reinterpret_cast<VkDescriptorSetAllocateInfo*>( this );
22553     }
22554 
22555 #if defined( VULKAN_HPP_USE_REFLECT )
22556 #if 14 <= VULKAN_HPP_CPP_VERSION
22557     auto
22558 #else
22559     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DescriptorPool const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * const &>
22560 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22561       reflect() const VULKAN_HPP_NOEXCEPT
22562     {
22563       return std::tie( sType, pNext, descriptorPool, descriptorSetCount, pSetLayouts );
22564     }
22565 #endif
22566 
22567 
22568 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22569 auto operator<=>( DescriptorSetAllocateInfo const & ) const = default;
22570 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22571     bool operator==( DescriptorSetAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
22572     {
22573 #if defined( VULKAN_HPP_USE_REFLECT )
22574       return this->reflect() == rhs.reflect();
22575 #else
22576       return ( sType == rhs.sType )
22577           && ( pNext == rhs.pNext )
22578           && ( descriptorPool == rhs.descriptorPool )
22579           && ( descriptorSetCount == rhs.descriptorSetCount )
22580           && ( pSetLayouts == rhs.pSetLayouts );
22581 #endif
22582     }
22583 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo22584     bool operator!=( DescriptorSetAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
22585     {
22586       return !operator==( rhs );
22587     }
22588 #endif
22589 
22590     public:
22591     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo;
22592     const void * pNext = {};
22593     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {};
22594     uint32_t descriptorSetCount = {};
22595     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts = {};
22596 
22597   };
22598 
22599   template <>
22600   struct CppType<StructureType, StructureType::eDescriptorSetAllocateInfo>
22601   {
22602     using Type = DescriptorSetAllocateInfo;
22603   };
22604 
22605   struct DescriptorSetBindingReferenceVALVE
22606   {
22607     using NativeType = VkDescriptorSetBindingReferenceVALVE;
22608 
22609     static const bool allowDuplicate = false;
22610     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetBindingReferenceVALVE;
22611 
22612 
22613 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetBindingReferenceVALVEVULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22614 VULKAN_HPP_CONSTEXPR DescriptorSetBindingReferenceVALVE(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, uint32_t binding_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
22615     : pNext( pNext_ ), descriptorSetLayout( descriptorSetLayout_ ), binding( binding_ )
22616     {}
22617 
22618     VULKAN_HPP_CONSTEXPR DescriptorSetBindingReferenceVALVE( DescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22619 
DescriptorSetBindingReferenceVALVEVULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22620     DescriptorSetBindingReferenceVALVE( VkDescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
22621       : DescriptorSetBindingReferenceVALVE( *reinterpret_cast<DescriptorSetBindingReferenceVALVE const *>( &rhs ) )
22622     {}
22623 
22624 
22625     DescriptorSetBindingReferenceVALVE & operator=( DescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22626 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
22627 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22628     DescriptorSetBindingReferenceVALVE & operator=( VkDescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
22629     {
22630       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE const *>( &rhs );
22631       return *this;
22632     }
22633 
22634 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22635     VULKAN_HPP_CONSTEXPR_14 DescriptorSetBindingReferenceVALVE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
22636     {
22637       pNext = pNext_;
22638       return *this;
22639     }
22640 
setDescriptorSetLayoutVULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22641     VULKAN_HPP_CONSTEXPR_14 DescriptorSetBindingReferenceVALVE & setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
22642     {
22643       descriptorSetLayout = descriptorSetLayout_;
22644       return *this;
22645     }
22646 
setBindingVULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22647     VULKAN_HPP_CONSTEXPR_14 DescriptorSetBindingReferenceVALVE & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
22648     {
22649       binding = binding_;
22650       return *this;
22651     }
22652 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
22653 
22654 
operator VkDescriptorSetBindingReferenceVALVE const&VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22655     operator VkDescriptorSetBindingReferenceVALVE const &() const VULKAN_HPP_NOEXCEPT
22656     {
22657       return *reinterpret_cast<const VkDescriptorSetBindingReferenceVALVE*>( this );
22658     }
22659 
operator VkDescriptorSetBindingReferenceVALVE&VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22660     operator VkDescriptorSetBindingReferenceVALVE &() VULKAN_HPP_NOEXCEPT
22661     {
22662       return *reinterpret_cast<VkDescriptorSetBindingReferenceVALVE*>( this );
22663     }
22664 
22665 #if defined( VULKAN_HPP_USE_REFLECT )
22666 #if 14 <= VULKAN_HPP_CPP_VERSION
22667     auto
22668 #else
22669     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DescriptorSetLayout const &, uint32_t const &>
22670 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22671       reflect() const VULKAN_HPP_NOEXCEPT
22672     {
22673       return std::tie( sType, pNext, descriptorSetLayout, binding );
22674     }
22675 #endif
22676 
22677 
22678 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22679 auto operator<=>( DescriptorSetBindingReferenceVALVE const & ) const = default;
22680 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22681     bool operator==( DescriptorSetBindingReferenceVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
22682     {
22683 #if defined( VULKAN_HPP_USE_REFLECT )
22684       return this->reflect() == rhs.reflect();
22685 #else
22686       return ( sType == rhs.sType )
22687           && ( pNext == rhs.pNext )
22688           && ( descriptorSetLayout == rhs.descriptorSetLayout )
22689           && ( binding == rhs.binding );
22690 #endif
22691     }
22692 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE22693     bool operator!=( DescriptorSetBindingReferenceVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
22694     {
22695       return !operator==( rhs );
22696     }
22697 #endif
22698 
22699     public:
22700     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetBindingReferenceVALVE;
22701     const void * pNext = {};
22702     VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
22703     uint32_t binding = {};
22704 
22705   };
22706 
22707   template <>
22708   struct CppType<StructureType, StructureType::eDescriptorSetBindingReferenceVALVE>
22709   {
22710     using Type = DescriptorSetBindingReferenceVALVE;
22711   };
22712 
22713   struct DescriptorSetLayoutBinding
22714   {
22715     using NativeType = VkDescriptorSetLayoutBinding;
22716 
22717 
22718 
22719 
22720 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22721 VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding(uint32_t binding_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers_ = {}) VULKAN_HPP_NOEXCEPT
22722     : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( descriptorCount_ ), stageFlags( stageFlags_ ), pImmutableSamplers( pImmutableSamplers_ )
22723     {}
22724 
22725     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22726 
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22727     DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
22728       : DescriptorSetLayoutBinding( *reinterpret_cast<DescriptorSetLayoutBinding const *>( &rhs ) )
22729     {}
22730 
22731 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22732     DescriptorSetLayoutBinding( uint32_t binding_, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ )
22733     : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( static_cast<uint32_t>( immutableSamplers_.size() ) ), stageFlags( stageFlags_ ), pImmutableSamplers( immutableSamplers_.data() )
22734     {}
22735 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22736 
22737 
22738     DescriptorSetLayoutBinding & operator=( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22739 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
22740 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22741     DescriptorSetLayoutBinding & operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
22742     {
22743       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding const *>( &rhs );
22744       return *this;
22745     }
22746 
22747 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22748     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
22749     {
22750       binding = binding_;
22751       return *this;
22752     }
22753 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22754     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
22755     {
22756       descriptorType = descriptorType_;
22757       return *this;
22758     }
22759 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22760     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
22761     {
22762       descriptorCount = descriptorCount_;
22763       return *this;
22764     }
22765 
setStageFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22766     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
22767     {
22768       stageFlags = stageFlags_;
22769       return *this;
22770     }
22771 
setPImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22772     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT
22773     {
22774       pImmutableSamplers = pImmutableSamplers_;
22775       return *this;
22776     }
22777 
22778 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22779     DescriptorSetLayoutBinding & setImmutableSamplers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ ) VULKAN_HPP_NOEXCEPT
22780     {
22781       descriptorCount = static_cast<uint32_t>( immutableSamplers_.size() );
22782       pImmutableSamplers = immutableSamplers_.data();
22783       return *this;
22784     }
22785 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22786 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
22787 
22788 
operator VkDescriptorSetLayoutBinding const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22789     operator VkDescriptorSetLayoutBinding const &() const VULKAN_HPP_NOEXCEPT
22790     {
22791       return *reinterpret_cast<const VkDescriptorSetLayoutBinding*>( this );
22792     }
22793 
operator VkDescriptorSetLayoutBinding&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22794     operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT
22795     {
22796       return *reinterpret_cast<VkDescriptorSetLayoutBinding*>( this );
22797     }
22798 
22799 #if defined( VULKAN_HPP_USE_REFLECT )
22800 #if 14 <= VULKAN_HPP_CPP_VERSION
22801     auto
22802 #else
22803     std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::DescriptorType const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, const VULKAN_HPP_NAMESPACE::Sampler * const &>
22804 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22805       reflect() const VULKAN_HPP_NOEXCEPT
22806     {
22807       return std::tie( binding, descriptorType, descriptorCount, stageFlags, pImmutableSamplers );
22808     }
22809 #endif
22810 
22811 
22812 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22813 auto operator<=>( DescriptorSetLayoutBinding const & ) const = default;
22814 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22815     bool operator==( DescriptorSetLayoutBinding const & rhs ) const VULKAN_HPP_NOEXCEPT
22816     {
22817 #if defined( VULKAN_HPP_USE_REFLECT )
22818       return this->reflect() == rhs.reflect();
22819 #else
22820       return ( binding == rhs.binding )
22821           && ( descriptorType == rhs.descriptorType )
22822           && ( descriptorCount == rhs.descriptorCount )
22823           && ( stageFlags == rhs.stageFlags )
22824           && ( pImmutableSamplers == rhs.pImmutableSamplers );
22825 #endif
22826     }
22827 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding22828     bool operator!=( DescriptorSetLayoutBinding const & rhs ) const VULKAN_HPP_NOEXCEPT
22829     {
22830       return !operator==( rhs );
22831     }
22832 #endif
22833 
22834     public:
22835     uint32_t binding = {};
22836     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
22837     uint32_t descriptorCount = {};
22838     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
22839     const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers = {};
22840 
22841   };
22842 
22843   struct DescriptorSetLayoutBindingFlagsCreateInfo
22844   {
22845     using NativeType = VkDescriptorSetLayoutBindingFlagsCreateInfo;
22846 
22847     static const bool allowDuplicate = false;
22848     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
22849 
22850 
22851 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22852 VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo(uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
22853     : pNext( pNext_ ), bindingCount( bindingCount_ ), pBindingFlags( pBindingFlags_ )
22854     {}
22855 
22856     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22857 
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22858     DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22859       : DescriptorSetLayoutBindingFlagsCreateInfo( *reinterpret_cast<DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs ) )
22860     {}
22861 
22862 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22863     DescriptorSetLayoutBindingFlagsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_, const void * pNext_ = nullptr )
22864     : pNext( pNext_ ), bindingCount( static_cast<uint32_t>( bindingFlags_.size() ) ), pBindingFlags( bindingFlags_.data() )
22865     {}
22866 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22867 
22868 
22869     DescriptorSetLayoutBindingFlagsCreateInfo & operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22870 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
22871 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22872     DescriptorSetLayoutBindingFlagsCreateInfo & operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22873     {
22874       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs );
22875       return *this;
22876     }
22877 
22878 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22879     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
22880     {
22881       pNext = pNext_;
22882       return *this;
22883     }
22884 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22885     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
22886     {
22887       bindingCount = bindingCount_;
22888       return *this;
22889     }
22890 
setPBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22891     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo & setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ ) VULKAN_HPP_NOEXCEPT
22892     {
22893       pBindingFlags = pBindingFlags_;
22894       return *this;
22895     }
22896 
22897 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22898     DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ ) VULKAN_HPP_NOEXCEPT
22899     {
22900       bindingCount = static_cast<uint32_t>( bindingFlags_.size() );
22901       pBindingFlags = bindingFlags_.data();
22902       return *this;
22903     }
22904 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22905 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
22906 
22907 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22908     operator VkDescriptorSetLayoutBindingFlagsCreateInfo const &() const VULKAN_HPP_NOEXCEPT
22909     {
22910       return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
22911     }
22912 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22913     operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT
22914     {
22915       return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
22916     }
22917 
22918 #if defined( VULKAN_HPP_USE_REFLECT )
22919 #if 14 <= VULKAN_HPP_CPP_VERSION
22920     auto
22921 #else
22922     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * const &>
22923 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22924       reflect() const VULKAN_HPP_NOEXCEPT
22925     {
22926       return std::tie( sType, pNext, bindingCount, pBindingFlags );
22927     }
22928 #endif
22929 
22930 
22931 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22932 auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const & ) const = default;
22933 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22934     bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
22935     {
22936 #if defined( VULKAN_HPP_USE_REFLECT )
22937       return this->reflect() == rhs.reflect();
22938 #else
22939       return ( sType == rhs.sType )
22940           && ( pNext == rhs.pNext )
22941           && ( bindingCount == rhs.bindingCount )
22942           && ( pBindingFlags == rhs.pBindingFlags );
22943 #endif
22944     }
22945 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo22946     bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
22947     {
22948       return !operator==( rhs );
22949     }
22950 #endif
22951 
22952     public:
22953     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
22954     const void * pNext = {};
22955     uint32_t bindingCount = {};
22956     const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags = {};
22957 
22958   };
22959 
22960   template <>
22961   struct CppType<StructureType, StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo>
22962   {
22963     using Type = DescriptorSetLayoutBindingFlagsCreateInfo;
22964   };
22965   using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
22966 
22967   struct DescriptorSetLayoutCreateInfo
22968   {
22969     using NativeType = VkDescriptorSetLayoutCreateInfo;
22970 
22971     static const bool allowDuplicate = false;
22972     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo;
22973 
22974 
22975 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo22976 VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {}, uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
22977     : pNext( pNext_ ), flags( flags_ ), bindingCount( bindingCount_ ), pBindings( pBindings_ )
22978     {}
22979 
22980     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22981 
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo22982     DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22983       : DescriptorSetLayoutCreateInfo( *reinterpret_cast<DescriptorSetLayoutCreateInfo const *>( &rhs ) )
22984     {}
22985 
22986 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo22987     DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_, const void * pNext_ = nullptr )
22988     : pNext( pNext_ ), flags( flags_ ), bindingCount( static_cast<uint32_t>( bindings_.size() ) ), pBindings( bindings_.data() )
22989     {}
22990 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22991 
22992 
22993     DescriptorSetLayoutCreateInfo & operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22994 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
22995 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo22996     DescriptorSetLayoutCreateInfo & operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22997     {
22998       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const *>( &rhs );
22999       return *this;
23000     }
23001 
23002 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo23003     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
23004     {
23005       pNext = pNext_;
23006       return *this;
23007     }
23008 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo23009     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
23010     {
23011       flags = flags_;
23012       return *this;
23013     }
23014 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo23015     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
23016     {
23017       bindingCount = bindingCount_;
23018       return *this;
23019     }
23020 
setPBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo23021     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ ) VULKAN_HPP_NOEXCEPT
23022     {
23023       pBindings = pBindings_;
23024       return *this;
23025     }
23026 
23027 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo23028     DescriptorSetLayoutCreateInfo & setBindings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ ) VULKAN_HPP_NOEXCEPT
23029     {
23030       bindingCount = static_cast<uint32_t>( bindings_.size() );
23031       pBindings = bindings_.data();
23032       return *this;
23033     }
23034 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
23035 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
23036 
23037 
operator VkDescriptorSetLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo23038     operator VkDescriptorSetLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
23039     {
23040       return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( this );
23041     }
23042 
operator VkDescriptorSetLayoutCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo23043     operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
23044     {
23045       return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>( this );
23046     }
23047 
23048 #if defined( VULKAN_HPP_USE_REFLECT )
23049 #if 14 <= VULKAN_HPP_CPP_VERSION
23050     auto
23051 #else
23052     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * const &>
23053 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo23054       reflect() const VULKAN_HPP_NOEXCEPT
23055     {
23056       return std::tie( sType, pNext, flags, bindingCount, pBindings );
23057     }
23058 #endif
23059 
23060 
23061 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23062 auto operator<=>( DescriptorSetLayoutCreateInfo const & ) const = default;
23063 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo23064     bool operator==( DescriptorSetLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
23065     {
23066 #if defined( VULKAN_HPP_USE_REFLECT )
23067       return this->reflect() == rhs.reflect();
23068 #else
23069       return ( sType == rhs.sType )
23070           && ( pNext == rhs.pNext )
23071           && ( flags == rhs.flags )
23072           && ( bindingCount == rhs.bindingCount )
23073           && ( pBindings == rhs.pBindings );
23074 #endif
23075     }
23076 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo23077     bool operator!=( DescriptorSetLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
23078     {
23079       return !operator==( rhs );
23080     }
23081 #endif
23082 
23083     public:
23084     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo;
23085     const void * pNext = {};
23086     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {};
23087     uint32_t bindingCount = {};
23088     const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings = {};
23089 
23090   };
23091 
23092   template <>
23093   struct CppType<StructureType, StructureType::eDescriptorSetLayoutCreateInfo>
23094   {
23095     using Type = DescriptorSetLayoutCreateInfo;
23096   };
23097 
23098   struct DescriptorSetLayoutHostMappingInfoVALVE
23099   {
23100     using NativeType = VkDescriptorSetLayoutHostMappingInfoVALVE;
23101 
23102     static const bool allowDuplicate = false;
23103     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutHostMappingInfoVALVE;
23104 
23105 
23106 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutHostMappingInfoVALVEVULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23107 VULKAN_HPP_CONSTEXPR DescriptorSetLayoutHostMappingInfoVALVE(size_t descriptorOffset_ = {}, uint32_t descriptorSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
23108     : pNext( pNext_ ), descriptorOffset( descriptorOffset_ ), descriptorSize( descriptorSize_ )
23109     {}
23110 
23111     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutHostMappingInfoVALVE( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23112 
DescriptorSetLayoutHostMappingInfoVALVEVULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23113     DescriptorSetLayoutHostMappingInfoVALVE( VkDescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
23114       : DescriptorSetLayoutHostMappingInfoVALVE( *reinterpret_cast<DescriptorSetLayoutHostMappingInfoVALVE const *>( &rhs ) )
23115     {}
23116 
23117 
23118     DescriptorSetLayoutHostMappingInfoVALVE & operator=( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23119 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
23120 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23121     DescriptorSetLayoutHostMappingInfoVALVE & operator=( VkDescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
23122     {
23123       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE const *>( &rhs );
23124       return *this;
23125     }
23126 
23127 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23128     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutHostMappingInfoVALVE & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
23129     {
23130       pNext = pNext_;
23131       return *this;
23132     }
23133 
setDescriptorOffsetVULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23134     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutHostMappingInfoVALVE & setDescriptorOffset( size_t descriptorOffset_ ) VULKAN_HPP_NOEXCEPT
23135     {
23136       descriptorOffset = descriptorOffset_;
23137       return *this;
23138     }
23139 
setDescriptorSizeVULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23140     VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutHostMappingInfoVALVE & setDescriptorSize( uint32_t descriptorSize_ ) VULKAN_HPP_NOEXCEPT
23141     {
23142       descriptorSize = descriptorSize_;
23143       return *this;
23144     }
23145 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
23146 
23147 
operator VkDescriptorSetLayoutHostMappingInfoVALVE const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23148     operator VkDescriptorSetLayoutHostMappingInfoVALVE const &() const VULKAN_HPP_NOEXCEPT
23149     {
23150       return *reinterpret_cast<const VkDescriptorSetLayoutHostMappingInfoVALVE*>( this );
23151     }
23152 
operator VkDescriptorSetLayoutHostMappingInfoVALVE&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23153     operator VkDescriptorSetLayoutHostMappingInfoVALVE &() VULKAN_HPP_NOEXCEPT
23154     {
23155       return *reinterpret_cast<VkDescriptorSetLayoutHostMappingInfoVALVE*>( this );
23156     }
23157 
23158 #if defined( VULKAN_HPP_USE_REFLECT )
23159 #if 14 <= VULKAN_HPP_CPP_VERSION
23160     auto
23161 #else
23162     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, size_t const &, uint32_t const &>
23163 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23164       reflect() const VULKAN_HPP_NOEXCEPT
23165     {
23166       return std::tie( sType, pNext, descriptorOffset, descriptorSize );
23167     }
23168 #endif
23169 
23170 
23171 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23172 auto operator<=>( DescriptorSetLayoutHostMappingInfoVALVE const & ) const = default;
23173 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23174     bool operator==( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
23175     {
23176 #if defined( VULKAN_HPP_USE_REFLECT )
23177       return this->reflect() == rhs.reflect();
23178 #else
23179       return ( sType == rhs.sType )
23180           && ( pNext == rhs.pNext )
23181           && ( descriptorOffset == rhs.descriptorOffset )
23182           && ( descriptorSize == rhs.descriptorSize );
23183 #endif
23184     }
23185 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE23186     bool operator!=( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
23187     {
23188       return !operator==( rhs );
23189     }
23190 #endif
23191 
23192     public:
23193     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutHostMappingInfoVALVE;
23194     void * pNext = {};
23195     size_t descriptorOffset = {};
23196     uint32_t descriptorSize = {};
23197 
23198   };
23199 
23200   template <>
23201   struct CppType<StructureType, StructureType::eDescriptorSetLayoutHostMappingInfoVALVE>
23202   {
23203     using Type = DescriptorSetLayoutHostMappingInfoVALVE;
23204   };
23205 
23206   struct DescriptorSetLayoutSupport
23207   {
23208     using NativeType = VkDescriptorSetLayoutSupport;
23209 
23210     static const bool allowDuplicate = false;
23211     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport;
23212 
23213 
23214 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport23215 VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport(VULKAN_HPP_NAMESPACE::Bool32 supported_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
23216     : pNext( pNext_ ), supported( supported_ )
23217     {}
23218 
23219     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23220 
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport23221     DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
23222       : DescriptorSetLayoutSupport( *reinterpret_cast<DescriptorSetLayoutSupport const *>( &rhs ) )
23223     {}
23224 
23225 
23226     DescriptorSetLayoutSupport & operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23227 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
23228 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport23229     DescriptorSetLayoutSupport & operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
23230     {
23231       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const *>( &rhs );
23232       return *this;
23233     }
23234 
23235 
operator VkDescriptorSetLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport23236     operator VkDescriptorSetLayoutSupport const &() const VULKAN_HPP_NOEXCEPT
23237     {
23238       return *reinterpret_cast<const VkDescriptorSetLayoutSupport*>( this );
23239     }
23240 
operator VkDescriptorSetLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport23241     operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT
23242     {
23243       return *reinterpret_cast<VkDescriptorSetLayoutSupport*>( this );
23244     }
23245 
23246 #if defined( VULKAN_HPP_USE_REFLECT )
23247 #if 14 <= VULKAN_HPP_CPP_VERSION
23248     auto
23249 #else
23250     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
23251 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport23252       reflect() const VULKAN_HPP_NOEXCEPT
23253     {
23254       return std::tie( sType, pNext, supported );
23255     }
23256 #endif
23257 
23258 
23259 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23260 auto operator<=>( DescriptorSetLayoutSupport const & ) const = default;
23261 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport23262     bool operator==( DescriptorSetLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
23263     {
23264 #if defined( VULKAN_HPP_USE_REFLECT )
23265       return this->reflect() == rhs.reflect();
23266 #else
23267       return ( sType == rhs.sType )
23268           && ( pNext == rhs.pNext )
23269           && ( supported == rhs.supported );
23270 #endif
23271     }
23272 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport23273     bool operator!=( DescriptorSetLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
23274     {
23275       return !operator==( rhs );
23276     }
23277 #endif
23278 
23279     public:
23280     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport;
23281     void * pNext = {};
23282     VULKAN_HPP_NAMESPACE::Bool32 supported = {};
23283 
23284   };
23285 
23286   template <>
23287   struct CppType<StructureType, StructureType::eDescriptorSetLayoutSupport>
23288   {
23289     using Type = DescriptorSetLayoutSupport;
23290   };
23291   using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
23292 
23293   struct DescriptorSetVariableDescriptorCountAllocateInfo
23294   {
23295     using NativeType = VkDescriptorSetVariableDescriptorCountAllocateInfo;
23296 
23297     static const bool allowDuplicate = false;
23298     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
23299 
23300 
23301 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23302 VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo(uint32_t descriptorSetCount_ = {}, const uint32_t * pDescriptorCounts_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
23303     : pNext( pNext_ ), descriptorSetCount( descriptorSetCount_ ), pDescriptorCounts( pDescriptorCounts_ )
23304     {}
23305 
23306     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23307 
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23308     DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23309       : DescriptorSetVariableDescriptorCountAllocateInfo( *reinterpret_cast<DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs ) )
23310     {}
23311 
23312 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23313     DescriptorSetVariableDescriptorCountAllocateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_, const void * pNext_ = nullptr )
23314     : pNext( pNext_ ), descriptorSetCount( static_cast<uint32_t>( descriptorCounts_.size() ) ), pDescriptorCounts( descriptorCounts_.data() )
23315     {}
23316 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
23317 
23318 
23319     DescriptorSetVariableDescriptorCountAllocateInfo & operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23320 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
23321 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23322     DescriptorSetVariableDescriptorCountAllocateInfo & operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23323     {
23324       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs );
23325       return *this;
23326     }
23327 
23328 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23329     VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
23330     {
23331       pNext = pNext_;
23332       return *this;
23333     }
23334 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23335     VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
23336     {
23337       descriptorSetCount = descriptorSetCount_;
23338       return *this;
23339     }
23340 
setPDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23341     VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t * pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT
23342     {
23343       pDescriptorCounts = pDescriptorCounts_;
23344       return *this;
23345     }
23346 
23347 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23348     DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT
23349     {
23350       descriptorSetCount = static_cast<uint32_t>( descriptorCounts_.size() );
23351       pDescriptorCounts = descriptorCounts_.data();
23352       return *this;
23353     }
23354 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
23355 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
23356 
23357 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23358     operator VkDescriptorSetVariableDescriptorCountAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
23359     {
23360       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
23361     }
23362 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23363     operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT
23364     {
23365       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
23366     }
23367 
23368 #if defined( VULKAN_HPP_USE_REFLECT )
23369 #if 14 <= VULKAN_HPP_CPP_VERSION
23370     auto
23371 #else
23372     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint32_t * const &>
23373 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23374       reflect() const VULKAN_HPP_NOEXCEPT
23375     {
23376       return std::tie( sType, pNext, descriptorSetCount, pDescriptorCounts );
23377     }
23378 #endif
23379 
23380 
23381 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23382 auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const & ) const = default;
23383 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23384     bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
23385     {
23386 #if defined( VULKAN_HPP_USE_REFLECT )
23387       return this->reflect() == rhs.reflect();
23388 #else
23389       return ( sType == rhs.sType )
23390           && ( pNext == rhs.pNext )
23391           && ( descriptorSetCount == rhs.descriptorSetCount )
23392           && ( pDescriptorCounts == rhs.pDescriptorCounts );
23393 #endif
23394     }
23395 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo23396     bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
23397     {
23398       return !operator==( rhs );
23399     }
23400 #endif
23401 
23402     public:
23403     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
23404     const void * pNext = {};
23405     uint32_t descriptorSetCount = {};
23406     const uint32_t * pDescriptorCounts = {};
23407 
23408   };
23409 
23410   template <>
23411   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo>
23412   {
23413     using Type = DescriptorSetVariableDescriptorCountAllocateInfo;
23414   };
23415   using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
23416 
23417   struct DescriptorSetVariableDescriptorCountLayoutSupport
23418   {
23419     using NativeType = VkDescriptorSetVariableDescriptorCountLayoutSupport;
23420 
23421     static const bool allowDuplicate = false;
23422     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
23423 
23424 
23425 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport23426 VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport(uint32_t maxVariableDescriptorCount_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
23427     : pNext( pNext_ ), maxVariableDescriptorCount( maxVariableDescriptorCount_ )
23428     {}
23429 
23430     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23431 
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport23432     DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
23433       : DescriptorSetVariableDescriptorCountLayoutSupport( *reinterpret_cast<DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs ) )
23434     {}
23435 
23436 
23437     DescriptorSetVariableDescriptorCountLayoutSupport & operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23438 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
23439 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport23440     DescriptorSetVariableDescriptorCountLayoutSupport & operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
23441     {
23442       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs );
23443       return *this;
23444     }
23445 
23446 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport23447     operator VkDescriptorSetVariableDescriptorCountLayoutSupport const &() const VULKAN_HPP_NOEXCEPT
23448     {
23449       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
23450     }
23451 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport23452     operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT
23453     {
23454       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
23455     }
23456 
23457 #if defined( VULKAN_HPP_USE_REFLECT )
23458 #if 14 <= VULKAN_HPP_CPP_VERSION
23459     auto
23460 #else
23461     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
23462 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport23463       reflect() const VULKAN_HPP_NOEXCEPT
23464     {
23465       return std::tie( sType, pNext, maxVariableDescriptorCount );
23466     }
23467 #endif
23468 
23469 
23470 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23471 auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const & ) const = default;
23472 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport23473     bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
23474     {
23475 #if defined( VULKAN_HPP_USE_REFLECT )
23476       return this->reflect() == rhs.reflect();
23477 #else
23478       return ( sType == rhs.sType )
23479           && ( pNext == rhs.pNext )
23480           && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount );
23481 #endif
23482     }
23483 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport23484     bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
23485     {
23486       return !operator==( rhs );
23487     }
23488 #endif
23489 
23490     public:
23491     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
23492     void * pNext = {};
23493     uint32_t maxVariableDescriptorCount = {};
23494 
23495   };
23496 
23497   template <>
23498   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport>
23499   {
23500     using Type = DescriptorSetVariableDescriptorCountLayoutSupport;
23501   };
23502   using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
23503 
23504   struct DescriptorUpdateTemplateEntry
23505   {
23506     using NativeType = VkDescriptorUpdateTemplateEntry;
23507 
23508 
23509 
23510 
23511 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23512 VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry(uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, size_t offset_ = {}, size_t stride_ = {}) VULKAN_HPP_NOEXCEPT
23513     : dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), offset( offset_ ), stride( stride_ )
23514     {}
23515 
23516     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23517 
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23518     DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
23519       : DescriptorUpdateTemplateEntry( *reinterpret_cast<DescriptorUpdateTemplateEntry const *>( &rhs ) )
23520     {}
23521 
23522 
23523     DescriptorUpdateTemplateEntry & operator=( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23524 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
23525 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23526     DescriptorUpdateTemplateEntry & operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
23527     {
23528       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry const *>( &rhs );
23529       return *this;
23530     }
23531 
23532 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setDstBindingVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23533     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
23534     {
23535       dstBinding = dstBinding_;
23536       return *this;
23537     }
23538 
setDstArrayElementVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23539     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
23540     {
23541       dstArrayElement = dstArrayElement_;
23542       return *this;
23543     }
23544 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23545     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
23546     {
23547       descriptorCount = descriptorCount_;
23548       return *this;
23549     }
23550 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23551     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
23552     {
23553       descriptorType = descriptorType_;
23554       return *this;
23555     }
23556 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23557     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT
23558     {
23559       offset = offset_;
23560       return *this;
23561     }
23562 
setStrideVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23563     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT
23564     {
23565       stride = stride_;
23566       return *this;
23567     }
23568 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
23569 
23570 
operator VkDescriptorUpdateTemplateEntry const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23571     operator VkDescriptorUpdateTemplateEntry const &() const VULKAN_HPP_NOEXCEPT
23572     {
23573       return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry*>( this );
23574     }
23575 
operator VkDescriptorUpdateTemplateEntry&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23576     operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT
23577     {
23578       return *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>( this );
23579     }
23580 
23581 #if defined( VULKAN_HPP_USE_REFLECT )
23582 #if 14 <= VULKAN_HPP_CPP_VERSION
23583     auto
23584 #else
23585     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DescriptorType const &, size_t const &, size_t const &>
23586 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23587       reflect() const VULKAN_HPP_NOEXCEPT
23588     {
23589       return std::tie( dstBinding, dstArrayElement, descriptorCount, descriptorType, offset, stride );
23590     }
23591 #endif
23592 
23593 
23594 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23595 auto operator<=>( DescriptorUpdateTemplateEntry const & ) const = default;
23596 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23597     bool operator==( DescriptorUpdateTemplateEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
23598     {
23599 #if defined( VULKAN_HPP_USE_REFLECT )
23600       return this->reflect() == rhs.reflect();
23601 #else
23602       return ( dstBinding == rhs.dstBinding )
23603           && ( dstArrayElement == rhs.dstArrayElement )
23604           && ( descriptorCount == rhs.descriptorCount )
23605           && ( descriptorType == rhs.descriptorType )
23606           && ( offset == rhs.offset )
23607           && ( stride == rhs.stride );
23608 #endif
23609     }
23610 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry23611     bool operator!=( DescriptorUpdateTemplateEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
23612     {
23613       return !operator==( rhs );
23614     }
23615 #endif
23616 
23617     public:
23618     uint32_t dstBinding = {};
23619     uint32_t dstArrayElement = {};
23620     uint32_t descriptorCount = {};
23621     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
23622     size_t offset = {};
23623     size_t stride = {};
23624 
23625   };
23626   using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
23627 
23628   struct DescriptorUpdateTemplateCreateInfo
23629   {
23630     using NativeType = VkDescriptorUpdateTemplateCreateInfo;
23631 
23632     static const bool allowDuplicate = false;
23633     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorUpdateTemplateCreateInfo;
23634 
23635 
23636 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23637 VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ = {}, uint32_t descriptorUpdateEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries_ = {}, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, uint32_t set_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
23638     : pNext( pNext_ ), flags( flags_ ), descriptorUpdateEntryCount( descriptorUpdateEntryCount_ ), pDescriptorUpdateEntries( pDescriptorUpdateEntries_ ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ )
23639     {}
23640 
23641     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23642 
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23643     DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23644       : DescriptorUpdateTemplateCreateInfo( *reinterpret_cast<DescriptorUpdateTemplateCreateInfo const *>( &rhs ) )
23645     {}
23646 
23647 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23648     DescriptorUpdateTemplateCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, uint32_t set_ = {}, const void * pNext_ = nullptr )
23649     : pNext( pNext_ ), flags( flags_ ), descriptorUpdateEntryCount( static_cast<uint32_t>( descriptorUpdateEntries_.size() ) ), pDescriptorUpdateEntries( descriptorUpdateEntries_.data() ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ )
23650     {}
23651 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
23652 
23653 
23654     DescriptorUpdateTemplateCreateInfo & operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23655 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
23656 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23657     DescriptorUpdateTemplateCreateInfo & operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23658     {
23659       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const *>( &rhs );
23660       return *this;
23661     }
23662 
23663 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23664     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
23665     {
23666       pNext = pNext_;
23667       return *this;
23668     }
23669 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23670     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
23671     {
23672       flags = flags_;
23673       return *this;
23674     }
23675 
setDescriptorUpdateEntryCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23676     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT
23677     {
23678       descriptorUpdateEntryCount = descriptorUpdateEntryCount_;
23679       return *this;
23680     }
23681 
setPDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23682     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
23683     {
23684       pDescriptorUpdateEntries = pDescriptorUpdateEntries_;
23685       return *this;
23686     }
23687 
23688 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23689     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
23690     {
23691       descriptorUpdateEntryCount = static_cast<uint32_t>( descriptorUpdateEntries_.size() );
23692       pDescriptorUpdateEntries = descriptorUpdateEntries_.data();
23693       return *this;
23694     }
23695 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
23696 
setTemplateTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23697     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
23698     {
23699       templateType = templateType_;
23700       return *this;
23701     }
23702 
setDescriptorSetLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23703     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
23704     {
23705       descriptorSetLayout = descriptorSetLayout_;
23706       return *this;
23707     }
23708 
setPipelineBindPointVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23709     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
23710     {
23711       pipelineBindPoint = pipelineBindPoint_;
23712       return *this;
23713     }
23714 
setPipelineLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23715     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT
23716     {
23717       pipelineLayout = pipelineLayout_;
23718       return *this;
23719     }
23720 
setSetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23721     VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
23722     {
23723       set = set_;
23724       return *this;
23725     }
23726 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
23727 
23728 
operator VkDescriptorUpdateTemplateCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23729     operator VkDescriptorUpdateTemplateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
23730     {
23731       return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( this );
23732     }
23733 
operator VkDescriptorUpdateTemplateCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23734     operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT
23735     {
23736       return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>( this );
23737     }
23738 
23739 #if defined( VULKAN_HPP_USE_REFLECT )
23740 #if 14 <= VULKAN_HPP_CPP_VERSION
23741     auto
23742 #else
23743     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * const &, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType const &, VULKAN_HPP_NAMESPACE::DescriptorSetLayout const &, VULKAN_HPP_NAMESPACE::PipelineBindPoint const &, VULKAN_HPP_NAMESPACE::PipelineLayout const &, uint32_t const &>
23744 #endif
reflectVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23745       reflect() const VULKAN_HPP_NOEXCEPT
23746     {
23747       return std::tie( sType, pNext, flags, descriptorUpdateEntryCount, pDescriptorUpdateEntries, templateType, descriptorSetLayout, pipelineBindPoint, pipelineLayout, set );
23748     }
23749 #endif
23750 
23751 
23752 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23753 auto operator<=>( DescriptorUpdateTemplateCreateInfo const & ) const = default;
23754 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23755     bool operator==( DescriptorUpdateTemplateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
23756     {
23757 #if defined( VULKAN_HPP_USE_REFLECT )
23758       return this->reflect() == rhs.reflect();
23759 #else
23760       return ( sType == rhs.sType )
23761           && ( pNext == rhs.pNext )
23762           && ( flags == rhs.flags )
23763           && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount )
23764           && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries )
23765           && ( templateType == rhs.templateType )
23766           && ( descriptorSetLayout == rhs.descriptorSetLayout )
23767           && ( pipelineBindPoint == rhs.pipelineBindPoint )
23768           && ( pipelineLayout == rhs.pipelineLayout )
23769           && ( set == rhs.set );
23770 #endif
23771     }
23772 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo23773     bool operator!=( DescriptorUpdateTemplateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
23774     {
23775       return !operator==( rhs );
23776     }
23777 #endif
23778 
23779     public:
23780     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo;
23781     const void * pNext = {};
23782     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {};
23783     uint32_t descriptorUpdateEntryCount = {};
23784     const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries = {};
23785     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet;
23786     VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
23787     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
23788     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {};
23789     uint32_t set = {};
23790 
23791   };
23792 
23793   template <>
23794   struct CppType<StructureType, StructureType::eDescriptorUpdateTemplateCreateInfo>
23795   {
23796     using Type = DescriptorUpdateTemplateCreateInfo;
23797   };
23798   using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
23799 
23800   struct DeviceAddressBindingCallbackDataEXT
23801   {
23802     using NativeType = VkDeviceAddressBindingCallbackDataEXT;
23803 
23804     static const bool allowDuplicate = false;
23805     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceAddressBindingCallbackDataEXT;
23806 
23807 
23808 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceAddressBindingCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23809 VULKAN_HPP_CONSTEXPR DeviceAddressBindingCallbackDataEXT(VULKAN_HPP_NAMESPACE::DeviceAddressBindingFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceAddress baseAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT bindingType_ = VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT::eBind, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
23810     : pNext( pNext_ ), flags( flags_ ), baseAddress( baseAddress_ ), size( size_ ), bindingType( bindingType_ )
23811     {}
23812 
23813     VULKAN_HPP_CONSTEXPR DeviceAddressBindingCallbackDataEXT( DeviceAddressBindingCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23814 
DeviceAddressBindingCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23815     DeviceAddressBindingCallbackDataEXT( VkDeviceAddressBindingCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23816       : DeviceAddressBindingCallbackDataEXT( *reinterpret_cast<DeviceAddressBindingCallbackDataEXT const *>( &rhs ) )
23817     {}
23818 
23819 
23820     DeviceAddressBindingCallbackDataEXT & operator=( DeviceAddressBindingCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23821 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
23822 
operator =VULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23823     DeviceAddressBindingCallbackDataEXT & operator=( VkDeviceAddressBindingCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23824     {
23825       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT const *>( &rhs );
23826       return *this;
23827     }
23828 
23829 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23830     VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
23831     {
23832       pNext = pNext_;
23833       return *this;
23834     }
23835 
setFlagsVULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23836     VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceAddressBindingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
23837     {
23838       flags = flags_;
23839       return *this;
23840     }
23841 
setBaseAddressVULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23842     VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT & setBaseAddress( VULKAN_HPP_NAMESPACE::DeviceAddress baseAddress_ ) VULKAN_HPP_NOEXCEPT
23843     {
23844       baseAddress = baseAddress_;
23845       return *this;
23846     }
23847 
setSizeVULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23848     VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
23849     {
23850       size = size_;
23851       return *this;
23852     }
23853 
setBindingTypeVULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23854     VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT & setBindingType( VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT bindingType_ ) VULKAN_HPP_NOEXCEPT
23855     {
23856       bindingType = bindingType_;
23857       return *this;
23858     }
23859 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
23860 
23861 
operator VkDeviceAddressBindingCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23862     operator VkDeviceAddressBindingCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
23863     {
23864       return *reinterpret_cast<const VkDeviceAddressBindingCallbackDataEXT*>( this );
23865     }
23866 
operator VkDeviceAddressBindingCallbackDataEXT&VULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23867     operator VkDeviceAddressBindingCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
23868     {
23869       return *reinterpret_cast<VkDeviceAddressBindingCallbackDataEXT*>( this );
23870     }
23871 
23872 #if defined( VULKAN_HPP_USE_REFLECT )
23873 #if 14 <= VULKAN_HPP_CPP_VERSION
23874     auto
23875 #else
23876     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceAddressBindingFlagsEXT const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT const &>
23877 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23878       reflect() const VULKAN_HPP_NOEXCEPT
23879     {
23880       return std::tie( sType, pNext, flags, baseAddress, size, bindingType );
23881     }
23882 #endif
23883 
23884 
23885 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23886 auto operator<=>( DeviceAddressBindingCallbackDataEXT const & ) const = default;
23887 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23888     bool operator==( DeviceAddressBindingCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
23889     {
23890 #if defined( VULKAN_HPP_USE_REFLECT )
23891       return this->reflect() == rhs.reflect();
23892 #else
23893       return ( sType == rhs.sType )
23894           && ( pNext == rhs.pNext )
23895           && ( flags == rhs.flags )
23896           && ( baseAddress == rhs.baseAddress )
23897           && ( size == rhs.size )
23898           && ( bindingType == rhs.bindingType );
23899 #endif
23900     }
23901 
operator !=VULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT23902     bool operator!=( DeviceAddressBindingCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
23903     {
23904       return !operator==( rhs );
23905     }
23906 #endif
23907 
23908     public:
23909     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceAddressBindingCallbackDataEXT;
23910     void * pNext = {};
23911     VULKAN_HPP_NAMESPACE::DeviceAddressBindingFlagsEXT flags = {};
23912     VULKAN_HPP_NAMESPACE::DeviceAddress baseAddress = {};
23913     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
23914     VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT bindingType = VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT::eBind;
23915 
23916   };
23917 
23918   template <>
23919   struct CppType<StructureType, StructureType::eDeviceAddressBindingCallbackDataEXT>
23920   {
23921     using Type = DeviceAddressBindingCallbackDataEXT;
23922   };
23923 
23924   struct DeviceBufferMemoryRequirements
23925   {
23926     using NativeType = VkDeviceBufferMemoryRequirements;
23927 
23928     static const bool allowDuplicate = false;
23929     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceBufferMemoryRequirements;
23930 
23931 
23932 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceBufferMemoryRequirementsVULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements23933 VULKAN_HPP_CONSTEXPR DeviceBufferMemoryRequirements(const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
23934     : pNext( pNext_ ), pCreateInfo( pCreateInfo_ )
23935     {}
23936 
23937     VULKAN_HPP_CONSTEXPR DeviceBufferMemoryRequirements( DeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23938 
DeviceBufferMemoryRequirementsVULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements23939     DeviceBufferMemoryRequirements( VkDeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
23940       : DeviceBufferMemoryRequirements( *reinterpret_cast<DeviceBufferMemoryRequirements const *>( &rhs ) )
23941     {}
23942 
23943 
23944     DeviceBufferMemoryRequirements & operator=( DeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23945 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
23946 
operator =VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements23947     DeviceBufferMemoryRequirements & operator=( VkDeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
23948     {
23949       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements const *>( &rhs );
23950       return *this;
23951     }
23952 
23953 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements23954     VULKAN_HPP_CONSTEXPR_14 DeviceBufferMemoryRequirements & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
23955     {
23956       pNext = pNext_;
23957       return *this;
23958     }
23959 
setPCreateInfoVULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements23960     VULKAN_HPP_CONSTEXPR_14 DeviceBufferMemoryRequirements & setPCreateInfo( const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo_ ) VULKAN_HPP_NOEXCEPT
23961     {
23962       pCreateInfo = pCreateInfo_;
23963       return *this;
23964     }
23965 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
23966 
23967 
operator VkDeviceBufferMemoryRequirements const&VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements23968     operator VkDeviceBufferMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
23969     {
23970       return *reinterpret_cast<const VkDeviceBufferMemoryRequirements*>( this );
23971     }
23972 
operator VkDeviceBufferMemoryRequirements&VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements23973     operator VkDeviceBufferMemoryRequirements &() VULKAN_HPP_NOEXCEPT
23974     {
23975       return *reinterpret_cast<VkDeviceBufferMemoryRequirements*>( this );
23976     }
23977 
23978 #if defined( VULKAN_HPP_USE_REFLECT )
23979 #if 14 <= VULKAN_HPP_CPP_VERSION
23980     auto
23981 #else
23982     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const VULKAN_HPP_NAMESPACE::BufferCreateInfo * const &>
23983 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements23984       reflect() const VULKAN_HPP_NOEXCEPT
23985     {
23986       return std::tie( sType, pNext, pCreateInfo );
23987     }
23988 #endif
23989 
23990 
23991 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23992 auto operator<=>( DeviceBufferMemoryRequirements const & ) const = default;
23993 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements23994     bool operator==( DeviceBufferMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
23995     {
23996 #if defined( VULKAN_HPP_USE_REFLECT )
23997       return this->reflect() == rhs.reflect();
23998 #else
23999       return ( sType == rhs.sType )
24000           && ( pNext == rhs.pNext )
24001           && ( pCreateInfo == rhs.pCreateInfo );
24002 #endif
24003     }
24004 
operator !=VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements24005     bool operator!=( DeviceBufferMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
24006     {
24007       return !operator==( rhs );
24008     }
24009 #endif
24010 
24011     public:
24012     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceBufferMemoryRequirements;
24013     const void * pNext = {};
24014     const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo = {};
24015 
24016   };
24017 
24018   template <>
24019   struct CppType<StructureType, StructureType::eDeviceBufferMemoryRequirements>
24020   {
24021     using Type = DeviceBufferMemoryRequirements;
24022   };
24023   using DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements;
24024 
24025   struct DeviceQueueCreateInfo
24026   {
24027     using NativeType = VkDeviceQueueCreateInfo;
24028 
24029     static const bool allowDuplicate = false;
24030     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo;
24031 
24032 
24033 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24034 VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueCount_ = {}, const float * pQueuePriorities_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
24035     : pNext( pNext_ ), flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( queueCount_ ), pQueuePriorities( pQueuePriorities_ )
24036     {}
24037 
24038     VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24039 
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24040     DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24041       : DeviceQueueCreateInfo( *reinterpret_cast<DeviceQueueCreateInfo const *>( &rhs ) )
24042     {}
24043 
24044 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24045     DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_, uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_, const void * pNext_ = nullptr )
24046     : pNext( pNext_ ), flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( static_cast<uint32_t>( queuePriorities_.size() ) ), pQueuePriorities( queuePriorities_.data() )
24047     {}
24048 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
24049 
24050 
24051     DeviceQueueCreateInfo & operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24052 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
24053 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24054     DeviceQueueCreateInfo & operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24055     {
24056       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const *>( &rhs );
24057       return *this;
24058     }
24059 
24060 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24061     VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
24062     {
24063       pNext = pNext_;
24064       return *this;
24065     }
24066 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24067     VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
24068     {
24069       flags = flags_;
24070       return *this;
24071     }
24072 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24073     VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
24074     {
24075       queueFamilyIndex = queueFamilyIndex_;
24076       return *this;
24077     }
24078 
setQueueCountVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24079     VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT
24080     {
24081       queueCount = queueCount_;
24082       return *this;
24083     }
24084 
setPQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24085     VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setPQueuePriorities( const float * pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT
24086     {
24087       pQueuePriorities = pQueuePriorities_;
24088       return *this;
24089     }
24090 
24091 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24092     DeviceQueueCreateInfo & setQueuePriorities( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT
24093     {
24094       queueCount = static_cast<uint32_t>( queuePriorities_.size() );
24095       pQueuePriorities = queuePriorities_.data();
24096       return *this;
24097     }
24098 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
24099 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
24100 
24101 
operator VkDeviceQueueCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24102     operator VkDeviceQueueCreateInfo const &() const VULKAN_HPP_NOEXCEPT
24103     {
24104       return *reinterpret_cast<const VkDeviceQueueCreateInfo*>( this );
24105     }
24106 
operator VkDeviceQueueCreateInfo&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24107     operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT
24108     {
24109       return *reinterpret_cast<VkDeviceQueueCreateInfo*>( this );
24110     }
24111 
24112 #if defined( VULKAN_HPP_USE_REFLECT )
24113 #if 14 <= VULKAN_HPP_CPP_VERSION
24114     auto
24115 #else
24116     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags const &, uint32_t const &, uint32_t const &, const float * const &>
24117 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24118       reflect() const VULKAN_HPP_NOEXCEPT
24119     {
24120       return std::tie( sType, pNext, flags, queueFamilyIndex, queueCount, pQueuePriorities );
24121     }
24122 #endif
24123 
24124 
24125 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24126 auto operator<=>( DeviceQueueCreateInfo const & ) const = default;
24127 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24128     bool operator==( DeviceQueueCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
24129     {
24130 #if defined( VULKAN_HPP_USE_REFLECT )
24131       return this->reflect() == rhs.reflect();
24132 #else
24133       return ( sType == rhs.sType )
24134           && ( pNext == rhs.pNext )
24135           && ( flags == rhs.flags )
24136           && ( queueFamilyIndex == rhs.queueFamilyIndex )
24137           && ( queueCount == rhs.queueCount )
24138           && ( pQueuePriorities == rhs.pQueuePriorities );
24139 #endif
24140     }
24141 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo24142     bool operator!=( DeviceQueueCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
24143     {
24144       return !operator==( rhs );
24145     }
24146 #endif
24147 
24148     public:
24149     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo;
24150     const void * pNext = {};
24151     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
24152     uint32_t queueFamilyIndex = {};
24153     uint32_t queueCount = {};
24154     const float * pQueuePriorities = {};
24155 
24156   };
24157 
24158   template <>
24159   struct CppType<StructureType, StructureType::eDeviceQueueCreateInfo>
24160   {
24161     using Type = DeviceQueueCreateInfo;
24162   };
24163 
24164   struct PhysicalDeviceFeatures
24165   {
24166     using NativeType = VkPhysicalDeviceFeatures;
24167 
24168 
24169 
24170 
24171 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24172 VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ = {}, VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 logicOp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ = {}, VULKAN_HPP_NAMESPACE::Bool32 wideLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 largePoints_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ = {}, VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ = {}, VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ = {}) VULKAN_HPP_NOEXCEPT
24173     : robustBufferAccess( robustBufferAccess_ ), fullDrawIndexUint32( fullDrawIndexUint32_ ), imageCubeArray( imageCubeArray_ ), independentBlend( independentBlend_ ), geometryShader( geometryShader_ ), tessellationShader( tessellationShader_ ), sampleRateShading( sampleRateShading_ ), dualSrcBlend( dualSrcBlend_ ), logicOp( logicOp_ ), multiDrawIndirect( multiDrawIndirect_ ), drawIndirectFirstInstance( drawIndirectFirstInstance_ ), depthClamp( depthClamp_ ), depthBiasClamp( depthBiasClamp_ ), fillModeNonSolid( fillModeNonSolid_ ), depthBounds( depthBounds_ ), wideLines( wideLines_ ), largePoints( largePoints_ ), alphaToOne( alphaToOne_ ), multiViewport( multiViewport_ ), samplerAnisotropy( samplerAnisotropy_ ), textureCompressionETC2( textureCompressionETC2_ ), textureCompressionASTC_LDR( textureCompressionASTC_LDR_ ), textureCompressionBC( textureCompressionBC_ ), occlusionQueryPrecise( occlusionQueryPrecise_ ), pipelineStatisticsQuery( pipelineStatisticsQuery_ ), vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ ), fragmentStoresAndAtomics( fragmentStoresAndAtomics_ ), shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ ), shaderImageGatherExtended( shaderImageGatherExtended_ ), shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ ), shaderStorageImageMultisample( shaderStorageImageMultisample_ ), shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ ), shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ ), shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ ), shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ ), shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ ), shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ ), shaderClipDistance( shaderClipDistance_ ), shaderCullDistance( shaderCullDistance_ ), shaderFloat64( shaderFloat64_ ), shaderInt64( shaderInt64_ ), shaderInt16( shaderInt16_ ), shaderResourceResidency( shaderResourceResidency_ ), shaderResourceMinLod( shaderResourceMinLod_ ), sparseBinding( sparseBinding_ ), sparseResidencyBuffer( sparseResidencyBuffer_ ), sparseResidencyImage2D( sparseResidencyImage2D_ ), sparseResidencyImage3D( sparseResidencyImage3D_ ), sparseResidency2Samples( sparseResidency2Samples_ ), sparseResidency4Samples( sparseResidency4Samples_ ), sparseResidency8Samples( sparseResidency8Samples_ ), sparseResidency16Samples( sparseResidency16Samples_ ), sparseResidencyAliased( sparseResidencyAliased_ ), variableMultisampleRate( variableMultisampleRate_ ), inheritedQueries( inheritedQueries_ )
24174     {}
24175 
24176     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24177 
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24178     PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
24179       : PhysicalDeviceFeatures( *reinterpret_cast<PhysicalDeviceFeatures const *>( &rhs ) )
24180     {}
24181 
24182 
24183     PhysicalDeviceFeatures & operator=( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24184 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
24185 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24186     PhysicalDeviceFeatures & operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
24187     {
24188       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const *>( &rhs );
24189       return *this;
24190     }
24191 
24192 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24193     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
24194     {
24195       robustBufferAccess = robustBufferAccess_;
24196       return *this;
24197     }
24198 
setFullDrawIndexUint32VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24199     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT
24200     {
24201       fullDrawIndexUint32 = fullDrawIndexUint32_;
24202       return *this;
24203     }
24204 
setImageCubeArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24205     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT
24206     {
24207       imageCubeArray = imageCubeArray_;
24208       return *this;
24209     }
24210 
setIndependentBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24211     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT
24212     {
24213       independentBlend = independentBlend_;
24214       return *this;
24215     }
24216 
setGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24217     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT
24218     {
24219       geometryShader = geometryShader_;
24220       return *this;
24221     }
24222 
setTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24223     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT
24224     {
24225       tessellationShader = tessellationShader_;
24226       return *this;
24227     }
24228 
setSampleRateShadingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24229     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT
24230     {
24231       sampleRateShading = sampleRateShading_;
24232       return *this;
24233     }
24234 
setDualSrcBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24235     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT
24236     {
24237       dualSrcBlend = dualSrcBlend_;
24238       return *this;
24239     }
24240 
setLogicOpVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24241     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT
24242     {
24243       logicOp = logicOp_;
24244       return *this;
24245     }
24246 
setMultiDrawIndirectVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24247     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT
24248     {
24249       multiDrawIndirect = multiDrawIndirect_;
24250       return *this;
24251     }
24252 
setDrawIndirectFirstInstanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24253     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT
24254     {
24255       drawIndirectFirstInstance = drawIndirectFirstInstance_;
24256       return *this;
24257     }
24258 
setDepthClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24259     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT
24260     {
24261       depthClamp = depthClamp_;
24262       return *this;
24263     }
24264 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24265     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
24266     {
24267       depthBiasClamp = depthBiasClamp_;
24268       return *this;
24269     }
24270 
setFillModeNonSolidVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24271     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT
24272     {
24273       fillModeNonSolid = fillModeNonSolid_;
24274       return *this;
24275     }
24276 
setDepthBoundsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24277     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT
24278     {
24279       depthBounds = depthBounds_;
24280       return *this;
24281     }
24282 
setWideLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24283     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT
24284     {
24285       wideLines = wideLines_;
24286       return *this;
24287     }
24288 
setLargePointsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24289     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT
24290     {
24291       largePoints = largePoints_;
24292       return *this;
24293     }
24294 
setAlphaToOneVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24295     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT
24296     {
24297       alphaToOne = alphaToOne_;
24298       return *this;
24299     }
24300 
setMultiViewportVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24301     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT
24302     {
24303       multiViewport = multiViewport_;
24304       return *this;
24305     }
24306 
setSamplerAnisotropyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24307     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT
24308     {
24309       samplerAnisotropy = samplerAnisotropy_;
24310       return *this;
24311     }
24312 
setTextureCompressionETC2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24313     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT
24314     {
24315       textureCompressionETC2 = textureCompressionETC2_;
24316       return *this;
24317     }
24318 
setTextureCompressionASTC_LDRVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24319     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT
24320     {
24321       textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
24322       return *this;
24323     }
24324 
setTextureCompressionBCVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24325     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT
24326     {
24327       textureCompressionBC = textureCompressionBC_;
24328       return *this;
24329     }
24330 
setOcclusionQueryPreciseVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24331     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT
24332     {
24333       occlusionQueryPrecise = occlusionQueryPrecise_;
24334       return *this;
24335     }
24336 
setPipelineStatisticsQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24337     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT
24338     {
24339       pipelineStatisticsQuery = pipelineStatisticsQuery_;
24340       return *this;
24341     }
24342 
setVertexPipelineStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24343     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
24344     {
24345       vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
24346       return *this;
24347     }
24348 
setFragmentStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24349     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
24350     {
24351       fragmentStoresAndAtomics = fragmentStoresAndAtomics_;
24352       return *this;
24353     }
24354 
setShaderTessellationAndGeometryPointSizeVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24355     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT
24356     {
24357       shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_;
24358       return *this;
24359     }
24360 
setShaderImageGatherExtendedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24361     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT
24362     {
24363       shaderImageGatherExtended = shaderImageGatherExtended_;
24364       return *this;
24365     }
24366 
setShaderStorageImageExtendedFormatsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24367     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT
24368     {
24369       shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
24370       return *this;
24371     }
24372 
setShaderStorageImageMultisampleVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24373     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT
24374     {
24375       shaderStorageImageMultisample = shaderStorageImageMultisample_;
24376       return *this;
24377     }
24378 
setShaderStorageImageReadWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24379     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
24380     {
24381       shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
24382       return *this;
24383     }
24384 
setShaderStorageImageWriteWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24385     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
24386     {
24387       shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
24388       return *this;
24389     }
24390 
setShaderUniformBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24391     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
24392     {
24393       shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_;
24394       return *this;
24395     }
24396 
setShaderSampledImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24397     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
24398     {
24399       shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_;
24400       return *this;
24401     }
24402 
setShaderStorageBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24403     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
24404     {
24405       shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_;
24406       return *this;
24407     }
24408 
setShaderStorageImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24409     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
24410     {
24411       shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_;
24412       return *this;
24413     }
24414 
setShaderClipDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24415     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT
24416     {
24417       shaderClipDistance = shaderClipDistance_;
24418       return *this;
24419     }
24420 
setShaderCullDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24421     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT
24422     {
24423       shaderCullDistance = shaderCullDistance_;
24424       return *this;
24425     }
24426 
setShaderFloat64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24427     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT
24428     {
24429       shaderFloat64 = shaderFloat64_;
24430       return *this;
24431     }
24432 
setShaderInt64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24433     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT
24434     {
24435       shaderInt64 = shaderInt64_;
24436       return *this;
24437     }
24438 
setShaderInt16VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24439     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT
24440     {
24441       shaderInt16 = shaderInt16_;
24442       return *this;
24443     }
24444 
setShaderResourceResidencyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24445     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT
24446     {
24447       shaderResourceResidency = shaderResourceResidency_;
24448       return *this;
24449     }
24450 
setShaderResourceMinLodVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24451     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT
24452     {
24453       shaderResourceMinLod = shaderResourceMinLod_;
24454       return *this;
24455     }
24456 
setSparseBindingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24457     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT
24458     {
24459       sparseBinding = sparseBinding_;
24460       return *this;
24461     }
24462 
setSparseResidencyBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24463     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT
24464     {
24465       sparseResidencyBuffer = sparseResidencyBuffer_;
24466       return *this;
24467     }
24468 
setSparseResidencyImage2DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24469     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT
24470     {
24471       sparseResidencyImage2D = sparseResidencyImage2D_;
24472       return *this;
24473     }
24474 
setSparseResidencyImage3DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24475     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT
24476     {
24477       sparseResidencyImage3D = sparseResidencyImage3D_;
24478       return *this;
24479     }
24480 
setSparseResidency2SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24481     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT
24482     {
24483       sparseResidency2Samples = sparseResidency2Samples_;
24484       return *this;
24485     }
24486 
setSparseResidency4SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24487     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT
24488     {
24489       sparseResidency4Samples = sparseResidency4Samples_;
24490       return *this;
24491     }
24492 
setSparseResidency8SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24493     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT
24494     {
24495       sparseResidency8Samples = sparseResidency8Samples_;
24496       return *this;
24497     }
24498 
setSparseResidency16SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24499     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT
24500     {
24501       sparseResidency16Samples = sparseResidency16Samples_;
24502       return *this;
24503     }
24504 
setSparseResidencyAliasedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24505     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT
24506     {
24507       sparseResidencyAliased = sparseResidencyAliased_;
24508       return *this;
24509     }
24510 
setVariableMultisampleRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24511     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT
24512     {
24513       variableMultisampleRate = variableMultisampleRate_;
24514       return *this;
24515     }
24516 
setInheritedQueriesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24517     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT
24518     {
24519       inheritedQueries = inheritedQueries_;
24520       return *this;
24521     }
24522 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
24523 
24524 
operator VkPhysicalDeviceFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24525     operator VkPhysicalDeviceFeatures const &() const VULKAN_HPP_NOEXCEPT
24526     {
24527       return *reinterpret_cast<const VkPhysicalDeviceFeatures*>( this );
24528     }
24529 
operator VkPhysicalDeviceFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24530     operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT
24531     {
24532       return *reinterpret_cast<VkPhysicalDeviceFeatures*>( this );
24533     }
24534 
24535 #if defined( VULKAN_HPP_USE_REFLECT )
24536 #if 14 <= VULKAN_HPP_CPP_VERSION
24537     auto
24538 #else
24539     std::tuple<VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
24540 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24541       reflect() const VULKAN_HPP_NOEXCEPT
24542     {
24543       return std::tie( robustBufferAccess, fullDrawIndexUint32, imageCubeArray, independentBlend, geometryShader, tessellationShader, sampleRateShading, dualSrcBlend, logicOp, multiDrawIndirect, drawIndirectFirstInstance, depthClamp, depthBiasClamp, fillModeNonSolid, depthBounds, wideLines, largePoints, alphaToOne, multiViewport, samplerAnisotropy, textureCompressionETC2, textureCompressionASTC_LDR, textureCompressionBC, occlusionQueryPrecise, pipelineStatisticsQuery, vertexPipelineStoresAndAtomics, fragmentStoresAndAtomics, shaderTessellationAndGeometryPointSize, shaderImageGatherExtended, shaderStorageImageExtendedFormats, shaderStorageImageMultisample, shaderStorageImageReadWithoutFormat, shaderStorageImageWriteWithoutFormat, shaderUniformBufferArrayDynamicIndexing, shaderSampledImageArrayDynamicIndexing, shaderStorageBufferArrayDynamicIndexing, shaderStorageImageArrayDynamicIndexing, shaderClipDistance, shaderCullDistance, shaderFloat64, shaderInt64, shaderInt16, shaderResourceResidency, shaderResourceMinLod, sparseBinding, sparseResidencyBuffer, sparseResidencyImage2D, sparseResidencyImage3D, sparseResidency2Samples, sparseResidency4Samples, sparseResidency8Samples, sparseResidency16Samples, sparseResidencyAliased, variableMultisampleRate, inheritedQueries );
24544     }
24545 #endif
24546 
24547 
24548 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24549 auto operator<=>( PhysicalDeviceFeatures const & ) const = default;
24550 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24551     bool operator==( PhysicalDeviceFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
24552     {
24553 #if defined( VULKAN_HPP_USE_REFLECT )
24554       return this->reflect() == rhs.reflect();
24555 #else
24556       return ( robustBufferAccess == rhs.robustBufferAccess )
24557           && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 )
24558           && ( imageCubeArray == rhs.imageCubeArray )
24559           && ( independentBlend == rhs.independentBlend )
24560           && ( geometryShader == rhs.geometryShader )
24561           && ( tessellationShader == rhs.tessellationShader )
24562           && ( sampleRateShading == rhs.sampleRateShading )
24563           && ( dualSrcBlend == rhs.dualSrcBlend )
24564           && ( logicOp == rhs.logicOp )
24565           && ( multiDrawIndirect == rhs.multiDrawIndirect )
24566           && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance )
24567           && ( depthClamp == rhs.depthClamp )
24568           && ( depthBiasClamp == rhs.depthBiasClamp )
24569           && ( fillModeNonSolid == rhs.fillModeNonSolid )
24570           && ( depthBounds == rhs.depthBounds )
24571           && ( wideLines == rhs.wideLines )
24572           && ( largePoints == rhs.largePoints )
24573           && ( alphaToOne == rhs.alphaToOne )
24574           && ( multiViewport == rhs.multiViewport )
24575           && ( samplerAnisotropy == rhs.samplerAnisotropy )
24576           && ( textureCompressionETC2 == rhs.textureCompressionETC2 )
24577           && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR )
24578           && ( textureCompressionBC == rhs.textureCompressionBC )
24579           && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise )
24580           && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery )
24581           && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics )
24582           && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics )
24583           && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize )
24584           && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended )
24585           && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats )
24586           && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample )
24587           && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat )
24588           && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat )
24589           && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing )
24590           && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing )
24591           && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing )
24592           && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing )
24593           && ( shaderClipDistance == rhs.shaderClipDistance )
24594           && ( shaderCullDistance == rhs.shaderCullDistance )
24595           && ( shaderFloat64 == rhs.shaderFloat64 )
24596           && ( shaderInt64 == rhs.shaderInt64 )
24597           && ( shaderInt16 == rhs.shaderInt16 )
24598           && ( shaderResourceResidency == rhs.shaderResourceResidency )
24599           && ( shaderResourceMinLod == rhs.shaderResourceMinLod )
24600           && ( sparseBinding == rhs.sparseBinding )
24601           && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer )
24602           && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D )
24603           && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D )
24604           && ( sparseResidency2Samples == rhs.sparseResidency2Samples )
24605           && ( sparseResidency4Samples == rhs.sparseResidency4Samples )
24606           && ( sparseResidency8Samples == rhs.sparseResidency8Samples )
24607           && ( sparseResidency16Samples == rhs.sparseResidency16Samples )
24608           && ( sparseResidencyAliased == rhs.sparseResidencyAliased )
24609           && ( variableMultisampleRate == rhs.variableMultisampleRate )
24610           && ( inheritedQueries == rhs.inheritedQueries );
24611 #endif
24612     }
24613 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures24614     bool operator!=( PhysicalDeviceFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
24615     {
24616       return !operator==( rhs );
24617     }
24618 #endif
24619 
24620     public:
24621     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {};
24622     VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {};
24623     VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {};
24624     VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {};
24625     VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {};
24626     VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {};
24627     VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {};
24628     VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {};
24629     VULKAN_HPP_NAMESPACE::Bool32 logicOp = {};
24630     VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {};
24631     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {};
24632     VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {};
24633     VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {};
24634     VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {};
24635     VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {};
24636     VULKAN_HPP_NAMESPACE::Bool32 wideLines = {};
24637     VULKAN_HPP_NAMESPACE::Bool32 largePoints = {};
24638     VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {};
24639     VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {};
24640     VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {};
24641     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {};
24642     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {};
24643     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {};
24644     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {};
24645     VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {};
24646     VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {};
24647     VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {};
24648     VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {};
24649     VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {};
24650     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {};
24651     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {};
24652     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {};
24653     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {};
24654     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {};
24655     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {};
24656     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {};
24657     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {};
24658     VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {};
24659     VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {};
24660     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {};
24661     VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {};
24662     VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {};
24663     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {};
24664     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {};
24665     VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {};
24666     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {};
24667     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {};
24668     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {};
24669     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {};
24670     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {};
24671     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {};
24672     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {};
24673     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {};
24674     VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {};
24675     VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {};
24676 
24677   };
24678 
24679   struct DeviceCreateInfo
24680   {
24681     using NativeType = VkDeviceCreateInfo;
24682 
24683     static const bool allowDuplicate = false;
24684     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo;
24685 
24686 
24687 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo24688 VULKAN_HPP_CONSTEXPR DeviceCreateInfo(VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ = {}, uint32_t queueCreateInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos_ = {}, uint32_t enabledLayerCount_ = {}, const char * const * ppEnabledLayerNames_ = {}, uint32_t enabledExtensionCount_ = {}, const char * const * ppEnabledExtensionNames_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
24689     : pNext( pNext_ ), flags( flags_ ), queueCreateInfoCount( queueCreateInfoCount_ ), pQueueCreateInfos( pQueueCreateInfos_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ ), pEnabledFeatures( pEnabledFeatures_ )
24690     {}
24691 
24692     VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24693 
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo24694     DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24695       : DeviceCreateInfo( *reinterpret_cast<DeviceCreateInfo const *>( &rhs ) )
24696     {}
24697 
24698 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo24699     DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ = {}, const void * pNext_ = nullptr )
24700     : pNext( pNext_ ), flags( flags_ ), queueCreateInfoCount( static_cast<uint32_t>( queueCreateInfos_.size() ) ), pQueueCreateInfos( queueCreateInfos_.data() ), enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() ), pEnabledFeatures( pEnabledFeatures_ )
24701     {}
24702 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
24703 
24704 
24705     DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24706 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
24707 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo24708     DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24709     {
24710       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceCreateInfo const *>( &rhs );
24711       return *this;
24712     }
24713 
24714 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceCreateInfo24715     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
24716     {
24717       pNext = pNext_;
24718       return *this;
24719     }
24720 
setFlagsVULKAN_HPP_NAMESPACE::DeviceCreateInfo24721     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
24722     {
24723       flags = flags_;
24724       return *this;
24725     }
24726 
setQueueCreateInfoCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo24727     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT
24728     {
24729       queueCreateInfoCount = queueCreateInfoCount_;
24730       return *this;
24731     }
24732 
setPQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo24733     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
24734     {
24735       pQueueCreateInfos = pQueueCreateInfos_;
24736       return *this;
24737     }
24738 
24739 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo24740     DeviceCreateInfo & setQueueCreateInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
24741     {
24742       queueCreateInfoCount = static_cast<uint32_t>( queueCreateInfos_.size() );
24743       pQueueCreateInfos = queueCreateInfos_.data();
24744       return *this;
24745     }
24746 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
24747 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo24748     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
24749     {
24750       enabledLayerCount = enabledLayerCount_;
24751       return *this;
24752     }
24753 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo24754     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPpEnabledLayerNames( const char * const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
24755     {
24756       ppEnabledLayerNames = ppEnabledLayerNames_;
24757       return *this;
24758     }
24759 
24760 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo24761     DeviceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
24762     {
24763       enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
24764       ppEnabledLayerNames = pEnabledLayerNames_.data();
24765       return *this;
24766     }
24767 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
24768 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo24769     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
24770     {
24771       enabledExtensionCount = enabledExtensionCount_;
24772       return *this;
24773     }
24774 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo24775     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPpEnabledExtensionNames( const char * const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
24776     {
24777       ppEnabledExtensionNames = ppEnabledExtensionNames_;
24778       return *this;
24779     }
24780 
24781 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo24782     DeviceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
24783     {
24784       enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
24785       ppEnabledExtensionNames = pEnabledExtensionNames_.data();
24786       return *this;
24787     }
24788 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
24789 
setPEnabledFeaturesVULKAN_HPP_NAMESPACE::DeviceCreateInfo24790     VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT
24791     {
24792       pEnabledFeatures = pEnabledFeatures_;
24793       return *this;
24794     }
24795 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
24796 
24797 
operator VkDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceCreateInfo24798     operator VkDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
24799     {
24800       return *reinterpret_cast<const VkDeviceCreateInfo*>( this );
24801     }
24802 
operator VkDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceCreateInfo24803     operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
24804     {
24805       return *reinterpret_cast<VkDeviceCreateInfo*>( this );
24806     }
24807 
24808 #if defined( VULKAN_HPP_USE_REFLECT )
24809 #if 14 <= VULKAN_HPP_CPP_VERSION
24810     auto
24811 #else
24812     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * const &, uint32_t const &, const char * const * const &, uint32_t const &, const char * const * const &, const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * const &>
24813 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceCreateInfo24814       reflect() const VULKAN_HPP_NOEXCEPT
24815     {
24816       return std::tie( sType, pNext, flags, queueCreateInfoCount, pQueueCreateInfos, enabledLayerCount, ppEnabledLayerNames, enabledExtensionCount, ppEnabledExtensionNames, pEnabledFeatures );
24817     }
24818 #endif
24819 
24820 
24821 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::DeviceCreateInfo24822     std::strong_ordering operator<=>( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
24823     {
24824       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
24825       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
24826       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
24827       if ( auto cmp = queueCreateInfoCount <=> rhs.queueCreateInfoCount; cmp != 0 ) return cmp;
24828       if ( auto cmp = pQueueCreateInfos <=> rhs.pQueueCreateInfos; cmp != 0 ) return cmp;
24829       if ( auto cmp = enabledLayerCount <=> rhs.enabledLayerCount; cmp != 0 ) return cmp;
24830       for ( size_t i = 0; i < enabledLayerCount; ++i )
24831       {
24832         if ( ppEnabledLayerNames[i] != rhs.ppEnabledLayerNames[i] )
24833           if ( auto cmp = strcmp( ppEnabledLayerNames[i], rhs.ppEnabledLayerNames[i] ); cmp != 0 )
24834             return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
24835       }
24836       if ( auto cmp = enabledExtensionCount <=> rhs.enabledExtensionCount; cmp != 0 ) return cmp;
24837       for ( size_t i = 0; i < enabledExtensionCount; ++i )
24838       {
24839         if ( ppEnabledExtensionNames[i] != rhs.ppEnabledExtensionNames[i] )
24840           if ( auto cmp = strcmp( ppEnabledExtensionNames[i], rhs.ppEnabledExtensionNames[i] ); cmp != 0 )
24841             return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
24842       }
24843       if ( auto cmp = pEnabledFeatures <=> rhs.pEnabledFeatures; cmp != 0 ) return cmp;
24844 
24845       return std::strong_ordering::equivalent;
24846     }
24847 #endif
24848 
operator ==VULKAN_HPP_NAMESPACE::DeviceCreateInfo24849     bool operator==( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
24850     {
24851       return ( sType == rhs.sType )
24852           && ( pNext == rhs.pNext )
24853           && ( flags == rhs.flags )
24854           && ( queueCreateInfoCount == rhs.queueCreateInfoCount )
24855           && ( pQueueCreateInfos == rhs.pQueueCreateInfos )
24856           && ( enabledLayerCount == rhs.enabledLayerCount )
24857           && std::equal( ppEnabledLayerNames, ppEnabledLayerNames + enabledLayerCount, rhs.ppEnabledLayerNames, []( char const * left, char const * right ) { return ( left == right ) || ( strcmp( left, right ) == 0 ); } )
24858           && ( enabledExtensionCount == rhs.enabledExtensionCount )
24859           && std::equal( ppEnabledExtensionNames, ppEnabledExtensionNames + enabledExtensionCount, rhs.ppEnabledExtensionNames, []( char const * left, char const * right ) { return ( left == right ) || ( strcmp( left, right ) == 0 ); } )
24860           && ( pEnabledFeatures == rhs.pEnabledFeatures );
24861     }
24862 
operator !=VULKAN_HPP_NAMESPACE::DeviceCreateInfo24863     bool operator!=( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
24864     {
24865       return !operator==( rhs );
24866     }
24867 
24868     public:
24869     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo;
24870     const void * pNext = {};
24871     VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {};
24872     uint32_t queueCreateInfoCount = {};
24873     const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos = {};
24874     uint32_t enabledLayerCount = {};
24875     const char * const * ppEnabledLayerNames = {};
24876     uint32_t enabledExtensionCount = {};
24877     const char * const * ppEnabledExtensionNames = {};
24878     const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures = {};
24879 
24880   };
24881 
24882   template <>
24883   struct CppType<StructureType, StructureType::eDeviceCreateInfo>
24884   {
24885     using Type = DeviceCreateInfo;
24886   };
24887 
24888   struct DeviceDeviceMemoryReportCreateInfoEXT
24889   {
24890     using NativeType = VkDeviceDeviceMemoryReportCreateInfoEXT;
24891 
24892     static const bool allowDuplicate = true;
24893     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
24894 
24895 
24896 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceDeviceMemoryReportCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24897 VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {}, void * pUserData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
24898     : pNext( pNext_ ), flags( flags_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ )
24899     {}
24900 
24901     VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24902 
DeviceDeviceMemoryReportCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24903     DeviceDeviceMemoryReportCreateInfoEXT( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24904       : DeviceDeviceMemoryReportCreateInfoEXT( *reinterpret_cast<DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs ) )
24905     {}
24906 
24907 
24908     DeviceDeviceMemoryReportCreateInfoEXT & operator=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24909 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
24910 
operator =VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24911     DeviceDeviceMemoryReportCreateInfoEXT & operator=( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24912     {
24913       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs );
24914       return *this;
24915     }
24916 
24917 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24918     VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
24919     {
24920       pNext = pNext_;
24921       return *this;
24922     }
24923 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24924     VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
24925     {
24926       flags = flags_;
24927       return *this;
24928     }
24929 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24930     VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
24931     {
24932       pfnUserCallback = pfnUserCallback_;
24933       return *this;
24934     }
24935 
setPUserDataVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24936     VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
24937     {
24938       pUserData = pUserData_;
24939       return *this;
24940     }
24941 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
24942 
24943 
operator VkDeviceDeviceMemoryReportCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24944     operator VkDeviceDeviceMemoryReportCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
24945     {
24946       return *reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>( this );
24947     }
24948 
operator VkDeviceDeviceMemoryReportCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24949     operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
24950     {
24951       return *reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>( this );
24952     }
24953 
24954 #if defined( VULKAN_HPP_USE_REFLECT )
24955 #if 14 <= VULKAN_HPP_CPP_VERSION
24956     auto
24957 #else
24958     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT const &, PFN_vkDeviceMemoryReportCallbackEXT const &, void * const &>
24959 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24960       reflect() const VULKAN_HPP_NOEXCEPT
24961     {
24962       return std::tie( sType, pNext, flags, pfnUserCallback, pUserData );
24963     }
24964 #endif
24965 
24966 
24967 
24968 
24969 
operator ==VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24970     bool operator==( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
24971     {
24972 #if defined( VULKAN_HPP_USE_REFLECT )
24973       return this->reflect() == rhs.reflect();
24974 #else
24975       return ( sType == rhs.sType )
24976           && ( pNext == rhs.pNext )
24977           && ( flags == rhs.flags )
24978           && ( pfnUserCallback == rhs.pfnUserCallback )
24979           && ( pUserData == rhs.pUserData );
24980 #endif
24981     }
24982 
operator !=VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT24983     bool operator!=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
24984     {
24985       return !operator==( rhs );
24986     }
24987 
24988     public:
24989     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
24990     const void * pNext = {};
24991     VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
24992     PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback = {};
24993     void * pUserData = {};
24994 
24995   };
24996 
24997   template <>
24998   struct CppType<StructureType, StructureType::eDeviceDeviceMemoryReportCreateInfoEXT>
24999   {
25000     using Type = DeviceDeviceMemoryReportCreateInfoEXT;
25001   };
25002 
25003   struct DeviceDiagnosticsConfigCreateInfoNV
25004   {
25005     using NativeType = VkDeviceDiagnosticsConfigCreateInfoNV;
25006 
25007     static const bool allowDuplicate = false;
25008     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
25009 
25010 
25011 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV25012 VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
25013     : pNext( pNext_ ), flags( flags_ )
25014     {}
25015 
25016     VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25017 
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV25018     DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
25019       : DeviceDiagnosticsConfigCreateInfoNV( *reinterpret_cast<DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs ) )
25020     {}
25021 
25022 
25023     DeviceDiagnosticsConfigCreateInfoNV & operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25024 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
25025 
operator =VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV25026     DeviceDiagnosticsConfigCreateInfoNV & operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
25027     {
25028       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs );
25029       return *this;
25030     }
25031 
25032 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV25033     VULKAN_HPP_CONSTEXPR_14 DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
25034     {
25035       pNext = pNext_;
25036       return *this;
25037     }
25038 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV25039     VULKAN_HPP_CONSTEXPR_14 DeviceDiagnosticsConfigCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
25040     {
25041       flags = flags_;
25042       return *this;
25043     }
25044 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
25045 
25046 
operator VkDeviceDiagnosticsConfigCreateInfoNV const&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV25047     operator VkDeviceDiagnosticsConfigCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
25048     {
25049       return *reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
25050     }
25051 
operator VkDeviceDiagnosticsConfigCreateInfoNV&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV25052     operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT
25053     {
25054       return *reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
25055     }
25056 
25057 #if defined( VULKAN_HPP_USE_REFLECT )
25058 #if 14 <= VULKAN_HPP_CPP_VERSION
25059     auto
25060 #else
25061     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV const &>
25062 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV25063       reflect() const VULKAN_HPP_NOEXCEPT
25064     {
25065       return std::tie( sType, pNext, flags );
25066     }
25067 #endif
25068 
25069 
25070 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25071 auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const & ) const = default;
25072 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV25073     bool operator==( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
25074     {
25075 #if defined( VULKAN_HPP_USE_REFLECT )
25076       return this->reflect() == rhs.reflect();
25077 #else
25078       return ( sType == rhs.sType )
25079           && ( pNext == rhs.pNext )
25080           && ( flags == rhs.flags );
25081 #endif
25082     }
25083 
operator !=VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV25084     bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
25085     {
25086       return !operator==( rhs );
25087     }
25088 #endif
25089 
25090     public:
25091     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
25092     const void * pNext = {};
25093     VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {};
25094 
25095   };
25096 
25097   template <>
25098   struct CppType<StructureType, StructureType::eDeviceDiagnosticsConfigCreateInfoNV>
25099   {
25100     using Type = DeviceDiagnosticsConfigCreateInfoNV;
25101   };
25102 
25103   struct DeviceEventInfoEXT
25104   {
25105     using NativeType = VkDeviceEventInfoEXT;
25106 
25107     static const bool allowDuplicate = false;
25108     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT;
25109 
25110 
25111 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT25112 VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT(VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
25113     : pNext( pNext_ ), deviceEvent( deviceEvent_ )
25114     {}
25115 
25116     VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25117 
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT25118     DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25119       : DeviceEventInfoEXT( *reinterpret_cast<DeviceEventInfoEXT const *>( &rhs ) )
25120     {}
25121 
25122 
25123     DeviceEventInfoEXT & operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25124 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
25125 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT25126     DeviceEventInfoEXT & operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25127     {
25128       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const *>( &rhs );
25129       return *this;
25130     }
25131 
25132 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT25133     VULKAN_HPP_CONSTEXPR_14 DeviceEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
25134     {
25135       pNext = pNext_;
25136       return *this;
25137     }
25138 
setDeviceEventVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT25139     VULKAN_HPP_CONSTEXPR_14 DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT
25140     {
25141       deviceEvent = deviceEvent_;
25142       return *this;
25143     }
25144 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
25145 
25146 
operator VkDeviceEventInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT25147     operator VkDeviceEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
25148     {
25149       return *reinterpret_cast<const VkDeviceEventInfoEXT*>( this );
25150     }
25151 
operator VkDeviceEventInfoEXT&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT25152     operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT
25153     {
25154       return *reinterpret_cast<VkDeviceEventInfoEXT*>( this );
25155     }
25156 
25157 #if defined( VULKAN_HPP_USE_REFLECT )
25158 #if 14 <= VULKAN_HPP_CPP_VERSION
25159     auto
25160 #else
25161     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT const &>
25162 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT25163       reflect() const VULKAN_HPP_NOEXCEPT
25164     {
25165       return std::tie( sType, pNext, deviceEvent );
25166     }
25167 #endif
25168 
25169 
25170 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25171 auto operator<=>( DeviceEventInfoEXT const & ) const = default;
25172 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT25173     bool operator==( DeviceEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25174     {
25175 #if defined( VULKAN_HPP_USE_REFLECT )
25176       return this->reflect() == rhs.reflect();
25177 #else
25178       return ( sType == rhs.sType )
25179           && ( pNext == rhs.pNext )
25180           && ( deviceEvent == rhs.deviceEvent );
25181 #endif
25182     }
25183 
operator !=VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT25184     bool operator!=( DeviceEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25185     {
25186       return !operator==( rhs );
25187     }
25188 #endif
25189 
25190     public:
25191     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT;
25192     const void * pNext = {};
25193     VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug;
25194 
25195   };
25196 
25197   template <>
25198   struct CppType<StructureType, StructureType::eDeviceEventInfoEXT>
25199   {
25200     using Type = DeviceEventInfoEXT;
25201   };
25202 
25203   struct DeviceFaultAddressInfoEXT
25204   {
25205     using NativeType = VkDeviceFaultAddressInfoEXT;
25206 
25207 
25208 
25209 
25210 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceFaultAddressInfoEXTVULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25211 VULKAN_HPP_CONSTEXPR DeviceFaultAddressInfoEXT(VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT addressType_ = VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT::eNone, VULKAN_HPP_NAMESPACE::DeviceAddress reportedAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize addressPrecision_ = {}) VULKAN_HPP_NOEXCEPT
25212     : addressType( addressType_ ), reportedAddress( reportedAddress_ ), addressPrecision( addressPrecision_ )
25213     {}
25214 
25215     VULKAN_HPP_CONSTEXPR DeviceFaultAddressInfoEXT( DeviceFaultAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25216 
DeviceFaultAddressInfoEXTVULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25217     DeviceFaultAddressInfoEXT( VkDeviceFaultAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25218       : DeviceFaultAddressInfoEXT( *reinterpret_cast<DeviceFaultAddressInfoEXT const *>( &rhs ) )
25219     {}
25220 
25221 
25222     DeviceFaultAddressInfoEXT & operator=( DeviceFaultAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25223 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
25224 
operator =VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25225     DeviceFaultAddressInfoEXT & operator=( VkDeviceFaultAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25226     {
25227       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT const *>( &rhs );
25228       return *this;
25229     }
25230 
25231 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setAddressTypeVULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25232     VULKAN_HPP_CONSTEXPR_14 DeviceFaultAddressInfoEXT & setAddressType( VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT addressType_ ) VULKAN_HPP_NOEXCEPT
25233     {
25234       addressType = addressType_;
25235       return *this;
25236     }
25237 
setReportedAddressVULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25238     VULKAN_HPP_CONSTEXPR_14 DeviceFaultAddressInfoEXT & setReportedAddress( VULKAN_HPP_NAMESPACE::DeviceAddress reportedAddress_ ) VULKAN_HPP_NOEXCEPT
25239     {
25240       reportedAddress = reportedAddress_;
25241       return *this;
25242     }
25243 
setAddressPrecisionVULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25244     VULKAN_HPP_CONSTEXPR_14 DeviceFaultAddressInfoEXT & setAddressPrecision( VULKAN_HPP_NAMESPACE::DeviceSize addressPrecision_ ) VULKAN_HPP_NOEXCEPT
25245     {
25246       addressPrecision = addressPrecision_;
25247       return *this;
25248     }
25249 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
25250 
25251 
operator VkDeviceFaultAddressInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25252     operator VkDeviceFaultAddressInfoEXT const &() const VULKAN_HPP_NOEXCEPT
25253     {
25254       return *reinterpret_cast<const VkDeviceFaultAddressInfoEXT*>( this );
25255     }
25256 
operator VkDeviceFaultAddressInfoEXT&VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25257     operator VkDeviceFaultAddressInfoEXT &() VULKAN_HPP_NOEXCEPT
25258     {
25259       return *reinterpret_cast<VkDeviceFaultAddressInfoEXT*>( this );
25260     }
25261 
25262 #if defined( VULKAN_HPP_USE_REFLECT )
25263 #if 14 <= VULKAN_HPP_CPP_VERSION
25264     auto
25265 #else
25266     std::tuple<VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
25267 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25268       reflect() const VULKAN_HPP_NOEXCEPT
25269     {
25270       return std::tie( addressType, reportedAddress, addressPrecision );
25271     }
25272 #endif
25273 
25274 
25275 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25276 auto operator<=>( DeviceFaultAddressInfoEXT const & ) const = default;
25277 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25278     bool operator==( DeviceFaultAddressInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25279     {
25280 #if defined( VULKAN_HPP_USE_REFLECT )
25281       return this->reflect() == rhs.reflect();
25282 #else
25283       return ( addressType == rhs.addressType )
25284           && ( reportedAddress == rhs.reportedAddress )
25285           && ( addressPrecision == rhs.addressPrecision );
25286 #endif
25287     }
25288 
operator !=VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT25289     bool operator!=( DeviceFaultAddressInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25290     {
25291       return !operator==( rhs );
25292     }
25293 #endif
25294 
25295     public:
25296     VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT addressType = VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT::eNone;
25297     VULKAN_HPP_NAMESPACE::DeviceAddress reportedAddress = {};
25298     VULKAN_HPP_NAMESPACE::DeviceSize addressPrecision = {};
25299 
25300   };
25301 
25302   struct DeviceFaultCountsEXT
25303   {
25304     using NativeType = VkDeviceFaultCountsEXT;
25305 
25306     static const bool allowDuplicate = false;
25307     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceFaultCountsEXT;
25308 
25309 
25310 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceFaultCountsEXTVULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25311 VULKAN_HPP_CONSTEXPR DeviceFaultCountsEXT(uint32_t addressInfoCount_ = {}, uint32_t vendorInfoCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vendorBinarySize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
25312     : pNext( pNext_ ), addressInfoCount( addressInfoCount_ ), vendorInfoCount( vendorInfoCount_ ), vendorBinarySize( vendorBinarySize_ )
25313     {}
25314 
25315     VULKAN_HPP_CONSTEXPR DeviceFaultCountsEXT( DeviceFaultCountsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25316 
DeviceFaultCountsEXTVULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25317     DeviceFaultCountsEXT( VkDeviceFaultCountsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25318       : DeviceFaultCountsEXT( *reinterpret_cast<DeviceFaultCountsEXT const *>( &rhs ) )
25319     {}
25320 
25321 
25322     DeviceFaultCountsEXT & operator=( DeviceFaultCountsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25323 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
25324 
operator =VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25325     DeviceFaultCountsEXT & operator=( VkDeviceFaultCountsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25326     {
25327       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT const *>( &rhs );
25328       return *this;
25329     }
25330 
25331 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25332     VULKAN_HPP_CONSTEXPR_14 DeviceFaultCountsEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
25333     {
25334       pNext = pNext_;
25335       return *this;
25336     }
25337 
setAddressInfoCountVULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25338     VULKAN_HPP_CONSTEXPR_14 DeviceFaultCountsEXT & setAddressInfoCount( uint32_t addressInfoCount_ ) VULKAN_HPP_NOEXCEPT
25339     {
25340       addressInfoCount = addressInfoCount_;
25341       return *this;
25342     }
25343 
setVendorInfoCountVULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25344     VULKAN_HPP_CONSTEXPR_14 DeviceFaultCountsEXT & setVendorInfoCount( uint32_t vendorInfoCount_ ) VULKAN_HPP_NOEXCEPT
25345     {
25346       vendorInfoCount = vendorInfoCount_;
25347       return *this;
25348     }
25349 
setVendorBinarySizeVULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25350     VULKAN_HPP_CONSTEXPR_14 DeviceFaultCountsEXT & setVendorBinarySize( VULKAN_HPP_NAMESPACE::DeviceSize vendorBinarySize_ ) VULKAN_HPP_NOEXCEPT
25351     {
25352       vendorBinarySize = vendorBinarySize_;
25353       return *this;
25354     }
25355 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
25356 
25357 
operator VkDeviceFaultCountsEXT const&VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25358     operator VkDeviceFaultCountsEXT const &() const VULKAN_HPP_NOEXCEPT
25359     {
25360       return *reinterpret_cast<const VkDeviceFaultCountsEXT*>( this );
25361     }
25362 
operator VkDeviceFaultCountsEXT&VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25363     operator VkDeviceFaultCountsEXT &() VULKAN_HPP_NOEXCEPT
25364     {
25365       return *reinterpret_cast<VkDeviceFaultCountsEXT*>( this );
25366     }
25367 
25368 #if defined( VULKAN_HPP_USE_REFLECT )
25369 #if 14 <= VULKAN_HPP_CPP_VERSION
25370     auto
25371 #else
25372     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
25373 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25374       reflect() const VULKAN_HPP_NOEXCEPT
25375     {
25376       return std::tie( sType, pNext, addressInfoCount, vendorInfoCount, vendorBinarySize );
25377     }
25378 #endif
25379 
25380 
25381 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25382 auto operator<=>( DeviceFaultCountsEXT const & ) const = default;
25383 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25384     bool operator==( DeviceFaultCountsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25385     {
25386 #if defined( VULKAN_HPP_USE_REFLECT )
25387       return this->reflect() == rhs.reflect();
25388 #else
25389       return ( sType == rhs.sType )
25390           && ( pNext == rhs.pNext )
25391           && ( addressInfoCount == rhs.addressInfoCount )
25392           && ( vendorInfoCount == rhs.vendorInfoCount )
25393           && ( vendorBinarySize == rhs.vendorBinarySize );
25394 #endif
25395     }
25396 
operator !=VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT25397     bool operator!=( DeviceFaultCountsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25398     {
25399       return !operator==( rhs );
25400     }
25401 #endif
25402 
25403     public:
25404     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceFaultCountsEXT;
25405     void * pNext = {};
25406     uint32_t addressInfoCount = {};
25407     uint32_t vendorInfoCount = {};
25408     VULKAN_HPP_NAMESPACE::DeviceSize vendorBinarySize = {};
25409 
25410   };
25411 
25412   template <>
25413   struct CppType<StructureType, StructureType::eDeviceFaultCountsEXT>
25414   {
25415     using Type = DeviceFaultCountsEXT;
25416   };
25417 
25418   struct DeviceFaultVendorInfoEXT
25419   {
25420     using NativeType = VkDeviceFaultVendorInfoEXT;
25421 
25422 
25423 
25424 
25425 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceFaultVendorInfoEXTVULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25426 VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT(std::array<char,VK_MAX_DESCRIPTION_SIZE> const & description_ = {}, uint64_t vendorFaultCode_ = {}, uint64_t vendorFaultData_ = {}) VULKAN_HPP_NOEXCEPT
25427     : description( description_ ), vendorFaultCode( vendorFaultCode_ ), vendorFaultData( vendorFaultData_ )
25428     {}
25429 
25430     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT( DeviceFaultVendorInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25431 
DeviceFaultVendorInfoEXTVULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25432     DeviceFaultVendorInfoEXT( VkDeviceFaultVendorInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25433       : DeviceFaultVendorInfoEXT( *reinterpret_cast<DeviceFaultVendorInfoEXT const *>( &rhs ) )
25434     {}
25435 
25436 
25437     DeviceFaultVendorInfoEXT & operator=( DeviceFaultVendorInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25438 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
25439 
operator =VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25440     DeviceFaultVendorInfoEXT & operator=( VkDeviceFaultVendorInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25441     {
25442       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT const *>( &rhs );
25443       return *this;
25444     }
25445 
25446 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setDescriptionVULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25447     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT & setDescription( std::array<char,VK_MAX_DESCRIPTION_SIZE> description_ ) VULKAN_HPP_NOEXCEPT
25448     {
25449       description = description_;
25450       return *this;
25451     }
25452 
setVendorFaultCodeVULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25453     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT & setVendorFaultCode( uint64_t vendorFaultCode_ ) VULKAN_HPP_NOEXCEPT
25454     {
25455       vendorFaultCode = vendorFaultCode_;
25456       return *this;
25457     }
25458 
setVendorFaultDataVULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25459     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT & setVendorFaultData( uint64_t vendorFaultData_ ) VULKAN_HPP_NOEXCEPT
25460     {
25461       vendorFaultData = vendorFaultData_;
25462       return *this;
25463     }
25464 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
25465 
25466 
operator VkDeviceFaultVendorInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25467     operator VkDeviceFaultVendorInfoEXT const &() const VULKAN_HPP_NOEXCEPT
25468     {
25469       return *reinterpret_cast<const VkDeviceFaultVendorInfoEXT*>( this );
25470     }
25471 
operator VkDeviceFaultVendorInfoEXT&VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25472     operator VkDeviceFaultVendorInfoEXT &() VULKAN_HPP_NOEXCEPT
25473     {
25474       return *reinterpret_cast<VkDeviceFaultVendorInfoEXT*>( this );
25475     }
25476 
25477 #if defined( VULKAN_HPP_USE_REFLECT )
25478 #if 14 <= VULKAN_HPP_CPP_VERSION
25479     auto
25480 #else
25481     std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, uint64_t const &, uint64_t const &>
25482 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25483       reflect() const VULKAN_HPP_NOEXCEPT
25484     {
25485       return std::tie( description, vendorFaultCode, vendorFaultData );
25486     }
25487 #endif
25488 
25489 
25490 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25491 auto operator<=>( DeviceFaultVendorInfoEXT const & ) const = default;
25492 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25493     bool operator==( DeviceFaultVendorInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25494     {
25495 #if defined( VULKAN_HPP_USE_REFLECT )
25496       return this->reflect() == rhs.reflect();
25497 #else
25498       return ( description == rhs.description )
25499           && ( vendorFaultCode == rhs.vendorFaultCode )
25500           && ( vendorFaultData == rhs.vendorFaultData );
25501 #endif
25502     }
25503 
operator !=VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT25504     bool operator!=( DeviceFaultVendorInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25505     {
25506       return !operator==( rhs );
25507     }
25508 #endif
25509 
25510     public:
25511     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
25512     uint64_t vendorFaultCode = {};
25513     uint64_t vendorFaultData = {};
25514 
25515   };
25516 
25517   struct DeviceFaultInfoEXT
25518   {
25519     using NativeType = VkDeviceFaultInfoEXT;
25520 
25521     static const bool allowDuplicate = false;
25522     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceFaultInfoEXT;
25523 
25524 
25525 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceFaultInfoEXTVULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25526 VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT(std::array<char,VK_MAX_DESCRIPTION_SIZE> const & description_ = {}, VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT * pAddressInfos_ = {}, VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT * pVendorInfos_ = {}, void * pVendorBinaryData_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
25527     : pNext( pNext_ ), description( description_ ), pAddressInfos( pAddressInfos_ ), pVendorInfos( pVendorInfos_ ), pVendorBinaryData( pVendorBinaryData_ )
25528     {}
25529 
25530     VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT( DeviceFaultInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25531 
DeviceFaultInfoEXTVULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25532     DeviceFaultInfoEXT( VkDeviceFaultInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25533       : DeviceFaultInfoEXT( *reinterpret_cast<DeviceFaultInfoEXT const *>( &rhs ) )
25534     {}
25535 
25536 
25537     DeviceFaultInfoEXT & operator=( DeviceFaultInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25538 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
25539 
operator =VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25540     DeviceFaultInfoEXT & operator=( VkDeviceFaultInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25541     {
25542       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT const *>( &rhs );
25543       return *this;
25544     }
25545 
25546 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25547     VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
25548     {
25549       pNext = pNext_;
25550       return *this;
25551     }
25552 
setDescriptionVULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25553     VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT & setDescription( std::array<char,VK_MAX_DESCRIPTION_SIZE> description_ ) VULKAN_HPP_NOEXCEPT
25554     {
25555       description = description_;
25556       return *this;
25557     }
25558 
setPAddressInfosVULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25559     VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT & setPAddressInfos( VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT * pAddressInfos_ ) VULKAN_HPP_NOEXCEPT
25560     {
25561       pAddressInfos = pAddressInfos_;
25562       return *this;
25563     }
25564 
setPVendorInfosVULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25565     VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT & setPVendorInfos( VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT * pVendorInfos_ ) VULKAN_HPP_NOEXCEPT
25566     {
25567       pVendorInfos = pVendorInfos_;
25568       return *this;
25569     }
25570 
setPVendorBinaryDataVULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25571     VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT & setPVendorBinaryData( void * pVendorBinaryData_ ) VULKAN_HPP_NOEXCEPT
25572     {
25573       pVendorBinaryData = pVendorBinaryData_;
25574       return *this;
25575     }
25576 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
25577 
25578 
operator VkDeviceFaultInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25579     operator VkDeviceFaultInfoEXT const &() const VULKAN_HPP_NOEXCEPT
25580     {
25581       return *reinterpret_cast<const VkDeviceFaultInfoEXT*>( this );
25582     }
25583 
operator VkDeviceFaultInfoEXT&VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25584     operator VkDeviceFaultInfoEXT &() VULKAN_HPP_NOEXCEPT
25585     {
25586       return *reinterpret_cast<VkDeviceFaultInfoEXT*>( this );
25587     }
25588 
25589 #if defined( VULKAN_HPP_USE_REFLECT )
25590 #if 14 <= VULKAN_HPP_CPP_VERSION
25591     auto
25592 #else
25593     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT * const &, VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT * const &, void * const &>
25594 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25595       reflect() const VULKAN_HPP_NOEXCEPT
25596     {
25597       return std::tie( sType, pNext, description, pAddressInfos, pVendorInfos, pVendorBinaryData );
25598     }
25599 #endif
25600 
25601 
25602 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25603 auto operator<=>( DeviceFaultInfoEXT const & ) const = default;
25604 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25605     bool operator==( DeviceFaultInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25606     {
25607 #if defined( VULKAN_HPP_USE_REFLECT )
25608       return this->reflect() == rhs.reflect();
25609 #else
25610       return ( sType == rhs.sType )
25611           && ( pNext == rhs.pNext )
25612           && ( description == rhs.description )
25613           && ( pAddressInfos == rhs.pAddressInfos )
25614           && ( pVendorInfos == rhs.pVendorInfos )
25615           && ( pVendorBinaryData == rhs.pVendorBinaryData );
25616 #endif
25617     }
25618 
operator !=VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT25619     bool operator!=( DeviceFaultInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25620     {
25621       return !operator==( rhs );
25622     }
25623 #endif
25624 
25625     public:
25626     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceFaultInfoEXT;
25627     void * pNext = {};
25628     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
25629     VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT * pAddressInfos = {};
25630     VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT * pVendorInfos = {};
25631     void * pVendorBinaryData = {};
25632 
25633   };
25634 
25635   template <>
25636   struct CppType<StructureType, StructureType::eDeviceFaultInfoEXT>
25637   {
25638     using Type = DeviceFaultInfoEXT;
25639   };
25640 
25641   struct DeviceFaultVendorBinaryHeaderVersionOneEXT
25642   {
25643     using NativeType = VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
25644 
25645 
25646 
25647 
25648 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceFaultVendorBinaryHeaderVersionOneEXTVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25649 VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT(uint32_t headerSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT headerVersion_ = VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT::eOne, uint32_t vendorID_ = {}, uint32_t deviceID_ = {}, uint32_t driverVersion_ = {}, std::array<uint8_t,VK_UUID_SIZE> const & pipelineCacheUUID_ = {}, uint32_t applicationNameOffset_ = {}, uint32_t applicationVersion_ = {}, uint32_t engineNameOffset_ = {}, uint32_t engineVersion_ = {}, uint32_t apiVersion_ = {}) VULKAN_HPP_NOEXCEPT
25650     : headerSize( headerSize_ ), headerVersion( headerVersion_ ), vendorID( vendorID_ ), deviceID( deviceID_ ), driverVersion( driverVersion_ ), pipelineCacheUUID( pipelineCacheUUID_ ), applicationNameOffset( applicationNameOffset_ ), applicationVersion( applicationVersion_ ), engineNameOffset( engineNameOffset_ ), engineVersion( engineVersion_ ), apiVersion( apiVersion_ )
25651     {}
25652 
25653     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT( DeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25654 
DeviceFaultVendorBinaryHeaderVersionOneEXTVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25655     DeviceFaultVendorBinaryHeaderVersionOneEXT( VkDeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25656       : DeviceFaultVendorBinaryHeaderVersionOneEXT( *reinterpret_cast<DeviceFaultVendorBinaryHeaderVersionOneEXT const *>( &rhs ) )
25657     {}
25658 
25659 
25660     DeviceFaultVendorBinaryHeaderVersionOneEXT & operator=( DeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25661 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
25662 
operator =VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25663     DeviceFaultVendorBinaryHeaderVersionOneEXT & operator=( VkDeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25664     {
25665       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT const *>( &rhs );
25666       return *this;
25667     }
25668 
25669 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setHeaderSizeVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25670     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setHeaderSize( uint32_t headerSize_ ) VULKAN_HPP_NOEXCEPT
25671     {
25672       headerSize = headerSize_;
25673       return *this;
25674     }
25675 
setHeaderVersionVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25676     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setHeaderVersion( VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT headerVersion_ ) VULKAN_HPP_NOEXCEPT
25677     {
25678       headerVersion = headerVersion_;
25679       return *this;
25680     }
25681 
setVendorIDVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25682     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setVendorID( uint32_t vendorID_ ) VULKAN_HPP_NOEXCEPT
25683     {
25684       vendorID = vendorID_;
25685       return *this;
25686     }
25687 
setDeviceIDVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25688     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setDeviceID( uint32_t deviceID_ ) VULKAN_HPP_NOEXCEPT
25689     {
25690       deviceID = deviceID_;
25691       return *this;
25692     }
25693 
setDriverVersionVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25694     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setDriverVersion( uint32_t driverVersion_ ) VULKAN_HPP_NOEXCEPT
25695     {
25696       driverVersion = driverVersion_;
25697       return *this;
25698     }
25699 
setPipelineCacheUUIDVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25700     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setPipelineCacheUUID( std::array<uint8_t,VK_UUID_SIZE> pipelineCacheUUID_ ) VULKAN_HPP_NOEXCEPT
25701     {
25702       pipelineCacheUUID = pipelineCacheUUID_;
25703       return *this;
25704     }
25705 
setApplicationNameOffsetVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25706     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setApplicationNameOffset( uint32_t applicationNameOffset_ ) VULKAN_HPP_NOEXCEPT
25707     {
25708       applicationNameOffset = applicationNameOffset_;
25709       return *this;
25710     }
25711 
setApplicationVersionVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25712     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT
25713     {
25714       applicationVersion = applicationVersion_;
25715       return *this;
25716     }
25717 
setEngineNameOffsetVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25718     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setEngineNameOffset( uint32_t engineNameOffset_ ) VULKAN_HPP_NOEXCEPT
25719     {
25720       engineNameOffset = engineNameOffset_;
25721       return *this;
25722     }
25723 
setEngineVersionVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25724     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
25725     {
25726       engineVersion = engineVersion_;
25727       return *this;
25728     }
25729 
setApiVersionVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25730     VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
25731     {
25732       apiVersion = apiVersion_;
25733       return *this;
25734     }
25735 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
25736 
25737 
operator VkDeviceFaultVendorBinaryHeaderVersionOneEXT const&VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25738     operator VkDeviceFaultVendorBinaryHeaderVersionOneEXT const &() const VULKAN_HPP_NOEXCEPT
25739     {
25740       return *reinterpret_cast<const VkDeviceFaultVendorBinaryHeaderVersionOneEXT*>( this );
25741     }
25742 
operator VkDeviceFaultVendorBinaryHeaderVersionOneEXT&VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25743     operator VkDeviceFaultVendorBinaryHeaderVersionOneEXT &() VULKAN_HPP_NOEXCEPT
25744     {
25745       return *reinterpret_cast<VkDeviceFaultVendorBinaryHeaderVersionOneEXT*>( this );
25746     }
25747 
25748 #if defined( VULKAN_HPP_USE_REFLECT )
25749 #if 14 <= VULKAN_HPP_CPP_VERSION
25750     auto
25751 #else
25752     std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
25753 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25754       reflect() const VULKAN_HPP_NOEXCEPT
25755     {
25756       return std::tie( headerSize, headerVersion, vendorID, deviceID, driverVersion, pipelineCacheUUID, applicationNameOffset, applicationVersion, engineNameOffset, engineVersion, apiVersion );
25757     }
25758 #endif
25759 
25760 
25761 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25762 auto operator<=>( DeviceFaultVendorBinaryHeaderVersionOneEXT const & ) const = default;
25763 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25764     bool operator==( DeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25765     {
25766 #if defined( VULKAN_HPP_USE_REFLECT )
25767       return this->reflect() == rhs.reflect();
25768 #else
25769       return ( headerSize == rhs.headerSize )
25770           && ( headerVersion == rhs.headerVersion )
25771           && ( vendorID == rhs.vendorID )
25772           && ( deviceID == rhs.deviceID )
25773           && ( driverVersion == rhs.driverVersion )
25774           && ( pipelineCacheUUID == rhs.pipelineCacheUUID )
25775           && ( applicationNameOffset == rhs.applicationNameOffset )
25776           && ( applicationVersion == rhs.applicationVersion )
25777           && ( engineNameOffset == rhs.engineNameOffset )
25778           && ( engineVersion == rhs.engineVersion )
25779           && ( apiVersion == rhs.apiVersion );
25780 #endif
25781     }
25782 
operator !=VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT25783     bool operator!=( DeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
25784     {
25785       return !operator==( rhs );
25786     }
25787 #endif
25788 
25789     public:
25790     uint32_t headerSize = {};
25791     VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT headerVersion = VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT::eOne;
25792     uint32_t vendorID = {};
25793     uint32_t deviceID = {};
25794     uint32_t driverVersion = {};
25795     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
25796     uint32_t applicationNameOffset = {};
25797     uint32_t applicationVersion = {};
25798     uint32_t engineNameOffset = {};
25799     uint32_t engineVersion = {};
25800     uint32_t apiVersion = {};
25801 
25802   };
25803 
25804   struct DeviceGroupBindSparseInfo
25805   {
25806     using NativeType = VkDeviceGroupBindSparseInfo;
25807 
25808     static const bool allowDuplicate = false;
25809     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo;
25810 
25811 
25812 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25813 VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo(uint32_t resourceDeviceIndex_ = {}, uint32_t memoryDeviceIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
25814     : pNext( pNext_ ), resourceDeviceIndex( resourceDeviceIndex_ ), memoryDeviceIndex( memoryDeviceIndex_ )
25815     {}
25816 
25817     VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25818 
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25819     DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25820       : DeviceGroupBindSparseInfo( *reinterpret_cast<DeviceGroupBindSparseInfo const *>( &rhs ) )
25821     {}
25822 
25823 
25824     DeviceGroupBindSparseInfo & operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25825 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
25826 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25827     DeviceGroupBindSparseInfo & operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25828     {
25829       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const *>( &rhs );
25830       return *this;
25831     }
25832 
25833 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25834     VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
25835     {
25836       pNext = pNext_;
25837       return *this;
25838     }
25839 
setResourceDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25840     VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
25841     {
25842       resourceDeviceIndex = resourceDeviceIndex_;
25843       return *this;
25844     }
25845 
setMemoryDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25846     VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
25847     {
25848       memoryDeviceIndex = memoryDeviceIndex_;
25849       return *this;
25850     }
25851 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
25852 
25853 
operator VkDeviceGroupBindSparseInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25854     operator VkDeviceGroupBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
25855     {
25856       return *reinterpret_cast<const VkDeviceGroupBindSparseInfo*>( this );
25857     }
25858 
operator VkDeviceGroupBindSparseInfo&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25859     operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT
25860     {
25861       return *reinterpret_cast<VkDeviceGroupBindSparseInfo*>( this );
25862     }
25863 
25864 #if defined( VULKAN_HPP_USE_REFLECT )
25865 #if 14 <= VULKAN_HPP_CPP_VERSION
25866     auto
25867 #else
25868     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &>
25869 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25870       reflect() const VULKAN_HPP_NOEXCEPT
25871     {
25872       return std::tie( sType, pNext, resourceDeviceIndex, memoryDeviceIndex );
25873     }
25874 #endif
25875 
25876 
25877 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25878 auto operator<=>( DeviceGroupBindSparseInfo const & ) const = default;
25879 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25880     bool operator==( DeviceGroupBindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
25881     {
25882 #if defined( VULKAN_HPP_USE_REFLECT )
25883       return this->reflect() == rhs.reflect();
25884 #else
25885       return ( sType == rhs.sType )
25886           && ( pNext == rhs.pNext )
25887           && ( resourceDeviceIndex == rhs.resourceDeviceIndex )
25888           && ( memoryDeviceIndex == rhs.memoryDeviceIndex );
25889 #endif
25890     }
25891 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo25892     bool operator!=( DeviceGroupBindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
25893     {
25894       return !operator==( rhs );
25895     }
25896 #endif
25897 
25898     public:
25899     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo;
25900     const void * pNext = {};
25901     uint32_t resourceDeviceIndex = {};
25902     uint32_t memoryDeviceIndex = {};
25903 
25904   };
25905 
25906   template <>
25907   struct CppType<StructureType, StructureType::eDeviceGroupBindSparseInfo>
25908   {
25909     using Type = DeviceGroupBindSparseInfo;
25910   };
25911   using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
25912 
25913   struct DeviceGroupCommandBufferBeginInfo
25914   {
25915     using NativeType = VkDeviceGroupCommandBufferBeginInfo;
25916 
25917     static const bool allowDuplicate = false;
25918     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupCommandBufferBeginInfo;
25919 
25920 
25921 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo25922 VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo(uint32_t deviceMask_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
25923     : pNext( pNext_ ), deviceMask( deviceMask_ )
25924     {}
25925 
25926     VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25927 
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo25928     DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25929       : DeviceGroupCommandBufferBeginInfo( *reinterpret_cast<DeviceGroupCommandBufferBeginInfo const *>( &rhs ) )
25930     {}
25931 
25932 
25933     DeviceGroupCommandBufferBeginInfo & operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25934 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
25935 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo25936     DeviceGroupCommandBufferBeginInfo & operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25937     {
25938       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const *>( &rhs );
25939       return *this;
25940     }
25941 
25942 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo25943     VULKAN_HPP_CONSTEXPR_14 DeviceGroupCommandBufferBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
25944     {
25945       pNext = pNext_;
25946       return *this;
25947     }
25948 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo25949     VULKAN_HPP_CONSTEXPR_14 DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
25950     {
25951       deviceMask = deviceMask_;
25952       return *this;
25953     }
25954 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
25955 
25956 
operator VkDeviceGroupCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo25957     operator VkDeviceGroupCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
25958     {
25959       return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>( this );
25960     }
25961 
operator VkDeviceGroupCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo25962     operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
25963     {
25964       return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>( this );
25965     }
25966 
25967 #if defined( VULKAN_HPP_USE_REFLECT )
25968 #if 14 <= VULKAN_HPP_CPP_VERSION
25969     auto
25970 #else
25971     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
25972 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo25973       reflect() const VULKAN_HPP_NOEXCEPT
25974     {
25975       return std::tie( sType, pNext, deviceMask );
25976     }
25977 #endif
25978 
25979 
25980 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25981 auto operator<=>( DeviceGroupCommandBufferBeginInfo const & ) const = default;
25982 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo25983     bool operator==( DeviceGroupCommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
25984     {
25985 #if defined( VULKAN_HPP_USE_REFLECT )
25986       return this->reflect() == rhs.reflect();
25987 #else
25988       return ( sType == rhs.sType )
25989           && ( pNext == rhs.pNext )
25990           && ( deviceMask == rhs.deviceMask );
25991 #endif
25992     }
25993 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo25994     bool operator!=( DeviceGroupCommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
25995     {
25996       return !operator==( rhs );
25997     }
25998 #endif
25999 
26000     public:
26001     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo;
26002     const void * pNext = {};
26003     uint32_t deviceMask = {};
26004 
26005   };
26006 
26007   template <>
26008   struct CppType<StructureType, StructureType::eDeviceGroupCommandBufferBeginInfo>
26009   {
26010     using Type = DeviceGroupCommandBufferBeginInfo;
26011   };
26012   using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
26013 
26014   struct DeviceGroupDeviceCreateInfo
26015   {
26016     using NativeType = VkDeviceGroupDeviceCreateInfo;
26017 
26018     static const bool allowDuplicate = false;
26019     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo;
26020 
26021 
26022 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26023 VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo(uint32_t physicalDeviceCount_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
26024     : pNext( pNext_ ), physicalDeviceCount( physicalDeviceCount_ ), pPhysicalDevices( pPhysicalDevices_ )
26025     {}
26026 
26027     VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26028 
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26029     DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26030       : DeviceGroupDeviceCreateInfo( *reinterpret_cast<DeviceGroupDeviceCreateInfo const *>( &rhs ) )
26031     {}
26032 
26033 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26034     DeviceGroupDeviceCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_, const void * pNext_ = nullptr )
26035     : pNext( pNext_ ), physicalDeviceCount( static_cast<uint32_t>( physicalDevices_.size() ) ), pPhysicalDevices( physicalDevices_.data() )
26036     {}
26037 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26038 
26039 
26040     DeviceGroupDeviceCreateInfo & operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26041 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
26042 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26043     DeviceGroupDeviceCreateInfo & operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26044     {
26045       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const *>( &rhs );
26046       return *this;
26047     }
26048 
26049 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26050     VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
26051     {
26052       pNext = pNext_;
26053       return *this;
26054     }
26055 
setPhysicalDeviceCountVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26056     VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT
26057     {
26058       physicalDeviceCount = physicalDeviceCount_;
26059       return *this;
26060     }
26061 
setPPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26062     VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT
26063     {
26064       pPhysicalDevices = pPhysicalDevices_;
26065       return *this;
26066     }
26067 
26068 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26069     DeviceGroupDeviceCreateInfo & setPhysicalDevices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ ) VULKAN_HPP_NOEXCEPT
26070     {
26071       physicalDeviceCount = static_cast<uint32_t>( physicalDevices_.size() );
26072       pPhysicalDevices = physicalDevices_.data();
26073       return *this;
26074     }
26075 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26076 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
26077 
26078 
operator VkDeviceGroupDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26079     operator VkDeviceGroupDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
26080     {
26081       return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>( this );
26082     }
26083 
operator VkDeviceGroupDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26084     operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
26085     {
26086       return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>( this );
26087     }
26088 
26089 #if defined( VULKAN_HPP_USE_REFLECT )
26090 #if 14 <= VULKAN_HPP_CPP_VERSION
26091     auto
26092 #else
26093     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PhysicalDevice * const &>
26094 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26095       reflect() const VULKAN_HPP_NOEXCEPT
26096     {
26097       return std::tie( sType, pNext, physicalDeviceCount, pPhysicalDevices );
26098     }
26099 #endif
26100 
26101 
26102 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26103 auto operator<=>( DeviceGroupDeviceCreateInfo const & ) const = default;
26104 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26105     bool operator==( DeviceGroupDeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
26106     {
26107 #if defined( VULKAN_HPP_USE_REFLECT )
26108       return this->reflect() == rhs.reflect();
26109 #else
26110       return ( sType == rhs.sType )
26111           && ( pNext == rhs.pNext )
26112           && ( physicalDeviceCount == rhs.physicalDeviceCount )
26113           && ( pPhysicalDevices == rhs.pPhysicalDevices );
26114 #endif
26115     }
26116 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo26117     bool operator!=( DeviceGroupDeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
26118     {
26119       return !operator==( rhs );
26120     }
26121 #endif
26122 
26123     public:
26124     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo;
26125     const void * pNext = {};
26126     uint32_t physicalDeviceCount = {};
26127     const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices = {};
26128 
26129   };
26130 
26131   template <>
26132   struct CppType<StructureType, StructureType::eDeviceGroupDeviceCreateInfo>
26133   {
26134     using Type = DeviceGroupDeviceCreateInfo;
26135   };
26136   using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
26137 
26138   struct DeviceGroupPresentCapabilitiesKHR
26139   {
26140     using NativeType = VkDeviceGroupPresentCapabilitiesKHR;
26141 
26142     static const bool allowDuplicate = false;
26143     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
26144 
26145 
26146 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR26147 VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR(std::array<uint32_t,VK_MAX_DEVICE_GROUP_SIZE> const & presentMask_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
26148     : pNext( pNext_ ), presentMask( presentMask_ ), modes( modes_ )
26149     {}
26150 
26151     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26152 
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR26153     DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26154       : DeviceGroupPresentCapabilitiesKHR( *reinterpret_cast<DeviceGroupPresentCapabilitiesKHR const *>( &rhs ) )
26155     {}
26156 
26157 
26158     DeviceGroupPresentCapabilitiesKHR & operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26159 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
26160 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR26161     DeviceGroupPresentCapabilitiesKHR & operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26162     {
26163       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const *>( &rhs );
26164       return *this;
26165     }
26166 
26167 
operator VkDeviceGroupPresentCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR26168     operator VkDeviceGroupPresentCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
26169     {
26170       return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR*>( this );
26171     }
26172 
operator VkDeviceGroupPresentCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR26173     operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
26174     {
26175       return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( this );
26176     }
26177 
26178 #if defined( VULKAN_HPP_USE_REFLECT )
26179 #if 14 <= VULKAN_HPP_CPP_VERSION
26180     auto
26181 #else
26182     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> const &, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR const &>
26183 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR26184       reflect() const VULKAN_HPP_NOEXCEPT
26185     {
26186       return std::tie( sType, pNext, presentMask, modes );
26187     }
26188 #endif
26189 
26190 
26191 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26192 auto operator<=>( DeviceGroupPresentCapabilitiesKHR const & ) const = default;
26193 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR26194     bool operator==( DeviceGroupPresentCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
26195     {
26196 #if defined( VULKAN_HPP_USE_REFLECT )
26197       return this->reflect() == rhs.reflect();
26198 #else
26199       return ( sType == rhs.sType )
26200           && ( pNext == rhs.pNext )
26201           && ( presentMask == rhs.presentMask )
26202           && ( modes == rhs.modes );
26203 #endif
26204     }
26205 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR26206     bool operator!=( DeviceGroupPresentCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
26207     {
26208       return !operator==( rhs );
26209     }
26210 #endif
26211 
26212     public:
26213     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
26214     void * pNext = {};
26215     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> presentMask = {};
26216     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
26217 
26218   };
26219 
26220   template <>
26221   struct CppType<StructureType, StructureType::eDeviceGroupPresentCapabilitiesKHR>
26222   {
26223     using Type = DeviceGroupPresentCapabilitiesKHR;
26224   };
26225 
26226   struct DeviceGroupPresentInfoKHR
26227   {
26228     using NativeType = VkDeviceGroupPresentInfoKHR;
26229 
26230     static const bool allowDuplicate = false;
26231     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR;
26232 
26233 
26234 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26235 VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR(uint32_t swapchainCount_ = {}, const uint32_t * pDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
26236     : pNext( pNext_ ), swapchainCount( swapchainCount_ ), pDeviceMasks( pDeviceMasks_ ), mode( mode_ )
26237     {}
26238 
26239     VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26240 
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26241     DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26242       : DeviceGroupPresentInfoKHR( *reinterpret_cast<DeviceGroupPresentInfoKHR const *>( &rhs ) )
26243     {}
26244 
26245 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26246     DeviceGroupPresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal, const void * pNext_ = nullptr )
26247     : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( deviceMasks_.size() ) ), pDeviceMasks( deviceMasks_.data() ), mode( mode_ )
26248     {}
26249 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26250 
26251 
26252     DeviceGroupPresentInfoKHR & operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26253 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
26254 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26255     DeviceGroupPresentInfoKHR & operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26256     {
26257       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const *>( &rhs );
26258       return *this;
26259     }
26260 
26261 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26262     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
26263     {
26264       pNext = pNext_;
26265       return *this;
26266     }
26267 
setSwapchainCountVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26268     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
26269     {
26270       swapchainCount = swapchainCount_;
26271       return *this;
26272     }
26273 
setPDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26274     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t * pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
26275     {
26276       pDeviceMasks = pDeviceMasks_;
26277       return *this;
26278     }
26279 
26280 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26281     DeviceGroupPresentInfoKHR & setDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT
26282     {
26283       swapchainCount = static_cast<uint32_t>( deviceMasks_.size() );
26284       pDeviceMasks = deviceMasks_.data();
26285       return *this;
26286     }
26287 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26288 
setModeVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26289     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT
26290     {
26291       mode = mode_;
26292       return *this;
26293     }
26294 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
26295 
26296 
operator VkDeviceGroupPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26297     operator VkDeviceGroupPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
26298     {
26299       return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>( this );
26300     }
26301 
operator VkDeviceGroupPresentInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26302     operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
26303     {
26304       return *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>( this );
26305     }
26306 
26307 #if defined( VULKAN_HPP_USE_REFLECT )
26308 #if 14 <= VULKAN_HPP_CPP_VERSION
26309     auto
26310 #else
26311     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint32_t * const &, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR const &>
26312 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26313       reflect() const VULKAN_HPP_NOEXCEPT
26314     {
26315       return std::tie( sType, pNext, swapchainCount, pDeviceMasks, mode );
26316     }
26317 #endif
26318 
26319 
26320 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26321 auto operator<=>( DeviceGroupPresentInfoKHR const & ) const = default;
26322 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26323     bool operator==( DeviceGroupPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
26324     {
26325 #if defined( VULKAN_HPP_USE_REFLECT )
26326       return this->reflect() == rhs.reflect();
26327 #else
26328       return ( sType == rhs.sType )
26329           && ( pNext == rhs.pNext )
26330           && ( swapchainCount == rhs.swapchainCount )
26331           && ( pDeviceMasks == rhs.pDeviceMasks )
26332           && ( mode == rhs.mode );
26333 #endif
26334     }
26335 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR26336     bool operator!=( DeviceGroupPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
26337     {
26338       return !operator==( rhs );
26339     }
26340 #endif
26341 
26342     public:
26343     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR;
26344     const void * pNext = {};
26345     uint32_t swapchainCount = {};
26346     const uint32_t * pDeviceMasks = {};
26347     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal;
26348 
26349   };
26350 
26351   template <>
26352   struct CppType<StructureType, StructureType::eDeviceGroupPresentInfoKHR>
26353   {
26354     using Type = DeviceGroupPresentInfoKHR;
26355   };
26356 
26357   struct DeviceGroupRenderPassBeginInfo
26358   {
26359     using NativeType = VkDeviceGroupRenderPassBeginInfo;
26360 
26361     static const bool allowDuplicate = false;
26362     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo;
26363 
26364 
26365 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26366 VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo(uint32_t deviceMask_ = {}, uint32_t deviceRenderAreaCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
26367     : pNext( pNext_ ), deviceMask( deviceMask_ ), deviceRenderAreaCount( deviceRenderAreaCount_ ), pDeviceRenderAreas( pDeviceRenderAreas_ )
26368     {}
26369 
26370     VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26371 
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26372     DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26373       : DeviceGroupRenderPassBeginInfo( *reinterpret_cast<DeviceGroupRenderPassBeginInfo const *>( &rhs ) )
26374     {}
26375 
26376 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26377     DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_, const void * pNext_ = nullptr )
26378     : pNext( pNext_ ), deviceMask( deviceMask_ ), deviceRenderAreaCount( static_cast<uint32_t>( deviceRenderAreas_.size() ) ), pDeviceRenderAreas( deviceRenderAreas_.data() )
26379     {}
26380 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26381 
26382 
26383     DeviceGroupRenderPassBeginInfo & operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26384 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
26385 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26386     DeviceGroupRenderPassBeginInfo & operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26387     {
26388       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const *>( &rhs );
26389       return *this;
26390     }
26391 
26392 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26393     VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
26394     {
26395       pNext = pNext_;
26396       return *this;
26397     }
26398 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26399     VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
26400     {
26401       deviceMask = deviceMask_;
26402       return *this;
26403     }
26404 
setDeviceRenderAreaCountVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26405     VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
26406     {
26407       deviceRenderAreaCount = deviceRenderAreaCount_;
26408       return *this;
26409     }
26410 
setPDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26411     VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
26412     {
26413       pDeviceRenderAreas = pDeviceRenderAreas_;
26414       return *this;
26415     }
26416 
26417 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26418     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
26419     {
26420       deviceRenderAreaCount = static_cast<uint32_t>( deviceRenderAreas_.size() );
26421       pDeviceRenderAreas = deviceRenderAreas_.data();
26422       return *this;
26423     }
26424 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26425 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
26426 
26427 
operator VkDeviceGroupRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26428     operator VkDeviceGroupRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
26429     {
26430       return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>( this );
26431     }
26432 
operator VkDeviceGroupRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26433     operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
26434     {
26435       return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>( this );
26436     }
26437 
26438 #if defined( VULKAN_HPP_USE_REFLECT )
26439 #if 14 <= VULKAN_HPP_CPP_VERSION
26440     auto
26441 #else
26442     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
26443 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26444       reflect() const VULKAN_HPP_NOEXCEPT
26445     {
26446       return std::tie( sType, pNext, deviceMask, deviceRenderAreaCount, pDeviceRenderAreas );
26447     }
26448 #endif
26449 
26450 
26451 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26452 auto operator<=>( DeviceGroupRenderPassBeginInfo const & ) const = default;
26453 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26454     bool operator==( DeviceGroupRenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
26455     {
26456 #if defined( VULKAN_HPP_USE_REFLECT )
26457       return this->reflect() == rhs.reflect();
26458 #else
26459       return ( sType == rhs.sType )
26460           && ( pNext == rhs.pNext )
26461           && ( deviceMask == rhs.deviceMask )
26462           && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount )
26463           && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas );
26464 #endif
26465     }
26466 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo26467     bool operator!=( DeviceGroupRenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
26468     {
26469       return !operator==( rhs );
26470     }
26471 #endif
26472 
26473     public:
26474     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo;
26475     const void * pNext = {};
26476     uint32_t deviceMask = {};
26477     uint32_t deviceRenderAreaCount = {};
26478     const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas = {};
26479 
26480   };
26481 
26482   template <>
26483   struct CppType<StructureType, StructureType::eDeviceGroupRenderPassBeginInfo>
26484   {
26485     using Type = DeviceGroupRenderPassBeginInfo;
26486   };
26487   using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
26488 
26489   struct DeviceGroupSubmitInfo
26490   {
26491     using NativeType = VkDeviceGroupSubmitInfo;
26492 
26493     static const bool allowDuplicate = false;
26494     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo;
26495 
26496 
26497 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26498 VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo(uint32_t waitSemaphoreCount_ = {}, const uint32_t * pWaitSemaphoreDeviceIndices_ = {}, uint32_t commandBufferCount_ = {}, const uint32_t * pCommandBufferDeviceMasks_ = {}, uint32_t signalSemaphoreCount_ = {}, const uint32_t * pSignalSemaphoreDeviceIndices_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
26499     : pNext( pNext_ ), waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ ), commandBufferCount( commandBufferCount_ ), pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
26500     {}
26501 
26502     VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26503 
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26504     DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26505       : DeviceGroupSubmitInfo( *reinterpret_cast<DeviceGroupSubmitInfo const *>( &rhs ) )
26506     {}
26507 
26508 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26509     DeviceGroupSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ = {}, const void * pNext_ = nullptr )
26510     : pNext( pNext_ ), waitSemaphoreCount( static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() ) ), pWaitSemaphoreDeviceIndices( waitSemaphoreDeviceIndices_.data() ), commandBufferCount( static_cast<uint32_t>( commandBufferDeviceMasks_.size() ) ), pCommandBufferDeviceMasks( commandBufferDeviceMasks_.data() ), signalSemaphoreCount( static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() ) ), pSignalSemaphoreDeviceIndices( signalSemaphoreDeviceIndices_.data() )
26511     {}
26512 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26513 
26514 
26515     DeviceGroupSubmitInfo & operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26516 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
26517 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26518     DeviceGroupSubmitInfo & operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26519     {
26520       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const *>( &rhs );
26521       return *this;
26522     }
26523 
26524 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26525     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
26526     {
26527       pNext = pNext_;
26528       return *this;
26529     }
26530 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26531     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
26532     {
26533       waitSemaphoreCount = waitSemaphoreCount_;
26534       return *this;
26535     }
26536 
setPWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26537     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t * pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
26538     {
26539       pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_;
26540       return *this;
26541     }
26542 
26543 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26544     DeviceGroupSubmitInfo & setWaitSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
26545     {
26546       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() );
26547       pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data();
26548       return *this;
26549     }
26550 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26551 
setCommandBufferCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26552     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
26553     {
26554       commandBufferCount = commandBufferCount_;
26555       return *this;
26556     }
26557 
setPCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26558     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t * pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
26559     {
26560       pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_;
26561       return *this;
26562     }
26563 
26564 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26565     DeviceGroupSubmitInfo & setCommandBufferDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
26566     {
26567       commandBufferCount = static_cast<uint32_t>( commandBufferDeviceMasks_.size() );
26568       pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data();
26569       return *this;
26570     }
26571 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26572 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26573     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
26574     {
26575       signalSemaphoreCount = signalSemaphoreCount_;
26576       return *this;
26577     }
26578 
setPSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26579     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t * pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
26580     {
26581       pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_;
26582       return *this;
26583     }
26584 
26585 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26586     DeviceGroupSubmitInfo & setSignalSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
26587     {
26588       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() );
26589       pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data();
26590       return *this;
26591     }
26592 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26593 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
26594 
26595 
operator VkDeviceGroupSubmitInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26596     operator VkDeviceGroupSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
26597     {
26598       return *reinterpret_cast<const VkDeviceGroupSubmitInfo*>( this );
26599     }
26600 
operator VkDeviceGroupSubmitInfo&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26601     operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT
26602     {
26603       return *reinterpret_cast<VkDeviceGroupSubmitInfo*>( this );
26604     }
26605 
26606 #if defined( VULKAN_HPP_USE_REFLECT )
26607 #if 14 <= VULKAN_HPP_CPP_VERSION
26608     auto
26609 #else
26610     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint32_t * const &, uint32_t const &, const uint32_t * const &, uint32_t const &, const uint32_t * const &>
26611 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26612       reflect() const VULKAN_HPP_NOEXCEPT
26613     {
26614       return std::tie( sType, pNext, waitSemaphoreCount, pWaitSemaphoreDeviceIndices, commandBufferCount, pCommandBufferDeviceMasks, signalSemaphoreCount, pSignalSemaphoreDeviceIndices );
26615     }
26616 #endif
26617 
26618 
26619 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26620 auto operator<=>( DeviceGroupSubmitInfo const & ) const = default;
26621 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26622     bool operator==( DeviceGroupSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
26623     {
26624 #if defined( VULKAN_HPP_USE_REFLECT )
26625       return this->reflect() == rhs.reflect();
26626 #else
26627       return ( sType == rhs.sType )
26628           && ( pNext == rhs.pNext )
26629           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
26630           && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices )
26631           && ( commandBufferCount == rhs.commandBufferCount )
26632           && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks )
26633           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
26634           && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices );
26635 #endif
26636     }
26637 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo26638     bool operator!=( DeviceGroupSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
26639     {
26640       return !operator==( rhs );
26641     }
26642 #endif
26643 
26644     public:
26645     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo;
26646     const void * pNext = {};
26647     uint32_t waitSemaphoreCount = {};
26648     const uint32_t * pWaitSemaphoreDeviceIndices = {};
26649     uint32_t commandBufferCount = {};
26650     const uint32_t * pCommandBufferDeviceMasks = {};
26651     uint32_t signalSemaphoreCount = {};
26652     const uint32_t * pSignalSemaphoreDeviceIndices = {};
26653 
26654   };
26655 
26656   template <>
26657   struct CppType<StructureType, StructureType::eDeviceGroupSubmitInfo>
26658   {
26659     using Type = DeviceGroupSubmitInfo;
26660   };
26661   using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
26662 
26663   struct DeviceGroupSwapchainCreateInfoKHR
26664   {
26665     using NativeType = VkDeviceGroupSwapchainCreateInfoKHR;
26666 
26667     static const bool allowDuplicate = false;
26668     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
26669 
26670 
26671 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR26672 VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
26673     : pNext( pNext_ ), modes( modes_ )
26674     {}
26675 
26676     VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26677 
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR26678     DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26679       : DeviceGroupSwapchainCreateInfoKHR( *reinterpret_cast<DeviceGroupSwapchainCreateInfoKHR const *>( &rhs ) )
26680     {}
26681 
26682 
26683     DeviceGroupSwapchainCreateInfoKHR & operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26684 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
26685 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR26686     DeviceGroupSwapchainCreateInfoKHR & operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26687     {
26688       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const *>( &rhs );
26689       return *this;
26690     }
26691 
26692 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR26693     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
26694     {
26695       pNext = pNext_;
26696       return *this;
26697     }
26698 
setModesVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR26699     VULKAN_HPP_CONSTEXPR_14 DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT
26700     {
26701       modes = modes_;
26702       return *this;
26703     }
26704 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
26705 
26706 
operator VkDeviceGroupSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR26707     operator VkDeviceGroupSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
26708     {
26709       return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>( this );
26710     }
26711 
operator VkDeviceGroupSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR26712     operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
26713     {
26714       return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>( this );
26715     }
26716 
26717 #if defined( VULKAN_HPP_USE_REFLECT )
26718 #if 14 <= VULKAN_HPP_CPP_VERSION
26719     auto
26720 #else
26721     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR const &>
26722 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR26723       reflect() const VULKAN_HPP_NOEXCEPT
26724     {
26725       return std::tie( sType, pNext, modes );
26726     }
26727 #endif
26728 
26729 
26730 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26731 auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const & ) const = default;
26732 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR26733     bool operator==( DeviceGroupSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
26734     {
26735 #if defined( VULKAN_HPP_USE_REFLECT )
26736       return this->reflect() == rhs.reflect();
26737 #else
26738       return ( sType == rhs.sType )
26739           && ( pNext == rhs.pNext )
26740           && ( modes == rhs.modes );
26741 #endif
26742     }
26743 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR26744     bool operator!=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
26745     {
26746       return !operator==( rhs );
26747     }
26748 #endif
26749 
26750     public:
26751     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
26752     const void * pNext = {};
26753     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
26754 
26755   };
26756 
26757   template <>
26758   struct CppType<StructureType, StructureType::eDeviceGroupSwapchainCreateInfoKHR>
26759   {
26760     using Type = DeviceGroupSwapchainCreateInfoKHR;
26761   };
26762 
26763   struct ImageCreateInfo
26764   {
26765     using NativeType = VkImageCreateInfo;
26766 
26767     static const bool allowDuplicate = false;
26768     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo;
26769 
26770 
26771 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo26772 VULKAN_HPP_CONSTEXPR ImageCreateInfo(VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, uint32_t mipLevels_ = {}, uint32_t arrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t * pQueueFamilyIndices_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
26773     : pNext( pNext_ ), flags( flags_ ), imageType( imageType_ ), format( format_ ), extent( extent_ ), mipLevels( mipLevels_ ), arrayLayers( arrayLayers_ ), samples( samples_ ), tiling( tiling_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ), initialLayout( initialLayout_ )
26774     {}
26775 
26776     VULKAN_HPP_CONSTEXPR ImageCreateInfo( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26777 
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo26778     ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26779       : ImageCreateInfo( *reinterpret_cast<ImageCreateInfo const *>( &rhs ) )
26780     {}
26781 
26782 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo26783     ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_, VULKAN_HPP_NAMESPACE::ImageType imageType_, VULKAN_HPP_NAMESPACE::Format format_, VULKAN_HPP_NAMESPACE::Extent3D extent_, uint32_t mipLevels_, uint32_t arrayLayers_, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_, VULKAN_HPP_NAMESPACE::ImageTiling tiling_, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, const void * pNext_ = nullptr )
26784     : pNext( pNext_ ), flags( flags_ ), imageType( imageType_ ), format( format_ ), extent( extent_ ), mipLevels( mipLevels_ ), arrayLayers( arrayLayers_ ), samples( samples_ ), tiling( tiling_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ), initialLayout( initialLayout_ )
26785     {}
26786 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26787 
26788 
26789     ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26790 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
26791 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo26792     ImageCreateInfo & operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
26793     {
26794       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCreateInfo const *>( &rhs );
26795       return *this;
26796     }
26797 
26798 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageCreateInfo26799     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
26800     {
26801       pNext = pNext_;
26802       return *this;
26803     }
26804 
setFlagsVULKAN_HPP_NAMESPACE::ImageCreateInfo26805     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
26806     {
26807       flags = flags_;
26808       return *this;
26809     }
26810 
setImageTypeVULKAN_HPP_NAMESPACE::ImageCreateInfo26811     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT
26812     {
26813       imageType = imageType_;
26814       return *this;
26815     }
26816 
setFormatVULKAN_HPP_NAMESPACE::ImageCreateInfo26817     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
26818     {
26819       format = format_;
26820       return *this;
26821     }
26822 
setExtentVULKAN_HPP_NAMESPACE::ImageCreateInfo26823     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
26824     {
26825       extent = extent_;
26826       return *this;
26827     }
26828 
setMipLevelsVULKAN_HPP_NAMESPACE::ImageCreateInfo26829     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT
26830     {
26831       mipLevels = mipLevels_;
26832       return *this;
26833     }
26834 
setArrayLayersVULKAN_HPP_NAMESPACE::ImageCreateInfo26835     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT
26836     {
26837       arrayLayers = arrayLayers_;
26838       return *this;
26839     }
26840 
setSamplesVULKAN_HPP_NAMESPACE::ImageCreateInfo26841     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
26842     {
26843       samples = samples_;
26844       return *this;
26845     }
26846 
setTilingVULKAN_HPP_NAMESPACE::ImageCreateInfo26847     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
26848     {
26849       tiling = tiling_;
26850       return *this;
26851     }
26852 
setUsageVULKAN_HPP_NAMESPACE::ImageCreateInfo26853     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
26854     {
26855       usage = usage_;
26856       return *this;
26857     }
26858 
setSharingModeVULKAN_HPP_NAMESPACE::ImageCreateInfo26859     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
26860     {
26861       sharingMode = sharingMode_;
26862       return *this;
26863     }
26864 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::ImageCreateInfo26865     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
26866     {
26867       queueFamilyIndexCount = queueFamilyIndexCount_;
26868       return *this;
26869     }
26870 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo26871     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
26872     {
26873       pQueueFamilyIndices = pQueueFamilyIndices_;
26874       return *this;
26875     }
26876 
26877 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo26878     ImageCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
26879     {
26880       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
26881       pQueueFamilyIndices = queueFamilyIndices_.data();
26882       return *this;
26883     }
26884 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
26885 
setInitialLayoutVULKAN_HPP_NAMESPACE::ImageCreateInfo26886     VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
26887     {
26888       initialLayout = initialLayout_;
26889       return *this;
26890     }
26891 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
26892 
26893 
operator VkImageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageCreateInfo26894     operator VkImageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
26895     {
26896       return *reinterpret_cast<const VkImageCreateInfo*>( this );
26897     }
26898 
operator VkImageCreateInfo&VULKAN_HPP_NAMESPACE::ImageCreateInfo26899     operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT
26900     {
26901       return *reinterpret_cast<VkImageCreateInfo*>( this );
26902     }
26903 
26904 #if defined( VULKAN_HPP_USE_REFLECT )
26905 #if 14 <= VULKAN_HPP_CPP_VERSION
26906     auto
26907 #else
26908     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageCreateFlags const &, VULKAN_HPP_NAMESPACE::ImageType const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::Extent3D const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &, VULKAN_HPP_NAMESPACE::ImageTiling const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &, VULKAN_HPP_NAMESPACE::SharingMode const &, uint32_t const &, const uint32_t * const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
26909 #endif
reflectVULKAN_HPP_NAMESPACE::ImageCreateInfo26910       reflect() const VULKAN_HPP_NOEXCEPT
26911     {
26912       return std::tie( sType, pNext, flags, imageType, format, extent, mipLevels, arrayLayers, samples, tiling, usage, sharingMode, queueFamilyIndexCount, pQueueFamilyIndices, initialLayout );
26913     }
26914 #endif
26915 
26916 
26917 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26918 auto operator<=>( ImageCreateInfo const & ) const = default;
26919 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCreateInfo26920     bool operator==( ImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
26921     {
26922 #if defined( VULKAN_HPP_USE_REFLECT )
26923       return this->reflect() == rhs.reflect();
26924 #else
26925       return ( sType == rhs.sType )
26926           && ( pNext == rhs.pNext )
26927           && ( flags == rhs.flags )
26928           && ( imageType == rhs.imageType )
26929           && ( format == rhs.format )
26930           && ( extent == rhs.extent )
26931           && ( mipLevels == rhs.mipLevels )
26932           && ( arrayLayers == rhs.arrayLayers )
26933           && ( samples == rhs.samples )
26934           && ( tiling == rhs.tiling )
26935           && ( usage == rhs.usage )
26936           && ( sharingMode == rhs.sharingMode )
26937           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
26938           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
26939           && ( initialLayout == rhs.initialLayout );
26940 #endif
26941     }
26942 
operator !=VULKAN_HPP_NAMESPACE::ImageCreateInfo26943     bool operator!=( ImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
26944     {
26945       return !operator==( rhs );
26946     }
26947 #endif
26948 
26949     public:
26950     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo;
26951     const void * pNext = {};
26952     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
26953     VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
26954     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
26955     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
26956     uint32_t mipLevels = {};
26957     uint32_t arrayLayers = {};
26958     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
26959     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
26960     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
26961     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
26962     uint32_t queueFamilyIndexCount = {};
26963     const uint32_t * pQueueFamilyIndices = {};
26964     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26965 
26966   };
26967 
26968   template <>
26969   struct CppType<StructureType, StructureType::eImageCreateInfo>
26970   {
26971     using Type = ImageCreateInfo;
26972   };
26973 
26974   struct DeviceImageMemoryRequirements
26975   {
26976     using NativeType = VkDeviceImageMemoryRequirements;
26977 
26978     static const bool allowDuplicate = false;
26979     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceImageMemoryRequirements;
26980 
26981 
26982 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceImageMemoryRequirementsVULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements26983 VULKAN_HPP_CONSTEXPR DeviceImageMemoryRequirements(const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ = {}, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
26984     : pNext( pNext_ ), pCreateInfo( pCreateInfo_ ), planeAspect( planeAspect_ )
26985     {}
26986 
26987     VULKAN_HPP_CONSTEXPR DeviceImageMemoryRequirements( DeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26988 
DeviceImageMemoryRequirementsVULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements26989     DeviceImageMemoryRequirements( VkDeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
26990       : DeviceImageMemoryRequirements( *reinterpret_cast<DeviceImageMemoryRequirements const *>( &rhs ) )
26991     {}
26992 
26993 
26994     DeviceImageMemoryRequirements & operator=( DeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26995 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
26996 
operator =VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements26997     DeviceImageMemoryRequirements & operator=( VkDeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
26998     {
26999       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements const *>( &rhs );
27000       return *this;
27001     }
27002 
27003 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements27004     VULKAN_HPP_CONSTEXPR_14 DeviceImageMemoryRequirements & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
27005     {
27006       pNext = pNext_;
27007       return *this;
27008     }
27009 
setPCreateInfoVULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements27010     VULKAN_HPP_CONSTEXPR_14 DeviceImageMemoryRequirements & setPCreateInfo( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ ) VULKAN_HPP_NOEXCEPT
27011     {
27012       pCreateInfo = pCreateInfo_;
27013       return *this;
27014     }
27015 
setPlaneAspectVULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements27016     VULKAN_HPP_CONSTEXPR_14 DeviceImageMemoryRequirements & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
27017     {
27018       planeAspect = planeAspect_;
27019       return *this;
27020     }
27021 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
27022 
27023 
operator VkDeviceImageMemoryRequirements const&VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements27024     operator VkDeviceImageMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
27025     {
27026       return *reinterpret_cast<const VkDeviceImageMemoryRequirements*>( this );
27027     }
27028 
operator VkDeviceImageMemoryRequirements&VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements27029     operator VkDeviceImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
27030     {
27031       return *reinterpret_cast<VkDeviceImageMemoryRequirements*>( this );
27032     }
27033 
27034 #if defined( VULKAN_HPP_USE_REFLECT )
27035 #if 14 <= VULKAN_HPP_CPP_VERSION
27036     auto
27037 #else
27038     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const VULKAN_HPP_NAMESPACE::ImageCreateInfo * const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &>
27039 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements27040       reflect() const VULKAN_HPP_NOEXCEPT
27041     {
27042       return std::tie( sType, pNext, pCreateInfo, planeAspect );
27043     }
27044 #endif
27045 
27046 
27047 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27048 auto operator<=>( DeviceImageMemoryRequirements const & ) const = default;
27049 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements27050     bool operator==( DeviceImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
27051     {
27052 #if defined( VULKAN_HPP_USE_REFLECT )
27053       return this->reflect() == rhs.reflect();
27054 #else
27055       return ( sType == rhs.sType )
27056           && ( pNext == rhs.pNext )
27057           && ( pCreateInfo == rhs.pCreateInfo )
27058           && ( planeAspect == rhs.planeAspect );
27059 #endif
27060     }
27061 
operator !=VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements27062     bool operator!=( DeviceImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
27063     {
27064       return !operator==( rhs );
27065     }
27066 #endif
27067 
27068     public:
27069     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceImageMemoryRequirements;
27070     const void * pNext = {};
27071     const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo = {};
27072     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
27073 
27074   };
27075 
27076   template <>
27077   struct CppType<StructureType, StructureType::eDeviceImageMemoryRequirements>
27078   {
27079     using Type = DeviceImageMemoryRequirements;
27080   };
27081   using DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements;
27082 
27083   struct ImageSubresource2KHR
27084   {
27085     using NativeType = VkImageSubresource2KHR;
27086 
27087     static const bool allowDuplicate = false;
27088     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSubresource2KHR;
27089 
27090 
27091 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresource2KHRVULKAN_HPP_NAMESPACE::ImageSubresource2KHR27092 VULKAN_HPP_CONSTEXPR ImageSubresource2KHR(VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
27093     : pNext( pNext_ ), imageSubresource( imageSubresource_ )
27094     {}
27095 
27096     VULKAN_HPP_CONSTEXPR ImageSubresource2KHR( ImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27097 
ImageSubresource2KHRVULKAN_HPP_NAMESPACE::ImageSubresource2KHR27098     ImageSubresource2KHR( VkImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27099       : ImageSubresource2KHR( *reinterpret_cast<ImageSubresource2KHR const *>( &rhs ) )
27100     {}
27101 
27102 
27103     ImageSubresource2KHR & operator=( ImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27104 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
27105 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource2KHR27106     ImageSubresource2KHR & operator=( VkImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
27107     {
27108       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource2KHR const *>( &rhs );
27109       return *this;
27110     }
27111 
27112 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageSubresource2KHR27113     VULKAN_HPP_CONSTEXPR_14 ImageSubresource2KHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
27114     {
27115       pNext = pNext_;
27116       return *this;
27117     }
27118 
setImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource2KHR27119     VULKAN_HPP_CONSTEXPR_14 ImageSubresource2KHR & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
27120     {
27121       imageSubresource = imageSubresource_;
27122       return *this;
27123     }
27124 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
27125 
27126 
operator VkImageSubresource2KHR const&VULKAN_HPP_NAMESPACE::ImageSubresource2KHR27127     operator VkImageSubresource2KHR const &() const VULKAN_HPP_NOEXCEPT
27128     {
27129       return *reinterpret_cast<const VkImageSubresource2KHR*>( this );
27130     }
27131 
operator VkImageSubresource2KHR&VULKAN_HPP_NAMESPACE::ImageSubresource2KHR27132     operator VkImageSubresource2KHR &() VULKAN_HPP_NOEXCEPT
27133     {
27134       return *reinterpret_cast<VkImageSubresource2KHR*>( this );
27135     }
27136 
27137 #if defined( VULKAN_HPP_USE_REFLECT )
27138 #if 14 <= VULKAN_HPP_CPP_VERSION
27139     auto
27140 #else
27141     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageSubresource const &>
27142 #endif
reflectVULKAN_HPP_NAMESPACE::ImageSubresource2KHR27143       reflect() const VULKAN_HPP_NOEXCEPT
27144     {
27145       return std::tie( sType, pNext, imageSubresource );
27146     }
27147 #endif
27148 
27149 
27150 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27151 auto operator<=>( ImageSubresource2KHR const & ) const = default;
27152 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresource2KHR27153     bool operator==( ImageSubresource2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
27154     {
27155 #if defined( VULKAN_HPP_USE_REFLECT )
27156       return this->reflect() == rhs.reflect();
27157 #else
27158       return ( sType == rhs.sType )
27159           && ( pNext == rhs.pNext )
27160           && ( imageSubresource == rhs.imageSubresource );
27161 #endif
27162     }
27163 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresource2KHR27164     bool operator!=( ImageSubresource2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
27165     {
27166       return !operator==( rhs );
27167     }
27168 #endif
27169 
27170     public:
27171     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSubresource2KHR;
27172     void * pNext = {};
27173     VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource = {};
27174 
27175   };
27176 
27177   template <>
27178   struct CppType<StructureType, StructureType::eImageSubresource2KHR>
27179   {
27180     using Type = ImageSubresource2KHR;
27181   };
27182   using ImageSubresource2EXT = ImageSubresource2KHR;
27183 
27184   struct DeviceImageSubresourceInfoKHR
27185   {
27186     using NativeType = VkDeviceImageSubresourceInfoKHR;
27187 
27188     static const bool allowDuplicate = false;
27189     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceImageSubresourceInfoKHR;
27190 
27191 
27192 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceImageSubresourceInfoKHRVULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27193 VULKAN_HPP_CONSTEXPR DeviceImageSubresourceInfoKHR(const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ = {}, const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
27194     : pNext( pNext_ ), pCreateInfo( pCreateInfo_ ), pSubresource( pSubresource_ )
27195     {}
27196 
27197     VULKAN_HPP_CONSTEXPR DeviceImageSubresourceInfoKHR( DeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27198 
DeviceImageSubresourceInfoKHRVULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27199     DeviceImageSubresourceInfoKHR( VkDeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27200       : DeviceImageSubresourceInfoKHR( *reinterpret_cast<DeviceImageSubresourceInfoKHR const *>( &rhs ) )
27201     {}
27202 
27203 
27204     DeviceImageSubresourceInfoKHR & operator=( DeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27205 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
27206 
operator =VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27207     DeviceImageSubresourceInfoKHR & operator=( VkDeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27208     {
27209       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR const *>( &rhs );
27210       return *this;
27211     }
27212 
27213 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27214     VULKAN_HPP_CONSTEXPR_14 DeviceImageSubresourceInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
27215     {
27216       pNext = pNext_;
27217       return *this;
27218     }
27219 
setPCreateInfoVULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27220     VULKAN_HPP_CONSTEXPR_14 DeviceImageSubresourceInfoKHR & setPCreateInfo( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ ) VULKAN_HPP_NOEXCEPT
27221     {
27222       pCreateInfo = pCreateInfo_;
27223       return *this;
27224     }
27225 
setPSubresourceVULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27226     VULKAN_HPP_CONSTEXPR_14 DeviceImageSubresourceInfoKHR & setPSubresource( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource_ ) VULKAN_HPP_NOEXCEPT
27227     {
27228       pSubresource = pSubresource_;
27229       return *this;
27230     }
27231 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
27232 
27233 
operator VkDeviceImageSubresourceInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27234     operator VkDeviceImageSubresourceInfoKHR const &() const VULKAN_HPP_NOEXCEPT
27235     {
27236       return *reinterpret_cast<const VkDeviceImageSubresourceInfoKHR*>( this );
27237     }
27238 
operator VkDeviceImageSubresourceInfoKHR&VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27239     operator VkDeviceImageSubresourceInfoKHR &() VULKAN_HPP_NOEXCEPT
27240     {
27241       return *reinterpret_cast<VkDeviceImageSubresourceInfoKHR*>( this );
27242     }
27243 
27244 #if defined( VULKAN_HPP_USE_REFLECT )
27245 #if 14 <= VULKAN_HPP_CPP_VERSION
27246     auto
27247 #else
27248     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const VULKAN_HPP_NAMESPACE::ImageCreateInfo * const &, const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * const &>
27249 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27250       reflect() const VULKAN_HPP_NOEXCEPT
27251     {
27252       return std::tie( sType, pNext, pCreateInfo, pSubresource );
27253     }
27254 #endif
27255 
27256 
27257 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27258 auto operator<=>( DeviceImageSubresourceInfoKHR const & ) const = default;
27259 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27260     bool operator==( DeviceImageSubresourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
27261     {
27262 #if defined( VULKAN_HPP_USE_REFLECT )
27263       return this->reflect() == rhs.reflect();
27264 #else
27265       return ( sType == rhs.sType )
27266           && ( pNext == rhs.pNext )
27267           && ( pCreateInfo == rhs.pCreateInfo )
27268           && ( pSubresource == rhs.pSubresource );
27269 #endif
27270     }
27271 
operator !=VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR27272     bool operator!=( DeviceImageSubresourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
27273     {
27274       return !operator==( rhs );
27275     }
27276 #endif
27277 
27278     public:
27279     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceImageSubresourceInfoKHR;
27280     const void * pNext = {};
27281     const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo = {};
27282     const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource = {};
27283 
27284   };
27285 
27286   template <>
27287   struct CppType<StructureType, StructureType::eDeviceImageSubresourceInfoKHR>
27288   {
27289     using Type = DeviceImageSubresourceInfoKHR;
27290   };
27291 
27292   struct DeviceMemoryOpaqueCaptureAddressInfo
27293   {
27294     using NativeType = VkDeviceMemoryOpaqueCaptureAddressInfo;
27295 
27296     static const bool allowDuplicate = false;
27297     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
27298 
27299 
27300 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo27301 VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
27302     : pNext( pNext_ ), memory( memory_ )
27303     {}
27304 
27305     VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27306 
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo27307     DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27308       : DeviceMemoryOpaqueCaptureAddressInfo( *reinterpret_cast<DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs ) )
27309     {}
27310 
27311 
27312     DeviceMemoryOpaqueCaptureAddressInfo & operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27313 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
27314 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo27315     DeviceMemoryOpaqueCaptureAddressInfo & operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27316     {
27317       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs );
27318       return *this;
27319     }
27320 
27321 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo27322     VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
27323     {
27324       pNext = pNext_;
27325       return *this;
27326     }
27327 
setMemoryVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo27328     VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
27329     {
27330       memory = memory_;
27331       return *this;
27332     }
27333 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
27334 
27335 
operator VkDeviceMemoryOpaqueCaptureAddressInfo const&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo27336     operator VkDeviceMemoryOpaqueCaptureAddressInfo const &() const VULKAN_HPP_NOEXCEPT
27337     {
27338       return *reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
27339     }
27340 
operator VkDeviceMemoryOpaqueCaptureAddressInfo&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo27341     operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT
27342     {
27343       return *reinterpret_cast<VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
27344     }
27345 
27346 #if defined( VULKAN_HPP_USE_REFLECT )
27347 #if 14 <= VULKAN_HPP_CPP_VERSION
27348     auto
27349 #else
27350     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &>
27351 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo27352       reflect() const VULKAN_HPP_NOEXCEPT
27353     {
27354       return std::tie( sType, pNext, memory );
27355     }
27356 #endif
27357 
27358 
27359 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27360 auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const & ) const = default;
27361 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo27362     bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
27363     {
27364 #if defined( VULKAN_HPP_USE_REFLECT )
27365       return this->reflect() == rhs.reflect();
27366 #else
27367       return ( sType == rhs.sType )
27368           && ( pNext == rhs.pNext )
27369           && ( memory == rhs.memory );
27370 #endif
27371     }
27372 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo27373     bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
27374     {
27375       return !operator==( rhs );
27376     }
27377 #endif
27378 
27379     public:
27380     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
27381     const void * pNext = {};
27382     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
27383 
27384   };
27385 
27386   template <>
27387   struct CppType<StructureType, StructureType::eDeviceMemoryOpaqueCaptureAddressInfo>
27388   {
27389     using Type = DeviceMemoryOpaqueCaptureAddressInfo;
27390   };
27391   using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
27392 
27393   struct DeviceMemoryOverallocationCreateInfoAMD
27394   {
27395     using NativeType = VkDeviceMemoryOverallocationCreateInfoAMD;
27396 
27397     static const bool allowDuplicate = false;
27398     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
27399 
27400 
27401 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD27402 VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD(VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
27403     : pNext( pNext_ ), overallocationBehavior( overallocationBehavior_ )
27404     {}
27405 
27406     VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27407 
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD27408     DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
27409       : DeviceMemoryOverallocationCreateInfoAMD( *reinterpret_cast<DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs ) )
27410     {}
27411 
27412 
27413     DeviceMemoryOverallocationCreateInfoAMD & operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27414 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
27415 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD27416     DeviceMemoryOverallocationCreateInfoAMD & operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
27417     {
27418       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs );
27419       return *this;
27420     }
27421 
27422 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD27423     VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
27424     {
27425       pNext = pNext_;
27426       return *this;
27427     }
27428 
setOverallocationBehaviorVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD27429     VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT
27430     {
27431       overallocationBehavior = overallocationBehavior_;
27432       return *this;
27433     }
27434 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
27435 
27436 
operator VkDeviceMemoryOverallocationCreateInfoAMD const&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD27437     operator VkDeviceMemoryOverallocationCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
27438     {
27439       return *reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
27440     }
27441 
operator VkDeviceMemoryOverallocationCreateInfoAMD&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD27442     operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
27443     {
27444       return *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
27445     }
27446 
27447 #if defined( VULKAN_HPP_USE_REFLECT )
27448 #if 14 <= VULKAN_HPP_CPP_VERSION
27449     auto
27450 #else
27451     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD const &>
27452 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD27453       reflect() const VULKAN_HPP_NOEXCEPT
27454     {
27455       return std::tie( sType, pNext, overallocationBehavior );
27456     }
27457 #endif
27458 
27459 
27460 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27461 auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const & ) const = default;
27462 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD27463     bool operator==( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
27464     {
27465 #if defined( VULKAN_HPP_USE_REFLECT )
27466       return this->reflect() == rhs.reflect();
27467 #else
27468       return ( sType == rhs.sType )
27469           && ( pNext == rhs.pNext )
27470           && ( overallocationBehavior == rhs.overallocationBehavior );
27471 #endif
27472     }
27473 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD27474     bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
27475     {
27476       return !operator==( rhs );
27477     }
27478 #endif
27479 
27480     public:
27481     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
27482     const void * pNext = {};
27483     VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault;
27484 
27485   };
27486 
27487   template <>
27488   struct CppType<StructureType, StructureType::eDeviceMemoryOverallocationCreateInfoAMD>
27489   {
27490     using Type = DeviceMemoryOverallocationCreateInfoAMD;
27491   };
27492 
27493   struct DeviceMemoryReportCallbackDataEXT
27494   {
27495     using NativeType = VkDeviceMemoryReportCallbackDataEXT;
27496 
27497     static const bool allowDuplicate = false;
27498     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryReportCallbackDataEXT;
27499 
27500 
27501 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryReportCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT27502 VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type_ = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate, uint64_t memoryObjectId_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, uint32_t heapIndex_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
27503     : pNext( pNext_ ), flags( flags_ ), type( type_ ), memoryObjectId( memoryObjectId_ ), size( size_ ), objectType( objectType_ ), objectHandle( objectHandle_ ), heapIndex( heapIndex_ )
27504     {}
27505 
27506     VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27507 
DeviceMemoryReportCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT27508     DeviceMemoryReportCallbackDataEXT( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27509       : DeviceMemoryReportCallbackDataEXT( *reinterpret_cast<DeviceMemoryReportCallbackDataEXT const *>( &rhs ) )
27510     {}
27511 
27512 
27513     DeviceMemoryReportCallbackDataEXT & operator=( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27514 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
27515 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT27516     DeviceMemoryReportCallbackDataEXT & operator=( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27517     {
27518       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT const *>( &rhs );
27519       return *this;
27520     }
27521 
27522 
operator VkDeviceMemoryReportCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT27523     operator VkDeviceMemoryReportCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
27524     {
27525       return *reinterpret_cast<const VkDeviceMemoryReportCallbackDataEXT*>( this );
27526     }
27527 
operator VkDeviceMemoryReportCallbackDataEXT&VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT27528     operator VkDeviceMemoryReportCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
27529     {
27530       return *reinterpret_cast<VkDeviceMemoryReportCallbackDataEXT*>( this );
27531     }
27532 
27533 #if defined( VULKAN_HPP_USE_REFLECT )
27534 #if 14 <= VULKAN_HPP_CPP_VERSION
27535     auto
27536 #else
27537     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT const &, VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT const &, uint64_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::ObjectType const &, uint64_t const &, uint32_t const &>
27538 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT27539       reflect() const VULKAN_HPP_NOEXCEPT
27540     {
27541       return std::tie( sType, pNext, flags, type, memoryObjectId, size, objectType, objectHandle, heapIndex );
27542     }
27543 #endif
27544 
27545 
27546 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27547 auto operator<=>( DeviceMemoryReportCallbackDataEXT const & ) const = default;
27548 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT27549     bool operator==( DeviceMemoryReportCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
27550     {
27551 #if defined( VULKAN_HPP_USE_REFLECT )
27552       return this->reflect() == rhs.reflect();
27553 #else
27554       return ( sType == rhs.sType )
27555           && ( pNext == rhs.pNext )
27556           && ( flags == rhs.flags )
27557           && ( type == rhs.type )
27558           && ( memoryObjectId == rhs.memoryObjectId )
27559           && ( size == rhs.size )
27560           && ( objectType == rhs.objectType )
27561           && ( objectHandle == rhs.objectHandle )
27562           && ( heapIndex == rhs.heapIndex );
27563 #endif
27564     }
27565 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT27566     bool operator!=( DeviceMemoryReportCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
27567     {
27568       return !operator==( rhs );
27569     }
27570 #endif
27571 
27572     public:
27573     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT;
27574     void * pNext = {};
27575     VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
27576     VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate;
27577     uint64_t memoryObjectId = {};
27578     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
27579     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
27580     uint64_t objectHandle = {};
27581     uint32_t heapIndex = {};
27582 
27583   };
27584 
27585   template <>
27586   struct CppType<StructureType, StructureType::eDeviceMemoryReportCallbackDataEXT>
27587   {
27588     using Type = DeviceMemoryReportCallbackDataEXT;
27589   };
27590 
27591 #if defined( VK_ENABLE_BETA_EXTENSIONS )
27592   union DeviceOrHostAddressConstAMDX
27593   {
27594     using NativeType = VkDeviceOrHostAddressConstAMDX;
27595 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
27596 
DeviceOrHostAddressConstAMDX(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )27597     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
27598       : deviceAddress( deviceAddress_ )
27599     {}
27600 
DeviceOrHostAddressConstAMDX(const void * hostAddress_)27601     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX( const void * hostAddress_ )
27602       : hostAddress( hostAddress_ )
27603     {}
27604 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
27605 
27606 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)27607     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
27608     {
27609       deviceAddress = deviceAddress_;
27610       return *this;
27611     }
27612 
setHostAddress(const void * hostAddress_)27613     VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX & setHostAddress( const void * hostAddress_ ) VULKAN_HPP_NOEXCEPT
27614     {
27615       hostAddress = hostAddress_;
27616       return *this;
27617     }
27618 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
27619 
operator VkDeviceOrHostAddressConstAMDX const&() const27620     operator VkDeviceOrHostAddressConstAMDX const &() const
27621     {
27622       return *reinterpret_cast<const VkDeviceOrHostAddressConstAMDX*>( this );
27623     }
27624 
operator VkDeviceOrHostAddressConstAMDX&()27625     operator VkDeviceOrHostAddressConstAMDX &()
27626     {
27627       return *reinterpret_cast<VkDeviceOrHostAddressConstAMDX*>( this );
27628     }
27629 
27630 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
27631     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
27632     const void * hostAddress;
27633 #else
27634     VkDeviceAddress deviceAddress;
27635     const void * hostAddress;
27636 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
27637 
27638   };
27639 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
27640 
27641   struct DevicePrivateDataCreateInfo
27642   {
27643     using NativeType = VkDevicePrivateDataCreateInfo;
27644 
27645     static const bool allowDuplicate = true;
27646     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfo;
27647 
27648 
27649 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DevicePrivateDataCreateInfoVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo27650 VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfo(uint32_t privateDataSlotRequestCount_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
27651     : pNext( pNext_ ), privateDataSlotRequestCount( privateDataSlotRequestCount_ )
27652     {}
27653 
27654     VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfo( DevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27655 
DevicePrivateDataCreateInfoVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo27656     DevicePrivateDataCreateInfo( VkDevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27657       : DevicePrivateDataCreateInfo( *reinterpret_cast<DevicePrivateDataCreateInfo const *>( &rhs ) )
27658     {}
27659 
27660 
27661     DevicePrivateDataCreateInfo & operator=( DevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27662 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
27663 
operator =VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo27664     DevicePrivateDataCreateInfo & operator=( VkDevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
27665     {
27666       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo const *>( &rhs );
27667       return *this;
27668     }
27669 
27670 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo27671     VULKAN_HPP_CONSTEXPR_14 DevicePrivateDataCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
27672     {
27673       pNext = pNext_;
27674       return *this;
27675     }
27676 
setPrivateDataSlotRequestCountVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo27677     VULKAN_HPP_CONSTEXPR_14 DevicePrivateDataCreateInfo & setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT
27678     {
27679       privateDataSlotRequestCount = privateDataSlotRequestCount_;
27680       return *this;
27681     }
27682 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
27683 
27684 
operator VkDevicePrivateDataCreateInfo const&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo27685     operator VkDevicePrivateDataCreateInfo const &() const VULKAN_HPP_NOEXCEPT
27686     {
27687       return *reinterpret_cast<const VkDevicePrivateDataCreateInfo*>( this );
27688     }
27689 
operator VkDevicePrivateDataCreateInfo&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo27690     operator VkDevicePrivateDataCreateInfo &() VULKAN_HPP_NOEXCEPT
27691     {
27692       return *reinterpret_cast<VkDevicePrivateDataCreateInfo*>( this );
27693     }
27694 
27695 #if defined( VULKAN_HPP_USE_REFLECT )
27696 #if 14 <= VULKAN_HPP_CPP_VERSION
27697     auto
27698 #else
27699     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
27700 #endif
reflectVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo27701       reflect() const VULKAN_HPP_NOEXCEPT
27702     {
27703       return std::tie( sType, pNext, privateDataSlotRequestCount );
27704     }
27705 #endif
27706 
27707 
27708 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27709 auto operator<=>( DevicePrivateDataCreateInfo const & ) const = default;
27710 #else
operator ==VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo27711     bool operator==( DevicePrivateDataCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
27712     {
27713 #if defined( VULKAN_HPP_USE_REFLECT )
27714       return this->reflect() == rhs.reflect();
27715 #else
27716       return ( sType == rhs.sType )
27717           && ( pNext == rhs.pNext )
27718           && ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount );
27719 #endif
27720     }
27721 
operator !=VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo27722     bool operator!=( DevicePrivateDataCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
27723     {
27724       return !operator==( rhs );
27725     }
27726 #endif
27727 
27728     public:
27729     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfo;
27730     const void * pNext = {};
27731     uint32_t privateDataSlotRequestCount = {};
27732 
27733   };
27734 
27735   template <>
27736   struct CppType<StructureType, StructureType::eDevicePrivateDataCreateInfo>
27737   {
27738     using Type = DevicePrivateDataCreateInfo;
27739   };
27740   using DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo;
27741 
27742   struct DeviceQueueGlobalPriorityCreateInfoKHR
27743   {
27744     using NativeType = VkDeviceQueueGlobalPriorityCreateInfoKHR;
27745 
27746     static const bool allowDuplicate = false;
27747     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueGlobalPriorityCreateInfoKHR;
27748 
27749 
27750 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueGlobalPriorityCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR27751 VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoKHR(VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
27752     : pNext( pNext_ ), globalPriority( globalPriority_ )
27753     {}
27754 
27755     VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoKHR( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27756 
DeviceQueueGlobalPriorityCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR27757     DeviceQueueGlobalPriorityCreateInfoKHR( VkDeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27758       : DeviceQueueGlobalPriorityCreateInfoKHR( *reinterpret_cast<DeviceQueueGlobalPriorityCreateInfoKHR const *>( &rhs ) )
27759     {}
27760 
27761 
27762     DeviceQueueGlobalPriorityCreateInfoKHR & operator=( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27763 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
27764 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR27765     DeviceQueueGlobalPriorityCreateInfoKHR & operator=( VkDeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27766     {
27767       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR const *>( &rhs );
27768       return *this;
27769     }
27770 
27771 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR27772     VULKAN_HPP_CONSTEXPR_14 DeviceQueueGlobalPriorityCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
27773     {
27774       pNext = pNext_;
27775       return *this;
27776     }
27777 
setGlobalPriorityVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR27778     VULKAN_HPP_CONSTEXPR_14 DeviceQueueGlobalPriorityCreateInfoKHR & setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority_ ) VULKAN_HPP_NOEXCEPT
27779     {
27780       globalPriority = globalPriority_;
27781       return *this;
27782     }
27783 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
27784 
27785 
operator VkDeviceQueueGlobalPriorityCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR27786     operator VkDeviceQueueGlobalPriorityCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
27787     {
27788       return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoKHR*>( this );
27789     }
27790 
operator VkDeviceQueueGlobalPriorityCreateInfoKHR&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR27791     operator VkDeviceQueueGlobalPriorityCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
27792     {
27793       return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoKHR*>( this );
27794     }
27795 
27796 #if defined( VULKAN_HPP_USE_REFLECT )
27797 #if 14 <= VULKAN_HPP_CPP_VERSION
27798     auto
27799 #else
27800     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR const &>
27801 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR27802       reflect() const VULKAN_HPP_NOEXCEPT
27803     {
27804       return std::tie( sType, pNext, globalPriority );
27805     }
27806 #endif
27807 
27808 
27809 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27810 auto operator<=>( DeviceQueueGlobalPriorityCreateInfoKHR const & ) const = default;
27811 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR27812     bool operator==( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
27813     {
27814 #if defined( VULKAN_HPP_USE_REFLECT )
27815       return this->reflect() == rhs.reflect();
27816 #else
27817       return ( sType == rhs.sType )
27818           && ( pNext == rhs.pNext )
27819           && ( globalPriority == rhs.globalPriority );
27820 #endif
27821     }
27822 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR27823     bool operator!=( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
27824     {
27825       return !operator==( rhs );
27826     }
27827 #endif
27828 
27829     public:
27830     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoKHR;
27831     const void * pNext = {};
27832     VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow;
27833 
27834   };
27835 
27836   template <>
27837   struct CppType<StructureType, StructureType::eDeviceQueueGlobalPriorityCreateInfoKHR>
27838   {
27839     using Type = DeviceQueueGlobalPriorityCreateInfoKHR;
27840   };
27841   using DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfoKHR;
27842 
27843   struct DeviceQueueInfo2
27844   {
27845     using NativeType = VkDeviceQueueInfo2;
27846 
27847     static const bool allowDuplicate = false;
27848     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2;
27849 
27850 
27851 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo227852 VULKAN_HPP_CONSTEXPR DeviceQueueInfo2(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
27853     : pNext( pNext_ ), flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueIndex( queueIndex_ )
27854     {}
27855 
27856     VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27857 
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo227858     DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
27859       : DeviceQueueInfo2( *reinterpret_cast<DeviceQueueInfo2 const *>( &rhs ) )
27860     {}
27861 
27862 
27863     DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27864 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
27865 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo227866     DeviceQueueInfo2 & operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
27867     {
27868       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const *>( &rhs );
27869       return *this;
27870     }
27871 
27872 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueInfo227873     VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
27874     {
27875       pNext = pNext_;
27876       return *this;
27877     }
27878 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueInfo227879     VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
27880     {
27881       flags = flags_;
27882       return *this;
27883     }
27884 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo227885     VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
27886     {
27887       queueFamilyIndex = queueFamilyIndex_;
27888       return *this;
27889     }
27890 
setQueueIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo227891     VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT
27892     {
27893       queueIndex = queueIndex_;
27894       return *this;
27895     }
27896 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
27897 
27898 
operator VkDeviceQueueInfo2 const&VULKAN_HPP_NAMESPACE::DeviceQueueInfo227899     operator VkDeviceQueueInfo2 const &() const VULKAN_HPP_NOEXCEPT
27900     {
27901       return *reinterpret_cast<const VkDeviceQueueInfo2*>( this );
27902     }
27903 
operator VkDeviceQueueInfo2&VULKAN_HPP_NAMESPACE::DeviceQueueInfo227904     operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT
27905     {
27906       return *reinterpret_cast<VkDeviceQueueInfo2*>( this );
27907     }
27908 
27909 #if defined( VULKAN_HPP_USE_REFLECT )
27910 #if 14 <= VULKAN_HPP_CPP_VERSION
27911     auto
27912 #else
27913     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags const &, uint32_t const &, uint32_t const &>
27914 #endif
reflectVULKAN_HPP_NAMESPACE::DeviceQueueInfo227915       reflect() const VULKAN_HPP_NOEXCEPT
27916     {
27917       return std::tie( sType, pNext, flags, queueFamilyIndex, queueIndex );
27918     }
27919 #endif
27920 
27921 
27922 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27923 auto operator<=>( DeviceQueueInfo2 const & ) const = default;
27924 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueInfo227925     bool operator==( DeviceQueueInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
27926     {
27927 #if defined( VULKAN_HPP_USE_REFLECT )
27928       return this->reflect() == rhs.reflect();
27929 #else
27930       return ( sType == rhs.sType )
27931           && ( pNext == rhs.pNext )
27932           && ( flags == rhs.flags )
27933           && ( queueFamilyIndex == rhs.queueFamilyIndex )
27934           && ( queueIndex == rhs.queueIndex );
27935 #endif
27936     }
27937 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueInfo227938     bool operator!=( DeviceQueueInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
27939     {
27940       return !operator==( rhs );
27941     }
27942 #endif
27943 
27944     public:
27945     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2;
27946     const void * pNext = {};
27947     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
27948     uint32_t queueFamilyIndex = {};
27949     uint32_t queueIndex = {};
27950 
27951   };
27952 
27953   template <>
27954   struct CppType<StructureType, StructureType::eDeviceQueueInfo2>
27955   {
27956     using Type = DeviceQueueInfo2;
27957   };
27958 
27959   struct DirectDriverLoadingInfoLUNARG
27960   {
27961     using NativeType = VkDirectDriverLoadingInfoLUNARG;
27962 
27963     static const bool allowDuplicate = false;
27964     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectDriverLoadingInfoLUNARG;
27965 
27966 
27967 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DirectDriverLoadingInfoLUNARGVULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG27968 VULKAN_HPP_CONSTEXPR DirectDriverLoadingInfoLUNARG(VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG flags_ = {}, PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
27969     : pNext( pNext_ ), flags( flags_ ), pfnGetInstanceProcAddr( pfnGetInstanceProcAddr_ )
27970     {}
27971 
27972     VULKAN_HPP_CONSTEXPR DirectDriverLoadingInfoLUNARG( DirectDriverLoadingInfoLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27973 
DirectDriverLoadingInfoLUNARGVULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG27974     DirectDriverLoadingInfoLUNARG( VkDirectDriverLoadingInfoLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT
27975       : DirectDriverLoadingInfoLUNARG( *reinterpret_cast<DirectDriverLoadingInfoLUNARG const *>( &rhs ) )
27976     {}
27977 
27978 
27979     DirectDriverLoadingInfoLUNARG & operator=( DirectDriverLoadingInfoLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27980 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
27981 
operator =VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG27982     DirectDriverLoadingInfoLUNARG & operator=( VkDirectDriverLoadingInfoLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT
27983     {
27984       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG const *>( &rhs );
27985       return *this;
27986     }
27987 
27988 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG27989     VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingInfoLUNARG & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
27990     {
27991       pNext = pNext_;
27992       return *this;
27993     }
27994 
setFlagsVULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG27995     VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingInfoLUNARG & setFlags( VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG flags_ ) VULKAN_HPP_NOEXCEPT
27996     {
27997       flags = flags_;
27998       return *this;
27999     }
28000 
setPfnGetInstanceProcAddrVULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG28001     VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingInfoLUNARG & setPfnGetInstanceProcAddr( PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr_ ) VULKAN_HPP_NOEXCEPT
28002     {
28003       pfnGetInstanceProcAddr = pfnGetInstanceProcAddr_;
28004       return *this;
28005     }
28006 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
28007 
28008 
operator VkDirectDriverLoadingInfoLUNARG const&VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG28009     operator VkDirectDriverLoadingInfoLUNARG const &() const VULKAN_HPP_NOEXCEPT
28010     {
28011       return *reinterpret_cast<const VkDirectDriverLoadingInfoLUNARG*>( this );
28012     }
28013 
operator VkDirectDriverLoadingInfoLUNARG&VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG28014     operator VkDirectDriverLoadingInfoLUNARG &() VULKAN_HPP_NOEXCEPT
28015     {
28016       return *reinterpret_cast<VkDirectDriverLoadingInfoLUNARG*>( this );
28017     }
28018 
28019 #if defined( VULKAN_HPP_USE_REFLECT )
28020 #if 14 <= VULKAN_HPP_CPP_VERSION
28021     auto
28022 #else
28023     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG const &, PFN_vkGetInstanceProcAddrLUNARG const &>
28024 #endif
reflectVULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG28025       reflect() const VULKAN_HPP_NOEXCEPT
28026     {
28027       return std::tie( sType, pNext, flags, pfnGetInstanceProcAddr );
28028     }
28029 #endif
28030 
28031 
28032 
28033 
28034 
operator ==VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG28035     bool operator==( DirectDriverLoadingInfoLUNARG const & rhs ) const VULKAN_HPP_NOEXCEPT
28036     {
28037 #if defined( VULKAN_HPP_USE_REFLECT )
28038       return this->reflect() == rhs.reflect();
28039 #else
28040       return ( sType == rhs.sType )
28041           && ( pNext == rhs.pNext )
28042           && ( flags == rhs.flags )
28043           && ( pfnGetInstanceProcAddr == rhs.pfnGetInstanceProcAddr );
28044 #endif
28045     }
28046 
operator !=VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG28047     bool operator!=( DirectDriverLoadingInfoLUNARG const & rhs ) const VULKAN_HPP_NOEXCEPT
28048     {
28049       return !operator==( rhs );
28050     }
28051 
28052     public:
28053     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectDriverLoadingInfoLUNARG;
28054     void * pNext = {};
28055     VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG flags = {};
28056     PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr = {};
28057 
28058   };
28059 
28060   template <>
28061   struct CppType<StructureType, StructureType::eDirectDriverLoadingInfoLUNARG>
28062   {
28063     using Type = DirectDriverLoadingInfoLUNARG;
28064   };
28065 
28066   struct DirectDriverLoadingListLUNARG
28067   {
28068     using NativeType = VkDirectDriverLoadingListLUNARG;
28069 
28070     static const bool allowDuplicate = false;
28071     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectDriverLoadingListLUNARG;
28072 
28073 
28074 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DirectDriverLoadingListLUNARGVULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28075 VULKAN_HPP_CONSTEXPR DirectDriverLoadingListLUNARG(VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG mode_ = VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG::eExclusive, uint32_t driverCount_ = {}, const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
28076     : pNext( pNext_ ), mode( mode_ ), driverCount( driverCount_ ), pDrivers( pDrivers_ )
28077     {}
28078 
28079     VULKAN_HPP_CONSTEXPR DirectDriverLoadingListLUNARG( DirectDriverLoadingListLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28080 
DirectDriverLoadingListLUNARGVULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28081     DirectDriverLoadingListLUNARG( VkDirectDriverLoadingListLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT
28082       : DirectDriverLoadingListLUNARG( *reinterpret_cast<DirectDriverLoadingListLUNARG const *>( &rhs ) )
28083     {}
28084 
28085 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DirectDriverLoadingListLUNARGVULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28086     DirectDriverLoadingListLUNARG( VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG mode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG> const & drivers_, void * pNext_ = nullptr )
28087     : pNext( pNext_ ), mode( mode_ ), driverCount( static_cast<uint32_t>( drivers_.size() ) ), pDrivers( drivers_.data() )
28088     {}
28089 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
28090 
28091 
28092     DirectDriverLoadingListLUNARG & operator=( DirectDriverLoadingListLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28093 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
28094 
operator =VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28095     DirectDriverLoadingListLUNARG & operator=( VkDirectDriverLoadingListLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT
28096     {
28097       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG const *>( &rhs );
28098       return *this;
28099     }
28100 
28101 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28102     VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
28103     {
28104       pNext = pNext_;
28105       return *this;
28106     }
28107 
setModeVULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28108     VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG & setMode( VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG mode_ ) VULKAN_HPP_NOEXCEPT
28109     {
28110       mode = mode_;
28111       return *this;
28112     }
28113 
setDriverCountVULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28114     VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG & setDriverCount( uint32_t driverCount_ ) VULKAN_HPP_NOEXCEPT
28115     {
28116       driverCount = driverCount_;
28117       return *this;
28118     }
28119 
setPDriversVULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28120     VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG & setPDrivers( const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers_ ) VULKAN_HPP_NOEXCEPT
28121     {
28122       pDrivers = pDrivers_;
28123       return *this;
28124     }
28125 
28126 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDriversVULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28127     DirectDriverLoadingListLUNARG & setDrivers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG> const & drivers_ ) VULKAN_HPP_NOEXCEPT
28128     {
28129       driverCount = static_cast<uint32_t>( drivers_.size() );
28130       pDrivers = drivers_.data();
28131       return *this;
28132     }
28133 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
28134 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
28135 
28136 
operator VkDirectDriverLoadingListLUNARG const&VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28137     operator VkDirectDriverLoadingListLUNARG const &() const VULKAN_HPP_NOEXCEPT
28138     {
28139       return *reinterpret_cast<const VkDirectDriverLoadingListLUNARG*>( this );
28140     }
28141 
operator VkDirectDriverLoadingListLUNARG&VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28142     operator VkDirectDriverLoadingListLUNARG &() VULKAN_HPP_NOEXCEPT
28143     {
28144       return *reinterpret_cast<VkDirectDriverLoadingListLUNARG*>( this );
28145     }
28146 
28147 #if defined( VULKAN_HPP_USE_REFLECT )
28148 #if 14 <= VULKAN_HPP_CPP_VERSION
28149     auto
28150 #else
28151     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * const &>
28152 #endif
reflectVULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28153       reflect() const VULKAN_HPP_NOEXCEPT
28154     {
28155       return std::tie( sType, pNext, mode, driverCount, pDrivers );
28156     }
28157 #endif
28158 
28159 
28160 
28161 
28162 
operator ==VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28163     bool operator==( DirectDriverLoadingListLUNARG const & rhs ) const VULKAN_HPP_NOEXCEPT
28164     {
28165 #if defined( VULKAN_HPP_USE_REFLECT )
28166       return this->reflect() == rhs.reflect();
28167 #else
28168       return ( sType == rhs.sType )
28169           && ( pNext == rhs.pNext )
28170           && ( mode == rhs.mode )
28171           && ( driverCount == rhs.driverCount )
28172           && ( pDrivers == rhs.pDrivers );
28173 #endif
28174     }
28175 
operator !=VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG28176     bool operator!=( DirectDriverLoadingListLUNARG const & rhs ) const VULKAN_HPP_NOEXCEPT
28177     {
28178       return !operator==( rhs );
28179     }
28180 
28181     public:
28182     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectDriverLoadingListLUNARG;
28183     void * pNext = {};
28184     VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG mode = VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG::eExclusive;
28185     uint32_t driverCount = {};
28186     const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers = {};
28187 
28188   };
28189 
28190   template <>
28191   struct CppType<StructureType, StructureType::eDirectDriverLoadingListLUNARG>
28192   {
28193     using Type = DirectDriverLoadingListLUNARG;
28194   };
28195 
28196 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
28197   struct DirectFBSurfaceCreateInfoEXT
28198   {
28199     using NativeType = VkDirectFBSurfaceCreateInfoEXT;
28200 
28201     static const bool allowDuplicate = false;
28202     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectfbSurfaceCreateInfoEXT;
28203 
28204 
28205 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DirectFBSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28206 VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ = {}, IDirectFB * dfb_ = {}, IDirectFBSurface * surface_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
28207     : pNext( pNext_ ), flags( flags_ ), dfb( dfb_ ), surface( surface_ )
28208     {}
28209 
28210     VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28211 
DirectFBSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28212     DirectFBSurfaceCreateInfoEXT( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28213       : DirectFBSurfaceCreateInfoEXT( *reinterpret_cast<DirectFBSurfaceCreateInfoEXT const *>( &rhs ) )
28214     {}
28215 
28216 
28217     DirectFBSurfaceCreateInfoEXT & operator=( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28218 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
28219 
operator =VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28220     DirectFBSurfaceCreateInfoEXT & operator=( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28221     {
28222       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const *>( &rhs );
28223       return *this;
28224     }
28225 
28226 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28227     VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
28228     {
28229       pNext = pNext_;
28230       return *this;
28231     }
28232 
setFlagsVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28233     VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
28234     {
28235       flags = flags_;
28236       return *this;
28237     }
28238 
setDfbVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28239     VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setDfb( IDirectFB * dfb_ ) VULKAN_HPP_NOEXCEPT
28240     {
28241       dfb = dfb_;
28242       return *this;
28243     }
28244 
setSurfaceVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28245     VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setSurface( IDirectFBSurface * surface_ ) VULKAN_HPP_NOEXCEPT
28246     {
28247       surface = surface_;
28248       return *this;
28249     }
28250 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
28251 
28252 
operator VkDirectFBSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28253     operator VkDirectFBSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
28254     {
28255       return *reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT*>( this );
28256     }
28257 
operator VkDirectFBSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28258     operator VkDirectFBSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
28259     {
28260       return *reinterpret_cast<VkDirectFBSurfaceCreateInfoEXT*>( this );
28261     }
28262 
28263 #if defined( VULKAN_HPP_USE_REFLECT )
28264 #if 14 <= VULKAN_HPP_CPP_VERSION
28265     auto
28266 #else
28267     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT const &, IDirectFB * const &, IDirectFBSurface * const &>
28268 #endif
reflectVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28269       reflect() const VULKAN_HPP_NOEXCEPT
28270     {
28271       return std::tie( sType, pNext, flags, dfb, surface );
28272     }
28273 #endif
28274 
28275 
28276 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28277 auto operator<=>( DirectFBSurfaceCreateInfoEXT const & ) const = default;
28278 #else
operator ==VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28279     bool operator==( DirectFBSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
28280     {
28281 #if defined( VULKAN_HPP_USE_REFLECT )
28282       return this->reflect() == rhs.reflect();
28283 #else
28284       return ( sType == rhs.sType )
28285           && ( pNext == rhs.pNext )
28286           && ( flags == rhs.flags )
28287           && ( dfb == rhs.dfb )
28288           && ( surface == rhs.surface );
28289 #endif
28290     }
28291 
operator !=VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT28292     bool operator!=( DirectFBSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
28293     {
28294       return !operator==( rhs );
28295     }
28296 #endif
28297 
28298     public:
28299     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectfbSurfaceCreateInfoEXT;
28300     const void * pNext = {};
28301     VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags = {};
28302     IDirectFB * dfb = {};
28303     IDirectFBSurface * surface = {};
28304 
28305   };
28306 
28307   template <>
28308   struct CppType<StructureType, StructureType::eDirectfbSurfaceCreateInfoEXT>
28309   {
28310     using Type = DirectFBSurfaceCreateInfoEXT;
28311   };
28312 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
28313 
28314 #if defined( VK_ENABLE_BETA_EXTENSIONS )
28315   struct DispatchGraphCountInfoAMDX
28316   {
28317     using NativeType = VkDispatchGraphCountInfoAMDX;
28318 
28319 
28320 
28321 
28322 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DispatchGraphCountInfoAMDXVULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX28323 VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX(uint32_t count_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX infos_ = {}, uint64_t stride_ = {}) VULKAN_HPP_NOEXCEPT
28324     : count( count_ ), infos( infos_ ), stride( stride_ )
28325     {}
28326 
28327     VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX( DispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28328 
DispatchGraphCountInfoAMDXVULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX28329     DispatchGraphCountInfoAMDX( VkDispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
28330       : DispatchGraphCountInfoAMDX( *reinterpret_cast<DispatchGraphCountInfoAMDX const *>( &rhs ) )
28331     {}
28332 
28333 
28334     DispatchGraphCountInfoAMDX & operator=( DispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28335 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
28336 
operator =VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX28337     DispatchGraphCountInfoAMDX & operator=( VkDispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
28338     {
28339       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX const *>( &rhs );
28340       return *this;
28341     }
28342 
28343 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setCountVULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX28344     VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX & setCount( uint32_t count_ ) VULKAN_HPP_NOEXCEPT
28345     {
28346       count = count_;
28347       return *this;
28348     }
28349 
setInfosVULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX28350     VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX & setInfos( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const & infos_ ) VULKAN_HPP_NOEXCEPT
28351     {
28352       infos = infos_;
28353       return *this;
28354     }
28355 
setStrideVULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX28356     VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX & setStride( uint64_t stride_ ) VULKAN_HPP_NOEXCEPT
28357     {
28358       stride = stride_;
28359       return *this;
28360     }
28361 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
28362 
28363 
operator VkDispatchGraphCountInfoAMDX const&VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX28364     operator VkDispatchGraphCountInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
28365     {
28366       return *reinterpret_cast<const VkDispatchGraphCountInfoAMDX*>( this );
28367     }
28368 
operator VkDispatchGraphCountInfoAMDX&VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX28369     operator VkDispatchGraphCountInfoAMDX &() VULKAN_HPP_NOEXCEPT
28370     {
28371       return *reinterpret_cast<VkDispatchGraphCountInfoAMDX*>( this );
28372     }
28373 
28374 #if defined( VULKAN_HPP_USE_REFLECT )
28375 #if 14 <= VULKAN_HPP_CPP_VERSION
28376     auto
28377 #else
28378     std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const &, uint64_t const &>
28379 #endif
reflectVULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX28380       reflect() const VULKAN_HPP_NOEXCEPT
28381     {
28382       return std::tie( count, infos, stride );
28383     }
28384 #endif
28385 
28386 
28387     public:
28388     uint32_t count = {};
28389     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX infos = {};
28390     uint64_t stride = {};
28391 
28392   };
28393 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
28394 
28395 #if defined( VK_ENABLE_BETA_EXTENSIONS )
28396   struct DispatchGraphInfoAMDX
28397   {
28398     using NativeType = VkDispatchGraphInfoAMDX;
28399 
28400 
28401 
28402 
28403 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DispatchGraphInfoAMDXVULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX28404 VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX(uint32_t nodeIndex_ = {}, uint32_t payloadCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX payloads_ = {}, uint64_t payloadStride_ = {}) VULKAN_HPP_NOEXCEPT
28405     : nodeIndex( nodeIndex_ ), payloadCount( payloadCount_ ), payloads( payloads_ ), payloadStride( payloadStride_ )
28406     {}
28407 
28408     VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX( DispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28409 
DispatchGraphInfoAMDXVULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX28410     DispatchGraphInfoAMDX( VkDispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
28411       : DispatchGraphInfoAMDX( *reinterpret_cast<DispatchGraphInfoAMDX const *>( &rhs ) )
28412     {}
28413 
28414 
28415     DispatchGraphInfoAMDX & operator=( DispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28416 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
28417 
operator =VULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX28418     DispatchGraphInfoAMDX & operator=( VkDispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
28419     {
28420       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX const *>( &rhs );
28421       return *this;
28422     }
28423 
28424 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setNodeIndexVULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX28425     VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setNodeIndex( uint32_t nodeIndex_ ) VULKAN_HPP_NOEXCEPT
28426     {
28427       nodeIndex = nodeIndex_;
28428       return *this;
28429     }
28430 
setPayloadCountVULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX28431     VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setPayloadCount( uint32_t payloadCount_ ) VULKAN_HPP_NOEXCEPT
28432     {
28433       payloadCount = payloadCount_;
28434       return *this;
28435     }
28436 
setPayloadsVULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX28437     VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setPayloads( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const & payloads_ ) VULKAN_HPP_NOEXCEPT
28438     {
28439       payloads = payloads_;
28440       return *this;
28441     }
28442 
setPayloadStrideVULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX28443     VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setPayloadStride( uint64_t payloadStride_ ) VULKAN_HPP_NOEXCEPT
28444     {
28445       payloadStride = payloadStride_;
28446       return *this;
28447     }
28448 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
28449 
28450 
operator VkDispatchGraphInfoAMDX const&VULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX28451     operator VkDispatchGraphInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
28452     {
28453       return *reinterpret_cast<const VkDispatchGraphInfoAMDX*>( this );
28454     }
28455 
operator VkDispatchGraphInfoAMDX&VULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX28456     operator VkDispatchGraphInfoAMDX &() VULKAN_HPP_NOEXCEPT
28457     {
28458       return *reinterpret_cast<VkDispatchGraphInfoAMDX*>( this );
28459     }
28460 
28461 #if defined( VULKAN_HPP_USE_REFLECT )
28462 #if 14 <= VULKAN_HPP_CPP_VERSION
28463     auto
28464 #else
28465     std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const &, uint64_t const &>
28466 #endif
reflectVULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX28467       reflect() const VULKAN_HPP_NOEXCEPT
28468     {
28469       return std::tie( nodeIndex, payloadCount, payloads, payloadStride );
28470     }
28471 #endif
28472 
28473 
28474     public:
28475     uint32_t nodeIndex = {};
28476     uint32_t payloadCount = {};
28477     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX payloads = {};
28478     uint64_t payloadStride = {};
28479 
28480   };
28481 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
28482 
28483   struct DispatchIndirectCommand
28484   {
28485     using NativeType = VkDispatchIndirectCommand;
28486 
28487 
28488 
28489 
28490 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand28491 VULKAN_HPP_CONSTEXPR DispatchIndirectCommand(uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {}) VULKAN_HPP_NOEXCEPT
28492     : x( x_ ), y( y_ ), z( z_ )
28493     {}
28494 
28495     VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28496 
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand28497     DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
28498       : DispatchIndirectCommand( *reinterpret_cast<DispatchIndirectCommand const *>( &rhs ) )
28499     {}
28500 
28501 
28502     DispatchIndirectCommand & operator=( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28503 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
28504 
operator =VULKAN_HPP_NAMESPACE::DispatchIndirectCommand28505     DispatchIndirectCommand & operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
28506     {
28507       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchIndirectCommand const *>( &rhs );
28508       return *this;
28509     }
28510 
28511 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setXVULKAN_HPP_NAMESPACE::DispatchIndirectCommand28512     VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT
28513     {
28514       x = x_;
28515       return *this;
28516     }
28517 
setYVULKAN_HPP_NAMESPACE::DispatchIndirectCommand28518     VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT
28519     {
28520       y = y_;
28521       return *this;
28522     }
28523 
setZVULKAN_HPP_NAMESPACE::DispatchIndirectCommand28524     VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT
28525     {
28526       z = z_;
28527       return *this;
28528     }
28529 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
28530 
28531 
operator VkDispatchIndirectCommand const&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand28532     operator VkDispatchIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
28533     {
28534       return *reinterpret_cast<const VkDispatchIndirectCommand*>( this );
28535     }
28536 
operator VkDispatchIndirectCommand&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand28537     operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT
28538     {
28539       return *reinterpret_cast<VkDispatchIndirectCommand*>( this );
28540     }
28541 
28542 #if defined( VULKAN_HPP_USE_REFLECT )
28543 #if 14 <= VULKAN_HPP_CPP_VERSION
28544     auto
28545 #else
28546     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
28547 #endif
reflectVULKAN_HPP_NAMESPACE::DispatchIndirectCommand28548       reflect() const VULKAN_HPP_NOEXCEPT
28549     {
28550       return std::tie( x, y, z );
28551     }
28552 #endif
28553 
28554 
28555 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28556 auto operator<=>( DispatchIndirectCommand const & ) const = default;
28557 #else
operator ==VULKAN_HPP_NAMESPACE::DispatchIndirectCommand28558     bool operator==( DispatchIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
28559     {
28560 #if defined( VULKAN_HPP_USE_REFLECT )
28561       return this->reflect() == rhs.reflect();
28562 #else
28563       return ( x == rhs.x )
28564           && ( y == rhs.y )
28565           && ( z == rhs.z );
28566 #endif
28567     }
28568 
operator !=VULKAN_HPP_NAMESPACE::DispatchIndirectCommand28569     bool operator!=( DispatchIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
28570     {
28571       return !operator==( rhs );
28572     }
28573 #endif
28574 
28575     public:
28576     uint32_t x = {};
28577     uint32_t y = {};
28578     uint32_t z = {};
28579 
28580   };
28581 
28582   struct DisplayEventInfoEXT
28583   {
28584     using NativeType = VkDisplayEventInfoEXT;
28585 
28586     static const bool allowDuplicate = false;
28587     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT;
28588 
28589 
28590 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT28591 VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT(VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
28592     : pNext( pNext_ ), displayEvent( displayEvent_ )
28593     {}
28594 
28595     VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28596 
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT28597     DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28598       : DisplayEventInfoEXT( *reinterpret_cast<DisplayEventInfoEXT const *>( &rhs ) )
28599     {}
28600 
28601 
28602     DisplayEventInfoEXT & operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28603 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
28604 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT28605     DisplayEventInfoEXT & operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28606     {
28607       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const *>( &rhs );
28608       return *this;
28609     }
28610 
28611 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT28612     VULKAN_HPP_CONSTEXPR_14 DisplayEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
28613     {
28614       pNext = pNext_;
28615       return *this;
28616     }
28617 
setDisplayEventVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT28618     VULKAN_HPP_CONSTEXPR_14 DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT
28619     {
28620       displayEvent = displayEvent_;
28621       return *this;
28622     }
28623 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
28624 
28625 
operator VkDisplayEventInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT28626     operator VkDisplayEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
28627     {
28628       return *reinterpret_cast<const VkDisplayEventInfoEXT*>( this );
28629     }
28630 
operator VkDisplayEventInfoEXT&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT28631     operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT
28632     {
28633       return *reinterpret_cast<VkDisplayEventInfoEXT*>( this );
28634     }
28635 
28636 #if defined( VULKAN_HPP_USE_REFLECT )
28637 #if 14 <= VULKAN_HPP_CPP_VERSION
28638     auto
28639 #else
28640     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT const &>
28641 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT28642       reflect() const VULKAN_HPP_NOEXCEPT
28643     {
28644       return std::tie( sType, pNext, displayEvent );
28645     }
28646 #endif
28647 
28648 
28649 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28650 auto operator<=>( DisplayEventInfoEXT const & ) const = default;
28651 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT28652     bool operator==( DisplayEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
28653     {
28654 #if defined( VULKAN_HPP_USE_REFLECT )
28655       return this->reflect() == rhs.reflect();
28656 #else
28657       return ( sType == rhs.sType )
28658           && ( pNext == rhs.pNext )
28659           && ( displayEvent == rhs.displayEvent );
28660 #endif
28661     }
28662 
operator !=VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT28663     bool operator!=( DisplayEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
28664     {
28665       return !operator==( rhs );
28666     }
28667 #endif
28668 
28669     public:
28670     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT;
28671     const void * pNext = {};
28672     VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut;
28673 
28674   };
28675 
28676   template <>
28677   struct CppType<StructureType, StructureType::eDisplayEventInfoEXT>
28678   {
28679     using Type = DisplayEventInfoEXT;
28680   };
28681 
28682   struct DisplayModeParametersKHR
28683   {
28684     using NativeType = VkDisplayModeParametersKHR;
28685 
28686 
28687 
28688 
28689 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR28690 VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR(VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, uint32_t refreshRate_ = {}) VULKAN_HPP_NOEXCEPT
28691     : visibleRegion( visibleRegion_ ), refreshRate( refreshRate_ )
28692     {}
28693 
28694     VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28695 
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR28696     DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28697       : DisplayModeParametersKHR( *reinterpret_cast<DisplayModeParametersKHR const *>( &rhs ) )
28698     {}
28699 
28700 
28701     DisplayModeParametersKHR & operator=( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28702 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
28703 
operator =VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR28704     DisplayModeParametersKHR & operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28705     {
28706       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const *>( &rhs );
28707       return *this;
28708     }
28709 
28710 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setVisibleRegionVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR28711     VULKAN_HPP_CONSTEXPR_14 DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT
28712     {
28713       visibleRegion = visibleRegion_;
28714       return *this;
28715     }
28716 
setRefreshRateVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR28717     VULKAN_HPP_CONSTEXPR_14 DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT
28718     {
28719       refreshRate = refreshRate_;
28720       return *this;
28721     }
28722 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
28723 
28724 
operator VkDisplayModeParametersKHR const&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR28725     operator VkDisplayModeParametersKHR const &() const VULKAN_HPP_NOEXCEPT
28726     {
28727       return *reinterpret_cast<const VkDisplayModeParametersKHR*>( this );
28728     }
28729 
operator VkDisplayModeParametersKHR&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR28730     operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT
28731     {
28732       return *reinterpret_cast<VkDisplayModeParametersKHR*>( this );
28733     }
28734 
28735 #if defined( VULKAN_HPP_USE_REFLECT )
28736 #if 14 <= VULKAN_HPP_CPP_VERSION
28737     auto
28738 #else
28739     std::tuple<VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &>
28740 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR28741       reflect() const VULKAN_HPP_NOEXCEPT
28742     {
28743       return std::tie( visibleRegion, refreshRate );
28744     }
28745 #endif
28746 
28747 
28748 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28749 auto operator<=>( DisplayModeParametersKHR const & ) const = default;
28750 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR28751     bool operator==( DisplayModeParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28752     {
28753 #if defined( VULKAN_HPP_USE_REFLECT )
28754       return this->reflect() == rhs.reflect();
28755 #else
28756       return ( visibleRegion == rhs.visibleRegion )
28757           && ( refreshRate == rhs.refreshRate );
28758 #endif
28759     }
28760 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR28761     bool operator!=( DisplayModeParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28762     {
28763       return !operator==( rhs );
28764     }
28765 #endif
28766 
28767     public:
28768     VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {};
28769     uint32_t refreshRate = {};
28770 
28771   };
28772 
28773   struct DisplayModeCreateInfoKHR
28774   {
28775     using NativeType = VkDisplayModeCreateInfoKHR;
28776 
28777     static const bool allowDuplicate = false;
28778     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR;
28779 
28780 
28781 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28782 VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
28783     : pNext( pNext_ ), flags( flags_ ), parameters( parameters_ )
28784     {}
28785 
28786     VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28787 
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28788     DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28789       : DisplayModeCreateInfoKHR( *reinterpret_cast<DisplayModeCreateInfoKHR const *>( &rhs ) )
28790     {}
28791 
28792 
28793     DisplayModeCreateInfoKHR & operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28794 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
28795 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28796     DisplayModeCreateInfoKHR & operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28797     {
28798       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const *>( &rhs );
28799       return *this;
28800     }
28801 
28802 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28803     VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
28804     {
28805       pNext = pNext_;
28806       return *this;
28807     }
28808 
setFlagsVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28809     VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
28810     {
28811       flags = flags_;
28812       return *this;
28813     }
28814 
setParametersVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28815     VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT
28816     {
28817       parameters = parameters_;
28818       return *this;
28819     }
28820 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
28821 
28822 
operator VkDisplayModeCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28823     operator VkDisplayModeCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
28824     {
28825       return *reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( this );
28826     }
28827 
operator VkDisplayModeCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28828     operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
28829     {
28830       return *reinterpret_cast<VkDisplayModeCreateInfoKHR*>( this );
28831     }
28832 
28833 #if defined( VULKAN_HPP_USE_REFLECT )
28834 #if 14 <= VULKAN_HPP_CPP_VERSION
28835     auto
28836 #else
28837     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR const &, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const &>
28838 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28839       reflect() const VULKAN_HPP_NOEXCEPT
28840     {
28841       return std::tie( sType, pNext, flags, parameters );
28842     }
28843 #endif
28844 
28845 
28846 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28847 auto operator<=>( DisplayModeCreateInfoKHR const & ) const = default;
28848 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28849     bool operator==( DisplayModeCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28850     {
28851 #if defined( VULKAN_HPP_USE_REFLECT )
28852       return this->reflect() == rhs.reflect();
28853 #else
28854       return ( sType == rhs.sType )
28855           && ( pNext == rhs.pNext )
28856           && ( flags == rhs.flags )
28857           && ( parameters == rhs.parameters );
28858 #endif
28859     }
28860 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR28861     bool operator!=( DisplayModeCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28862     {
28863       return !operator==( rhs );
28864     }
28865 #endif
28866 
28867     public:
28868     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR;
28869     const void * pNext = {};
28870     VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {};
28871     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
28872 
28873   };
28874 
28875   template <>
28876   struct CppType<StructureType, StructureType::eDisplayModeCreateInfoKHR>
28877   {
28878     using Type = DisplayModeCreateInfoKHR;
28879   };
28880 
28881   struct DisplayModePropertiesKHR
28882   {
28883     using NativeType = VkDisplayModePropertiesKHR;
28884 
28885 
28886 
28887 
28888 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR28889 VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT
28890     : displayMode( displayMode_ ), parameters( parameters_ )
28891     {}
28892 
28893     VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28894 
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR28895     DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28896       : DisplayModePropertiesKHR( *reinterpret_cast<DisplayModePropertiesKHR const *>( &rhs ) )
28897     {}
28898 
28899 
28900     DisplayModePropertiesKHR & operator=( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28901 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
28902 
operator =VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR28903     DisplayModePropertiesKHR & operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28904     {
28905       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const *>( &rhs );
28906       return *this;
28907     }
28908 
28909 
operator VkDisplayModePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR28910     operator VkDisplayModePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
28911     {
28912       return *reinterpret_cast<const VkDisplayModePropertiesKHR*>( this );
28913     }
28914 
operator VkDisplayModePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR28915     operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT
28916     {
28917       return *reinterpret_cast<VkDisplayModePropertiesKHR*>( this );
28918     }
28919 
28920 #if defined( VULKAN_HPP_USE_REFLECT )
28921 #if 14 <= VULKAN_HPP_CPP_VERSION
28922     auto
28923 #else
28924     std::tuple<VULKAN_HPP_NAMESPACE::DisplayModeKHR const &, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const &>
28925 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR28926       reflect() const VULKAN_HPP_NOEXCEPT
28927     {
28928       return std::tie( displayMode, parameters );
28929     }
28930 #endif
28931 
28932 
28933 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28934 auto operator<=>( DisplayModePropertiesKHR const & ) const = default;
28935 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR28936     bool operator==( DisplayModePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28937     {
28938 #if defined( VULKAN_HPP_USE_REFLECT )
28939       return this->reflect() == rhs.reflect();
28940 #else
28941       return ( displayMode == rhs.displayMode )
28942           && ( parameters == rhs.parameters );
28943 #endif
28944     }
28945 
operator !=VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR28946     bool operator!=( DisplayModePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28947     {
28948       return !operator==( rhs );
28949     }
28950 #endif
28951 
28952     public:
28953     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
28954     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
28955 
28956   };
28957 
28958   struct DisplayModeProperties2KHR
28959   {
28960     using NativeType = VkDisplayModeProperties2KHR;
28961 
28962     static const bool allowDuplicate = false;
28963     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR;
28964 
28965 
28966 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR28967 VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
28968     : pNext( pNext_ ), displayModeProperties( displayModeProperties_ )
28969     {}
28970 
28971     VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28972 
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR28973     DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
28974       : DisplayModeProperties2KHR( *reinterpret_cast<DisplayModeProperties2KHR const *>( &rhs ) )
28975     {}
28976 
28977 
28978     DisplayModeProperties2KHR & operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28979 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
28980 
operator =VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR28981     DisplayModeProperties2KHR & operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
28982     {
28983       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const *>( &rhs );
28984       return *this;
28985     }
28986 
28987 
operator VkDisplayModeProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR28988     operator VkDisplayModeProperties2KHR const &() const VULKAN_HPP_NOEXCEPT
28989     {
28990       return *reinterpret_cast<const VkDisplayModeProperties2KHR*>( this );
28991     }
28992 
operator VkDisplayModeProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR28993     operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT
28994     {
28995       return *reinterpret_cast<VkDisplayModeProperties2KHR*>( this );
28996     }
28997 
28998 #if defined( VULKAN_HPP_USE_REFLECT )
28999 #if 14 <= VULKAN_HPP_CPP_VERSION
29000     auto
29001 #else
29002     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const &>
29003 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR29004       reflect() const VULKAN_HPP_NOEXCEPT
29005     {
29006       return std::tie( sType, pNext, displayModeProperties );
29007     }
29008 #endif
29009 
29010 
29011 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29012 auto operator<=>( DisplayModeProperties2KHR const & ) const = default;
29013 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR29014     bool operator==( DisplayModeProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29015     {
29016 #if defined( VULKAN_HPP_USE_REFLECT )
29017       return this->reflect() == rhs.reflect();
29018 #else
29019       return ( sType == rhs.sType )
29020           && ( pNext == rhs.pNext )
29021           && ( displayModeProperties == rhs.displayModeProperties );
29022 #endif
29023     }
29024 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR29025     bool operator!=( DisplayModeProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29026     {
29027       return !operator==( rhs );
29028     }
29029 #endif
29030 
29031     public:
29032     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR;
29033     void * pNext = {};
29034     VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {};
29035 
29036   };
29037 
29038   template <>
29039   struct CppType<StructureType, StructureType::eDisplayModeProperties2KHR>
29040   {
29041     using Type = DisplayModeProperties2KHR;
29042   };
29043 
29044   struct DisplayNativeHdrSurfaceCapabilitiesAMD
29045   {
29046     using NativeType = VkDisplayNativeHdrSurfaceCapabilitiesAMD;
29047 
29048     static const bool allowDuplicate = false;
29049     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
29050 
29051 
29052 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD29053 VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
29054     : pNext( pNext_ ), localDimmingSupport( localDimmingSupport_ )
29055     {}
29056 
29057     VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29058 
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD29059     DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
29060       : DisplayNativeHdrSurfaceCapabilitiesAMD( *reinterpret_cast<DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs ) )
29061     {}
29062 
29063 
29064     DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29065 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29066 
operator =VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD29067     DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
29068     {
29069       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs );
29070       return *this;
29071     }
29072 
29073 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD29074     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const &() const VULKAN_HPP_NOEXCEPT
29075     {
29076       return *reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
29077     }
29078 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD29079     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT
29080     {
29081       return *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
29082     }
29083 
29084 #if defined( VULKAN_HPP_USE_REFLECT )
29085 #if 14 <= VULKAN_HPP_CPP_VERSION
29086     auto
29087 #else
29088     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
29089 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD29090       reflect() const VULKAN_HPP_NOEXCEPT
29091     {
29092       return std::tie( sType, pNext, localDimmingSupport );
29093     }
29094 #endif
29095 
29096 
29097 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29098 auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const & ) const = default;
29099 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD29100     bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
29101     {
29102 #if defined( VULKAN_HPP_USE_REFLECT )
29103       return this->reflect() == rhs.reflect();
29104 #else
29105       return ( sType == rhs.sType )
29106           && ( pNext == rhs.pNext )
29107           && ( localDimmingSupport == rhs.localDimmingSupport );
29108 #endif
29109     }
29110 
operator !=VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD29111     bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
29112     {
29113       return !operator==( rhs );
29114     }
29115 #endif
29116 
29117     public:
29118     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
29119     void * pNext = {};
29120     VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {};
29121 
29122   };
29123 
29124   template <>
29125   struct CppType<StructureType, StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD>
29126   {
29127     using Type = DisplayNativeHdrSurfaceCapabilitiesAMD;
29128   };
29129 
29130   struct DisplayPlaneCapabilitiesKHR
29131   {
29132     using NativeType = VkDisplayPlaneCapabilitiesKHR;
29133 
29134 
29135 
29136 
29137 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR29138 VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha_ = {}, VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition_ = {}, VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent_ = {}, VULKAN_HPP_NAMESPACE::Offset2D minDstPosition_ = {}, VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minDstExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent_ = {}) VULKAN_HPP_NOEXCEPT
29139     : supportedAlpha( supportedAlpha_ ), minSrcPosition( minSrcPosition_ ), maxSrcPosition( maxSrcPosition_ ), minSrcExtent( minSrcExtent_ ), maxSrcExtent( maxSrcExtent_ ), minDstPosition( minDstPosition_ ), maxDstPosition( maxDstPosition_ ), minDstExtent( minDstExtent_ ), maxDstExtent( maxDstExtent_ )
29140     {}
29141 
29142     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29143 
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR29144     DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
29145       : DisplayPlaneCapabilitiesKHR( *reinterpret_cast<DisplayPlaneCapabilitiesKHR const *>( &rhs ) )
29146     {}
29147 
29148 
29149     DisplayPlaneCapabilitiesKHR & operator=( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29150 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29151 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR29152     DisplayPlaneCapabilitiesKHR & operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
29153     {
29154       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const *>( &rhs );
29155       return *this;
29156     }
29157 
29158 
operator VkDisplayPlaneCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR29159     operator VkDisplayPlaneCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
29160     {
29161       return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR*>( this );
29162     }
29163 
operator VkDisplayPlaneCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR29164     operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
29165     {
29166       return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( this );
29167     }
29168 
29169 #if defined( VULKAN_HPP_USE_REFLECT )
29170 #if 14 <= VULKAN_HPP_CPP_VERSION
29171     auto
29172 #else
29173     std::tuple<VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR const &, VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
29174 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR29175       reflect() const VULKAN_HPP_NOEXCEPT
29176     {
29177       return std::tie( supportedAlpha, minSrcPosition, maxSrcPosition, minSrcExtent, maxSrcExtent, minDstPosition, maxDstPosition, minDstExtent, maxDstExtent );
29178     }
29179 #endif
29180 
29181 
29182 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29183 auto operator<=>( DisplayPlaneCapabilitiesKHR const & ) const = default;
29184 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR29185     bool operator==( DisplayPlaneCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29186     {
29187 #if defined( VULKAN_HPP_USE_REFLECT )
29188       return this->reflect() == rhs.reflect();
29189 #else
29190       return ( supportedAlpha == rhs.supportedAlpha )
29191           && ( minSrcPosition == rhs.minSrcPosition )
29192           && ( maxSrcPosition == rhs.maxSrcPosition )
29193           && ( minSrcExtent == rhs.minSrcExtent )
29194           && ( maxSrcExtent == rhs.maxSrcExtent )
29195           && ( minDstPosition == rhs.minDstPosition )
29196           && ( maxDstPosition == rhs.maxDstPosition )
29197           && ( minDstExtent == rhs.minDstExtent )
29198           && ( maxDstExtent == rhs.maxDstExtent );
29199 #endif
29200     }
29201 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR29202     bool operator!=( DisplayPlaneCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29203     {
29204       return !operator==( rhs );
29205     }
29206 #endif
29207 
29208     public:
29209     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {};
29210     VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {};
29211     VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {};
29212     VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {};
29213     VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {};
29214     VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {};
29215     VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {};
29216     VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {};
29217     VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {};
29218 
29219   };
29220 
29221   struct DisplayPlaneCapabilities2KHR
29222   {
29223     using NativeType = VkDisplayPlaneCapabilities2KHR;
29224 
29225     static const bool allowDuplicate = false;
29226     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR;
29227 
29228 
29229 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR29230 VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR(VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
29231     : pNext( pNext_ ), capabilities( capabilities_ )
29232     {}
29233 
29234     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29235 
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR29236     DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29237       : DisplayPlaneCapabilities2KHR( *reinterpret_cast<DisplayPlaneCapabilities2KHR const *>( &rhs ) )
29238     {}
29239 
29240 
29241     DisplayPlaneCapabilities2KHR & operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29242 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29243 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR29244     DisplayPlaneCapabilities2KHR & operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29245     {
29246       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const *>( &rhs );
29247       return *this;
29248     }
29249 
29250 
operator VkDisplayPlaneCapabilities2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR29251     operator VkDisplayPlaneCapabilities2KHR const &() const VULKAN_HPP_NOEXCEPT
29252     {
29253       return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR*>( this );
29254     }
29255 
operator VkDisplayPlaneCapabilities2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR29256     operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
29257     {
29258       return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( this );
29259     }
29260 
29261 #if defined( VULKAN_HPP_USE_REFLECT )
29262 #if 14 <= VULKAN_HPP_CPP_VERSION
29263     auto
29264 #else
29265     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const &>
29266 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR29267       reflect() const VULKAN_HPP_NOEXCEPT
29268     {
29269       return std::tie( sType, pNext, capabilities );
29270     }
29271 #endif
29272 
29273 
29274 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29275 auto operator<=>( DisplayPlaneCapabilities2KHR const & ) const = default;
29276 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR29277     bool operator==( DisplayPlaneCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29278     {
29279 #if defined( VULKAN_HPP_USE_REFLECT )
29280       return this->reflect() == rhs.reflect();
29281 #else
29282       return ( sType == rhs.sType )
29283           && ( pNext == rhs.pNext )
29284           && ( capabilities == rhs.capabilities );
29285 #endif
29286     }
29287 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR29288     bool operator!=( DisplayPlaneCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29289     {
29290       return !operator==( rhs );
29291     }
29292 #endif
29293 
29294     public:
29295     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR;
29296     void * pNext = {};
29297     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {};
29298 
29299   };
29300 
29301   template <>
29302   struct CppType<StructureType, StructureType::eDisplayPlaneCapabilities2KHR>
29303   {
29304     using Type = DisplayPlaneCapabilities2KHR;
29305   };
29306 
29307   struct DisplayPlaneInfo2KHR
29308   {
29309     using NativeType = VkDisplayPlaneInfo2KHR;
29310 
29311     static const bool allowDuplicate = false;
29312     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR;
29313 
29314 
29315 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29316 VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, uint32_t planeIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
29317     : pNext( pNext_ ), mode( mode_ ), planeIndex( planeIndex_ )
29318     {}
29319 
29320     VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29321 
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29322     DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29323       : DisplayPlaneInfo2KHR( *reinterpret_cast<DisplayPlaneInfo2KHR const *>( &rhs ) )
29324     {}
29325 
29326 
29327     DisplayPlaneInfo2KHR & operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29328 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29329 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29330     DisplayPlaneInfo2KHR & operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29331     {
29332       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const *>( &rhs );
29333       return *this;
29334     }
29335 
29336 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29337     VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
29338     {
29339       pNext = pNext_;
29340       return *this;
29341     }
29342 
setModeVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29343     VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
29344     {
29345       mode = mode_;
29346       return *this;
29347     }
29348 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29349     VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
29350     {
29351       planeIndex = planeIndex_;
29352       return *this;
29353     }
29354 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
29355 
29356 
operator VkDisplayPlaneInfo2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29357     operator VkDisplayPlaneInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
29358     {
29359       return *reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( this );
29360     }
29361 
operator VkDisplayPlaneInfo2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29362     operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT
29363     {
29364       return *reinterpret_cast<VkDisplayPlaneInfo2KHR*>( this );
29365     }
29366 
29367 #if defined( VULKAN_HPP_USE_REFLECT )
29368 #if 14 <= VULKAN_HPP_CPP_VERSION
29369     auto
29370 #else
29371     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplayModeKHR const &, uint32_t const &>
29372 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29373       reflect() const VULKAN_HPP_NOEXCEPT
29374     {
29375       return std::tie( sType, pNext, mode, planeIndex );
29376     }
29377 #endif
29378 
29379 
29380 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29381 auto operator<=>( DisplayPlaneInfo2KHR const & ) const = default;
29382 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29383     bool operator==( DisplayPlaneInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29384     {
29385 #if defined( VULKAN_HPP_USE_REFLECT )
29386       return this->reflect() == rhs.reflect();
29387 #else
29388       return ( sType == rhs.sType )
29389           && ( pNext == rhs.pNext )
29390           && ( mode == rhs.mode )
29391           && ( planeIndex == rhs.planeIndex );
29392 #endif
29393     }
29394 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR29395     bool operator!=( DisplayPlaneInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29396     {
29397       return !operator==( rhs );
29398     }
29399 #endif
29400 
29401     public:
29402     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR;
29403     const void * pNext = {};
29404     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {};
29405     uint32_t planeIndex = {};
29406 
29407   };
29408 
29409   template <>
29410   struct CppType<StructureType, StructureType::eDisplayPlaneInfo2KHR>
29411   {
29412     using Type = DisplayPlaneInfo2KHR;
29413   };
29414 
29415   struct DisplayPlanePropertiesKHR
29416   {
29417     using NativeType = VkDisplayPlanePropertiesKHR;
29418 
29419 
29420 
29421 
29422 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR29423 VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {}, uint32_t currentStackIndex_ = {}) VULKAN_HPP_NOEXCEPT
29424     : currentDisplay( currentDisplay_ ), currentStackIndex( currentStackIndex_ )
29425     {}
29426 
29427     VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29428 
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR29429     DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
29430       : DisplayPlanePropertiesKHR( *reinterpret_cast<DisplayPlanePropertiesKHR const *>( &rhs ) )
29431     {}
29432 
29433 
29434     DisplayPlanePropertiesKHR & operator=( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29435 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29436 
operator =VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR29437     DisplayPlanePropertiesKHR & operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
29438     {
29439       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const *>( &rhs );
29440       return *this;
29441     }
29442 
29443 
operator VkDisplayPlanePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR29444     operator VkDisplayPlanePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
29445     {
29446       return *reinterpret_cast<const VkDisplayPlanePropertiesKHR*>( this );
29447     }
29448 
operator VkDisplayPlanePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR29449     operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT
29450     {
29451       return *reinterpret_cast<VkDisplayPlanePropertiesKHR*>( this );
29452     }
29453 
29454 #if defined( VULKAN_HPP_USE_REFLECT )
29455 #if 14 <= VULKAN_HPP_CPP_VERSION
29456     auto
29457 #else
29458     std::tuple<VULKAN_HPP_NAMESPACE::DisplayKHR const &, uint32_t const &>
29459 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR29460       reflect() const VULKAN_HPP_NOEXCEPT
29461     {
29462       return std::tie( currentDisplay, currentStackIndex );
29463     }
29464 #endif
29465 
29466 
29467 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29468 auto operator<=>( DisplayPlanePropertiesKHR const & ) const = default;
29469 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR29470     bool operator==( DisplayPlanePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29471     {
29472 #if defined( VULKAN_HPP_USE_REFLECT )
29473       return this->reflect() == rhs.reflect();
29474 #else
29475       return ( currentDisplay == rhs.currentDisplay )
29476           && ( currentStackIndex == rhs.currentStackIndex );
29477 #endif
29478     }
29479 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR29480     bool operator!=( DisplayPlanePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29481     {
29482       return !operator==( rhs );
29483     }
29484 #endif
29485 
29486     public:
29487     VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {};
29488     uint32_t currentStackIndex = {};
29489 
29490   };
29491 
29492   struct DisplayPlaneProperties2KHR
29493   {
29494     using NativeType = VkDisplayPlaneProperties2KHR;
29495 
29496     static const bool allowDuplicate = false;
29497     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR;
29498 
29499 
29500 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR29501 VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
29502     : pNext( pNext_ ), displayPlaneProperties( displayPlaneProperties_ )
29503     {}
29504 
29505     VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29506 
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR29507     DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29508       : DisplayPlaneProperties2KHR( *reinterpret_cast<DisplayPlaneProperties2KHR const *>( &rhs ) )
29509     {}
29510 
29511 
29512     DisplayPlaneProperties2KHR & operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29513 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29514 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR29515     DisplayPlaneProperties2KHR & operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29516     {
29517       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const *>( &rhs );
29518       return *this;
29519     }
29520 
29521 
operator VkDisplayPlaneProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR29522     operator VkDisplayPlaneProperties2KHR const &() const VULKAN_HPP_NOEXCEPT
29523     {
29524       return *reinterpret_cast<const VkDisplayPlaneProperties2KHR*>( this );
29525     }
29526 
operator VkDisplayPlaneProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR29527     operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT
29528     {
29529       return *reinterpret_cast<VkDisplayPlaneProperties2KHR*>( this );
29530     }
29531 
29532 #if defined( VULKAN_HPP_USE_REFLECT )
29533 #if 14 <= VULKAN_HPP_CPP_VERSION
29534     auto
29535 #else
29536     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const &>
29537 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR29538       reflect() const VULKAN_HPP_NOEXCEPT
29539     {
29540       return std::tie( sType, pNext, displayPlaneProperties );
29541     }
29542 #endif
29543 
29544 
29545 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29546 auto operator<=>( DisplayPlaneProperties2KHR const & ) const = default;
29547 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR29548     bool operator==( DisplayPlaneProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29549     {
29550 #if defined( VULKAN_HPP_USE_REFLECT )
29551       return this->reflect() == rhs.reflect();
29552 #else
29553       return ( sType == rhs.sType )
29554           && ( pNext == rhs.pNext )
29555           && ( displayPlaneProperties == rhs.displayPlaneProperties );
29556 #endif
29557     }
29558 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR29559     bool operator!=( DisplayPlaneProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29560     {
29561       return !operator==( rhs );
29562     }
29563 #endif
29564 
29565     public:
29566     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR;
29567     void * pNext = {};
29568     VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {};
29569 
29570   };
29571 
29572   template <>
29573   struct CppType<StructureType, StructureType::eDisplayPlaneProperties2KHR>
29574   {
29575     using Type = DisplayPlaneProperties2KHR;
29576   };
29577 
29578   struct DisplayPowerInfoEXT
29579   {
29580     using NativeType = VkDisplayPowerInfoEXT;
29581 
29582     static const bool allowDuplicate = false;
29583     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT;
29584 
29585 
29586 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT29587 VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT(VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
29588     : pNext( pNext_ ), powerState( powerState_ )
29589     {}
29590 
29591     VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29592 
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT29593     DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29594       : DisplayPowerInfoEXT( *reinterpret_cast<DisplayPowerInfoEXT const *>( &rhs ) )
29595     {}
29596 
29597 
29598     DisplayPowerInfoEXT & operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29599 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29600 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT29601     DisplayPowerInfoEXT & operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29602     {
29603       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const *>( &rhs );
29604       return *this;
29605     }
29606 
29607 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT29608     VULKAN_HPP_CONSTEXPR_14 DisplayPowerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
29609     {
29610       pNext = pNext_;
29611       return *this;
29612     }
29613 
setPowerStateVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT29614     VULKAN_HPP_CONSTEXPR_14 DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT
29615     {
29616       powerState = powerState_;
29617       return *this;
29618     }
29619 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
29620 
29621 
operator VkDisplayPowerInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT29622     operator VkDisplayPowerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
29623     {
29624       return *reinterpret_cast<const VkDisplayPowerInfoEXT*>( this );
29625     }
29626 
operator VkDisplayPowerInfoEXT&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT29627     operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT
29628     {
29629       return *reinterpret_cast<VkDisplayPowerInfoEXT*>( this );
29630     }
29631 
29632 #if defined( VULKAN_HPP_USE_REFLECT )
29633 #if 14 <= VULKAN_HPP_CPP_VERSION
29634     auto
29635 #else
29636     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT const &>
29637 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT29638       reflect() const VULKAN_HPP_NOEXCEPT
29639     {
29640       return std::tie( sType, pNext, powerState );
29641     }
29642 #endif
29643 
29644 
29645 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29646 auto operator<=>( DisplayPowerInfoEXT const & ) const = default;
29647 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT29648     bool operator==( DisplayPowerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
29649     {
29650 #if defined( VULKAN_HPP_USE_REFLECT )
29651       return this->reflect() == rhs.reflect();
29652 #else
29653       return ( sType == rhs.sType )
29654           && ( pNext == rhs.pNext )
29655           && ( powerState == rhs.powerState );
29656 #endif
29657     }
29658 
operator !=VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT29659     bool operator!=( DisplayPowerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
29660     {
29661       return !operator==( rhs );
29662     }
29663 #endif
29664 
29665     public:
29666     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT;
29667     const void * pNext = {};
29668     VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff;
29669 
29670   };
29671 
29672   template <>
29673   struct CppType<StructureType, StructureType::eDisplayPowerInfoEXT>
29674   {
29675     using Type = DisplayPowerInfoEXT;
29676   };
29677 
29678   struct DisplayPresentInfoKHR
29679   {
29680     using NativeType = VkDisplayPresentInfoKHR;
29681 
29682     static const bool allowDuplicate = false;
29683     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR;
29684 
29685 
29686 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29687 VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR(VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {}, VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
29688     : pNext( pNext_ ), srcRect( srcRect_ ), dstRect( dstRect_ ), persistent( persistent_ )
29689     {}
29690 
29691     VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29692 
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29693     DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
29694       : DisplayPresentInfoKHR( *reinterpret_cast<DisplayPresentInfoKHR const *>( &rhs ) )
29695     {}
29696 
29697 
29698     DisplayPresentInfoKHR & operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29699 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29700 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29701     DisplayPresentInfoKHR & operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
29702     {
29703       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const *>( &rhs );
29704       return *this;
29705     }
29706 
29707 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29708     VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
29709     {
29710       pNext = pNext_;
29711       return *this;
29712     }
29713 
setSrcRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29714     VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT
29715     {
29716       srcRect = srcRect_;
29717       return *this;
29718     }
29719 
setDstRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29720     VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT
29721     {
29722       dstRect = dstRect_;
29723       return *this;
29724     }
29725 
setPersistentVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29726     VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT
29727     {
29728       persistent = persistent_;
29729       return *this;
29730     }
29731 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
29732 
29733 
operator VkDisplayPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29734     operator VkDisplayPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
29735     {
29736       return *reinterpret_cast<const VkDisplayPresentInfoKHR*>( this );
29737     }
29738 
operator VkDisplayPresentInfoKHR&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29739     operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
29740     {
29741       return *reinterpret_cast<VkDisplayPresentInfoKHR*>( this );
29742     }
29743 
29744 #if defined( VULKAN_HPP_USE_REFLECT )
29745 #if 14 <= VULKAN_HPP_CPP_VERSION
29746     auto
29747 #else
29748     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Rect2D const &, VULKAN_HPP_NAMESPACE::Rect2D const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
29749 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29750       reflect() const VULKAN_HPP_NOEXCEPT
29751     {
29752       return std::tie( sType, pNext, srcRect, dstRect, persistent );
29753     }
29754 #endif
29755 
29756 
29757 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29758 auto operator<=>( DisplayPresentInfoKHR const & ) const = default;
29759 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29760     bool operator==( DisplayPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29761     {
29762 #if defined( VULKAN_HPP_USE_REFLECT )
29763       return this->reflect() == rhs.reflect();
29764 #else
29765       return ( sType == rhs.sType )
29766           && ( pNext == rhs.pNext )
29767           && ( srcRect == rhs.srcRect )
29768           && ( dstRect == rhs.dstRect )
29769           && ( persistent == rhs.persistent );
29770 #endif
29771     }
29772 
operator !=VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR29773     bool operator!=( DisplayPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29774     {
29775       return !operator==( rhs );
29776     }
29777 #endif
29778 
29779     public:
29780     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR;
29781     const void * pNext = {};
29782     VULKAN_HPP_NAMESPACE::Rect2D srcRect = {};
29783     VULKAN_HPP_NAMESPACE::Rect2D dstRect = {};
29784     VULKAN_HPP_NAMESPACE::Bool32 persistent = {};
29785 
29786   };
29787 
29788   template <>
29789   struct CppType<StructureType, StructureType::eDisplayPresentInfoKHR>
29790   {
29791     using Type = DisplayPresentInfoKHR;
29792   };
29793 
29794   struct DisplayPropertiesKHR
29795   {
29796     using NativeType = VkDisplayPropertiesKHR;
29797 
29798 
29799 
29800 
29801 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR29802 VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display_ = {}, const char * displayName_ = {}, VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions_ = {}, VULKAN_HPP_NAMESPACE::Extent2D physicalResolution_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistentContent_ = {}) VULKAN_HPP_NOEXCEPT
29803     : display( display_ ), displayName( displayName_ ), physicalDimensions( physicalDimensions_ ), physicalResolution( physicalResolution_ ), supportedTransforms( supportedTransforms_ ), planeReorderPossible( planeReorderPossible_ ), persistentContent( persistentContent_ )
29804     {}
29805 
29806     VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29807 
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR29808     DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
29809       : DisplayPropertiesKHR( *reinterpret_cast<DisplayPropertiesKHR const *>( &rhs ) )
29810     {}
29811 
29812 
29813     DisplayPropertiesKHR & operator=( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29814 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29815 
operator =VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR29816     DisplayPropertiesKHR & operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
29817     {
29818       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const *>( &rhs );
29819       return *this;
29820     }
29821 
29822 
operator VkDisplayPropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR29823     operator VkDisplayPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
29824     {
29825       return *reinterpret_cast<const VkDisplayPropertiesKHR*>( this );
29826     }
29827 
operator VkDisplayPropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR29828     operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT
29829     {
29830       return *reinterpret_cast<VkDisplayPropertiesKHR*>( this );
29831     }
29832 
29833 #if defined( VULKAN_HPP_USE_REFLECT )
29834 #if 14 <= VULKAN_HPP_CPP_VERSION
29835     auto
29836 #else
29837     std::tuple<VULKAN_HPP_NAMESPACE::DisplayKHR const &, const char * const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
29838 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR29839       reflect() const VULKAN_HPP_NOEXCEPT
29840     {
29841       return std::tie( display, displayName, physicalDimensions, physicalResolution, supportedTransforms, planeReorderPossible, persistentContent );
29842     }
29843 #endif
29844 
29845 
29846 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR29847     std::strong_ordering operator<=>( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29848     {
29849       if ( auto cmp = display <=> rhs.display; cmp != 0 ) return cmp;
29850      if ( displayName != rhs.displayName )
29851         if ( auto cmp = strcmp( displayName, rhs.displayName ); cmp != 0 )
29852           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
29853       if ( auto cmp = physicalDimensions <=> rhs.physicalDimensions; cmp != 0 ) return cmp;
29854       if ( auto cmp = physicalResolution <=> rhs.physicalResolution; cmp != 0 ) return cmp;
29855       if ( auto cmp = supportedTransforms <=> rhs.supportedTransforms; cmp != 0 ) return cmp;
29856       if ( auto cmp = planeReorderPossible <=> rhs.planeReorderPossible; cmp != 0 ) return cmp;
29857       if ( auto cmp = persistentContent <=> rhs.persistentContent; cmp != 0 ) return cmp;
29858 
29859       return std::strong_ordering::equivalent;
29860     }
29861 #endif
29862 
operator ==VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR29863     bool operator==( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29864     {
29865       return ( display == rhs.display )
29866           && ( ( displayName == rhs.displayName ) || ( strcmp( displayName, rhs.displayName ) == 0 ) )
29867           && ( physicalDimensions == rhs.physicalDimensions )
29868           && ( physicalResolution == rhs.physicalResolution )
29869           && ( supportedTransforms == rhs.supportedTransforms )
29870           && ( planeReorderPossible == rhs.planeReorderPossible )
29871           && ( persistentContent == rhs.persistentContent );
29872     }
29873 
operator !=VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR29874     bool operator!=( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29875     {
29876       return !operator==( rhs );
29877     }
29878 
29879     public:
29880     VULKAN_HPP_NAMESPACE::DisplayKHR display = {};
29881     const char * displayName = {};
29882     VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {};
29883     VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {};
29884     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
29885     VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {};
29886     VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {};
29887 
29888   };
29889 
29890   struct DisplayProperties2KHR
29891   {
29892     using NativeType = VkDisplayProperties2KHR;
29893 
29894     static const bool allowDuplicate = false;
29895     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR;
29896 
29897 
29898 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR29899 VULKAN_HPP_CONSTEXPR DisplayProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
29900     : pNext( pNext_ ), displayProperties( displayProperties_ )
29901     {}
29902 
29903     VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29904 
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR29905     DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29906       : DisplayProperties2KHR( *reinterpret_cast<DisplayProperties2KHR const *>( &rhs ) )
29907     {}
29908 
29909 
29910     DisplayProperties2KHR & operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29911 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29912 
operator =VULKAN_HPP_NAMESPACE::DisplayProperties2KHR29913     DisplayProperties2KHR & operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
29914     {
29915       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const *>( &rhs );
29916       return *this;
29917     }
29918 
29919 
operator VkDisplayProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR29920     operator VkDisplayProperties2KHR const &() const VULKAN_HPP_NOEXCEPT
29921     {
29922       return *reinterpret_cast<const VkDisplayProperties2KHR*>( this );
29923     }
29924 
operator VkDisplayProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR29925     operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT
29926     {
29927       return *reinterpret_cast<VkDisplayProperties2KHR*>( this );
29928     }
29929 
29930 #if defined( VULKAN_HPP_USE_REFLECT )
29931 #if 14 <= VULKAN_HPP_CPP_VERSION
29932     auto
29933 #else
29934     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const &>
29935 #endif
reflectVULKAN_HPP_NAMESPACE::DisplayProperties2KHR29936       reflect() const VULKAN_HPP_NOEXCEPT
29937     {
29938       return std::tie( sType, pNext, displayProperties );
29939     }
29940 #endif
29941 
29942 
29943 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29944 auto operator<=>( DisplayProperties2KHR const & ) const = default;
29945 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayProperties2KHR29946     bool operator==( DisplayProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29947     {
29948 #if defined( VULKAN_HPP_USE_REFLECT )
29949       return this->reflect() == rhs.reflect();
29950 #else
29951       return ( sType == rhs.sType )
29952           && ( pNext == rhs.pNext )
29953           && ( displayProperties == rhs.displayProperties );
29954 #endif
29955     }
29956 
operator !=VULKAN_HPP_NAMESPACE::DisplayProperties2KHR29957     bool operator!=( DisplayProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
29958     {
29959       return !operator==( rhs );
29960     }
29961 #endif
29962 
29963     public:
29964     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR;
29965     void * pNext = {};
29966     VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {};
29967 
29968   };
29969 
29970   template <>
29971   struct CppType<StructureType, StructureType::eDisplayProperties2KHR>
29972   {
29973     using Type = DisplayProperties2KHR;
29974   };
29975 
29976   struct DisplaySurfaceCreateInfoKHR
29977   {
29978     using NativeType = VkDisplaySurfaceCreateInfoKHR;
29979 
29980     static const bool allowDuplicate = false;
29981     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR;
29982 
29983 
29984 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR29985 VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, uint32_t planeIndex_ = {}, uint32_t planeStackIndex_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, float globalAlpha_ = {}, VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
29986     : pNext( pNext_ ), flags( flags_ ), displayMode( displayMode_ ), planeIndex( planeIndex_ ), planeStackIndex( planeStackIndex_ ), transform( transform_ ), globalAlpha( globalAlpha_ ), alphaMode( alphaMode_ ), imageExtent( imageExtent_ )
29987     {}
29988 
29989     VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29990 
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR29991     DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
29992       : DisplaySurfaceCreateInfoKHR( *reinterpret_cast<DisplaySurfaceCreateInfoKHR const *>( &rhs ) )
29993     {}
29994 
29995 
29996     DisplaySurfaceCreateInfoKHR & operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29997 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
29998 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR29999     DisplaySurfaceCreateInfoKHR & operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
30000     {
30001       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const *>( &rhs );
30002       return *this;
30003     }
30004 
30005 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30006     VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
30007     {
30008       pNext = pNext_;
30009       return *this;
30010     }
30011 
setFlagsVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30012     VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
30013     {
30014       flags = flags_;
30015       return *this;
30016     }
30017 
setDisplayModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30018     VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT
30019     {
30020       displayMode = displayMode_;
30021       return *this;
30022     }
30023 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30024     VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
30025     {
30026       planeIndex = planeIndex_;
30027       return *this;
30028     }
30029 
setPlaneStackIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30030     VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT
30031     {
30032       planeStackIndex = planeStackIndex_;
30033       return *this;
30034     }
30035 
setTransformVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30036     VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
30037     {
30038       transform = transform_;
30039       return *this;
30040     }
30041 
setGlobalAlphaVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30042     VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT
30043     {
30044       globalAlpha = globalAlpha_;
30045       return *this;
30046     }
30047 
setAlphaModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30048     VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT
30049     {
30050       alphaMode = alphaMode_;
30051       return *this;
30052     }
30053 
setImageExtentVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30054     VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
30055     {
30056       imageExtent = imageExtent_;
30057       return *this;
30058     }
30059 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
30060 
30061 
operator VkDisplaySurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30062     operator VkDisplaySurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
30063     {
30064       return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( this );
30065     }
30066 
operator VkDisplaySurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30067     operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
30068     {
30069       return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>( this );
30070     }
30071 
30072 #if defined( VULKAN_HPP_USE_REFLECT )
30073 #if 14 <= VULKAN_HPP_CPP_VERSION
30074     auto
30075 #else
30076     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR const &, VULKAN_HPP_NAMESPACE::DisplayModeKHR const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &, float const &, VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
30077 #endif
reflectVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30078       reflect() const VULKAN_HPP_NOEXCEPT
30079     {
30080       return std::tie( sType, pNext, flags, displayMode, planeIndex, planeStackIndex, transform, globalAlpha, alphaMode, imageExtent );
30081     }
30082 #endif
30083 
30084 
30085 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30086 auto operator<=>( DisplaySurfaceCreateInfoKHR const & ) const = default;
30087 #else
operator ==VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30088     bool operator==( DisplaySurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
30089     {
30090 #if defined( VULKAN_HPP_USE_REFLECT )
30091       return this->reflect() == rhs.reflect();
30092 #else
30093       return ( sType == rhs.sType )
30094           && ( pNext == rhs.pNext )
30095           && ( flags == rhs.flags )
30096           && ( displayMode == rhs.displayMode )
30097           && ( planeIndex == rhs.planeIndex )
30098           && ( planeStackIndex == rhs.planeStackIndex )
30099           && ( transform == rhs.transform )
30100           && ( globalAlpha == rhs.globalAlpha )
30101           && ( alphaMode == rhs.alphaMode )
30102           && ( imageExtent == rhs.imageExtent );
30103 #endif
30104     }
30105 
operator !=VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR30106     bool operator!=( DisplaySurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
30107     {
30108       return !operator==( rhs );
30109     }
30110 #endif
30111 
30112     public:
30113     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR;
30114     const void * pNext = {};
30115     VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {};
30116     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
30117     uint32_t planeIndex = {};
30118     uint32_t planeStackIndex = {};
30119     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
30120     float globalAlpha = {};
30121     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque;
30122     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
30123 
30124   };
30125 
30126   template <>
30127   struct CppType<StructureType, StructureType::eDisplaySurfaceCreateInfoKHR>
30128   {
30129     using Type = DisplaySurfaceCreateInfoKHR;
30130   };
30131 
30132   struct DrawIndexedIndirectCommand
30133   {
30134     using NativeType = VkDrawIndexedIndirectCommand;
30135 
30136 
30137 
30138 
30139 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30140 VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand(uint32_t indexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstIndex_ = {}, int32_t vertexOffset_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT
30141     : indexCount( indexCount_ ), instanceCount( instanceCount_ ), firstIndex( firstIndex_ ), vertexOffset( vertexOffset_ ), firstInstance( firstInstance_ )
30142     {}
30143 
30144     VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30145 
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30146     DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
30147       : DrawIndexedIndirectCommand( *reinterpret_cast<DrawIndexedIndirectCommand const *>( &rhs ) )
30148     {}
30149 
30150 
30151     DrawIndexedIndirectCommand & operator=( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30152 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
30153 
operator =VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30154     DrawIndexedIndirectCommand & operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
30155     {
30156       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand const *>( &rhs );
30157       return *this;
30158     }
30159 
30160 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setIndexCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30161     VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
30162     {
30163       indexCount = indexCount_;
30164       return *this;
30165     }
30166 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30167     VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
30168     {
30169       instanceCount = instanceCount_;
30170       return *this;
30171     }
30172 
setFirstIndexVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30173     VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
30174     {
30175       firstIndex = firstIndex_;
30176       return *this;
30177     }
30178 
setVertexOffsetVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30179     VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
30180     {
30181       vertexOffset = vertexOffset_;
30182       return *this;
30183     }
30184 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30185     VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
30186     {
30187       firstInstance = firstInstance_;
30188       return *this;
30189     }
30190 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
30191 
30192 
operator VkDrawIndexedIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30193     operator VkDrawIndexedIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
30194     {
30195       return *reinterpret_cast<const VkDrawIndexedIndirectCommand*>( this );
30196     }
30197 
operator VkDrawIndexedIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30198     operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT
30199     {
30200       return *reinterpret_cast<VkDrawIndexedIndirectCommand*>( this );
30201     }
30202 
30203 #if defined( VULKAN_HPP_USE_REFLECT )
30204 #if 14 <= VULKAN_HPP_CPP_VERSION
30205     auto
30206 #else
30207     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, int32_t const &, uint32_t const &>
30208 #endif
reflectVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30209       reflect() const VULKAN_HPP_NOEXCEPT
30210     {
30211       return std::tie( indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
30212     }
30213 #endif
30214 
30215 
30216 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30217 auto operator<=>( DrawIndexedIndirectCommand const & ) const = default;
30218 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30219     bool operator==( DrawIndexedIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
30220     {
30221 #if defined( VULKAN_HPP_USE_REFLECT )
30222       return this->reflect() == rhs.reflect();
30223 #else
30224       return ( indexCount == rhs.indexCount )
30225           && ( instanceCount == rhs.instanceCount )
30226           && ( firstIndex == rhs.firstIndex )
30227           && ( vertexOffset == rhs.vertexOffset )
30228           && ( firstInstance == rhs.firstInstance );
30229 #endif
30230     }
30231 
operator !=VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand30232     bool operator!=( DrawIndexedIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
30233     {
30234       return !operator==( rhs );
30235     }
30236 #endif
30237 
30238     public:
30239     uint32_t indexCount = {};
30240     uint32_t instanceCount = {};
30241     uint32_t firstIndex = {};
30242     int32_t vertexOffset = {};
30243     uint32_t firstInstance = {};
30244 
30245   };
30246 
30247   struct DrawIndirectCommand
30248   {
30249     using NativeType = VkDrawIndirectCommand;
30250 
30251 
30252 
30253 
30254 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand30255 VULKAN_HPP_CONSTEXPR DrawIndirectCommand(uint32_t vertexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstVertex_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT
30256     : vertexCount( vertexCount_ ), instanceCount( instanceCount_ ), firstVertex( firstVertex_ ), firstInstance( firstInstance_ )
30257     {}
30258 
30259     VULKAN_HPP_CONSTEXPR DrawIndirectCommand( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30260 
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand30261     DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
30262       : DrawIndirectCommand( *reinterpret_cast<DrawIndirectCommand const *>( &rhs ) )
30263     {}
30264 
30265 
30266     DrawIndirectCommand & operator=( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30267 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
30268 
operator =VULKAN_HPP_NAMESPACE::DrawIndirectCommand30269     DrawIndirectCommand & operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
30270     {
30271       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndirectCommand const *>( &rhs );
30272       return *this;
30273     }
30274 
30275 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setVertexCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand30276     VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
30277     {
30278       vertexCount = vertexCount_;
30279       return *this;
30280     }
30281 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand30282     VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
30283     {
30284       instanceCount = instanceCount_;
30285       return *this;
30286     }
30287 
setFirstVertexVULKAN_HPP_NAMESPACE::DrawIndirectCommand30288     VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
30289     {
30290       firstVertex = firstVertex_;
30291       return *this;
30292     }
30293 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndirectCommand30294     VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
30295     {
30296       firstInstance = firstInstance_;
30297       return *this;
30298     }
30299 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
30300 
30301 
operator VkDrawIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndirectCommand30302     operator VkDrawIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
30303     {
30304       return *reinterpret_cast<const VkDrawIndirectCommand*>( this );
30305     }
30306 
operator VkDrawIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndirectCommand30307     operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT
30308     {
30309       return *reinterpret_cast<VkDrawIndirectCommand*>( this );
30310     }
30311 
30312 #if defined( VULKAN_HPP_USE_REFLECT )
30313 #if 14 <= VULKAN_HPP_CPP_VERSION
30314     auto
30315 #else
30316     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
30317 #endif
reflectVULKAN_HPP_NAMESPACE::DrawIndirectCommand30318       reflect() const VULKAN_HPP_NOEXCEPT
30319     {
30320       return std::tie( vertexCount, instanceCount, firstVertex, firstInstance );
30321     }
30322 #endif
30323 
30324 
30325 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30326 auto operator<=>( DrawIndirectCommand const & ) const = default;
30327 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndirectCommand30328     bool operator==( DrawIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
30329     {
30330 #if defined( VULKAN_HPP_USE_REFLECT )
30331       return this->reflect() == rhs.reflect();
30332 #else
30333       return ( vertexCount == rhs.vertexCount )
30334           && ( instanceCount == rhs.instanceCount )
30335           && ( firstVertex == rhs.firstVertex )
30336           && ( firstInstance == rhs.firstInstance );
30337 #endif
30338     }
30339 
operator !=VULKAN_HPP_NAMESPACE::DrawIndirectCommand30340     bool operator!=( DrawIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
30341     {
30342       return !operator==( rhs );
30343     }
30344 #endif
30345 
30346     public:
30347     uint32_t vertexCount = {};
30348     uint32_t instanceCount = {};
30349     uint32_t firstVertex = {};
30350     uint32_t firstInstance = {};
30351 
30352   };
30353 
30354   struct DrawMeshTasksIndirectCommandEXT
30355   {
30356     using NativeType = VkDrawMeshTasksIndirectCommandEXT;
30357 
30358 
30359 
30360 
30361 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawMeshTasksIndirectCommandEXTVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30362 VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandEXT(uint32_t groupCountX_ = {}, uint32_t groupCountY_ = {}, uint32_t groupCountZ_ = {}) VULKAN_HPP_NOEXCEPT
30363     : groupCountX( groupCountX_ ), groupCountY( groupCountY_ ), groupCountZ( groupCountZ_ )
30364     {}
30365 
30366     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandEXT( DrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30367 
DrawMeshTasksIndirectCommandEXTVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30368     DrawMeshTasksIndirectCommandEXT( VkDrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30369       : DrawMeshTasksIndirectCommandEXT( *reinterpret_cast<DrawMeshTasksIndirectCommandEXT const *>( &rhs ) )
30370     {}
30371 
30372 
30373     DrawMeshTasksIndirectCommandEXT & operator=( DrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30374 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
30375 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30376     DrawMeshTasksIndirectCommandEXT & operator=( VkDrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30377     {
30378       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT const *>( &rhs );
30379       return *this;
30380     }
30381 
30382 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setGroupCountXVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30383     VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandEXT & setGroupCountX( uint32_t groupCountX_ ) VULKAN_HPP_NOEXCEPT
30384     {
30385       groupCountX = groupCountX_;
30386       return *this;
30387     }
30388 
setGroupCountYVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30389     VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandEXT & setGroupCountY( uint32_t groupCountY_ ) VULKAN_HPP_NOEXCEPT
30390     {
30391       groupCountY = groupCountY_;
30392       return *this;
30393     }
30394 
setGroupCountZVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30395     VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandEXT & setGroupCountZ( uint32_t groupCountZ_ ) VULKAN_HPP_NOEXCEPT
30396     {
30397       groupCountZ = groupCountZ_;
30398       return *this;
30399     }
30400 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
30401 
30402 
operator VkDrawMeshTasksIndirectCommandEXT const&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30403     operator VkDrawMeshTasksIndirectCommandEXT const &() const VULKAN_HPP_NOEXCEPT
30404     {
30405       return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandEXT*>( this );
30406     }
30407 
operator VkDrawMeshTasksIndirectCommandEXT&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30408     operator VkDrawMeshTasksIndirectCommandEXT &() VULKAN_HPP_NOEXCEPT
30409     {
30410       return *reinterpret_cast<VkDrawMeshTasksIndirectCommandEXT*>( this );
30411     }
30412 
30413 #if defined( VULKAN_HPP_USE_REFLECT )
30414 #if 14 <= VULKAN_HPP_CPP_VERSION
30415     auto
30416 #else
30417     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
30418 #endif
reflectVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30419       reflect() const VULKAN_HPP_NOEXCEPT
30420     {
30421       return std::tie( groupCountX, groupCountY, groupCountZ );
30422     }
30423 #endif
30424 
30425 
30426 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30427 auto operator<=>( DrawMeshTasksIndirectCommandEXT const & ) const = default;
30428 #else
operator ==VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30429     bool operator==( DrawMeshTasksIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
30430     {
30431 #if defined( VULKAN_HPP_USE_REFLECT )
30432       return this->reflect() == rhs.reflect();
30433 #else
30434       return ( groupCountX == rhs.groupCountX )
30435           && ( groupCountY == rhs.groupCountY )
30436           && ( groupCountZ == rhs.groupCountZ );
30437 #endif
30438     }
30439 
operator !=VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT30440     bool operator!=( DrawMeshTasksIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
30441     {
30442       return !operator==( rhs );
30443     }
30444 #endif
30445 
30446     public:
30447     uint32_t groupCountX = {};
30448     uint32_t groupCountY = {};
30449     uint32_t groupCountZ = {};
30450 
30451   };
30452 
30453   struct DrawMeshTasksIndirectCommandNV
30454   {
30455     using NativeType = VkDrawMeshTasksIndirectCommandNV;
30456 
30457 
30458 
30459 
30460 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV30461 VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV(uint32_t taskCount_ = {}, uint32_t firstTask_ = {}) VULKAN_HPP_NOEXCEPT
30462     : taskCount( taskCount_ ), firstTask( firstTask_ )
30463     {}
30464 
30465     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30466 
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV30467     DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
30468       : DrawMeshTasksIndirectCommandNV( *reinterpret_cast<DrawMeshTasksIndirectCommandNV const *>( &rhs ) )
30469     {}
30470 
30471 
30472     DrawMeshTasksIndirectCommandNV & operator=( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30473 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
30474 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV30475     DrawMeshTasksIndirectCommandNV & operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
30476     {
30477       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV const *>( &rhs );
30478       return *this;
30479     }
30480 
30481 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setTaskCountVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV30482     VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT
30483     {
30484       taskCount = taskCount_;
30485       return *this;
30486     }
30487 
setFirstTaskVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV30488     VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT
30489     {
30490       firstTask = firstTask_;
30491       return *this;
30492     }
30493 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
30494 
30495 
operator VkDrawMeshTasksIndirectCommandNV const&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV30496     operator VkDrawMeshTasksIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
30497     {
30498       return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV*>( this );
30499     }
30500 
operator VkDrawMeshTasksIndirectCommandNV&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV30501     operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
30502     {
30503       return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>( this );
30504     }
30505 
30506 #if defined( VULKAN_HPP_USE_REFLECT )
30507 #if 14 <= VULKAN_HPP_CPP_VERSION
30508     auto
30509 #else
30510     std::tuple<uint32_t const &, uint32_t const &>
30511 #endif
reflectVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV30512       reflect() const VULKAN_HPP_NOEXCEPT
30513     {
30514       return std::tie( taskCount, firstTask );
30515     }
30516 #endif
30517 
30518 
30519 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30520 auto operator<=>( DrawMeshTasksIndirectCommandNV const & ) const = default;
30521 #else
operator ==VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV30522     bool operator==( DrawMeshTasksIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
30523     {
30524 #if defined( VULKAN_HPP_USE_REFLECT )
30525       return this->reflect() == rhs.reflect();
30526 #else
30527       return ( taskCount == rhs.taskCount )
30528           && ( firstTask == rhs.firstTask );
30529 #endif
30530     }
30531 
operator !=VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV30532     bool operator!=( DrawMeshTasksIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
30533     {
30534       return !operator==( rhs );
30535     }
30536 #endif
30537 
30538     public:
30539     uint32_t taskCount = {};
30540     uint32_t firstTask = {};
30541 
30542   };
30543 
30544   struct DrmFormatModifierProperties2EXT
30545   {
30546     using NativeType = VkDrmFormatModifierProperties2EXT;
30547 
30548 
30549 
30550 
30551 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierProperties2EXTVULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT30552 VULKAN_HPP_CONSTEXPR DrmFormatModifierProperties2EXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 drmFormatModifierTilingFeatures_ = {}) VULKAN_HPP_NOEXCEPT
30553     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
30554     {}
30555 
30556     VULKAN_HPP_CONSTEXPR DrmFormatModifierProperties2EXT( DrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30557 
DrmFormatModifierProperties2EXTVULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT30558     DrmFormatModifierProperties2EXT( VkDrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
30559       : DrmFormatModifierProperties2EXT( *reinterpret_cast<DrmFormatModifierProperties2EXT const *>( &rhs ) )
30560     {}
30561 
30562 
30563     DrmFormatModifierProperties2EXT & operator=( DrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30564 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
30565 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT30566     DrmFormatModifierProperties2EXT & operator=( VkDrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
30567     {
30568       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT const *>( &rhs );
30569       return *this;
30570     }
30571 
30572 
operator VkDrmFormatModifierProperties2EXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT30573     operator VkDrmFormatModifierProperties2EXT const &() const VULKAN_HPP_NOEXCEPT
30574     {
30575       return *reinterpret_cast<const VkDrmFormatModifierProperties2EXT*>( this );
30576     }
30577 
operator VkDrmFormatModifierProperties2EXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT30578     operator VkDrmFormatModifierProperties2EXT &() VULKAN_HPP_NOEXCEPT
30579     {
30580       return *reinterpret_cast<VkDrmFormatModifierProperties2EXT*>( this );
30581     }
30582 
30583 #if defined( VULKAN_HPP_USE_REFLECT )
30584 #if 14 <= VULKAN_HPP_CPP_VERSION
30585     auto
30586 #else
30587     std::tuple<uint64_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &>
30588 #endif
reflectVULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT30589       reflect() const VULKAN_HPP_NOEXCEPT
30590     {
30591       return std::tie( drmFormatModifier, drmFormatModifierPlaneCount, drmFormatModifierTilingFeatures );
30592     }
30593 #endif
30594 
30595 
30596 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30597 auto operator<=>( DrmFormatModifierProperties2EXT const & ) const = default;
30598 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT30599     bool operator==( DrmFormatModifierProperties2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
30600     {
30601 #if defined( VULKAN_HPP_USE_REFLECT )
30602       return this->reflect() == rhs.reflect();
30603 #else
30604       return ( drmFormatModifier == rhs.drmFormatModifier )
30605           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
30606           && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
30607 #endif
30608     }
30609 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT30610     bool operator!=( DrmFormatModifierProperties2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
30611     {
30612       return !operator==( rhs );
30613     }
30614 #endif
30615 
30616     public:
30617     uint64_t drmFormatModifier = {};
30618     uint32_t drmFormatModifierPlaneCount = {};
30619     VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 drmFormatModifierTilingFeatures = {};
30620 
30621   };
30622 
30623   struct DrmFormatModifierPropertiesEXT
30624   {
30625     using NativeType = VkDrmFormatModifierPropertiesEXT;
30626 
30627 
30628 
30629 
30630 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT30631 VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {}) VULKAN_HPP_NOEXCEPT
30632     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
30633     {}
30634 
30635     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30636 
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT30637     DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30638       : DrmFormatModifierPropertiesEXT( *reinterpret_cast<DrmFormatModifierPropertiesEXT const *>( &rhs ) )
30639     {}
30640 
30641 
30642     DrmFormatModifierPropertiesEXT & operator=( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30643 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
30644 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT30645     DrmFormatModifierPropertiesEXT & operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30646     {
30647       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT const *>( &rhs );
30648       return *this;
30649     }
30650 
30651 
operator VkDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT30652     operator VkDrmFormatModifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
30653     {
30654       return *reinterpret_cast<const VkDrmFormatModifierPropertiesEXT*>( this );
30655     }
30656 
operator VkDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT30657     operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
30658     {
30659       return *reinterpret_cast<VkDrmFormatModifierPropertiesEXT*>( this );
30660     }
30661 
30662 #if defined( VULKAN_HPP_USE_REFLECT )
30663 #if 14 <= VULKAN_HPP_CPP_VERSION
30664     auto
30665 #else
30666     std::tuple<uint64_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &>
30667 #endif
reflectVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT30668       reflect() const VULKAN_HPP_NOEXCEPT
30669     {
30670       return std::tie( drmFormatModifier, drmFormatModifierPlaneCount, drmFormatModifierTilingFeatures );
30671     }
30672 #endif
30673 
30674 
30675 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30676 auto operator<=>( DrmFormatModifierPropertiesEXT const & ) const = default;
30677 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT30678     bool operator==( DrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
30679     {
30680 #if defined( VULKAN_HPP_USE_REFLECT )
30681       return this->reflect() == rhs.reflect();
30682 #else
30683       return ( drmFormatModifier == rhs.drmFormatModifier )
30684           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
30685           && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
30686 #endif
30687     }
30688 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT30689     bool operator!=( DrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
30690     {
30691       return !operator==( rhs );
30692     }
30693 #endif
30694 
30695     public:
30696     uint64_t drmFormatModifier = {};
30697     uint32_t drmFormatModifierPlaneCount = {};
30698     VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {};
30699 
30700   };
30701 
30702   struct DrmFormatModifierPropertiesList2EXT
30703   {
30704     using NativeType = VkDrmFormatModifierPropertiesList2EXT;
30705 
30706     static const bool allowDuplicate = false;
30707     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesList2EXT;
30708 
30709 
30710 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesList2EXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT30711 VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesList2EXT(uint32_t drmFormatModifierCount_ = {}, VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT * pDrmFormatModifierProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
30712     : pNext( pNext_ ), drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
30713     {}
30714 
30715     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesList2EXT( DrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30716 
DrmFormatModifierPropertiesList2EXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT30717     DrmFormatModifierPropertiesList2EXT( VkDrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
30718       : DrmFormatModifierPropertiesList2EXT( *reinterpret_cast<DrmFormatModifierPropertiesList2EXT const *>( &rhs ) )
30719     {}
30720 
30721 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DrmFormatModifierPropertiesList2EXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT30722     DrmFormatModifierPropertiesList2EXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT> const & drmFormatModifierProperties_, void * pNext_ = nullptr )
30723     : pNext( pNext_ ), drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifierProperties_.size() ) ), pDrmFormatModifierProperties( drmFormatModifierProperties_.data() )
30724     {}
30725 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30726 
30727 
30728     DrmFormatModifierPropertiesList2EXT & operator=( DrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30729 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
30730 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT30731     DrmFormatModifierPropertiesList2EXT & operator=( VkDrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
30732     {
30733       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT const *>( &rhs );
30734       return *this;
30735     }
30736 
30737 
operator VkDrmFormatModifierPropertiesList2EXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT30738     operator VkDrmFormatModifierPropertiesList2EXT const &() const VULKAN_HPP_NOEXCEPT
30739     {
30740       return *reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>( this );
30741     }
30742 
operator VkDrmFormatModifierPropertiesList2EXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT30743     operator VkDrmFormatModifierPropertiesList2EXT &() VULKAN_HPP_NOEXCEPT
30744     {
30745       return *reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT*>( this );
30746     }
30747 
30748 #if defined( VULKAN_HPP_USE_REFLECT )
30749 #if 14 <= VULKAN_HPP_CPP_VERSION
30750     auto
30751 #else
30752     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT * const &>
30753 #endif
reflectVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT30754       reflect() const VULKAN_HPP_NOEXCEPT
30755     {
30756       return std::tie( sType, pNext, drmFormatModifierCount, pDrmFormatModifierProperties );
30757     }
30758 #endif
30759 
30760 
30761 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30762 auto operator<=>( DrmFormatModifierPropertiesList2EXT const & ) const = default;
30763 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT30764     bool operator==( DrmFormatModifierPropertiesList2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
30765     {
30766 #if defined( VULKAN_HPP_USE_REFLECT )
30767       return this->reflect() == rhs.reflect();
30768 #else
30769       return ( sType == rhs.sType )
30770           && ( pNext == rhs.pNext )
30771           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
30772           && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
30773 #endif
30774     }
30775 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT30776     bool operator!=( DrmFormatModifierPropertiesList2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
30777     {
30778       return !operator==( rhs );
30779     }
30780 #endif
30781 
30782     public:
30783     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesList2EXT;
30784     void * pNext = {};
30785     uint32_t drmFormatModifierCount = {};
30786     VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT * pDrmFormatModifierProperties = {};
30787 
30788   };
30789 
30790   template <>
30791   struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesList2EXT>
30792   {
30793     using Type = DrmFormatModifierPropertiesList2EXT;
30794   };
30795 
30796   struct DrmFormatModifierPropertiesListEXT
30797   {
30798     using NativeType = VkDrmFormatModifierPropertiesListEXT;
30799 
30800     static const bool allowDuplicate = false;
30801     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesListEXT;
30802 
30803 
30804 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT30805 VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT(uint32_t drmFormatModifierCount_ = {}, VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * pDrmFormatModifierProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
30806     : pNext( pNext_ ), drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
30807     {}
30808 
30809     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30810 
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT30811     DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30812       : DrmFormatModifierPropertiesListEXT( *reinterpret_cast<DrmFormatModifierPropertiesListEXT const *>( &rhs ) )
30813     {}
30814 
30815 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT30816     DrmFormatModifierPropertiesListEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT> const & drmFormatModifierProperties_, void * pNext_ = nullptr )
30817     : pNext( pNext_ ), drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifierProperties_.size() ) ), pDrmFormatModifierProperties( drmFormatModifierProperties_.data() )
30818     {}
30819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
30820 
30821 
30822     DrmFormatModifierPropertiesListEXT & operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30823 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
30824 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT30825     DrmFormatModifierPropertiesListEXT & operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
30826     {
30827       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const *>( &rhs );
30828       return *this;
30829     }
30830 
30831 
operator VkDrmFormatModifierPropertiesListEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT30832     operator VkDrmFormatModifierPropertiesListEXT const &() const VULKAN_HPP_NOEXCEPT
30833     {
30834       return *reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>( this );
30835     }
30836 
operator VkDrmFormatModifierPropertiesListEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT30837     operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT
30838     {
30839       return *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>( this );
30840     }
30841 
30842 #if defined( VULKAN_HPP_USE_REFLECT )
30843 #if 14 <= VULKAN_HPP_CPP_VERSION
30844     auto
30845 #else
30846     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * const &>
30847 #endif
reflectVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT30848       reflect() const VULKAN_HPP_NOEXCEPT
30849     {
30850       return std::tie( sType, pNext, drmFormatModifierCount, pDrmFormatModifierProperties );
30851     }
30852 #endif
30853 
30854 
30855 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30856 auto operator<=>( DrmFormatModifierPropertiesListEXT const & ) const = default;
30857 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT30858     bool operator==( DrmFormatModifierPropertiesListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
30859     {
30860 #if defined( VULKAN_HPP_USE_REFLECT )
30861       return this->reflect() == rhs.reflect();
30862 #else
30863       return ( sType == rhs.sType )
30864           && ( pNext == rhs.pNext )
30865           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
30866           && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
30867 #endif
30868     }
30869 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT30870     bool operator!=( DrmFormatModifierPropertiesListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
30871     {
30872       return !operator==( rhs );
30873     }
30874 #endif
30875 
30876     public:
30877     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT;
30878     void * pNext = {};
30879     uint32_t drmFormatModifierCount = {};
30880     VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * pDrmFormatModifierProperties = {};
30881 
30882   };
30883 
30884   template <>
30885   struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesListEXT>
30886   {
30887     using Type = DrmFormatModifierPropertiesListEXT;
30888   };
30889 
30890   struct EventCreateInfo
30891   {
30892     using NativeType = VkEventCreateInfo;
30893 
30894     static const bool allowDuplicate = false;
30895     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo;
30896 
30897 
30898 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo30899 VULKAN_HPP_CONSTEXPR EventCreateInfo(VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
30900     : pNext( pNext_ ), flags( flags_ )
30901     {}
30902 
30903     VULKAN_HPP_CONSTEXPR EventCreateInfo( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30904 
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo30905     EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30906       : EventCreateInfo( *reinterpret_cast<EventCreateInfo const *>( &rhs ) )
30907     {}
30908 
30909 
30910     EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30911 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
30912 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo30913     EventCreateInfo & operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30914     {
30915       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::EventCreateInfo const *>( &rhs );
30916       return *this;
30917     }
30918 
30919 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::EventCreateInfo30920     VULKAN_HPP_CONSTEXPR_14 EventCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
30921     {
30922       pNext = pNext_;
30923       return *this;
30924     }
30925 
setFlagsVULKAN_HPP_NAMESPACE::EventCreateInfo30926     VULKAN_HPP_CONSTEXPR_14 EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
30927     {
30928       flags = flags_;
30929       return *this;
30930     }
30931 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
30932 
30933 
operator VkEventCreateInfo const&VULKAN_HPP_NAMESPACE::EventCreateInfo30934     operator VkEventCreateInfo const &() const VULKAN_HPP_NOEXCEPT
30935     {
30936       return *reinterpret_cast<const VkEventCreateInfo*>( this );
30937     }
30938 
operator VkEventCreateInfo&VULKAN_HPP_NAMESPACE::EventCreateInfo30939     operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT
30940     {
30941       return *reinterpret_cast<VkEventCreateInfo*>( this );
30942     }
30943 
30944 #if defined( VULKAN_HPP_USE_REFLECT )
30945 #if 14 <= VULKAN_HPP_CPP_VERSION
30946     auto
30947 #else
30948     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::EventCreateFlags const &>
30949 #endif
reflectVULKAN_HPP_NAMESPACE::EventCreateInfo30950       reflect() const VULKAN_HPP_NOEXCEPT
30951     {
30952       return std::tie( sType, pNext, flags );
30953     }
30954 #endif
30955 
30956 
30957 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30958 auto operator<=>( EventCreateInfo const & ) const = default;
30959 #else
operator ==VULKAN_HPP_NAMESPACE::EventCreateInfo30960     bool operator==( EventCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
30961     {
30962 #if defined( VULKAN_HPP_USE_REFLECT )
30963       return this->reflect() == rhs.reflect();
30964 #else
30965       return ( sType == rhs.sType )
30966           && ( pNext == rhs.pNext )
30967           && ( flags == rhs.flags );
30968 #endif
30969     }
30970 
operator !=VULKAN_HPP_NAMESPACE::EventCreateInfo30971     bool operator!=( EventCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
30972     {
30973       return !operator==( rhs );
30974     }
30975 #endif
30976 
30977     public:
30978     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo;
30979     const void * pNext = {};
30980     VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {};
30981 
30982   };
30983 
30984   template <>
30985   struct CppType<StructureType, StructureType::eEventCreateInfo>
30986   {
30987     using Type = EventCreateInfo;
30988   };
30989 
30990   struct PipelineLibraryCreateInfoKHR
30991   {
30992     using NativeType = VkPipelineLibraryCreateInfoKHR;
30993 
30994     static const bool allowDuplicate = false;
30995     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR;
30996 
30997 
30998 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR30999 VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR(uint32_t libraryCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
31000     : pNext( pNext_ ), libraryCount( libraryCount_ ), pLibraries( pLibraries_ )
31001     {}
31002 
31003     VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31004 
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31005     PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
31006       : PipelineLibraryCreateInfoKHR( *reinterpret_cast<PipelineLibraryCreateInfoKHR const *>( &rhs ) )
31007     {}
31008 
31009 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31010     PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_, const void * pNext_ = nullptr )
31011     : pNext( pNext_ ), libraryCount( static_cast<uint32_t>( libraries_.size() ) ), pLibraries( libraries_.data() )
31012     {}
31013 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31014 
31015 
31016     PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31017 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
31018 
operator =VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31019     PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
31020     {
31021       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const *>( &rhs );
31022       return *this;
31023     }
31024 
31025 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31026     VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
31027     {
31028       pNext = pNext_;
31029       return *this;
31030     }
31031 
setLibraryCountVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31032     VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT
31033     {
31034       libraryCount = libraryCount_;
31035       return *this;
31036     }
31037 
setPLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31038     VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ ) VULKAN_HPP_NOEXCEPT
31039     {
31040       pLibraries = pLibraries_;
31041       return *this;
31042     }
31043 
31044 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31045     PipelineLibraryCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ ) VULKAN_HPP_NOEXCEPT
31046     {
31047       libraryCount = static_cast<uint32_t>( libraries_.size() );
31048       pLibraries = libraries_.data();
31049       return *this;
31050     }
31051 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31052 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
31053 
31054 
operator VkPipelineLibraryCreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31055     operator VkPipelineLibraryCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
31056     {
31057       return *reinterpret_cast<const VkPipelineLibraryCreateInfoKHR*>( this );
31058     }
31059 
operator VkPipelineLibraryCreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31060     operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
31061     {
31062       return *reinterpret_cast<VkPipelineLibraryCreateInfoKHR*>( this );
31063     }
31064 
31065 #if defined( VULKAN_HPP_USE_REFLECT )
31066 #if 14 <= VULKAN_HPP_CPP_VERSION
31067     auto
31068 #else
31069     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Pipeline * const &>
31070 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31071       reflect() const VULKAN_HPP_NOEXCEPT
31072     {
31073       return std::tie( sType, pNext, libraryCount, pLibraries );
31074     }
31075 #endif
31076 
31077 
31078 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31079 auto operator<=>( PipelineLibraryCreateInfoKHR const & ) const = default;
31080 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31081     bool operator==( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31082     {
31083 #if defined( VULKAN_HPP_USE_REFLECT )
31084       return this->reflect() == rhs.reflect();
31085 #else
31086       return ( sType == rhs.sType )
31087           && ( pNext == rhs.pNext )
31088           && ( libraryCount == rhs.libraryCount )
31089           && ( pLibraries == rhs.pLibraries );
31090 #endif
31091     }
31092 
operator !=VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR31093     bool operator!=( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31094     {
31095       return !operator==( rhs );
31096     }
31097 #endif
31098 
31099     public:
31100     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR;
31101     const void * pNext = {};
31102     uint32_t libraryCount = {};
31103     const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries = {};
31104 
31105   };
31106 
31107   template <>
31108   struct CppType<StructureType, StructureType::ePipelineLibraryCreateInfoKHR>
31109   {
31110     using Type = PipelineLibraryCreateInfoKHR;
31111   };
31112 
31113 #if defined( VK_ENABLE_BETA_EXTENSIONS )
31114   struct ExecutionGraphPipelineCreateInfoAMDX
31115   {
31116     using NativeType = VkExecutionGraphPipelineCreateInfoAMDX;
31117 
31118     static const bool allowDuplicate = false;
31119     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExecutionGraphPipelineCreateInfoAMDX;
31120 
31121 
31122 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExecutionGraphPipelineCreateInfoAMDXVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31123 VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineCreateInfoAMDX(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {}, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
31124     : pNext( pNext_ ), flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), pLibraryInfo( pLibraryInfo_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
31125     {}
31126 
31127     VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineCreateInfoAMDX( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31128 
ExecutionGraphPipelineCreateInfoAMDXVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31129     ExecutionGraphPipelineCreateInfoAMDX( VkExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
31130       : ExecutionGraphPipelineCreateInfoAMDX( *reinterpret_cast<ExecutionGraphPipelineCreateInfoAMDX const *>( &rhs ) )
31131     {}
31132 
31133 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ExecutionGraphPipelineCreateInfoAMDXVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31134     ExecutionGraphPipelineCreateInfoAMDX( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}, const void * pNext_ = nullptr )
31135     : pNext( pNext_ ), flags( flags_ ), stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), pLibraryInfo( pLibraryInfo_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
31136     {}
31137 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31138 
31139 
31140     ExecutionGraphPipelineCreateInfoAMDX & operator=( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31141 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
31142 
operator =VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31143     ExecutionGraphPipelineCreateInfoAMDX & operator=( VkExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
31144     {
31145       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const *>( &rhs );
31146       return *this;
31147     }
31148 
31149 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31150     VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
31151     {
31152       pNext = pNext_;
31153       return *this;
31154     }
31155 
setFlagsVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31156     VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
31157     {
31158       flags = flags_;
31159       return *this;
31160     }
31161 
setStageCountVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31162     VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
31163     {
31164       stageCount = stageCount_;
31165       return *this;
31166     }
31167 
setPStagesVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31168     VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
31169     {
31170       pStages = pStages_;
31171       return *this;
31172     }
31173 
31174 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStagesVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31175     ExecutionGraphPipelineCreateInfoAMDX & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
31176     {
31177       stageCount = static_cast<uint32_t>( stages_.size() );
31178       pStages = stages_.data();
31179       return *this;
31180     }
31181 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
31182 
setPLibraryInfoVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31183     VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT
31184     {
31185       pLibraryInfo = pLibraryInfo_;
31186       return *this;
31187     }
31188 
setLayoutVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31189     VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
31190     {
31191       layout = layout_;
31192       return *this;
31193     }
31194 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31195     VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
31196     {
31197       basePipelineHandle = basePipelineHandle_;
31198       return *this;
31199     }
31200 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31201     VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
31202     {
31203       basePipelineIndex = basePipelineIndex_;
31204       return *this;
31205     }
31206 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
31207 
31208 
operator VkExecutionGraphPipelineCreateInfoAMDX const&VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31209     operator VkExecutionGraphPipelineCreateInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
31210     {
31211       return *reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX*>( this );
31212     }
31213 
operator VkExecutionGraphPipelineCreateInfoAMDX&VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31214     operator VkExecutionGraphPipelineCreateInfoAMDX &() VULKAN_HPP_NOEXCEPT
31215     {
31216       return *reinterpret_cast<VkExecutionGraphPipelineCreateInfoAMDX*>( this );
31217     }
31218 
31219 #if defined( VULKAN_HPP_USE_REFLECT )
31220 #if 14 <= VULKAN_HPP_CPP_VERSION
31221     auto
31222 #else
31223     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * const &, VULKAN_HPP_NAMESPACE::PipelineLayout const &, VULKAN_HPP_NAMESPACE::Pipeline const &, int32_t const &>
31224 #endif
reflectVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31225       reflect() const VULKAN_HPP_NOEXCEPT
31226     {
31227       return std::tie( sType, pNext, flags, stageCount, pStages, pLibraryInfo, layout, basePipelineHandle, basePipelineIndex );
31228     }
31229 #endif
31230 
31231 
31232 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31233 auto operator<=>( ExecutionGraphPipelineCreateInfoAMDX const & ) const = default;
31234 #else
operator ==VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31235     bool operator==( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
31236     {
31237 #if defined( VULKAN_HPP_USE_REFLECT )
31238       return this->reflect() == rhs.reflect();
31239 #else
31240       return ( sType == rhs.sType )
31241           && ( pNext == rhs.pNext )
31242           && ( flags == rhs.flags )
31243           && ( stageCount == rhs.stageCount )
31244           && ( pStages == rhs.pStages )
31245           && ( pLibraryInfo == rhs.pLibraryInfo )
31246           && ( layout == rhs.layout )
31247           && ( basePipelineHandle == rhs.basePipelineHandle )
31248           && ( basePipelineIndex == rhs.basePipelineIndex );
31249 #endif
31250     }
31251 
operator !=VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX31252     bool operator!=( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
31253     {
31254       return !operator==( rhs );
31255     }
31256 #endif
31257 
31258     public:
31259     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExecutionGraphPipelineCreateInfoAMDX;
31260     const void * pNext = {};
31261     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
31262     uint32_t stageCount = {};
31263     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
31264     const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo = {};
31265     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
31266     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
31267     int32_t basePipelineIndex = {};
31268 
31269   };
31270 
31271   template <>
31272   struct CppType<StructureType, StructureType::eExecutionGraphPipelineCreateInfoAMDX>
31273   {
31274     using Type = ExecutionGraphPipelineCreateInfoAMDX;
31275   };
31276 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
31277 
31278 #if defined( VK_ENABLE_BETA_EXTENSIONS )
31279   struct ExecutionGraphPipelineScratchSizeAMDX
31280   {
31281     using NativeType = VkExecutionGraphPipelineScratchSizeAMDX;
31282 
31283     static const bool allowDuplicate = false;
31284     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExecutionGraphPipelineScratchSizeAMDX;
31285 
31286 
31287 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExecutionGraphPipelineScratchSizeAMDXVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX31288 VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineScratchSizeAMDX(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
31289     : pNext( pNext_ ), size( size_ )
31290     {}
31291 
31292     VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineScratchSizeAMDX( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31293 
ExecutionGraphPipelineScratchSizeAMDXVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX31294     ExecutionGraphPipelineScratchSizeAMDX( VkExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
31295       : ExecutionGraphPipelineScratchSizeAMDX( *reinterpret_cast<ExecutionGraphPipelineScratchSizeAMDX const *>( &rhs ) )
31296     {}
31297 
31298 
31299     ExecutionGraphPipelineScratchSizeAMDX & operator=( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31300 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
31301 
operator =VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX31302     ExecutionGraphPipelineScratchSizeAMDX & operator=( VkExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
31303     {
31304       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX const *>( &rhs );
31305       return *this;
31306     }
31307 
31308 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX31309     VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineScratchSizeAMDX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
31310     {
31311       pNext = pNext_;
31312       return *this;
31313     }
31314 
setSizeVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX31315     VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineScratchSizeAMDX & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
31316     {
31317       size = size_;
31318       return *this;
31319     }
31320 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
31321 
31322 
operator VkExecutionGraphPipelineScratchSizeAMDX const&VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX31323     operator VkExecutionGraphPipelineScratchSizeAMDX const &() const VULKAN_HPP_NOEXCEPT
31324     {
31325       return *reinterpret_cast<const VkExecutionGraphPipelineScratchSizeAMDX*>( this );
31326     }
31327 
operator VkExecutionGraphPipelineScratchSizeAMDX&VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX31328     operator VkExecutionGraphPipelineScratchSizeAMDX &() VULKAN_HPP_NOEXCEPT
31329     {
31330       return *reinterpret_cast<VkExecutionGraphPipelineScratchSizeAMDX*>( this );
31331     }
31332 
31333 #if defined( VULKAN_HPP_USE_REFLECT )
31334 #if 14 <= VULKAN_HPP_CPP_VERSION
31335     auto
31336 #else
31337     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
31338 #endif
reflectVULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX31339       reflect() const VULKAN_HPP_NOEXCEPT
31340     {
31341       return std::tie( sType, pNext, size );
31342     }
31343 #endif
31344 
31345 
31346 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31347 auto operator<=>( ExecutionGraphPipelineScratchSizeAMDX const & ) const = default;
31348 #else
operator ==VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX31349     bool operator==( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
31350     {
31351 #if defined( VULKAN_HPP_USE_REFLECT )
31352       return this->reflect() == rhs.reflect();
31353 #else
31354       return ( sType == rhs.sType )
31355           && ( pNext == rhs.pNext )
31356           && ( size == rhs.size );
31357 #endif
31358     }
31359 
operator !=VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX31360     bool operator!=( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
31361     {
31362       return !operator==( rhs );
31363     }
31364 #endif
31365 
31366     public:
31367     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExecutionGraphPipelineScratchSizeAMDX;
31368     void * pNext = {};
31369     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
31370 
31371   };
31372 
31373   template <>
31374   struct CppType<StructureType, StructureType::eExecutionGraphPipelineScratchSizeAMDX>
31375   {
31376     using Type = ExecutionGraphPipelineScratchSizeAMDX;
31377   };
31378 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
31379 
31380   struct ExportFenceCreateInfo
31381   {
31382     using NativeType = VkExportFenceCreateInfo;
31383 
31384     static const bool allowDuplicate = false;
31385     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo;
31386 
31387 
31388 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31389 VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
31390     : pNext( pNext_ ), handleTypes( handleTypes_ )
31391     {}
31392 
31393     VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31394 
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31395     ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31396       : ExportFenceCreateInfo( *reinterpret_cast<ExportFenceCreateInfo const *>( &rhs ) )
31397     {}
31398 
31399 
31400     ExportFenceCreateInfo & operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31401 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
31402 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31403     ExportFenceCreateInfo & operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31404     {
31405       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const *>( &rhs );
31406       return *this;
31407     }
31408 
31409 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31410     VULKAN_HPP_CONSTEXPR_14 ExportFenceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
31411     {
31412       pNext = pNext_;
31413       return *this;
31414     }
31415 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31416     VULKAN_HPP_CONSTEXPR_14 ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
31417     {
31418       handleTypes = handleTypes_;
31419       return *this;
31420     }
31421 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
31422 
31423 
operator VkExportFenceCreateInfo const&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31424     operator VkExportFenceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
31425     {
31426       return *reinterpret_cast<const VkExportFenceCreateInfo*>( this );
31427     }
31428 
operator VkExportFenceCreateInfo&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31429     operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
31430     {
31431       return *reinterpret_cast<VkExportFenceCreateInfo*>( this );
31432     }
31433 
31434 #if defined( VULKAN_HPP_USE_REFLECT )
31435 #if 14 <= VULKAN_HPP_CPP_VERSION
31436     auto
31437 #else
31438     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags const &>
31439 #endif
reflectVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31440       reflect() const VULKAN_HPP_NOEXCEPT
31441     {
31442       return std::tie( sType, pNext, handleTypes );
31443     }
31444 #endif
31445 
31446 
31447 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31448 auto operator<=>( ExportFenceCreateInfo const & ) const = default;
31449 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31450     bool operator==( ExportFenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
31451     {
31452 #if defined( VULKAN_HPP_USE_REFLECT )
31453       return this->reflect() == rhs.reflect();
31454 #else
31455       return ( sType == rhs.sType )
31456           && ( pNext == rhs.pNext )
31457           && ( handleTypes == rhs.handleTypes );
31458 #endif
31459     }
31460 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31461     bool operator!=( ExportFenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
31462     {
31463       return !operator==( rhs );
31464     }
31465 #endif
31466 
31467     public:
31468     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo;
31469     const void * pNext = {};
31470     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {};
31471 
31472   };
31473 
31474   template <>
31475   struct CppType<StructureType, StructureType::eExportFenceCreateInfo>
31476   {
31477     using Type = ExportFenceCreateInfo;
31478   };
31479   using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
31480 
31481 #if defined( VK_USE_PLATFORM_WIN32_KHR )
31482   struct ExportFenceWin32HandleInfoKHR
31483   {
31484     using NativeType = VkExportFenceWin32HandleInfoKHR;
31485 
31486     static const bool allowDuplicate = false;
31487     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR;
31488 
31489 
31490 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31491 VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR(const SECURITY_ATTRIBUTES * pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
31492     : pNext( pNext_ ), pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
31493     {}
31494 
31495     VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31496 
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31497     ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
31498       : ExportFenceWin32HandleInfoKHR( *reinterpret_cast<ExportFenceWin32HandleInfoKHR const *>( &rhs ) )
31499     {}
31500 
31501 
31502     ExportFenceWin32HandleInfoKHR & operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31503 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
31504 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31505     ExportFenceWin32HandleInfoKHR & operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
31506     {
31507       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const *>( &rhs );
31508       return *this;
31509     }
31510 
31511 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31512     VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
31513     {
31514       pNext = pNext_;
31515       return *this;
31516     }
31517 
setPAttributesVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31518     VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
31519     {
31520       pAttributes = pAttributes_;
31521       return *this;
31522     }
31523 
setDwAccessVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31524     VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
31525     {
31526       dwAccess = dwAccess_;
31527       return *this;
31528     }
31529 
setNameVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31530     VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
31531     {
31532       name = name_;
31533       return *this;
31534     }
31535 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
31536 
31537 
operator VkExportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31538     operator VkExportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
31539     {
31540       return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>( this );
31541     }
31542 
operator VkExportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31543     operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
31544     {
31545       return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>( this );
31546     }
31547 
31548 #if defined( VULKAN_HPP_USE_REFLECT )
31549 #if 14 <= VULKAN_HPP_CPP_VERSION
31550     auto
31551 #else
31552     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &, LPCWSTR const &>
31553 #endif
reflectVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31554       reflect() const VULKAN_HPP_NOEXCEPT
31555     {
31556       return std::tie( sType, pNext, pAttributes, dwAccess, name );
31557     }
31558 #endif
31559 
31560 
31561 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31562 auto operator<=>( ExportFenceWin32HandleInfoKHR const & ) const = default;
31563 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31564     bool operator==( ExportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31565     {
31566 #if defined( VULKAN_HPP_USE_REFLECT )
31567       return this->reflect() == rhs.reflect();
31568 #else
31569       return ( sType == rhs.sType )
31570           && ( pNext == rhs.pNext )
31571           && ( pAttributes == rhs.pAttributes )
31572           && ( dwAccess == rhs.dwAccess )
31573           && ( name == rhs.name );
31574 #endif
31575     }
31576 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31577     bool operator!=( ExportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31578     {
31579       return !operator==( rhs );
31580     }
31581 #endif
31582 
31583     public:
31584     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR;
31585     const void * pNext = {};
31586     const SECURITY_ATTRIBUTES * pAttributes = {};
31587     DWORD dwAccess = {};
31588     LPCWSTR name = {};
31589 
31590   };
31591 
31592   template <>
31593   struct CppType<StructureType, StructureType::eExportFenceWin32HandleInfoKHR>
31594   {
31595     using Type = ExportFenceWin32HandleInfoKHR;
31596   };
31597 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
31598 
31599   struct ExportMemoryAllocateInfo
31600   {
31601     using NativeType = VkExportMemoryAllocateInfo;
31602 
31603     static const bool allowDuplicate = false;
31604     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo;
31605 
31606 
31607 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31608 VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
31609     : pNext( pNext_ ), handleTypes( handleTypes_ )
31610     {}
31611 
31612     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31613 
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31614     ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31615       : ExportMemoryAllocateInfo( *reinterpret_cast<ExportMemoryAllocateInfo const *>( &rhs ) )
31616     {}
31617 
31618 
31619     ExportMemoryAllocateInfo & operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31620 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
31621 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31622     ExportMemoryAllocateInfo & operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31623     {
31624       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const *>( &rhs );
31625       return *this;
31626     }
31627 
31628 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31629     VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
31630     {
31631       pNext = pNext_;
31632       return *this;
31633     }
31634 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31635     VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
31636     {
31637       handleTypes = handleTypes_;
31638       return *this;
31639     }
31640 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
31641 
31642 
operator VkExportMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31643     operator VkExportMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
31644     {
31645       return *reinterpret_cast<const VkExportMemoryAllocateInfo*>( this );
31646     }
31647 
operator VkExportMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31648     operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
31649     {
31650       return *reinterpret_cast<VkExportMemoryAllocateInfo*>( this );
31651     }
31652 
31653 #if defined( VULKAN_HPP_USE_REFLECT )
31654 #if 14 <= VULKAN_HPP_CPP_VERSION
31655     auto
31656 #else
31657     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
31658 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31659       reflect() const VULKAN_HPP_NOEXCEPT
31660     {
31661       return std::tie( sType, pNext, handleTypes );
31662     }
31663 #endif
31664 
31665 
31666 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31667 auto operator<=>( ExportMemoryAllocateInfo const & ) const = default;
31668 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31669     bool operator==( ExportMemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
31670     {
31671 #if defined( VULKAN_HPP_USE_REFLECT )
31672       return this->reflect() == rhs.reflect();
31673 #else
31674       return ( sType == rhs.sType )
31675           && ( pNext == rhs.pNext )
31676           && ( handleTypes == rhs.handleTypes );
31677 #endif
31678     }
31679 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31680     bool operator!=( ExportMemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
31681     {
31682       return !operator==( rhs );
31683     }
31684 #endif
31685 
31686     public:
31687     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo;
31688     const void * pNext = {};
31689     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
31690 
31691   };
31692 
31693   template <>
31694   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfo>
31695   {
31696     using Type = ExportMemoryAllocateInfo;
31697   };
31698   using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
31699 
31700   struct ExportMemoryAllocateInfoNV
31701   {
31702     using NativeType = VkExportMemoryAllocateInfoNV;
31703 
31704     static const bool allowDuplicate = false;
31705     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV;
31706 
31707 
31708 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31709 VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
31710     : pNext( pNext_ ), handleTypes( handleTypes_ )
31711     {}
31712 
31713     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31714 
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31715     ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31716       : ExportMemoryAllocateInfoNV( *reinterpret_cast<ExportMemoryAllocateInfoNV const *>( &rhs ) )
31717     {}
31718 
31719 
31720     ExportMemoryAllocateInfoNV & operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31721 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
31722 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31723     ExportMemoryAllocateInfoNV & operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31724     {
31725       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const *>( &rhs );
31726       return *this;
31727     }
31728 
31729 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31730     VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
31731     {
31732       pNext = pNext_;
31733       return *this;
31734     }
31735 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31736     VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
31737     {
31738       handleTypes = handleTypes_;
31739       return *this;
31740     }
31741 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
31742 
31743 
operator VkExportMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31744     operator VkExportMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT
31745     {
31746       return *reinterpret_cast<const VkExportMemoryAllocateInfoNV*>( this );
31747     }
31748 
operator VkExportMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31749     operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
31750     {
31751       return *reinterpret_cast<VkExportMemoryAllocateInfoNV*>( this );
31752     }
31753 
31754 #if defined( VULKAN_HPP_USE_REFLECT )
31755 #if 14 <= VULKAN_HPP_CPP_VERSION
31756     auto
31757 #else
31758     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &>
31759 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31760       reflect() const VULKAN_HPP_NOEXCEPT
31761     {
31762       return std::tie( sType, pNext, handleTypes );
31763     }
31764 #endif
31765 
31766 
31767 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31768 auto operator<=>( ExportMemoryAllocateInfoNV const & ) const = default;
31769 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31770     bool operator==( ExportMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
31771     {
31772 #if defined( VULKAN_HPP_USE_REFLECT )
31773       return this->reflect() == rhs.reflect();
31774 #else
31775       return ( sType == rhs.sType )
31776           && ( pNext == rhs.pNext )
31777           && ( handleTypes == rhs.handleTypes );
31778 #endif
31779     }
31780 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31781     bool operator!=( ExportMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
31782     {
31783       return !operator==( rhs );
31784     }
31785 #endif
31786 
31787     public:
31788     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV;
31789     const void * pNext = {};
31790     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
31791 
31792   };
31793 
31794   template <>
31795   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfoNV>
31796   {
31797     using Type = ExportMemoryAllocateInfoNV;
31798   };
31799 
31800 #if defined( VK_USE_PLATFORM_WIN32_KHR )
31801   struct ExportMemoryWin32HandleInfoKHR
31802   {
31803     using NativeType = VkExportMemoryWin32HandleInfoKHR;
31804 
31805     static const bool allowDuplicate = false;
31806     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR;
31807 
31808 
31809 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31810 VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR(const SECURITY_ATTRIBUTES * pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
31811     : pNext( pNext_ ), pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
31812     {}
31813 
31814     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31815 
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31816     ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
31817       : ExportMemoryWin32HandleInfoKHR( *reinterpret_cast<ExportMemoryWin32HandleInfoKHR const *>( &rhs ) )
31818     {}
31819 
31820 
31821     ExportMemoryWin32HandleInfoKHR & operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31822 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
31823 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31824     ExportMemoryWin32HandleInfoKHR & operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
31825     {
31826       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const *>( &rhs );
31827       return *this;
31828     }
31829 
31830 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31831     VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
31832     {
31833       pNext = pNext_;
31834       return *this;
31835     }
31836 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31837     VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
31838     {
31839       pAttributes = pAttributes_;
31840       return *this;
31841     }
31842 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31843     VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
31844     {
31845       dwAccess = dwAccess_;
31846       return *this;
31847     }
31848 
setNameVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31849     VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
31850     {
31851       name = name_;
31852       return *this;
31853     }
31854 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
31855 
31856 
operator VkExportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31857     operator VkExportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
31858     {
31859       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>( this );
31860     }
31861 
operator VkExportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31862     operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
31863     {
31864       return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>( this );
31865     }
31866 
31867 #if defined( VULKAN_HPP_USE_REFLECT )
31868 #if 14 <= VULKAN_HPP_CPP_VERSION
31869     auto
31870 #else
31871     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &, LPCWSTR const &>
31872 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31873       reflect() const VULKAN_HPP_NOEXCEPT
31874     {
31875       return std::tie( sType, pNext, pAttributes, dwAccess, name );
31876     }
31877 #endif
31878 
31879 
31880 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31881 auto operator<=>( ExportMemoryWin32HandleInfoKHR const & ) const = default;
31882 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31883     bool operator==( ExportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31884     {
31885 #if defined( VULKAN_HPP_USE_REFLECT )
31886       return this->reflect() == rhs.reflect();
31887 #else
31888       return ( sType == rhs.sType )
31889           && ( pNext == rhs.pNext )
31890           && ( pAttributes == rhs.pAttributes )
31891           && ( dwAccess == rhs.dwAccess )
31892           && ( name == rhs.name );
31893 #endif
31894     }
31895 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR31896     bool operator!=( ExportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31897     {
31898       return !operator==( rhs );
31899     }
31900 #endif
31901 
31902     public:
31903     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR;
31904     const void * pNext = {};
31905     const SECURITY_ATTRIBUTES * pAttributes = {};
31906     DWORD dwAccess = {};
31907     LPCWSTR name = {};
31908 
31909   };
31910 
31911   template <>
31912   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoKHR>
31913   {
31914     using Type = ExportMemoryWin32HandleInfoKHR;
31915   };
31916 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
31917 
31918 #if defined( VK_USE_PLATFORM_WIN32_KHR )
31919   struct ExportMemoryWin32HandleInfoNV
31920   {
31921     using NativeType = VkExportMemoryWin32HandleInfoNV;
31922 
31923     static const bool allowDuplicate = false;
31924     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV;
31925 
31926 
31927 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV31928 VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV(const SECURITY_ATTRIBUTES * pAttributes_ = {}, DWORD dwAccess_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
31929     : pNext( pNext_ ), pAttributes( pAttributes_ ), dwAccess( dwAccess_ )
31930     {}
31931 
31932     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31933 
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV31934     ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31935       : ExportMemoryWin32HandleInfoNV( *reinterpret_cast<ExportMemoryWin32HandleInfoNV const *>( &rhs ) )
31936     {}
31937 
31938 
31939     ExportMemoryWin32HandleInfoNV & operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31940 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
31941 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV31942     ExportMemoryWin32HandleInfoNV & operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31943     {
31944       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const *>( &rhs );
31945       return *this;
31946     }
31947 
31948 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV31949     VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
31950     {
31951       pNext = pNext_;
31952       return *this;
31953     }
31954 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV31955     VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
31956     {
31957       pAttributes = pAttributes_;
31958       return *this;
31959     }
31960 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV31961     VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
31962     {
31963       dwAccess = dwAccess_;
31964       return *this;
31965     }
31966 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
31967 
31968 
operator VkExportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV31969     operator VkExportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT
31970     {
31971       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>( this );
31972     }
31973 
operator VkExportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV31974     operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
31975     {
31976       return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>( this );
31977     }
31978 
31979 #if defined( VULKAN_HPP_USE_REFLECT )
31980 #if 14 <= VULKAN_HPP_CPP_VERSION
31981     auto
31982 #else
31983     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &>
31984 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV31985       reflect() const VULKAN_HPP_NOEXCEPT
31986     {
31987       return std::tie( sType, pNext, pAttributes, dwAccess );
31988     }
31989 #endif
31990 
31991 
31992 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31993 auto operator<=>( ExportMemoryWin32HandleInfoNV const & ) const = default;
31994 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV31995     bool operator==( ExportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
31996     {
31997 #if defined( VULKAN_HPP_USE_REFLECT )
31998       return this->reflect() == rhs.reflect();
31999 #else
32000       return ( sType == rhs.sType )
32001           && ( pNext == rhs.pNext )
32002           && ( pAttributes == rhs.pAttributes )
32003           && ( dwAccess == rhs.dwAccess );
32004 #endif
32005     }
32006 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32007     bool operator!=( ExportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
32008     {
32009       return !operator==( rhs );
32010     }
32011 #endif
32012 
32013     public:
32014     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV;
32015     const void * pNext = {};
32016     const SECURITY_ATTRIBUTES * pAttributes = {};
32017     DWORD dwAccess = {};
32018 
32019   };
32020 
32021   template <>
32022   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoNV>
32023   {
32024     using Type = ExportMemoryWin32HandleInfoNV;
32025   };
32026 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
32027 
32028 #if defined( VK_USE_PLATFORM_METAL_EXT )
32029   struct ExportMetalBufferInfoEXT
32030   {
32031     using NativeType = VkExportMetalBufferInfoEXT;
32032 
32033     static const bool allowDuplicate = true;
32034     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalBufferInfoEXT;
32035 
32036 
32037 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMetalBufferInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32038 VULKAN_HPP_CONSTEXPR ExportMetalBufferInfoEXT(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, MTLBuffer_id mtlBuffer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
32039     : pNext( pNext_ ), memory( memory_ ), mtlBuffer( mtlBuffer_ )
32040     {}
32041 
32042     VULKAN_HPP_CONSTEXPR ExportMetalBufferInfoEXT( ExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32043 
ExportMetalBufferInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32044     ExportMetalBufferInfoEXT( VkExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32045       : ExportMetalBufferInfoEXT( *reinterpret_cast<ExportMetalBufferInfoEXT const *>( &rhs ) )
32046     {}
32047 
32048 
32049     ExportMetalBufferInfoEXT & operator=( ExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32050 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
32051 
operator =VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32052     ExportMetalBufferInfoEXT & operator=( VkExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32053     {
32054       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT const *>( &rhs );
32055       return *this;
32056     }
32057 
32058 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32059     VULKAN_HPP_CONSTEXPR_14 ExportMetalBufferInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
32060     {
32061       pNext = pNext_;
32062       return *this;
32063     }
32064 
setMemoryVULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32065     VULKAN_HPP_CONSTEXPR_14 ExportMetalBufferInfoEXT & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
32066     {
32067       memory = memory_;
32068       return *this;
32069     }
32070 
setMtlBufferVULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32071     VULKAN_HPP_CONSTEXPR_14 ExportMetalBufferInfoEXT & setMtlBuffer( MTLBuffer_id mtlBuffer_ ) VULKAN_HPP_NOEXCEPT
32072     {
32073       mtlBuffer = mtlBuffer_;
32074       return *this;
32075     }
32076 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
32077 
32078 
operator VkExportMetalBufferInfoEXT const&VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32079     operator VkExportMetalBufferInfoEXT const &() const VULKAN_HPP_NOEXCEPT
32080     {
32081       return *reinterpret_cast<const VkExportMetalBufferInfoEXT*>( this );
32082     }
32083 
operator VkExportMetalBufferInfoEXT&VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32084     operator VkExportMetalBufferInfoEXT &() VULKAN_HPP_NOEXCEPT
32085     {
32086       return *reinterpret_cast<VkExportMetalBufferInfoEXT*>( this );
32087     }
32088 
32089 #if defined( VULKAN_HPP_USE_REFLECT )
32090 #if 14 <= VULKAN_HPP_CPP_VERSION
32091     auto
32092 #else
32093     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, MTLBuffer_id const &>
32094 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32095       reflect() const VULKAN_HPP_NOEXCEPT
32096     {
32097       return std::tie( sType, pNext, memory, mtlBuffer );
32098     }
32099 #endif
32100 
32101 
32102 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32103 auto operator<=>( ExportMetalBufferInfoEXT const & ) const = default;
32104 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32105     bool operator==( ExportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32106     {
32107 #if defined( VULKAN_HPP_USE_REFLECT )
32108       return this->reflect() == rhs.reflect();
32109 #else
32110       return ( sType == rhs.sType )
32111           && ( pNext == rhs.pNext )
32112           && ( memory == rhs.memory )
32113           && ( mtlBuffer == rhs.mtlBuffer );
32114 #endif
32115     }
32116 
operator !=VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT32117     bool operator!=( ExportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32118     {
32119       return !operator==( rhs );
32120     }
32121 #endif
32122 
32123     public:
32124     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalBufferInfoEXT;
32125     const void * pNext = {};
32126     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
32127     MTLBuffer_id mtlBuffer = {};
32128 
32129   };
32130 
32131   template <>
32132   struct CppType<StructureType, StructureType::eExportMetalBufferInfoEXT>
32133   {
32134     using Type = ExportMetalBufferInfoEXT;
32135   };
32136 #endif /*VK_USE_PLATFORM_METAL_EXT*/
32137 
32138 #if defined( VK_USE_PLATFORM_METAL_EXT )
32139   struct ExportMetalCommandQueueInfoEXT
32140   {
32141     using NativeType = VkExportMetalCommandQueueInfoEXT;
32142 
32143     static const bool allowDuplicate = true;
32144     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalCommandQueueInfoEXT;
32145 
32146 
32147 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMetalCommandQueueInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32148 VULKAN_HPP_CONSTEXPR ExportMetalCommandQueueInfoEXT(VULKAN_HPP_NAMESPACE::Queue queue_ = {}, MTLCommandQueue_id mtlCommandQueue_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
32149     : pNext( pNext_ ), queue( queue_ ), mtlCommandQueue( mtlCommandQueue_ )
32150     {}
32151 
32152     VULKAN_HPP_CONSTEXPR ExportMetalCommandQueueInfoEXT( ExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32153 
ExportMetalCommandQueueInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32154     ExportMetalCommandQueueInfoEXT( VkExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32155       : ExportMetalCommandQueueInfoEXT( *reinterpret_cast<ExportMetalCommandQueueInfoEXT const *>( &rhs ) )
32156     {}
32157 
32158 
32159     ExportMetalCommandQueueInfoEXT & operator=( ExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32160 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
32161 
operator =VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32162     ExportMetalCommandQueueInfoEXT & operator=( VkExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32163     {
32164       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT const *>( &rhs );
32165       return *this;
32166     }
32167 
32168 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32169     VULKAN_HPP_CONSTEXPR_14 ExportMetalCommandQueueInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
32170     {
32171       pNext = pNext_;
32172       return *this;
32173     }
32174 
setQueueVULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32175     VULKAN_HPP_CONSTEXPR_14 ExportMetalCommandQueueInfoEXT & setQueue( VULKAN_HPP_NAMESPACE::Queue queue_ ) VULKAN_HPP_NOEXCEPT
32176     {
32177       queue = queue_;
32178       return *this;
32179     }
32180 
setMtlCommandQueueVULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32181     VULKAN_HPP_CONSTEXPR_14 ExportMetalCommandQueueInfoEXT & setMtlCommandQueue( MTLCommandQueue_id mtlCommandQueue_ ) VULKAN_HPP_NOEXCEPT
32182     {
32183       mtlCommandQueue = mtlCommandQueue_;
32184       return *this;
32185     }
32186 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
32187 
32188 
operator VkExportMetalCommandQueueInfoEXT const&VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32189     operator VkExportMetalCommandQueueInfoEXT const &() const VULKAN_HPP_NOEXCEPT
32190     {
32191       return *reinterpret_cast<const VkExportMetalCommandQueueInfoEXT*>( this );
32192     }
32193 
operator VkExportMetalCommandQueueInfoEXT&VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32194     operator VkExportMetalCommandQueueInfoEXT &() VULKAN_HPP_NOEXCEPT
32195     {
32196       return *reinterpret_cast<VkExportMetalCommandQueueInfoEXT*>( this );
32197     }
32198 
32199 #if defined( VULKAN_HPP_USE_REFLECT )
32200 #if 14 <= VULKAN_HPP_CPP_VERSION
32201     auto
32202 #else
32203     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Queue const &, MTLCommandQueue_id const &>
32204 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32205       reflect() const VULKAN_HPP_NOEXCEPT
32206     {
32207       return std::tie( sType, pNext, queue, mtlCommandQueue );
32208     }
32209 #endif
32210 
32211 
32212 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32213 auto operator<=>( ExportMetalCommandQueueInfoEXT const & ) const = default;
32214 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32215     bool operator==( ExportMetalCommandQueueInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32216     {
32217 #if defined( VULKAN_HPP_USE_REFLECT )
32218       return this->reflect() == rhs.reflect();
32219 #else
32220       return ( sType == rhs.sType )
32221           && ( pNext == rhs.pNext )
32222           && ( queue == rhs.queue )
32223           && ( mtlCommandQueue == rhs.mtlCommandQueue );
32224 #endif
32225     }
32226 
operator !=VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT32227     bool operator!=( ExportMetalCommandQueueInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32228     {
32229       return !operator==( rhs );
32230     }
32231 #endif
32232 
32233     public:
32234     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalCommandQueueInfoEXT;
32235     const void * pNext = {};
32236     VULKAN_HPP_NAMESPACE::Queue queue = {};
32237     MTLCommandQueue_id mtlCommandQueue = {};
32238 
32239   };
32240 
32241   template <>
32242   struct CppType<StructureType, StructureType::eExportMetalCommandQueueInfoEXT>
32243   {
32244     using Type = ExportMetalCommandQueueInfoEXT;
32245   };
32246 #endif /*VK_USE_PLATFORM_METAL_EXT*/
32247 
32248 #if defined( VK_USE_PLATFORM_METAL_EXT )
32249   struct ExportMetalDeviceInfoEXT
32250   {
32251     using NativeType = VkExportMetalDeviceInfoEXT;
32252 
32253     static const bool allowDuplicate = false;
32254     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalDeviceInfoEXT;
32255 
32256 
32257 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMetalDeviceInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT32258 VULKAN_HPP_CONSTEXPR ExportMetalDeviceInfoEXT(MTLDevice_id mtlDevice_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
32259     : pNext( pNext_ ), mtlDevice( mtlDevice_ )
32260     {}
32261 
32262     VULKAN_HPP_CONSTEXPR ExportMetalDeviceInfoEXT( ExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32263 
ExportMetalDeviceInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT32264     ExportMetalDeviceInfoEXT( VkExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32265       : ExportMetalDeviceInfoEXT( *reinterpret_cast<ExportMetalDeviceInfoEXT const *>( &rhs ) )
32266     {}
32267 
32268 
32269     ExportMetalDeviceInfoEXT & operator=( ExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32270 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
32271 
operator =VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT32272     ExportMetalDeviceInfoEXT & operator=( VkExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32273     {
32274       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT const *>( &rhs );
32275       return *this;
32276     }
32277 
32278 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT32279     VULKAN_HPP_CONSTEXPR_14 ExportMetalDeviceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
32280     {
32281       pNext = pNext_;
32282       return *this;
32283     }
32284 
setMtlDeviceVULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT32285     VULKAN_HPP_CONSTEXPR_14 ExportMetalDeviceInfoEXT & setMtlDevice( MTLDevice_id mtlDevice_ ) VULKAN_HPP_NOEXCEPT
32286     {
32287       mtlDevice = mtlDevice_;
32288       return *this;
32289     }
32290 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
32291 
32292 
operator VkExportMetalDeviceInfoEXT const&VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT32293     operator VkExportMetalDeviceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
32294     {
32295       return *reinterpret_cast<const VkExportMetalDeviceInfoEXT*>( this );
32296     }
32297 
operator VkExportMetalDeviceInfoEXT&VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT32298     operator VkExportMetalDeviceInfoEXT &() VULKAN_HPP_NOEXCEPT
32299     {
32300       return *reinterpret_cast<VkExportMetalDeviceInfoEXT*>( this );
32301     }
32302 
32303 #if defined( VULKAN_HPP_USE_REFLECT )
32304 #if 14 <= VULKAN_HPP_CPP_VERSION
32305     auto
32306 #else
32307     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, MTLDevice_id const &>
32308 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT32309       reflect() const VULKAN_HPP_NOEXCEPT
32310     {
32311       return std::tie( sType, pNext, mtlDevice );
32312     }
32313 #endif
32314 
32315 
32316 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32317 auto operator<=>( ExportMetalDeviceInfoEXT const & ) const = default;
32318 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT32319     bool operator==( ExportMetalDeviceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32320     {
32321 #if defined( VULKAN_HPP_USE_REFLECT )
32322       return this->reflect() == rhs.reflect();
32323 #else
32324       return ( sType == rhs.sType )
32325           && ( pNext == rhs.pNext )
32326           && ( mtlDevice == rhs.mtlDevice );
32327 #endif
32328     }
32329 
operator !=VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT32330     bool operator!=( ExportMetalDeviceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32331     {
32332       return !operator==( rhs );
32333     }
32334 #endif
32335 
32336     public:
32337     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalDeviceInfoEXT;
32338     const void * pNext = {};
32339     MTLDevice_id mtlDevice = {};
32340 
32341   };
32342 
32343   template <>
32344   struct CppType<StructureType, StructureType::eExportMetalDeviceInfoEXT>
32345   {
32346     using Type = ExportMetalDeviceInfoEXT;
32347   };
32348 #endif /*VK_USE_PLATFORM_METAL_EXT*/
32349 
32350 #if defined( VK_USE_PLATFORM_METAL_EXT )
32351   struct ExportMetalIOSurfaceInfoEXT
32352   {
32353     using NativeType = VkExportMetalIOSurfaceInfoEXT;
32354 
32355     static const bool allowDuplicate = true;
32356     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalIoSurfaceInfoEXT;
32357 
32358 
32359 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMetalIOSurfaceInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32360 VULKAN_HPP_CONSTEXPR ExportMetalIOSurfaceInfoEXT(VULKAN_HPP_NAMESPACE::Image image_ = {}, IOSurfaceRef ioSurface_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
32361     : pNext( pNext_ ), image( image_ ), ioSurface( ioSurface_ )
32362     {}
32363 
32364     VULKAN_HPP_CONSTEXPR ExportMetalIOSurfaceInfoEXT( ExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32365 
ExportMetalIOSurfaceInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32366     ExportMetalIOSurfaceInfoEXT( VkExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32367       : ExportMetalIOSurfaceInfoEXT( *reinterpret_cast<ExportMetalIOSurfaceInfoEXT const *>( &rhs ) )
32368     {}
32369 
32370 
32371     ExportMetalIOSurfaceInfoEXT & operator=( ExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32372 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
32373 
operator =VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32374     ExportMetalIOSurfaceInfoEXT & operator=( VkExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32375     {
32376       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT const *>( &rhs );
32377       return *this;
32378     }
32379 
32380 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32381     VULKAN_HPP_CONSTEXPR_14 ExportMetalIOSurfaceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
32382     {
32383       pNext = pNext_;
32384       return *this;
32385     }
32386 
setImageVULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32387     VULKAN_HPP_CONSTEXPR_14 ExportMetalIOSurfaceInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
32388     {
32389       image = image_;
32390       return *this;
32391     }
32392 
setIoSurfaceVULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32393     VULKAN_HPP_CONSTEXPR_14 ExportMetalIOSurfaceInfoEXT & setIoSurface( IOSurfaceRef ioSurface_ ) VULKAN_HPP_NOEXCEPT
32394     {
32395       ioSurface = ioSurface_;
32396       return *this;
32397     }
32398 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
32399 
32400 
operator VkExportMetalIOSurfaceInfoEXT const&VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32401     operator VkExportMetalIOSurfaceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
32402     {
32403       return *reinterpret_cast<const VkExportMetalIOSurfaceInfoEXT*>( this );
32404     }
32405 
operator VkExportMetalIOSurfaceInfoEXT&VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32406     operator VkExportMetalIOSurfaceInfoEXT &() VULKAN_HPP_NOEXCEPT
32407     {
32408       return *reinterpret_cast<VkExportMetalIOSurfaceInfoEXT*>( this );
32409     }
32410 
32411 #if defined( VULKAN_HPP_USE_REFLECT )
32412 #if 14 <= VULKAN_HPP_CPP_VERSION
32413     auto
32414 #else
32415     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, IOSurfaceRef const &>
32416 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32417       reflect() const VULKAN_HPP_NOEXCEPT
32418     {
32419       return std::tie( sType, pNext, image, ioSurface );
32420     }
32421 #endif
32422 
32423 
32424 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32425 auto operator<=>( ExportMetalIOSurfaceInfoEXT const & ) const = default;
32426 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32427     bool operator==( ExportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32428     {
32429 #if defined( VULKAN_HPP_USE_REFLECT )
32430       return this->reflect() == rhs.reflect();
32431 #else
32432       return ( sType == rhs.sType )
32433           && ( pNext == rhs.pNext )
32434           && ( image == rhs.image )
32435           && ( ioSurface == rhs.ioSurface );
32436 #endif
32437     }
32438 
operator !=VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT32439     bool operator!=( ExportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32440     {
32441       return !operator==( rhs );
32442     }
32443 #endif
32444 
32445     public:
32446     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalIoSurfaceInfoEXT;
32447     const void * pNext = {};
32448     VULKAN_HPP_NAMESPACE::Image image = {};
32449     IOSurfaceRef ioSurface = {};
32450 
32451   };
32452 
32453   template <>
32454   struct CppType<StructureType, StructureType::eExportMetalIoSurfaceInfoEXT>
32455   {
32456     using Type = ExportMetalIOSurfaceInfoEXT;
32457   };
32458 #endif /*VK_USE_PLATFORM_METAL_EXT*/
32459 
32460 #if defined( VK_USE_PLATFORM_METAL_EXT )
32461   struct ExportMetalObjectCreateInfoEXT
32462   {
32463     using NativeType = VkExportMetalObjectCreateInfoEXT;
32464 
32465     static const bool allowDuplicate = true;
32466     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalObjectCreateInfoEXT;
32467 
32468 
32469 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMetalObjectCreateInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT32470 VULKAN_HPP_CONSTEXPR ExportMetalObjectCreateInfoEXT(VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType_ = VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT::eMetalDevice, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
32471     : pNext( pNext_ ), exportObjectType( exportObjectType_ )
32472     {}
32473 
32474     VULKAN_HPP_CONSTEXPR ExportMetalObjectCreateInfoEXT( ExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32475 
ExportMetalObjectCreateInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT32476     ExportMetalObjectCreateInfoEXT( VkExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32477       : ExportMetalObjectCreateInfoEXT( *reinterpret_cast<ExportMetalObjectCreateInfoEXT const *>( &rhs ) )
32478     {}
32479 
32480 
32481     ExportMetalObjectCreateInfoEXT & operator=( ExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32482 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
32483 
operator =VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT32484     ExportMetalObjectCreateInfoEXT & operator=( VkExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32485     {
32486       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT const *>( &rhs );
32487       return *this;
32488     }
32489 
32490 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT32491     VULKAN_HPP_CONSTEXPR_14 ExportMetalObjectCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
32492     {
32493       pNext = pNext_;
32494       return *this;
32495     }
32496 
setExportObjectTypeVULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT32497     VULKAN_HPP_CONSTEXPR_14 ExportMetalObjectCreateInfoEXT & setExportObjectType( VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType_ ) VULKAN_HPP_NOEXCEPT
32498     {
32499       exportObjectType = exportObjectType_;
32500       return *this;
32501     }
32502 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
32503 
32504 
operator VkExportMetalObjectCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT32505     operator VkExportMetalObjectCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
32506     {
32507       return *reinterpret_cast<const VkExportMetalObjectCreateInfoEXT*>( this );
32508     }
32509 
operator VkExportMetalObjectCreateInfoEXT&VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT32510     operator VkExportMetalObjectCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
32511     {
32512       return *reinterpret_cast<VkExportMetalObjectCreateInfoEXT*>( this );
32513     }
32514 
32515 #if defined( VULKAN_HPP_USE_REFLECT )
32516 #if 14 <= VULKAN_HPP_CPP_VERSION
32517     auto
32518 #else
32519     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT const &>
32520 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT32521       reflect() const VULKAN_HPP_NOEXCEPT
32522     {
32523       return std::tie( sType, pNext, exportObjectType );
32524     }
32525 #endif
32526 
32527 
32528 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32529 auto operator<=>( ExportMetalObjectCreateInfoEXT const & ) const = default;
32530 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT32531     bool operator==( ExportMetalObjectCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32532     {
32533 #if defined( VULKAN_HPP_USE_REFLECT )
32534       return this->reflect() == rhs.reflect();
32535 #else
32536       return ( sType == rhs.sType )
32537           && ( pNext == rhs.pNext )
32538           && ( exportObjectType == rhs.exportObjectType );
32539 #endif
32540     }
32541 
operator !=VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT32542     bool operator!=( ExportMetalObjectCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32543     {
32544       return !operator==( rhs );
32545     }
32546 #endif
32547 
32548     public:
32549     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalObjectCreateInfoEXT;
32550     const void * pNext = {};
32551     VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType = VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT::eMetalDevice;
32552 
32553   };
32554 
32555   template <>
32556   struct CppType<StructureType, StructureType::eExportMetalObjectCreateInfoEXT>
32557   {
32558     using Type = ExportMetalObjectCreateInfoEXT;
32559   };
32560 #endif /*VK_USE_PLATFORM_METAL_EXT*/
32561 
32562 #if defined( VK_USE_PLATFORM_METAL_EXT )
32563   struct ExportMetalObjectsInfoEXT
32564   {
32565     using NativeType = VkExportMetalObjectsInfoEXT;
32566 
32567     static const bool allowDuplicate = false;
32568     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalObjectsInfoEXT;
32569 
32570 
32571 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMetalObjectsInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT32572 VULKAN_HPP_CONSTEXPR ExportMetalObjectsInfoEXT(const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
32573     : pNext( pNext_ )
32574     {}
32575 
32576     VULKAN_HPP_CONSTEXPR ExportMetalObjectsInfoEXT( ExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32577 
ExportMetalObjectsInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT32578     ExportMetalObjectsInfoEXT( VkExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32579       : ExportMetalObjectsInfoEXT( *reinterpret_cast<ExportMetalObjectsInfoEXT const *>( &rhs ) )
32580     {}
32581 
32582 
32583     ExportMetalObjectsInfoEXT & operator=( ExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32584 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
32585 
operator =VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT32586     ExportMetalObjectsInfoEXT & operator=( VkExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32587     {
32588       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT const *>( &rhs );
32589       return *this;
32590     }
32591 
32592 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT32593     VULKAN_HPP_CONSTEXPR_14 ExportMetalObjectsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
32594     {
32595       pNext = pNext_;
32596       return *this;
32597     }
32598 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
32599 
32600 
operator VkExportMetalObjectsInfoEXT const&VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT32601     operator VkExportMetalObjectsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
32602     {
32603       return *reinterpret_cast<const VkExportMetalObjectsInfoEXT*>( this );
32604     }
32605 
operator VkExportMetalObjectsInfoEXT&VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT32606     operator VkExportMetalObjectsInfoEXT &() VULKAN_HPP_NOEXCEPT
32607     {
32608       return *reinterpret_cast<VkExportMetalObjectsInfoEXT*>( this );
32609     }
32610 
32611 #if defined( VULKAN_HPP_USE_REFLECT )
32612 #if 14 <= VULKAN_HPP_CPP_VERSION
32613     auto
32614 #else
32615     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &>
32616 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT32617       reflect() const VULKAN_HPP_NOEXCEPT
32618     {
32619       return std::tie( sType, pNext );
32620     }
32621 #endif
32622 
32623 
32624 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32625 auto operator<=>( ExportMetalObjectsInfoEXT const & ) const = default;
32626 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT32627     bool operator==( ExportMetalObjectsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32628     {
32629 #if defined( VULKAN_HPP_USE_REFLECT )
32630       return this->reflect() == rhs.reflect();
32631 #else
32632       return ( sType == rhs.sType )
32633           && ( pNext == rhs.pNext );
32634 #endif
32635     }
32636 
operator !=VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT32637     bool operator!=( ExportMetalObjectsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32638     {
32639       return !operator==( rhs );
32640     }
32641 #endif
32642 
32643     public:
32644     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalObjectsInfoEXT;
32645     const void * pNext = {};
32646 
32647   };
32648 
32649   template <>
32650   struct CppType<StructureType, StructureType::eExportMetalObjectsInfoEXT>
32651   {
32652     using Type = ExportMetalObjectsInfoEXT;
32653   };
32654 #endif /*VK_USE_PLATFORM_METAL_EXT*/
32655 
32656 #if defined( VK_USE_PLATFORM_METAL_EXT )
32657   struct ExportMetalSharedEventInfoEXT
32658   {
32659     using NativeType = VkExportMetalSharedEventInfoEXT;
32660 
32661     static const bool allowDuplicate = true;
32662     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalSharedEventInfoEXT;
32663 
32664 
32665 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMetalSharedEventInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32666 VULKAN_HPP_CONSTEXPR ExportMetalSharedEventInfoEXT(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::Event event_ = {}, MTLSharedEvent_id mtlSharedEvent_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
32667     : pNext( pNext_ ), semaphore( semaphore_ ), event( event_ ), mtlSharedEvent( mtlSharedEvent_ )
32668     {}
32669 
32670     VULKAN_HPP_CONSTEXPR ExportMetalSharedEventInfoEXT( ExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32671 
ExportMetalSharedEventInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32672     ExportMetalSharedEventInfoEXT( VkExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32673       : ExportMetalSharedEventInfoEXT( *reinterpret_cast<ExportMetalSharedEventInfoEXT const *>( &rhs ) )
32674     {}
32675 
32676 
32677     ExportMetalSharedEventInfoEXT & operator=( ExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32678 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
32679 
operator =VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32680     ExportMetalSharedEventInfoEXT & operator=( VkExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32681     {
32682       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT const *>( &rhs );
32683       return *this;
32684     }
32685 
32686 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32687     VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
32688     {
32689       pNext = pNext_;
32690       return *this;
32691     }
32692 
setSemaphoreVULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32693     VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
32694     {
32695       semaphore = semaphore_;
32696       return *this;
32697     }
32698 
setEventVULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32699     VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setEvent( VULKAN_HPP_NAMESPACE::Event event_ ) VULKAN_HPP_NOEXCEPT
32700     {
32701       event = event_;
32702       return *this;
32703     }
32704 
setMtlSharedEventVULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32705     VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setMtlSharedEvent( MTLSharedEvent_id mtlSharedEvent_ ) VULKAN_HPP_NOEXCEPT
32706     {
32707       mtlSharedEvent = mtlSharedEvent_;
32708       return *this;
32709     }
32710 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
32711 
32712 
operator VkExportMetalSharedEventInfoEXT const&VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32713     operator VkExportMetalSharedEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
32714     {
32715       return *reinterpret_cast<const VkExportMetalSharedEventInfoEXT*>( this );
32716     }
32717 
operator VkExportMetalSharedEventInfoEXT&VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32718     operator VkExportMetalSharedEventInfoEXT &() VULKAN_HPP_NOEXCEPT
32719     {
32720       return *reinterpret_cast<VkExportMetalSharedEventInfoEXT*>( this );
32721     }
32722 
32723 #if defined( VULKAN_HPP_USE_REFLECT )
32724 #if 14 <= VULKAN_HPP_CPP_VERSION
32725     auto
32726 #else
32727     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, VULKAN_HPP_NAMESPACE::Event const &, MTLSharedEvent_id const &>
32728 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32729       reflect() const VULKAN_HPP_NOEXCEPT
32730     {
32731       return std::tie( sType, pNext, semaphore, event, mtlSharedEvent );
32732     }
32733 #endif
32734 
32735 
32736 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32737 auto operator<=>( ExportMetalSharedEventInfoEXT const & ) const = default;
32738 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32739     bool operator==( ExportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32740     {
32741 #if defined( VULKAN_HPP_USE_REFLECT )
32742       return this->reflect() == rhs.reflect();
32743 #else
32744       return ( sType == rhs.sType )
32745           && ( pNext == rhs.pNext )
32746           && ( semaphore == rhs.semaphore )
32747           && ( event == rhs.event )
32748           && ( mtlSharedEvent == rhs.mtlSharedEvent );
32749 #endif
32750     }
32751 
operator !=VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT32752     bool operator!=( ExportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32753     {
32754       return !operator==( rhs );
32755     }
32756 #endif
32757 
32758     public:
32759     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalSharedEventInfoEXT;
32760     const void * pNext = {};
32761     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
32762     VULKAN_HPP_NAMESPACE::Event event = {};
32763     MTLSharedEvent_id mtlSharedEvent = {};
32764 
32765   };
32766 
32767   template <>
32768   struct CppType<StructureType, StructureType::eExportMetalSharedEventInfoEXT>
32769   {
32770     using Type = ExportMetalSharedEventInfoEXT;
32771   };
32772 #endif /*VK_USE_PLATFORM_METAL_EXT*/
32773 
32774 #if defined( VK_USE_PLATFORM_METAL_EXT )
32775   struct ExportMetalTextureInfoEXT
32776   {
32777     using NativeType = VkExportMetalTextureInfoEXT;
32778 
32779     static const bool allowDuplicate = true;
32780     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalTextureInfoEXT;
32781 
32782 
32783 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMetalTextureInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32784 VULKAN_HPP_CONSTEXPR ExportMetalTextureInfoEXT(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::BufferView bufferView_ = {}, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor, MTLTexture_id mtlTexture_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
32785     : pNext( pNext_ ), image( image_ ), imageView( imageView_ ), bufferView( bufferView_ ), plane( plane_ ), mtlTexture( mtlTexture_ )
32786     {}
32787 
32788     VULKAN_HPP_CONSTEXPR ExportMetalTextureInfoEXT( ExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32789 
ExportMetalTextureInfoEXTVULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32790     ExportMetalTextureInfoEXT( VkExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32791       : ExportMetalTextureInfoEXT( *reinterpret_cast<ExportMetalTextureInfoEXT const *>( &rhs ) )
32792     {}
32793 
32794 
32795     ExportMetalTextureInfoEXT & operator=( ExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32796 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
32797 
operator =VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32798     ExportMetalTextureInfoEXT & operator=( VkExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
32799     {
32800       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT const *>( &rhs );
32801       return *this;
32802     }
32803 
32804 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32805     VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
32806     {
32807       pNext = pNext_;
32808       return *this;
32809     }
32810 
setImageVULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32811     VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
32812     {
32813       image = image_;
32814       return *this;
32815     }
32816 
setImageViewVULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32817     VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
32818     {
32819       imageView = imageView_;
32820       return *this;
32821     }
32822 
setBufferViewVULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32823     VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView_ ) VULKAN_HPP_NOEXCEPT
32824     {
32825       bufferView = bufferView_;
32826       return *this;
32827     }
32828 
setPlaneVULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32829     VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setPlane( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ ) VULKAN_HPP_NOEXCEPT
32830     {
32831       plane = plane_;
32832       return *this;
32833     }
32834 
setMtlTextureVULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32835     VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setMtlTexture( MTLTexture_id mtlTexture_ ) VULKAN_HPP_NOEXCEPT
32836     {
32837       mtlTexture = mtlTexture_;
32838       return *this;
32839     }
32840 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
32841 
32842 
operator VkExportMetalTextureInfoEXT const&VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32843     operator VkExportMetalTextureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
32844     {
32845       return *reinterpret_cast<const VkExportMetalTextureInfoEXT*>( this );
32846     }
32847 
operator VkExportMetalTextureInfoEXT&VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32848     operator VkExportMetalTextureInfoEXT &() VULKAN_HPP_NOEXCEPT
32849     {
32850       return *reinterpret_cast<VkExportMetalTextureInfoEXT*>( this );
32851     }
32852 
32853 #if defined( VULKAN_HPP_USE_REFLECT )
32854 #if 14 <= VULKAN_HPP_CPP_VERSION
32855     auto
32856 #else
32857     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageView const &, VULKAN_HPP_NAMESPACE::BufferView const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &, MTLTexture_id const &>
32858 #endif
reflectVULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32859       reflect() const VULKAN_HPP_NOEXCEPT
32860     {
32861       return std::tie( sType, pNext, image, imageView, bufferView, plane, mtlTexture );
32862     }
32863 #endif
32864 
32865 
32866 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32867 auto operator<=>( ExportMetalTextureInfoEXT const & ) const = default;
32868 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32869     bool operator==( ExportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32870     {
32871 #if defined( VULKAN_HPP_USE_REFLECT )
32872       return this->reflect() == rhs.reflect();
32873 #else
32874       return ( sType == rhs.sType )
32875           && ( pNext == rhs.pNext )
32876           && ( image == rhs.image )
32877           && ( imageView == rhs.imageView )
32878           && ( bufferView == rhs.bufferView )
32879           && ( plane == rhs.plane )
32880           && ( mtlTexture == rhs.mtlTexture );
32881 #endif
32882     }
32883 
operator !=VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT32884     bool operator!=( ExportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
32885     {
32886       return !operator==( rhs );
32887     }
32888 #endif
32889 
32890     public:
32891     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalTextureInfoEXT;
32892     const void * pNext = {};
32893     VULKAN_HPP_NAMESPACE::Image image = {};
32894     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
32895     VULKAN_HPP_NAMESPACE::BufferView bufferView = {};
32896     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
32897     MTLTexture_id mtlTexture = {};
32898 
32899   };
32900 
32901   template <>
32902   struct CppType<StructureType, StructureType::eExportMetalTextureInfoEXT>
32903   {
32904     using Type = ExportMetalTextureInfoEXT;
32905   };
32906 #endif /*VK_USE_PLATFORM_METAL_EXT*/
32907 
32908   struct ExportSemaphoreCreateInfo
32909   {
32910     using NativeType = VkExportSemaphoreCreateInfo;
32911 
32912     static const bool allowDuplicate = false;
32913     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo;
32914 
32915 
32916 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32917 VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
32918     : pNext( pNext_ ), handleTypes( handleTypes_ )
32919     {}
32920 
32921     VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32922 
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32923     ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32924       : ExportSemaphoreCreateInfo( *reinterpret_cast<ExportSemaphoreCreateInfo const *>( &rhs ) )
32925     {}
32926 
32927 
32928     ExportSemaphoreCreateInfo & operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32929 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
32930 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32931     ExportSemaphoreCreateInfo & operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32932     {
32933       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const *>( &rhs );
32934       return *this;
32935     }
32936 
32937 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32938     VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
32939     {
32940       pNext = pNext_;
32941       return *this;
32942     }
32943 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32944     VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
32945     {
32946       handleTypes = handleTypes_;
32947       return *this;
32948     }
32949 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
32950 
32951 
operator VkExportSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32952     operator VkExportSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT
32953     {
32954       return *reinterpret_cast<const VkExportSemaphoreCreateInfo*>( this );
32955     }
32956 
operator VkExportSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32957     operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
32958     {
32959       return *reinterpret_cast<VkExportSemaphoreCreateInfo*>( this );
32960     }
32961 
32962 #if defined( VULKAN_HPP_USE_REFLECT )
32963 #if 14 <= VULKAN_HPP_CPP_VERSION
32964     auto
32965 #else
32966     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags const &>
32967 #endif
reflectVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32968       reflect() const VULKAN_HPP_NOEXCEPT
32969     {
32970       return std::tie( sType, pNext, handleTypes );
32971     }
32972 #endif
32973 
32974 
32975 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32976 auto operator<=>( ExportSemaphoreCreateInfo const & ) const = default;
32977 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32978     bool operator==( ExportSemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
32979     {
32980 #if defined( VULKAN_HPP_USE_REFLECT )
32981       return this->reflect() == rhs.reflect();
32982 #else
32983       return ( sType == rhs.sType )
32984           && ( pNext == rhs.pNext )
32985           && ( handleTypes == rhs.handleTypes );
32986 #endif
32987     }
32988 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32989     bool operator!=( ExportSemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
32990     {
32991       return !operator==( rhs );
32992     }
32993 #endif
32994 
32995     public:
32996     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo;
32997     const void * pNext = {};
32998     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {};
32999 
33000   };
33001 
33002   template <>
33003   struct CppType<StructureType, StructureType::eExportSemaphoreCreateInfo>
33004   {
33005     using Type = ExportSemaphoreCreateInfo;
33006   };
33007   using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
33008 
33009 #if defined( VK_USE_PLATFORM_WIN32_KHR )
33010   struct ExportSemaphoreWin32HandleInfoKHR
33011   {
33012     using NativeType = VkExportSemaphoreWin32HandleInfoKHR;
33013 
33014     static const bool allowDuplicate = false;
33015     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
33016 
33017 
33018 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33019 VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR(const SECURITY_ATTRIBUTES * pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
33020     : pNext( pNext_ ), pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
33021     {}
33022 
33023     VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33024 
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33025     ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
33026       : ExportSemaphoreWin32HandleInfoKHR( *reinterpret_cast<ExportSemaphoreWin32HandleInfoKHR const *>( &rhs ) )
33027     {}
33028 
33029 
33030     ExportSemaphoreWin32HandleInfoKHR & operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33031 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33032 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33033     ExportSemaphoreWin32HandleInfoKHR & operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
33034     {
33035       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const *>( &rhs );
33036       return *this;
33037     }
33038 
33039 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33040     VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
33041     {
33042       pNext = pNext_;
33043       return *this;
33044     }
33045 
setPAttributesVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33046     VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
33047     {
33048       pAttributes = pAttributes_;
33049       return *this;
33050     }
33051 
setDwAccessVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33052     VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
33053     {
33054       dwAccess = dwAccess_;
33055       return *this;
33056     }
33057 
setNameVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33058     VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
33059     {
33060       name = name_;
33061       return *this;
33062     }
33063 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
33064 
33065 
operator VkExportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33066     operator VkExportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
33067     {
33068       return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>( this );
33069     }
33070 
operator VkExportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33071     operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
33072     {
33073       return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>( this );
33074     }
33075 
33076 #if defined( VULKAN_HPP_USE_REFLECT )
33077 #if 14 <= VULKAN_HPP_CPP_VERSION
33078     auto
33079 #else
33080     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &, LPCWSTR const &>
33081 #endif
reflectVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33082       reflect() const VULKAN_HPP_NOEXCEPT
33083     {
33084       return std::tie( sType, pNext, pAttributes, dwAccess, name );
33085     }
33086 #endif
33087 
33088 
33089 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33090 auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const & ) const = default;
33091 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33092     bool operator==( ExportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
33093     {
33094 #if defined( VULKAN_HPP_USE_REFLECT )
33095       return this->reflect() == rhs.reflect();
33096 #else
33097       return ( sType == rhs.sType )
33098           && ( pNext == rhs.pNext )
33099           && ( pAttributes == rhs.pAttributes )
33100           && ( dwAccess == rhs.dwAccess )
33101           && ( name == rhs.name );
33102 #endif
33103     }
33104 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR33105     bool operator!=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
33106     {
33107       return !operator==( rhs );
33108     }
33109 #endif
33110 
33111     public:
33112     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
33113     const void * pNext = {};
33114     const SECURITY_ATTRIBUTES * pAttributes = {};
33115     DWORD dwAccess = {};
33116     LPCWSTR name = {};
33117 
33118   };
33119 
33120   template <>
33121   struct CppType<StructureType, StructureType::eExportSemaphoreWin32HandleInfoKHR>
33122   {
33123     using Type = ExportSemaphoreWin32HandleInfoKHR;
33124   };
33125 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
33126 
33127   struct ExtensionProperties
33128   {
33129     using NativeType = VkExtensionProperties;
33130 
33131 
33132 
33133 
33134 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties33135 VULKAN_HPP_CONSTEXPR_14 ExtensionProperties(std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const & extensionName_ = {}, uint32_t specVersion_ = {}) VULKAN_HPP_NOEXCEPT
33136     : extensionName( extensionName_ ), specVersion( specVersion_ )
33137     {}
33138 
33139     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33140 
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties33141     ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33142       : ExtensionProperties( *reinterpret_cast<ExtensionProperties const *>( &rhs ) )
33143     {}
33144 
33145 
33146     ExtensionProperties & operator=( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33147 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33148 
operator =VULKAN_HPP_NAMESPACE::ExtensionProperties33149     ExtensionProperties & operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33150     {
33151       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExtensionProperties const *>( &rhs );
33152       return *this;
33153     }
33154 
33155 
operator VkExtensionProperties const&VULKAN_HPP_NAMESPACE::ExtensionProperties33156     operator VkExtensionProperties const &() const VULKAN_HPP_NOEXCEPT
33157     {
33158       return *reinterpret_cast<const VkExtensionProperties*>( this );
33159     }
33160 
operator VkExtensionProperties&VULKAN_HPP_NAMESPACE::ExtensionProperties33161     operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT
33162     {
33163       return *reinterpret_cast<VkExtensionProperties*>( this );
33164     }
33165 
33166 #if defined( VULKAN_HPP_USE_REFLECT )
33167 #if 14 <= VULKAN_HPP_CPP_VERSION
33168     auto
33169 #else
33170     std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &, uint32_t const &>
33171 #endif
reflectVULKAN_HPP_NAMESPACE::ExtensionProperties33172       reflect() const VULKAN_HPP_NOEXCEPT
33173     {
33174       return std::tie( extensionName, specVersion );
33175     }
33176 #endif
33177 
33178 
33179 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33180 auto operator<=>( ExtensionProperties const & ) const = default;
33181 #else
operator ==VULKAN_HPP_NAMESPACE::ExtensionProperties33182     bool operator==( ExtensionProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33183     {
33184 #if defined( VULKAN_HPP_USE_REFLECT )
33185       return this->reflect() == rhs.reflect();
33186 #else
33187       return ( extensionName == rhs.extensionName )
33188           && ( specVersion == rhs.specVersion );
33189 #endif
33190     }
33191 
operator !=VULKAN_HPP_NAMESPACE::ExtensionProperties33192     bool operator!=( ExtensionProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33193     {
33194       return !operator==( rhs );
33195     }
33196 #endif
33197 
33198     public:
33199     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> extensionName = {};
33200     uint32_t specVersion = {};
33201 
33202   };
33203 
33204   struct ExternalMemoryProperties
33205   {
33206     using NativeType = VkExternalMemoryProperties;
33207 
33208 
33209 
33210 
33211 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties33212 VULKAN_HPP_CONSTEXPR ExternalMemoryProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT
33213     : externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ )
33214     {}
33215 
33216     VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33217 
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties33218     ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33219       : ExternalMemoryProperties( *reinterpret_cast<ExternalMemoryProperties const *>( &rhs ) )
33220     {}
33221 
33222 
33223     ExternalMemoryProperties & operator=( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33224 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33225 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryProperties33226     ExternalMemoryProperties & operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33227     {
33228       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const *>( &rhs );
33229       return *this;
33230     }
33231 
33232 
operator VkExternalMemoryProperties const&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties33233     operator VkExternalMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
33234     {
33235       return *reinterpret_cast<const VkExternalMemoryProperties*>( this );
33236     }
33237 
operator VkExternalMemoryProperties&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties33238     operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT
33239     {
33240       return *reinterpret_cast<VkExternalMemoryProperties*>( this );
33241     }
33242 
33243 #if defined( VULKAN_HPP_USE_REFLECT )
33244 #if 14 <= VULKAN_HPP_CPP_VERSION
33245     auto
33246 #else
33247     std::tuple<VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
33248 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalMemoryProperties33249       reflect() const VULKAN_HPP_NOEXCEPT
33250     {
33251       return std::tie( externalMemoryFeatures, exportFromImportedHandleTypes, compatibleHandleTypes );
33252     }
33253 #endif
33254 
33255 
33256 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33257 auto operator<=>( ExternalMemoryProperties const & ) const = default;
33258 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryProperties33259     bool operator==( ExternalMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33260     {
33261 #if defined( VULKAN_HPP_USE_REFLECT )
33262       return this->reflect() == rhs.reflect();
33263 #else
33264       return ( externalMemoryFeatures == rhs.externalMemoryFeatures )
33265           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
33266           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
33267 #endif
33268     }
33269 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryProperties33270     bool operator!=( ExternalMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33271     {
33272       return !operator==( rhs );
33273     }
33274 #endif
33275 
33276     public:
33277     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {};
33278     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {};
33279     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {};
33280 
33281   };
33282   using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
33283 
33284   struct ExternalBufferProperties
33285   {
33286     using NativeType = VkExternalBufferProperties;
33287 
33288     static const bool allowDuplicate = false;
33289     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties;
33290 
33291 
33292 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties33293 VULKAN_HPP_CONSTEXPR ExternalBufferProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
33294     : pNext( pNext_ ), externalMemoryProperties( externalMemoryProperties_ )
33295     {}
33296 
33297     VULKAN_HPP_CONSTEXPR ExternalBufferProperties( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33298 
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties33299     ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33300       : ExternalBufferProperties( *reinterpret_cast<ExternalBufferProperties const *>( &rhs ) )
33301     {}
33302 
33303 
33304     ExternalBufferProperties & operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33305 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33306 
operator =VULKAN_HPP_NAMESPACE::ExternalBufferProperties33307     ExternalBufferProperties & operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33308     {
33309       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalBufferProperties const *>( &rhs );
33310       return *this;
33311     }
33312 
33313 
operator VkExternalBufferProperties const&VULKAN_HPP_NAMESPACE::ExternalBufferProperties33314     operator VkExternalBufferProperties const &() const VULKAN_HPP_NOEXCEPT
33315     {
33316       return *reinterpret_cast<const VkExternalBufferProperties*>( this );
33317     }
33318 
operator VkExternalBufferProperties&VULKAN_HPP_NAMESPACE::ExternalBufferProperties33319     operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT
33320     {
33321       return *reinterpret_cast<VkExternalBufferProperties*>( this );
33322     }
33323 
33324 #if defined( VULKAN_HPP_USE_REFLECT )
33325 #if 14 <= VULKAN_HPP_CPP_VERSION
33326     auto
33327 #else
33328     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const &>
33329 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalBufferProperties33330       reflect() const VULKAN_HPP_NOEXCEPT
33331     {
33332       return std::tie( sType, pNext, externalMemoryProperties );
33333     }
33334 #endif
33335 
33336 
33337 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33338 auto operator<=>( ExternalBufferProperties const & ) const = default;
33339 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalBufferProperties33340     bool operator==( ExternalBufferProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33341     {
33342 #if defined( VULKAN_HPP_USE_REFLECT )
33343       return this->reflect() == rhs.reflect();
33344 #else
33345       return ( sType == rhs.sType )
33346           && ( pNext == rhs.pNext )
33347           && ( externalMemoryProperties == rhs.externalMemoryProperties );
33348 #endif
33349     }
33350 
operator !=VULKAN_HPP_NAMESPACE::ExternalBufferProperties33351     bool operator!=( ExternalBufferProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33352     {
33353       return !operator==( rhs );
33354     }
33355 #endif
33356 
33357     public:
33358     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties;
33359     void * pNext = {};
33360     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
33361 
33362   };
33363 
33364   template <>
33365   struct CppType<StructureType, StructureType::eExternalBufferProperties>
33366   {
33367     using Type = ExternalBufferProperties;
33368   };
33369   using ExternalBufferPropertiesKHR = ExternalBufferProperties;
33370 
33371   struct ExternalFenceProperties
33372   {
33373     using NativeType = VkExternalFenceProperties;
33374 
33375     static const bool allowDuplicate = false;
33376     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties;
33377 
33378 
33379 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties33380 VULKAN_HPP_CONSTEXPR ExternalFenceProperties(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
33381     : pNext( pNext_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalFenceFeatures( externalFenceFeatures_ )
33382     {}
33383 
33384     VULKAN_HPP_CONSTEXPR ExternalFenceProperties( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33385 
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties33386     ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33387       : ExternalFenceProperties( *reinterpret_cast<ExternalFenceProperties const *>( &rhs ) )
33388     {}
33389 
33390 
33391     ExternalFenceProperties & operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33392 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33393 
operator =VULKAN_HPP_NAMESPACE::ExternalFenceProperties33394     ExternalFenceProperties & operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33395     {
33396       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFenceProperties const *>( &rhs );
33397       return *this;
33398     }
33399 
33400 
operator VkExternalFenceProperties const&VULKAN_HPP_NAMESPACE::ExternalFenceProperties33401     operator VkExternalFenceProperties const &() const VULKAN_HPP_NOEXCEPT
33402     {
33403       return *reinterpret_cast<const VkExternalFenceProperties*>( this );
33404     }
33405 
operator VkExternalFenceProperties&VULKAN_HPP_NAMESPACE::ExternalFenceProperties33406     operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT
33407     {
33408       return *reinterpret_cast<VkExternalFenceProperties*>( this );
33409     }
33410 
33411 #if defined( VULKAN_HPP_USE_REFLECT )
33412 #if 14 <= VULKAN_HPP_CPP_VERSION
33413     auto
33414 #else
33415     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags const &, VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags const &>
33416 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalFenceProperties33417       reflect() const VULKAN_HPP_NOEXCEPT
33418     {
33419       return std::tie( sType, pNext, exportFromImportedHandleTypes, compatibleHandleTypes, externalFenceFeatures );
33420     }
33421 #endif
33422 
33423 
33424 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33425 auto operator<=>( ExternalFenceProperties const & ) const = default;
33426 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFenceProperties33427     bool operator==( ExternalFenceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33428     {
33429 #if defined( VULKAN_HPP_USE_REFLECT )
33430       return this->reflect() == rhs.reflect();
33431 #else
33432       return ( sType == rhs.sType )
33433           && ( pNext == rhs.pNext )
33434           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
33435           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
33436           && ( externalFenceFeatures == rhs.externalFenceFeatures );
33437 #endif
33438     }
33439 
operator !=VULKAN_HPP_NAMESPACE::ExternalFenceProperties33440     bool operator!=( ExternalFenceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33441     {
33442       return !operator==( rhs );
33443     }
33444 #endif
33445 
33446     public:
33447     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties;
33448     void * pNext = {};
33449     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {};
33450     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {};
33451     VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {};
33452 
33453   };
33454 
33455   template <>
33456   struct CppType<StructureType, StructureType::eExternalFenceProperties>
33457   {
33458     using Type = ExternalFenceProperties;
33459   };
33460   using ExternalFencePropertiesKHR = ExternalFenceProperties;
33461 
33462 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
33463   struct ExternalFormatANDROID
33464   {
33465     using NativeType = VkExternalFormatANDROID;
33466 
33467     static const bool allowDuplicate = false;
33468     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID;
33469 
33470 
33471 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID33472 VULKAN_HPP_CONSTEXPR ExternalFormatANDROID(uint64_t externalFormat_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
33473     : pNext( pNext_ ), externalFormat( externalFormat_ )
33474     {}
33475 
33476     VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33477 
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID33478     ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
33479       : ExternalFormatANDROID( *reinterpret_cast<ExternalFormatANDROID const *>( &rhs ) )
33480     {}
33481 
33482 
33483     ExternalFormatANDROID & operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33484 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33485 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID33486     ExternalFormatANDROID & operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
33487     {
33488       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const *>( &rhs );
33489       return *this;
33490     }
33491 
33492 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExternalFormatANDROID33493     VULKAN_HPP_CONSTEXPR_14 ExternalFormatANDROID & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
33494     {
33495       pNext = pNext_;
33496       return *this;
33497     }
33498 
setExternalFormatVULKAN_HPP_NAMESPACE::ExternalFormatANDROID33499     VULKAN_HPP_CONSTEXPR_14 ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
33500     {
33501       externalFormat = externalFormat_;
33502       return *this;
33503     }
33504 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
33505 
33506 
operator VkExternalFormatANDROID const&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID33507     operator VkExternalFormatANDROID const &() const VULKAN_HPP_NOEXCEPT
33508     {
33509       return *reinterpret_cast<const VkExternalFormatANDROID*>( this );
33510     }
33511 
operator VkExternalFormatANDROID&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID33512     operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT
33513     {
33514       return *reinterpret_cast<VkExternalFormatANDROID*>( this );
33515     }
33516 
33517 #if defined( VULKAN_HPP_USE_REFLECT )
33518 #if 14 <= VULKAN_HPP_CPP_VERSION
33519     auto
33520 #else
33521     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
33522 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalFormatANDROID33523       reflect() const VULKAN_HPP_NOEXCEPT
33524     {
33525       return std::tie( sType, pNext, externalFormat );
33526     }
33527 #endif
33528 
33529 
33530 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33531 auto operator<=>( ExternalFormatANDROID const & ) const = default;
33532 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFormatANDROID33533     bool operator==( ExternalFormatANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
33534     {
33535 #if defined( VULKAN_HPP_USE_REFLECT )
33536       return this->reflect() == rhs.reflect();
33537 #else
33538       return ( sType == rhs.sType )
33539           && ( pNext == rhs.pNext )
33540           && ( externalFormat == rhs.externalFormat );
33541 #endif
33542     }
33543 
operator !=VULKAN_HPP_NAMESPACE::ExternalFormatANDROID33544     bool operator!=( ExternalFormatANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
33545     {
33546       return !operator==( rhs );
33547     }
33548 #endif
33549 
33550     public:
33551     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID;
33552     void * pNext = {};
33553     uint64_t externalFormat = {};
33554 
33555   };
33556 
33557   template <>
33558   struct CppType<StructureType, StructureType::eExternalFormatANDROID>
33559   {
33560     using Type = ExternalFormatANDROID;
33561   };
33562 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
33563 
33564 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
33565   struct ExternalFormatQNX
33566   {
33567     using NativeType = VkExternalFormatQNX;
33568 
33569     static const bool allowDuplicate = false;
33570     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatQNX;
33571 
33572 
33573 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFormatQNXVULKAN_HPP_NAMESPACE::ExternalFormatQNX33574 VULKAN_HPP_CONSTEXPR ExternalFormatQNX(uint64_t externalFormat_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
33575     : pNext( pNext_ ), externalFormat( externalFormat_ )
33576     {}
33577 
33578     VULKAN_HPP_CONSTEXPR ExternalFormatQNX( ExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33579 
ExternalFormatQNXVULKAN_HPP_NAMESPACE::ExternalFormatQNX33580     ExternalFormatQNX( VkExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT
33581       : ExternalFormatQNX( *reinterpret_cast<ExternalFormatQNX const *>( &rhs ) )
33582     {}
33583 
33584 
33585     ExternalFormatQNX & operator=( ExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33586 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33587 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatQNX33588     ExternalFormatQNX & operator=( VkExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT
33589     {
33590       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatQNX const *>( &rhs );
33591       return *this;
33592     }
33593 
33594 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExternalFormatQNX33595     VULKAN_HPP_CONSTEXPR_14 ExternalFormatQNX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
33596     {
33597       pNext = pNext_;
33598       return *this;
33599     }
33600 
setExternalFormatVULKAN_HPP_NAMESPACE::ExternalFormatQNX33601     VULKAN_HPP_CONSTEXPR_14 ExternalFormatQNX & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
33602     {
33603       externalFormat = externalFormat_;
33604       return *this;
33605     }
33606 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
33607 
33608 
operator VkExternalFormatQNX const&VULKAN_HPP_NAMESPACE::ExternalFormatQNX33609     operator VkExternalFormatQNX const &() const VULKAN_HPP_NOEXCEPT
33610     {
33611       return *reinterpret_cast<const VkExternalFormatQNX*>( this );
33612     }
33613 
operator VkExternalFormatQNX&VULKAN_HPP_NAMESPACE::ExternalFormatQNX33614     operator VkExternalFormatQNX &() VULKAN_HPP_NOEXCEPT
33615     {
33616       return *reinterpret_cast<VkExternalFormatQNX*>( this );
33617     }
33618 
33619 #if defined( VULKAN_HPP_USE_REFLECT )
33620 #if 14 <= VULKAN_HPP_CPP_VERSION
33621     auto
33622 #else
33623     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
33624 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalFormatQNX33625       reflect() const VULKAN_HPP_NOEXCEPT
33626     {
33627       return std::tie( sType, pNext, externalFormat );
33628     }
33629 #endif
33630 
33631 
33632 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33633 auto operator<=>( ExternalFormatQNX const & ) const = default;
33634 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFormatQNX33635     bool operator==( ExternalFormatQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
33636     {
33637 #if defined( VULKAN_HPP_USE_REFLECT )
33638       return this->reflect() == rhs.reflect();
33639 #else
33640       return ( sType == rhs.sType )
33641           && ( pNext == rhs.pNext )
33642           && ( externalFormat == rhs.externalFormat );
33643 #endif
33644     }
33645 
operator !=VULKAN_HPP_NAMESPACE::ExternalFormatQNX33646     bool operator!=( ExternalFormatQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
33647     {
33648       return !operator==( rhs );
33649     }
33650 #endif
33651 
33652     public:
33653     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatQNX;
33654     void * pNext = {};
33655     uint64_t externalFormat = {};
33656 
33657   };
33658 
33659   template <>
33660   struct CppType<StructureType, StructureType::eExternalFormatQNX>
33661   {
33662     using Type = ExternalFormatQNX;
33663   };
33664 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
33665 
33666   struct ExternalImageFormatProperties
33667   {
33668     using NativeType = VkExternalImageFormatProperties;
33669 
33670     static const bool allowDuplicate = false;
33671     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties;
33672 
33673 
33674 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties33675 VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
33676     : pNext( pNext_ ), externalMemoryProperties( externalMemoryProperties_ )
33677     {}
33678 
33679     VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33680 
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties33681     ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33682       : ExternalImageFormatProperties( *reinterpret_cast<ExternalImageFormatProperties const *>( &rhs ) )
33683     {}
33684 
33685 
33686     ExternalImageFormatProperties & operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33687 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33688 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties33689     ExternalImageFormatProperties & operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33690     {
33691       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const *>( &rhs );
33692       return *this;
33693     }
33694 
33695 
operator VkExternalImageFormatProperties const&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties33696     operator VkExternalImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
33697     {
33698       return *reinterpret_cast<const VkExternalImageFormatProperties*>( this );
33699     }
33700 
operator VkExternalImageFormatProperties&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties33701     operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT
33702     {
33703       return *reinterpret_cast<VkExternalImageFormatProperties*>( this );
33704     }
33705 
33706 #if defined( VULKAN_HPP_USE_REFLECT )
33707 #if 14 <= VULKAN_HPP_CPP_VERSION
33708     auto
33709 #else
33710     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const &>
33711 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties33712       reflect() const VULKAN_HPP_NOEXCEPT
33713     {
33714       return std::tie( sType, pNext, externalMemoryProperties );
33715     }
33716 #endif
33717 
33718 
33719 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33720 auto operator<=>( ExternalImageFormatProperties const & ) const = default;
33721 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties33722     bool operator==( ExternalImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33723     {
33724 #if defined( VULKAN_HPP_USE_REFLECT )
33725       return this->reflect() == rhs.reflect();
33726 #else
33727       return ( sType == rhs.sType )
33728           && ( pNext == rhs.pNext )
33729           && ( externalMemoryProperties == rhs.externalMemoryProperties );
33730 #endif
33731     }
33732 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties33733     bool operator!=( ExternalImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33734     {
33735       return !operator==( rhs );
33736     }
33737 #endif
33738 
33739     public:
33740     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties;
33741     void * pNext = {};
33742     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
33743 
33744   };
33745 
33746   template <>
33747   struct CppType<StructureType, StructureType::eExternalImageFormatProperties>
33748   {
33749     using Type = ExternalImageFormatProperties;
33750   };
33751   using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
33752 
33753   struct ImageFormatProperties
33754   {
33755     using NativeType = VkImageFormatProperties;
33756 
33757 
33758 
33759 
33760 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties33761 VULKAN_HPP_CONSTEXPR ImageFormatProperties(VULKAN_HPP_NAMESPACE::Extent3D maxExtent_ = {}, uint32_t maxMipLevels_ = {}, uint32_t maxArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize_ = {}) VULKAN_HPP_NOEXCEPT
33762     : maxExtent( maxExtent_ ), maxMipLevels( maxMipLevels_ ), maxArrayLayers( maxArrayLayers_ ), sampleCounts( sampleCounts_ ), maxResourceSize( maxResourceSize_ )
33763     {}
33764 
33765     VULKAN_HPP_CONSTEXPR ImageFormatProperties( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33766 
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties33767     ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33768       : ImageFormatProperties( *reinterpret_cast<ImageFormatProperties const *>( &rhs ) )
33769     {}
33770 
33771 
33772     ImageFormatProperties & operator=( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33773 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33774 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties33775     ImageFormatProperties & operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
33776     {
33777       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties const *>( &rhs );
33778       return *this;
33779     }
33780 
33781 
operator VkImageFormatProperties const&VULKAN_HPP_NAMESPACE::ImageFormatProperties33782     operator VkImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
33783     {
33784       return *reinterpret_cast<const VkImageFormatProperties*>( this );
33785     }
33786 
operator VkImageFormatProperties&VULKAN_HPP_NAMESPACE::ImageFormatProperties33787     operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT
33788     {
33789       return *reinterpret_cast<VkImageFormatProperties*>( this );
33790     }
33791 
33792 #if defined( VULKAN_HPP_USE_REFLECT )
33793 #if 14 <= VULKAN_HPP_CPP_VERSION
33794     auto
33795 #else
33796     std::tuple<VULKAN_HPP_NAMESPACE::Extent3D const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
33797 #endif
reflectVULKAN_HPP_NAMESPACE::ImageFormatProperties33798       reflect() const VULKAN_HPP_NOEXCEPT
33799     {
33800       return std::tie( maxExtent, maxMipLevels, maxArrayLayers, sampleCounts, maxResourceSize );
33801     }
33802 #endif
33803 
33804 
33805 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33806 auto operator<=>( ImageFormatProperties const & ) const = default;
33807 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties33808     bool operator==( ImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33809     {
33810 #if defined( VULKAN_HPP_USE_REFLECT )
33811       return this->reflect() == rhs.reflect();
33812 #else
33813       return ( maxExtent == rhs.maxExtent )
33814           && ( maxMipLevels == rhs.maxMipLevels )
33815           && ( maxArrayLayers == rhs.maxArrayLayers )
33816           && ( sampleCounts == rhs.sampleCounts )
33817           && ( maxResourceSize == rhs.maxResourceSize );
33818 #endif
33819     }
33820 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties33821     bool operator!=( ImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
33822     {
33823       return !operator==( rhs );
33824     }
33825 #endif
33826 
33827     public:
33828     VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {};
33829     uint32_t maxMipLevels = {};
33830     uint32_t maxArrayLayers = {};
33831     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
33832     VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {};
33833 
33834   };
33835 
33836   struct ExternalImageFormatPropertiesNV
33837   {
33838     using NativeType = VkExternalImageFormatPropertiesNV;
33839 
33840 
33841 
33842 
33843 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV33844 VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT
33845     : imageFormatProperties( imageFormatProperties_ ), externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ )
33846     {}
33847 
33848     VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33849 
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV33850     ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
33851       : ExternalImageFormatPropertiesNV( *reinterpret_cast<ExternalImageFormatPropertiesNV const *>( &rhs ) )
33852     {}
33853 
33854 
33855     ExternalImageFormatPropertiesNV & operator=( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33856 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33857 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV33858     ExternalImageFormatPropertiesNV & operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
33859     {
33860       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV const *>( &rhs );
33861       return *this;
33862     }
33863 
33864 
operator VkExternalImageFormatPropertiesNV const&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV33865     operator VkExternalImageFormatPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
33866     {
33867       return *reinterpret_cast<const VkExternalImageFormatPropertiesNV*>( this );
33868     }
33869 
operator VkExternalImageFormatPropertiesNV&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV33870     operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT
33871     {
33872       return *reinterpret_cast<VkExternalImageFormatPropertiesNV*>( this );
33873     }
33874 
33875 #if defined( VULKAN_HPP_USE_REFLECT )
33876 #if 14 <= VULKAN_HPP_CPP_VERSION
33877     auto
33878 #else
33879     std::tuple<VULKAN_HPP_NAMESPACE::ImageFormatProperties const &, VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &>
33880 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV33881       reflect() const VULKAN_HPP_NOEXCEPT
33882     {
33883       return std::tie( imageFormatProperties, externalMemoryFeatures, exportFromImportedHandleTypes, compatibleHandleTypes );
33884     }
33885 #endif
33886 
33887 
33888 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33889 auto operator<=>( ExternalImageFormatPropertiesNV const & ) const = default;
33890 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV33891     bool operator==( ExternalImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
33892     {
33893 #if defined( VULKAN_HPP_USE_REFLECT )
33894       return this->reflect() == rhs.reflect();
33895 #else
33896       return ( imageFormatProperties == rhs.imageFormatProperties )
33897           && ( externalMemoryFeatures == rhs.externalMemoryFeatures )
33898           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
33899           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
33900 #endif
33901     }
33902 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV33903     bool operator!=( ExternalImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
33904     {
33905       return !operator==( rhs );
33906     }
33907 #endif
33908 
33909     public:
33910     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
33911     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {};
33912     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {};
33913     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {};
33914 
33915   };
33916 
33917   struct ExternalMemoryAcquireUnmodifiedEXT
33918   {
33919     using NativeType = VkExternalMemoryAcquireUnmodifiedEXT;
33920 
33921     static const bool allowDuplicate = false;
33922     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryAcquireUnmodifiedEXT;
33923 
33924 
33925 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryAcquireUnmodifiedEXTVULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT33926 VULKAN_HPP_CONSTEXPR ExternalMemoryAcquireUnmodifiedEXT(VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
33927     : pNext( pNext_ ), acquireUnmodifiedMemory( acquireUnmodifiedMemory_ )
33928     {}
33929 
33930     VULKAN_HPP_CONSTEXPR ExternalMemoryAcquireUnmodifiedEXT( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33931 
ExternalMemoryAcquireUnmodifiedEXTVULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT33932     ExternalMemoryAcquireUnmodifiedEXT( VkExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33933       : ExternalMemoryAcquireUnmodifiedEXT( *reinterpret_cast<ExternalMemoryAcquireUnmodifiedEXT const *>( &rhs ) )
33934     {}
33935 
33936 
33937     ExternalMemoryAcquireUnmodifiedEXT & operator=( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33938 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
33939 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT33940     ExternalMemoryAcquireUnmodifiedEXT & operator=( VkExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
33941     {
33942       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT const *>( &rhs );
33943       return *this;
33944     }
33945 
33946 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT33947     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryAcquireUnmodifiedEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
33948     {
33949       pNext = pNext_;
33950       return *this;
33951     }
33952 
setAcquireUnmodifiedMemoryVULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT33953     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryAcquireUnmodifiedEXT & setAcquireUnmodifiedMemory( VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory_ ) VULKAN_HPP_NOEXCEPT
33954     {
33955       acquireUnmodifiedMemory = acquireUnmodifiedMemory_;
33956       return *this;
33957     }
33958 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
33959 
33960 
operator VkExternalMemoryAcquireUnmodifiedEXT const&VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT33961     operator VkExternalMemoryAcquireUnmodifiedEXT const &() const VULKAN_HPP_NOEXCEPT
33962     {
33963       return *reinterpret_cast<const VkExternalMemoryAcquireUnmodifiedEXT*>( this );
33964     }
33965 
operator VkExternalMemoryAcquireUnmodifiedEXT&VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT33966     operator VkExternalMemoryAcquireUnmodifiedEXT &() VULKAN_HPP_NOEXCEPT
33967     {
33968       return *reinterpret_cast<VkExternalMemoryAcquireUnmodifiedEXT*>( this );
33969     }
33970 
33971 #if defined( VULKAN_HPP_USE_REFLECT )
33972 #if 14 <= VULKAN_HPP_CPP_VERSION
33973     auto
33974 #else
33975     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
33976 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT33977       reflect() const VULKAN_HPP_NOEXCEPT
33978     {
33979       return std::tie( sType, pNext, acquireUnmodifiedMemory );
33980     }
33981 #endif
33982 
33983 
33984 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33985 auto operator<=>( ExternalMemoryAcquireUnmodifiedEXT const & ) const = default;
33986 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT33987     bool operator==( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
33988     {
33989 #if defined( VULKAN_HPP_USE_REFLECT )
33990       return this->reflect() == rhs.reflect();
33991 #else
33992       return ( sType == rhs.sType )
33993           && ( pNext == rhs.pNext )
33994           && ( acquireUnmodifiedMemory == rhs.acquireUnmodifiedMemory );
33995 #endif
33996     }
33997 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT33998     bool operator!=( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
33999     {
34000       return !operator==( rhs );
34001     }
34002 #endif
34003 
34004     public:
34005     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryAcquireUnmodifiedEXT;
34006     const void * pNext = {};
34007     VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory = {};
34008 
34009   };
34010 
34011   template <>
34012   struct CppType<StructureType, StructureType::eExternalMemoryAcquireUnmodifiedEXT>
34013   {
34014     using Type = ExternalMemoryAcquireUnmodifiedEXT;
34015   };
34016 
34017   struct ExternalMemoryBufferCreateInfo
34018   {
34019     using NativeType = VkExternalMemoryBufferCreateInfo;
34020 
34021     static const bool allowDuplicate = false;
34022     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo;
34023 
34024 
34025 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo34026 VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
34027     : pNext( pNext_ ), handleTypes( handleTypes_ )
34028     {}
34029 
34030     VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34031 
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo34032     ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34033       : ExternalMemoryBufferCreateInfo( *reinterpret_cast<ExternalMemoryBufferCreateInfo const *>( &rhs ) )
34034     {}
34035 
34036 
34037     ExternalMemoryBufferCreateInfo & operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34038 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
34039 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo34040     ExternalMemoryBufferCreateInfo & operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34041     {
34042       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const *>( &rhs );
34043       return *this;
34044     }
34045 
34046 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo34047     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryBufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
34048     {
34049       pNext = pNext_;
34050       return *this;
34051     }
34052 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo34053     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryBufferCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
34054     {
34055       handleTypes = handleTypes_;
34056       return *this;
34057     }
34058 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
34059 
34060 
operator VkExternalMemoryBufferCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo34061     operator VkExternalMemoryBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
34062     {
34063       return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>( this );
34064     }
34065 
operator VkExternalMemoryBufferCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo34066     operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
34067     {
34068       return *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>( this );
34069     }
34070 
34071 #if defined( VULKAN_HPP_USE_REFLECT )
34072 #if 14 <= VULKAN_HPP_CPP_VERSION
34073     auto
34074 #else
34075     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
34076 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo34077       reflect() const VULKAN_HPP_NOEXCEPT
34078     {
34079       return std::tie( sType, pNext, handleTypes );
34080     }
34081 #endif
34082 
34083 
34084 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34085 auto operator<=>( ExternalMemoryBufferCreateInfo const & ) const = default;
34086 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo34087     bool operator==( ExternalMemoryBufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
34088     {
34089 #if defined( VULKAN_HPP_USE_REFLECT )
34090       return this->reflect() == rhs.reflect();
34091 #else
34092       return ( sType == rhs.sType )
34093           && ( pNext == rhs.pNext )
34094           && ( handleTypes == rhs.handleTypes );
34095 #endif
34096     }
34097 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo34098     bool operator!=( ExternalMemoryBufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
34099     {
34100       return !operator==( rhs );
34101     }
34102 #endif
34103 
34104     public:
34105     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo;
34106     const void * pNext = {};
34107     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
34108 
34109   };
34110 
34111   template <>
34112   struct CppType<StructureType, StructureType::eExternalMemoryBufferCreateInfo>
34113   {
34114     using Type = ExternalMemoryBufferCreateInfo;
34115   };
34116   using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
34117 
34118   struct ExternalMemoryImageCreateInfo
34119   {
34120     using NativeType = VkExternalMemoryImageCreateInfo;
34121 
34122     static const bool allowDuplicate = false;
34123     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo;
34124 
34125 
34126 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo34127 VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
34128     : pNext( pNext_ ), handleTypes( handleTypes_ )
34129     {}
34130 
34131     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34132 
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo34133     ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34134       : ExternalMemoryImageCreateInfo( *reinterpret_cast<ExternalMemoryImageCreateInfo const *>( &rhs ) )
34135     {}
34136 
34137 
34138     ExternalMemoryImageCreateInfo & operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34139 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
34140 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo34141     ExternalMemoryImageCreateInfo & operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34142     {
34143       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const *>( &rhs );
34144       return *this;
34145     }
34146 
34147 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo34148     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
34149     {
34150       pNext = pNext_;
34151       return *this;
34152     }
34153 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo34154     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
34155     {
34156       handleTypes = handleTypes_;
34157       return *this;
34158     }
34159 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
34160 
34161 
operator VkExternalMemoryImageCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo34162     operator VkExternalMemoryImageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
34163     {
34164       return *reinterpret_cast<const VkExternalMemoryImageCreateInfo*>( this );
34165     }
34166 
operator VkExternalMemoryImageCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo34167     operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT
34168     {
34169       return *reinterpret_cast<VkExternalMemoryImageCreateInfo*>( this );
34170     }
34171 
34172 #if defined( VULKAN_HPP_USE_REFLECT )
34173 #if 14 <= VULKAN_HPP_CPP_VERSION
34174     auto
34175 #else
34176     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
34177 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo34178       reflect() const VULKAN_HPP_NOEXCEPT
34179     {
34180       return std::tie( sType, pNext, handleTypes );
34181     }
34182 #endif
34183 
34184 
34185 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34186 auto operator<=>( ExternalMemoryImageCreateInfo const & ) const = default;
34187 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo34188     bool operator==( ExternalMemoryImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
34189     {
34190 #if defined( VULKAN_HPP_USE_REFLECT )
34191       return this->reflect() == rhs.reflect();
34192 #else
34193       return ( sType == rhs.sType )
34194           && ( pNext == rhs.pNext )
34195           && ( handleTypes == rhs.handleTypes );
34196 #endif
34197     }
34198 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo34199     bool operator!=( ExternalMemoryImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
34200     {
34201       return !operator==( rhs );
34202     }
34203 #endif
34204 
34205     public:
34206     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo;
34207     const void * pNext = {};
34208     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
34209 
34210   };
34211 
34212   template <>
34213   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfo>
34214   {
34215     using Type = ExternalMemoryImageCreateInfo;
34216   };
34217   using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
34218 
34219   struct ExternalMemoryImageCreateInfoNV
34220   {
34221     using NativeType = VkExternalMemoryImageCreateInfoNV;
34222 
34223     static const bool allowDuplicate = false;
34224     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV;
34225 
34226 
34227 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV34228 VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
34229     : pNext( pNext_ ), handleTypes( handleTypes_ )
34230     {}
34231 
34232     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34233 
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV34234     ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
34235       : ExternalMemoryImageCreateInfoNV( *reinterpret_cast<ExternalMemoryImageCreateInfoNV const *>( &rhs ) )
34236     {}
34237 
34238 
34239     ExternalMemoryImageCreateInfoNV & operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34240 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
34241 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV34242     ExternalMemoryImageCreateInfoNV & operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
34243     {
34244       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const *>( &rhs );
34245       return *this;
34246     }
34247 
34248 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV34249     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
34250     {
34251       pNext = pNext_;
34252       return *this;
34253     }
34254 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV34255     VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
34256     {
34257       handleTypes = handleTypes_;
34258       return *this;
34259     }
34260 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
34261 
34262 
operator VkExternalMemoryImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV34263     operator VkExternalMemoryImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
34264     {
34265       return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>( this );
34266     }
34267 
operator VkExternalMemoryImageCreateInfoNV&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV34268     operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
34269     {
34270       return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>( this );
34271     }
34272 
34273 #if defined( VULKAN_HPP_USE_REFLECT )
34274 #if 14 <= VULKAN_HPP_CPP_VERSION
34275     auto
34276 #else
34277     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &>
34278 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV34279       reflect() const VULKAN_HPP_NOEXCEPT
34280     {
34281       return std::tie( sType, pNext, handleTypes );
34282     }
34283 #endif
34284 
34285 
34286 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34287 auto operator<=>( ExternalMemoryImageCreateInfoNV const & ) const = default;
34288 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV34289     bool operator==( ExternalMemoryImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
34290     {
34291 #if defined( VULKAN_HPP_USE_REFLECT )
34292       return this->reflect() == rhs.reflect();
34293 #else
34294       return ( sType == rhs.sType )
34295           && ( pNext == rhs.pNext )
34296           && ( handleTypes == rhs.handleTypes );
34297 #endif
34298     }
34299 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV34300     bool operator!=( ExternalMemoryImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
34301     {
34302       return !operator==( rhs );
34303     }
34304 #endif
34305 
34306     public:
34307     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV;
34308     const void * pNext = {};
34309     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
34310 
34311   };
34312 
34313   template <>
34314   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfoNV>
34315   {
34316     using Type = ExternalMemoryImageCreateInfoNV;
34317   };
34318 
34319   struct ExternalSemaphoreProperties
34320   {
34321     using NativeType = VkExternalSemaphoreProperties;
34322 
34323     static const bool allowDuplicate = false;
34324     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties;
34325 
34326 
34327 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties34328 VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
34329     : pNext( pNext_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalSemaphoreFeatures( externalSemaphoreFeatures_ )
34330     {}
34331 
34332     VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34333 
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties34334     ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
34335       : ExternalSemaphoreProperties( *reinterpret_cast<ExternalSemaphoreProperties const *>( &rhs ) )
34336     {}
34337 
34338 
34339     ExternalSemaphoreProperties & operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34340 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
34341 
operator =VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties34342     ExternalSemaphoreProperties & operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
34343     {
34344       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const *>( &rhs );
34345       return *this;
34346     }
34347 
34348 
operator VkExternalSemaphoreProperties const&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties34349     operator VkExternalSemaphoreProperties const &() const VULKAN_HPP_NOEXCEPT
34350     {
34351       return *reinterpret_cast<const VkExternalSemaphoreProperties*>( this );
34352     }
34353 
operator VkExternalSemaphoreProperties&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties34354     operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
34355     {
34356       return *reinterpret_cast<VkExternalSemaphoreProperties*>( this );
34357     }
34358 
34359 #if defined( VULKAN_HPP_USE_REFLECT )
34360 #if 14 <= VULKAN_HPP_CPP_VERSION
34361     auto
34362 #else
34363     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags const &>
34364 #endif
reflectVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties34365       reflect() const VULKAN_HPP_NOEXCEPT
34366     {
34367       return std::tie( sType, pNext, exportFromImportedHandleTypes, compatibleHandleTypes, externalSemaphoreFeatures );
34368     }
34369 #endif
34370 
34371 
34372 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34373 auto operator<=>( ExternalSemaphoreProperties const & ) const = default;
34374 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties34375     bool operator==( ExternalSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
34376     {
34377 #if defined( VULKAN_HPP_USE_REFLECT )
34378       return this->reflect() == rhs.reflect();
34379 #else
34380       return ( sType == rhs.sType )
34381           && ( pNext == rhs.pNext )
34382           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
34383           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
34384           && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures );
34385 #endif
34386     }
34387 
operator !=VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties34388     bool operator!=( ExternalSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
34389     {
34390       return !operator==( rhs );
34391     }
34392 #endif
34393 
34394     public:
34395     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties;
34396     void * pNext = {};
34397     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {};
34398     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {};
34399     VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {};
34400 
34401   };
34402 
34403   template <>
34404   struct CppType<StructureType, StructureType::eExternalSemaphoreProperties>
34405   {
34406     using Type = ExternalSemaphoreProperties;
34407   };
34408   using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
34409 
34410   struct FenceCreateInfo
34411   {
34412     using NativeType = VkFenceCreateInfo;
34413 
34414     static const bool allowDuplicate = false;
34415     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo;
34416 
34417 
34418 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo34419 VULKAN_HPP_CONSTEXPR FenceCreateInfo(VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
34420     : pNext( pNext_ ), flags( flags_ )
34421     {}
34422 
34423     VULKAN_HPP_CONSTEXPR FenceCreateInfo( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34424 
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo34425     FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34426       : FenceCreateInfo( *reinterpret_cast<FenceCreateInfo const *>( &rhs ) )
34427     {}
34428 
34429 
34430     FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34431 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
34432 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo34433     FenceCreateInfo & operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
34434     {
34435       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceCreateInfo const *>( &rhs );
34436       return *this;
34437     }
34438 
34439 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::FenceCreateInfo34440     VULKAN_HPP_CONSTEXPR_14 FenceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
34441     {
34442       pNext = pNext_;
34443       return *this;
34444     }
34445 
setFlagsVULKAN_HPP_NAMESPACE::FenceCreateInfo34446     VULKAN_HPP_CONSTEXPR_14 FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
34447     {
34448       flags = flags_;
34449       return *this;
34450     }
34451 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
34452 
34453 
operator VkFenceCreateInfo const&VULKAN_HPP_NAMESPACE::FenceCreateInfo34454     operator VkFenceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
34455     {
34456       return *reinterpret_cast<const VkFenceCreateInfo*>( this );
34457     }
34458 
operator VkFenceCreateInfo&VULKAN_HPP_NAMESPACE::FenceCreateInfo34459     operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
34460     {
34461       return *reinterpret_cast<VkFenceCreateInfo*>( this );
34462     }
34463 
34464 #if defined( VULKAN_HPP_USE_REFLECT )
34465 #if 14 <= VULKAN_HPP_CPP_VERSION
34466     auto
34467 #else
34468     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::FenceCreateFlags const &>
34469 #endif
reflectVULKAN_HPP_NAMESPACE::FenceCreateInfo34470       reflect() const VULKAN_HPP_NOEXCEPT
34471     {
34472       return std::tie( sType, pNext, flags );
34473     }
34474 #endif
34475 
34476 
34477 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34478 auto operator<=>( FenceCreateInfo const & ) const = default;
34479 #else
operator ==VULKAN_HPP_NAMESPACE::FenceCreateInfo34480     bool operator==( FenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
34481     {
34482 #if defined( VULKAN_HPP_USE_REFLECT )
34483       return this->reflect() == rhs.reflect();
34484 #else
34485       return ( sType == rhs.sType )
34486           && ( pNext == rhs.pNext )
34487           && ( flags == rhs.flags );
34488 #endif
34489     }
34490 
operator !=VULKAN_HPP_NAMESPACE::FenceCreateInfo34491     bool operator!=( FenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
34492     {
34493       return !operator==( rhs );
34494     }
34495 #endif
34496 
34497     public:
34498     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo;
34499     const void * pNext = {};
34500     VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {};
34501 
34502   };
34503 
34504   template <>
34505   struct CppType<StructureType, StructureType::eFenceCreateInfo>
34506   {
34507     using Type = FenceCreateInfo;
34508   };
34509 
34510   struct FenceGetFdInfoKHR
34511   {
34512     using NativeType = VkFenceGetFdInfoKHR;
34513 
34514     static const bool allowDuplicate = false;
34515     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR;
34516 
34517 
34518 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34519 VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
34520     : pNext( pNext_ ), fence( fence_ ), handleType( handleType_ )
34521     {}
34522 
34523     VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34524 
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34525     FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34526       : FenceGetFdInfoKHR( *reinterpret_cast<FenceGetFdInfoKHR const *>( &rhs ) )
34527     {}
34528 
34529 
34530     FenceGetFdInfoKHR & operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34531 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
34532 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34533     FenceGetFdInfoKHR & operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34534     {
34535       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const *>( &rhs );
34536       return *this;
34537     }
34538 
34539 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34540     VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
34541     {
34542       pNext = pNext_;
34543       return *this;
34544     }
34545 
setFenceVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34546     VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
34547     {
34548       fence = fence_;
34549       return *this;
34550     }
34551 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34552     VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
34553     {
34554       handleType = handleType_;
34555       return *this;
34556     }
34557 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
34558 
34559 
operator VkFenceGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34560     operator VkFenceGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
34561     {
34562       return *reinterpret_cast<const VkFenceGetFdInfoKHR*>( this );
34563     }
34564 
operator VkFenceGetFdInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34565     operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
34566     {
34567       return *reinterpret_cast<VkFenceGetFdInfoKHR*>( this );
34568     }
34569 
34570 #if defined( VULKAN_HPP_USE_REFLECT )
34571 #if 14 <= VULKAN_HPP_CPP_VERSION
34572     auto
34573 #else
34574     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Fence const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &>
34575 #endif
reflectVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34576       reflect() const VULKAN_HPP_NOEXCEPT
34577     {
34578       return std::tie( sType, pNext, fence, handleType );
34579     }
34580 #endif
34581 
34582 
34583 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34584 auto operator<=>( FenceGetFdInfoKHR const & ) const = default;
34585 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34586     bool operator==( FenceGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
34587     {
34588 #if defined( VULKAN_HPP_USE_REFLECT )
34589       return this->reflect() == rhs.reflect();
34590 #else
34591       return ( sType == rhs.sType )
34592           && ( pNext == rhs.pNext )
34593           && ( fence == rhs.fence )
34594           && ( handleType == rhs.handleType );
34595 #endif
34596     }
34597 
operator !=VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR34598     bool operator!=( FenceGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
34599     {
34600       return !operator==( rhs );
34601     }
34602 #endif
34603 
34604     public:
34605     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR;
34606     const void * pNext = {};
34607     VULKAN_HPP_NAMESPACE::Fence fence = {};
34608     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
34609 
34610   };
34611 
34612   template <>
34613   struct CppType<StructureType, StructureType::eFenceGetFdInfoKHR>
34614   {
34615     using Type = FenceGetFdInfoKHR;
34616   };
34617 
34618 #if defined( VK_USE_PLATFORM_WIN32_KHR )
34619   struct FenceGetWin32HandleInfoKHR
34620   {
34621     using NativeType = VkFenceGetWin32HandleInfoKHR;
34622 
34623     static const bool allowDuplicate = false;
34624     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR;
34625 
34626 
34627 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34628 VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
34629     : pNext( pNext_ ), fence( fence_ ), handleType( handleType_ )
34630     {}
34631 
34632     VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34633 
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34634     FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34635       : FenceGetWin32HandleInfoKHR( *reinterpret_cast<FenceGetWin32HandleInfoKHR const *>( &rhs ) )
34636     {}
34637 
34638 
34639     FenceGetWin32HandleInfoKHR & operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34640 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
34641 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34642     FenceGetWin32HandleInfoKHR & operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34643     {
34644       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const *>( &rhs );
34645       return *this;
34646     }
34647 
34648 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34649     VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
34650     {
34651       pNext = pNext_;
34652       return *this;
34653     }
34654 
setFenceVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34655     VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
34656     {
34657       fence = fence_;
34658       return *this;
34659     }
34660 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34661     VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
34662     {
34663       handleType = handleType_;
34664       return *this;
34665     }
34666 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
34667 
34668 
operator VkFenceGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34669     operator VkFenceGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
34670     {
34671       return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( this );
34672     }
34673 
operator VkFenceGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34674     operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
34675     {
34676       return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>( this );
34677     }
34678 
34679 #if defined( VULKAN_HPP_USE_REFLECT )
34680 #if 14 <= VULKAN_HPP_CPP_VERSION
34681     auto
34682 #else
34683     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Fence const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &>
34684 #endif
reflectVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34685       reflect() const VULKAN_HPP_NOEXCEPT
34686     {
34687       return std::tie( sType, pNext, fence, handleType );
34688     }
34689 #endif
34690 
34691 
34692 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34693 auto operator<=>( FenceGetWin32HandleInfoKHR const & ) const = default;
34694 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34695     bool operator==( FenceGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
34696     {
34697 #if defined( VULKAN_HPP_USE_REFLECT )
34698       return this->reflect() == rhs.reflect();
34699 #else
34700       return ( sType == rhs.sType )
34701           && ( pNext == rhs.pNext )
34702           && ( fence == rhs.fence )
34703           && ( handleType == rhs.handleType );
34704 #endif
34705     }
34706 
operator !=VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR34707     bool operator!=( FenceGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
34708     {
34709       return !operator==( rhs );
34710     }
34711 #endif
34712 
34713     public:
34714     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR;
34715     const void * pNext = {};
34716     VULKAN_HPP_NAMESPACE::Fence fence = {};
34717     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
34718 
34719   };
34720 
34721   template <>
34722   struct CppType<StructureType, StructureType::eFenceGetWin32HandleInfoKHR>
34723   {
34724     using Type = FenceGetWin32HandleInfoKHR;
34725   };
34726 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
34727 
34728   struct FilterCubicImageViewImageFormatPropertiesEXT
34729   {
34730     using NativeType = VkFilterCubicImageViewImageFormatPropertiesEXT;
34731 
34732     static const bool allowDuplicate = false;
34733     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
34734 
34735 
34736 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT34737 VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
34738     : pNext( pNext_ ), filterCubic( filterCubic_ ), filterCubicMinmax( filterCubicMinmax_ )
34739     {}
34740 
34741     VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34742 
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT34743     FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
34744       : FilterCubicImageViewImageFormatPropertiesEXT( *reinterpret_cast<FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs ) )
34745     {}
34746 
34747 
34748     FilterCubicImageViewImageFormatPropertiesEXT & operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34749 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
34750 
operator =VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT34751     FilterCubicImageViewImageFormatPropertiesEXT & operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
34752     {
34753       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs );
34754       return *this;
34755     }
34756 
34757 
operator VkFilterCubicImageViewImageFormatPropertiesEXT const&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT34758     operator VkFilterCubicImageViewImageFormatPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
34759     {
34760       return *reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
34761     }
34762 
operator VkFilterCubicImageViewImageFormatPropertiesEXT&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT34763     operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT
34764     {
34765       return *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
34766     }
34767 
34768 #if defined( VULKAN_HPP_USE_REFLECT )
34769 #if 14 <= VULKAN_HPP_CPP_VERSION
34770     auto
34771 #else
34772     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
34773 #endif
reflectVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT34774       reflect() const VULKAN_HPP_NOEXCEPT
34775     {
34776       return std::tie( sType, pNext, filterCubic, filterCubicMinmax );
34777     }
34778 #endif
34779 
34780 
34781 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34782 auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const & ) const = default;
34783 #else
operator ==VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT34784     bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
34785     {
34786 #if defined( VULKAN_HPP_USE_REFLECT )
34787       return this->reflect() == rhs.reflect();
34788 #else
34789       return ( sType == rhs.sType )
34790           && ( pNext == rhs.pNext )
34791           && ( filterCubic == rhs.filterCubic )
34792           && ( filterCubicMinmax == rhs.filterCubicMinmax );
34793 #endif
34794     }
34795 
operator !=VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT34796     bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
34797     {
34798       return !operator==( rhs );
34799     }
34800 #endif
34801 
34802     public:
34803     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
34804     void * pNext = {};
34805     VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {};
34806     VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {};
34807 
34808   };
34809 
34810   template <>
34811   struct CppType<StructureType, StructureType::eFilterCubicImageViewImageFormatPropertiesEXT>
34812   {
34813     using Type = FilterCubicImageViewImageFormatPropertiesEXT;
34814   };
34815 
34816   struct FormatProperties
34817   {
34818     using NativeType = VkFormatProperties;
34819 
34820 
34821 
34822 
34823 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties34824 VULKAN_HPP_CONSTEXPR FormatProperties(VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {}) VULKAN_HPP_NOEXCEPT
34825     : linearTilingFeatures( linearTilingFeatures_ ), optimalTilingFeatures( optimalTilingFeatures_ ), bufferFeatures( bufferFeatures_ )
34826     {}
34827 
34828     VULKAN_HPP_CONSTEXPR FormatProperties( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34829 
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties34830     FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
34831       : FormatProperties( *reinterpret_cast<FormatProperties const *>( &rhs ) )
34832     {}
34833 
34834 
34835     FormatProperties & operator=( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34836 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
34837 
operator =VULKAN_HPP_NAMESPACE::FormatProperties34838     FormatProperties & operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
34839     {
34840       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties const *>( &rhs );
34841       return *this;
34842     }
34843 
34844 
operator VkFormatProperties const&VULKAN_HPP_NAMESPACE::FormatProperties34845     operator VkFormatProperties const &() const VULKAN_HPP_NOEXCEPT
34846     {
34847       return *reinterpret_cast<const VkFormatProperties*>( this );
34848     }
34849 
operator VkFormatProperties&VULKAN_HPP_NAMESPACE::FormatProperties34850     operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT
34851     {
34852       return *reinterpret_cast<VkFormatProperties*>( this );
34853     }
34854 
34855 #if defined( VULKAN_HPP_USE_REFLECT )
34856 #if 14 <= VULKAN_HPP_CPP_VERSION
34857     auto
34858 #else
34859     std::tuple<VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &>
34860 #endif
reflectVULKAN_HPP_NAMESPACE::FormatProperties34861       reflect() const VULKAN_HPP_NOEXCEPT
34862     {
34863       return std::tie( linearTilingFeatures, optimalTilingFeatures, bufferFeatures );
34864     }
34865 #endif
34866 
34867 
34868 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34869 auto operator<=>( FormatProperties const & ) const = default;
34870 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties34871     bool operator==( FormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
34872     {
34873 #if defined( VULKAN_HPP_USE_REFLECT )
34874       return this->reflect() == rhs.reflect();
34875 #else
34876       return ( linearTilingFeatures == rhs.linearTilingFeatures )
34877           && ( optimalTilingFeatures == rhs.optimalTilingFeatures )
34878           && ( bufferFeatures == rhs.bufferFeatures );
34879 #endif
34880     }
34881 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties34882     bool operator!=( FormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
34883     {
34884       return !operator==( rhs );
34885     }
34886 #endif
34887 
34888     public:
34889     VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {};
34890     VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {};
34891     VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {};
34892 
34893   };
34894 
34895   struct FormatProperties2
34896   {
34897     using NativeType = VkFormatProperties2;
34898 
34899     static const bool allowDuplicate = false;
34900     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2;
34901 
34902 
34903 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties234904 VULKAN_HPP_CONSTEXPR FormatProperties2(VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
34905     : pNext( pNext_ ), formatProperties( formatProperties_ )
34906     {}
34907 
34908     VULKAN_HPP_CONSTEXPR FormatProperties2( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34909 
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties234910     FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
34911       : FormatProperties2( *reinterpret_cast<FormatProperties2 const *>( &rhs ) )
34912     {}
34913 
34914 
34915     FormatProperties2 & operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34916 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
34917 
operator =VULKAN_HPP_NAMESPACE::FormatProperties234918     FormatProperties2 & operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
34919     {
34920       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties2 const *>( &rhs );
34921       return *this;
34922     }
34923 
34924 
operator VkFormatProperties2 const&VULKAN_HPP_NAMESPACE::FormatProperties234925     operator VkFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
34926     {
34927       return *reinterpret_cast<const VkFormatProperties2*>( this );
34928     }
34929 
operator VkFormatProperties2&VULKAN_HPP_NAMESPACE::FormatProperties234930     operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT
34931     {
34932       return *reinterpret_cast<VkFormatProperties2*>( this );
34933     }
34934 
34935 #if defined( VULKAN_HPP_USE_REFLECT )
34936 #if 14 <= VULKAN_HPP_CPP_VERSION
34937     auto
34938 #else
34939     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::FormatProperties const &>
34940 #endif
reflectVULKAN_HPP_NAMESPACE::FormatProperties234941       reflect() const VULKAN_HPP_NOEXCEPT
34942     {
34943       return std::tie( sType, pNext, formatProperties );
34944     }
34945 #endif
34946 
34947 
34948 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34949 auto operator<=>( FormatProperties2 const & ) const = default;
34950 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties234951     bool operator==( FormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
34952     {
34953 #if defined( VULKAN_HPP_USE_REFLECT )
34954       return this->reflect() == rhs.reflect();
34955 #else
34956       return ( sType == rhs.sType )
34957           && ( pNext == rhs.pNext )
34958           && ( formatProperties == rhs.formatProperties );
34959 #endif
34960     }
34961 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties234962     bool operator!=( FormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
34963     {
34964       return !operator==( rhs );
34965     }
34966 #endif
34967 
34968     public:
34969     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2;
34970     void * pNext = {};
34971     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {};
34972 
34973   };
34974 
34975   template <>
34976   struct CppType<StructureType, StructureType::eFormatProperties2>
34977   {
34978     using Type = FormatProperties2;
34979   };
34980   using FormatProperties2KHR = FormatProperties2;
34981 
34982   struct FormatProperties3
34983   {
34984     using NativeType = VkFormatProperties3;
34985 
34986     static const bool allowDuplicate = false;
34987     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties3;
34988 
34989 
34990 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatProperties3VULKAN_HPP_NAMESPACE::FormatProperties334991 VULKAN_HPP_CONSTEXPR FormatProperties3(VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 linearTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 optimalTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 bufferFeatures_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
34992     : pNext( pNext_ ), linearTilingFeatures( linearTilingFeatures_ ), optimalTilingFeatures( optimalTilingFeatures_ ), bufferFeatures( bufferFeatures_ )
34993     {}
34994 
34995     VULKAN_HPP_CONSTEXPR FormatProperties3( FormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34996 
FormatProperties3VULKAN_HPP_NAMESPACE::FormatProperties334997     FormatProperties3( VkFormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT
34998       : FormatProperties3( *reinterpret_cast<FormatProperties3 const *>( &rhs ) )
34999     {}
35000 
35001 
35002     FormatProperties3 & operator=( FormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35003 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
35004 
operator =VULKAN_HPP_NAMESPACE::FormatProperties335005     FormatProperties3 & operator=( VkFormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT
35006     {
35007       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties3 const *>( &rhs );
35008       return *this;
35009     }
35010 
35011 
operator VkFormatProperties3 const&VULKAN_HPP_NAMESPACE::FormatProperties335012     operator VkFormatProperties3 const &() const VULKAN_HPP_NOEXCEPT
35013     {
35014       return *reinterpret_cast<const VkFormatProperties3*>( this );
35015     }
35016 
operator VkFormatProperties3&VULKAN_HPP_NAMESPACE::FormatProperties335017     operator VkFormatProperties3 &() VULKAN_HPP_NOEXCEPT
35018     {
35019       return *reinterpret_cast<VkFormatProperties3*>( this );
35020     }
35021 
35022 #if defined( VULKAN_HPP_USE_REFLECT )
35023 #if 14 <= VULKAN_HPP_CPP_VERSION
35024     auto
35025 #else
35026     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &>
35027 #endif
reflectVULKAN_HPP_NAMESPACE::FormatProperties335028       reflect() const VULKAN_HPP_NOEXCEPT
35029     {
35030       return std::tie( sType, pNext, linearTilingFeatures, optimalTilingFeatures, bufferFeatures );
35031     }
35032 #endif
35033 
35034 
35035 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35036 auto operator<=>( FormatProperties3 const & ) const = default;
35037 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties335038     bool operator==( FormatProperties3 const & rhs ) const VULKAN_HPP_NOEXCEPT
35039     {
35040 #if defined( VULKAN_HPP_USE_REFLECT )
35041       return this->reflect() == rhs.reflect();
35042 #else
35043       return ( sType == rhs.sType )
35044           && ( pNext == rhs.pNext )
35045           && ( linearTilingFeatures == rhs.linearTilingFeatures )
35046           && ( optimalTilingFeatures == rhs.optimalTilingFeatures )
35047           && ( bufferFeatures == rhs.bufferFeatures );
35048 #endif
35049     }
35050 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties335051     bool operator!=( FormatProperties3 const & rhs ) const VULKAN_HPP_NOEXCEPT
35052     {
35053       return !operator==( rhs );
35054     }
35055 #endif
35056 
35057     public:
35058     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties3;
35059     void * pNext = {};
35060     VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 linearTilingFeatures = {};
35061     VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 optimalTilingFeatures = {};
35062     VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 bufferFeatures = {};
35063 
35064   };
35065 
35066   template <>
35067   struct CppType<StructureType, StructureType::eFormatProperties3>
35068   {
35069     using Type = FormatProperties3;
35070   };
35071   using FormatProperties3KHR = FormatProperties3;
35072 
35073   struct FragmentShadingRateAttachmentInfoKHR
35074   {
35075     using NativeType = VkFragmentShadingRateAttachmentInfoKHR;
35076 
35077     static const bool allowDuplicate = false;
35078     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
35079 
35080 
35081 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FragmentShadingRateAttachmentInfoKHRVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35082 VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR(const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment_ = {}, VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
35083     : pNext( pNext_ ), pFragmentShadingRateAttachment( pFragmentShadingRateAttachment_ ), shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
35084     {}
35085 
35086     VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35087 
FragmentShadingRateAttachmentInfoKHRVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35088     FragmentShadingRateAttachmentInfoKHR( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
35089       : FragmentShadingRateAttachmentInfoKHR( *reinterpret_cast<FragmentShadingRateAttachmentInfoKHR const *>( &rhs ) )
35090     {}
35091 
35092 
35093     FragmentShadingRateAttachmentInfoKHR & operator=( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35094 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
35095 
operator =VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35096     FragmentShadingRateAttachmentInfoKHR & operator=( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
35097     {
35098       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR const *>( &rhs );
35099       return *this;
35100     }
35101 
35102 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35103     VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
35104     {
35105       pNext = pNext_;
35106       return *this;
35107     }
35108 
setPFragmentShadingRateAttachmentVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35109     VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR & setPFragmentShadingRateAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment_ ) VULKAN_HPP_NOEXCEPT
35110     {
35111       pFragmentShadingRateAttachment = pFragmentShadingRateAttachment_;
35112       return *this;
35113     }
35114 
setShadingRateAttachmentTexelSizeVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35115     VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR & setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
35116     {
35117       shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
35118       return *this;
35119     }
35120 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
35121 
35122 
operator VkFragmentShadingRateAttachmentInfoKHR const&VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35123     operator VkFragmentShadingRateAttachmentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
35124     {
35125       return *reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>( this );
35126     }
35127 
operator VkFragmentShadingRateAttachmentInfoKHR&VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35128     operator VkFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT
35129     {
35130       return *reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR*>( this );
35131     }
35132 
35133 #if defined( VULKAN_HPP_USE_REFLECT )
35134 #if 14 <= VULKAN_HPP_CPP_VERSION
35135     auto
35136 #else
35137     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
35138 #endif
reflectVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35139       reflect() const VULKAN_HPP_NOEXCEPT
35140     {
35141       return std::tie( sType, pNext, pFragmentShadingRateAttachment, shadingRateAttachmentTexelSize );
35142     }
35143 #endif
35144 
35145 
35146 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35147 auto operator<=>( FragmentShadingRateAttachmentInfoKHR const & ) const = default;
35148 #else
operator ==VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35149     bool operator==( FragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
35150     {
35151 #if defined( VULKAN_HPP_USE_REFLECT )
35152       return this->reflect() == rhs.reflect();
35153 #else
35154       return ( sType == rhs.sType )
35155           && ( pNext == rhs.pNext )
35156           && ( pFragmentShadingRateAttachment == rhs.pFragmentShadingRateAttachment )
35157           && ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize );
35158 #endif
35159     }
35160 
operator !=VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR35161     bool operator!=( FragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
35162     {
35163       return !operator==( rhs );
35164     }
35165 #endif
35166 
35167     public:
35168     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
35169     const void * pNext = {};
35170     const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment = {};
35171     VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {};
35172 
35173   };
35174 
35175   template <>
35176   struct CppType<StructureType, StructureType::eFragmentShadingRateAttachmentInfoKHR>
35177   {
35178     using Type = FragmentShadingRateAttachmentInfoKHR;
35179   };
35180 
35181   struct FrameBoundaryEXT
35182   {
35183     using NativeType = VkFrameBoundaryEXT;
35184 
35185     static const bool allowDuplicate = false;
35186     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFrameBoundaryEXT;
35187 
35188 
35189 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FrameBoundaryEXTVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35190 VULKAN_HPP_CONSTEXPR FrameBoundaryEXT(VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_ = {}, uint64_t frameID_ = {}, uint32_t imageCount_ = {}, const VULKAN_HPP_NAMESPACE::Image * pImages_ = {}, uint32_t bufferCount_ = {}, const VULKAN_HPP_NAMESPACE::Buffer * pBuffers_ = {}, uint64_t tagName_ = {}, size_t tagSize_ = {}, const void * pTag_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
35191     : pNext( pNext_ ), flags( flags_ ), frameID( frameID_ ), imageCount( imageCount_ ), pImages( pImages_ ), bufferCount( bufferCount_ ), pBuffers( pBuffers_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
35192     {}
35193 
35194     VULKAN_HPP_CONSTEXPR FrameBoundaryEXT( FrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35195 
FrameBoundaryEXTVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35196     FrameBoundaryEXT( VkFrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35197       : FrameBoundaryEXT( *reinterpret_cast<FrameBoundaryEXT const *>( &rhs ) )
35198     {}
35199 
35200 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
35201     template <typename T>
FrameBoundaryEXTVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35202     FrameBoundaryEXT( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_, uint64_t frameID_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Image> const & images_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers_ = {}, uint64_t tagName_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ = {}, const void * pNext_ = nullptr )
35203     : pNext( pNext_ ), flags( flags_ ), frameID( frameID_ ), imageCount( static_cast<uint32_t>( images_.size() ) ), pImages( images_.data() ), bufferCount( static_cast<uint32_t>( buffers_.size() ) ), pBuffers( buffers_.data() ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
35204     {}
35205 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35206 
35207 
35208     FrameBoundaryEXT & operator=( FrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35209 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
35210 
operator =VULKAN_HPP_NAMESPACE::FrameBoundaryEXT35211     FrameBoundaryEXT & operator=( VkFrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
35212     {
35213       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FrameBoundaryEXT const *>( &rhs );
35214       return *this;
35215     }
35216 
35217 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35218     VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
35219     {
35220       pNext = pNext_;
35221       return *this;
35222     }
35223 
setFlagsVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35224     VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setFlags( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
35225     {
35226       flags = flags_;
35227       return *this;
35228     }
35229 
setFrameIDVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35230     VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setFrameID( uint64_t frameID_ ) VULKAN_HPP_NOEXCEPT
35231     {
35232       frameID = frameID_;
35233       return *this;
35234     }
35235 
setImageCountVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35236     VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setImageCount( uint32_t imageCount_ ) VULKAN_HPP_NOEXCEPT
35237     {
35238       imageCount = imageCount_;
35239       return *this;
35240     }
35241 
setPImagesVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35242     VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPImages( const VULKAN_HPP_NAMESPACE::Image * pImages_ ) VULKAN_HPP_NOEXCEPT
35243     {
35244       pImages = pImages_;
35245       return *this;
35246     }
35247 
35248 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setImagesVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35249     FrameBoundaryEXT & setImages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Image> const & images_ ) VULKAN_HPP_NOEXCEPT
35250     {
35251       imageCount = static_cast<uint32_t>( images_.size() );
35252       pImages = images_.data();
35253       return *this;
35254     }
35255 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35256 
setBufferCountVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35257     VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setBufferCount( uint32_t bufferCount_ ) VULKAN_HPP_NOEXCEPT
35258     {
35259       bufferCount = bufferCount_;
35260       return *this;
35261     }
35262 
setPBuffersVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35263     VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPBuffers( const VULKAN_HPP_NAMESPACE::Buffer * pBuffers_ ) VULKAN_HPP_NOEXCEPT
35264     {
35265       pBuffers = pBuffers_;
35266       return *this;
35267     }
35268 
35269 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setBuffersVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35270     FrameBoundaryEXT & setBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers_ ) VULKAN_HPP_NOEXCEPT
35271     {
35272       bufferCount = static_cast<uint32_t>( buffers_.size() );
35273       pBuffers = buffers_.data();
35274       return *this;
35275     }
35276 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35277 
setTagNameVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35278     VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
35279     {
35280       tagName = tagName_;
35281       return *this;
35282     }
35283 
setTagSizeVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35284     VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
35285     {
35286       tagSize = tagSize_;
35287       return *this;
35288     }
35289 
setPTagVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35290     VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT
35291     {
35292       pTag = pTag_;
35293       return *this;
35294     }
35295 
35296 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
35297     template <typename T>
setTagVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35298     FrameBoundaryEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
35299     {
35300       tagSize = tag_.size() * sizeof(T);
35301       pTag = tag_.data();
35302       return *this;
35303     }
35304 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35305 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
35306 
35307 
operator VkFrameBoundaryEXT const&VULKAN_HPP_NAMESPACE::FrameBoundaryEXT35308     operator VkFrameBoundaryEXT const &() const VULKAN_HPP_NOEXCEPT
35309     {
35310       return *reinterpret_cast<const VkFrameBoundaryEXT*>( this );
35311     }
35312 
operator VkFrameBoundaryEXT&VULKAN_HPP_NAMESPACE::FrameBoundaryEXT35313     operator VkFrameBoundaryEXT &() VULKAN_HPP_NOEXCEPT
35314     {
35315       return *reinterpret_cast<VkFrameBoundaryEXT*>( this );
35316     }
35317 
35318 #if defined( VULKAN_HPP_USE_REFLECT )
35319 #if 14 <= VULKAN_HPP_CPP_VERSION
35320     auto
35321 #else
35322     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT const &, uint64_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Image * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Buffer * const &, uint64_t const &, size_t const &, const void * const &>
35323 #endif
reflectVULKAN_HPP_NAMESPACE::FrameBoundaryEXT35324       reflect() const VULKAN_HPP_NOEXCEPT
35325     {
35326       return std::tie( sType, pNext, flags, frameID, imageCount, pImages, bufferCount, pBuffers, tagName, tagSize, pTag );
35327     }
35328 #endif
35329 
35330 
35331 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35332 auto operator<=>( FrameBoundaryEXT const & ) const = default;
35333 #else
operator ==VULKAN_HPP_NAMESPACE::FrameBoundaryEXT35334     bool operator==( FrameBoundaryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
35335     {
35336 #if defined( VULKAN_HPP_USE_REFLECT )
35337       return this->reflect() == rhs.reflect();
35338 #else
35339       return ( sType == rhs.sType )
35340           && ( pNext == rhs.pNext )
35341           && ( flags == rhs.flags )
35342           && ( frameID == rhs.frameID )
35343           && ( imageCount == rhs.imageCount )
35344           && ( pImages == rhs.pImages )
35345           && ( bufferCount == rhs.bufferCount )
35346           && ( pBuffers == rhs.pBuffers )
35347           && ( tagName == rhs.tagName )
35348           && ( tagSize == rhs.tagSize )
35349           && ( pTag == rhs.pTag );
35350 #endif
35351     }
35352 
operator !=VULKAN_HPP_NAMESPACE::FrameBoundaryEXT35353     bool operator!=( FrameBoundaryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
35354     {
35355       return !operator==( rhs );
35356     }
35357 #endif
35358 
35359     public:
35360     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFrameBoundaryEXT;
35361     const void * pNext = {};
35362     VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags = {};
35363     uint64_t frameID = {};
35364     uint32_t imageCount = {};
35365     const VULKAN_HPP_NAMESPACE::Image * pImages = {};
35366     uint32_t bufferCount = {};
35367     const VULKAN_HPP_NAMESPACE::Buffer * pBuffers = {};
35368     uint64_t tagName = {};
35369     size_t tagSize = {};
35370     const void * pTag = {};
35371 
35372   };
35373 
35374   template <>
35375   struct CppType<StructureType, StructureType::eFrameBoundaryEXT>
35376   {
35377     using Type = FrameBoundaryEXT;
35378   };
35379 
35380   struct FramebufferAttachmentImageInfo
35381   {
35382     using NativeType = VkFramebufferAttachmentImageInfo;
35383 
35384     static const bool allowDuplicate = false;
35385     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo;
35386 
35387 
35388 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35389 VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo(VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layerCount_ = {}, uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
35390     : pNext( pNext_ ), flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ )
35391     {}
35392 
35393     VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35394 
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35395     FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35396       : FramebufferAttachmentImageInfo( *reinterpret_cast<FramebufferAttachmentImageInfo const *>( &rhs ) )
35397     {}
35398 
35399 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35400     FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_, uint32_t width_, uint32_t height_, uint32_t layerCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_, const void * pNext_ = nullptr )
35401     : pNext( pNext_ ), flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
35402     {}
35403 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35404 
35405 
35406     FramebufferAttachmentImageInfo & operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35407 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
35408 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35409     FramebufferAttachmentImageInfo & operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35410     {
35411       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const *>( &rhs );
35412       return *this;
35413     }
35414 
35415 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35416     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
35417     {
35418       pNext = pNext_;
35419       return *this;
35420     }
35421 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35422     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
35423     {
35424       flags = flags_;
35425       return *this;
35426     }
35427 
setUsageVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35428     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
35429     {
35430       usage = usage_;
35431       return *this;
35432     }
35433 
setWidthVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35434     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
35435     {
35436       width = width_;
35437       return *this;
35438     }
35439 
setHeightVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35440     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
35441     {
35442       height = height_;
35443       return *this;
35444     }
35445 
setLayerCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35446     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
35447     {
35448       layerCount = layerCount_;
35449       return *this;
35450     }
35451 
setViewFormatCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35452     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
35453     {
35454       viewFormatCount = viewFormatCount_;
35455       return *this;
35456     }
35457 
setPViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35458     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ ) VULKAN_HPP_NOEXCEPT
35459     {
35460       pViewFormats = pViewFormats_;
35461       return *this;
35462     }
35463 
35464 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35465     FramebufferAttachmentImageInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
35466     {
35467       viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
35468       pViewFormats = viewFormats_.data();
35469       return *this;
35470     }
35471 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35472 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
35473 
35474 
operator VkFramebufferAttachmentImageInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35475     operator VkFramebufferAttachmentImageInfo const &() const VULKAN_HPP_NOEXCEPT
35476     {
35477       return *reinterpret_cast<const VkFramebufferAttachmentImageInfo*>( this );
35478     }
35479 
operator VkFramebufferAttachmentImageInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35480     operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT
35481     {
35482       return *reinterpret_cast<VkFramebufferAttachmentImageInfo*>( this );
35483     }
35484 
35485 #if defined( VULKAN_HPP_USE_REFLECT )
35486 #if 14 <= VULKAN_HPP_CPP_VERSION
35487     auto
35488 #else
35489     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageCreateFlags const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Format * const &>
35490 #endif
reflectVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35491       reflect() const VULKAN_HPP_NOEXCEPT
35492     {
35493       return std::tie( sType, pNext, flags, usage, width, height, layerCount, viewFormatCount, pViewFormats );
35494     }
35495 #endif
35496 
35497 
35498 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35499 auto operator<=>( FramebufferAttachmentImageInfo const & ) const = default;
35500 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35501     bool operator==( FramebufferAttachmentImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
35502     {
35503 #if defined( VULKAN_HPP_USE_REFLECT )
35504       return this->reflect() == rhs.reflect();
35505 #else
35506       return ( sType == rhs.sType )
35507           && ( pNext == rhs.pNext )
35508           && ( flags == rhs.flags )
35509           && ( usage == rhs.usage )
35510           && ( width == rhs.width )
35511           && ( height == rhs.height )
35512           && ( layerCount == rhs.layerCount )
35513           && ( viewFormatCount == rhs.viewFormatCount )
35514           && ( pViewFormats == rhs.pViewFormats );
35515 #endif
35516     }
35517 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo35518     bool operator!=( FramebufferAttachmentImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
35519     {
35520       return !operator==( rhs );
35521     }
35522 #endif
35523 
35524     public:
35525     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo;
35526     const void * pNext = {};
35527     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
35528     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
35529     uint32_t width = {};
35530     uint32_t height = {};
35531     uint32_t layerCount = {};
35532     uint32_t viewFormatCount = {};
35533     const VULKAN_HPP_NAMESPACE::Format * pViewFormats = {};
35534 
35535   };
35536 
35537   template <>
35538   struct CppType<StructureType, StructureType::eFramebufferAttachmentImageInfo>
35539   {
35540     using Type = FramebufferAttachmentImageInfo;
35541   };
35542   using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
35543 
35544   struct FramebufferAttachmentsCreateInfo
35545   {
35546     using NativeType = VkFramebufferAttachmentsCreateInfo;
35547 
35548     static const bool allowDuplicate = false;
35549     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo;
35550 
35551 
35552 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35553 VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo(uint32_t attachmentImageInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
35554     : pNext( pNext_ ), attachmentImageInfoCount( attachmentImageInfoCount_ ), pAttachmentImageInfos( pAttachmentImageInfos_ )
35555     {}
35556 
35557     VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35558 
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35559     FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35560       : FramebufferAttachmentsCreateInfo( *reinterpret_cast<FramebufferAttachmentsCreateInfo const *>( &rhs ) )
35561     {}
35562 
35563 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35564     FramebufferAttachmentsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_, const void * pNext_ = nullptr )
35565     : pNext( pNext_ ), attachmentImageInfoCount( static_cast<uint32_t>( attachmentImageInfos_.size() ) ), pAttachmentImageInfos( attachmentImageInfos_.data() )
35566     {}
35567 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35568 
35569 
35570     FramebufferAttachmentsCreateInfo & operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35571 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
35572 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35573     FramebufferAttachmentsCreateInfo & operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35574     {
35575       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const *>( &rhs );
35576       return *this;
35577     }
35578 
35579 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35580     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
35581     {
35582       pNext = pNext_;
35583       return *this;
35584     }
35585 
setAttachmentImageInfoCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35586     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT
35587     {
35588       attachmentImageInfoCount = attachmentImageInfoCount_;
35589       return *this;
35590     }
35591 
setPAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35592     VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo & setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
35593     {
35594       pAttachmentImageInfos = pAttachmentImageInfos_;
35595       return *this;
35596     }
35597 
35598 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35599     FramebufferAttachmentsCreateInfo & setAttachmentImageInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
35600     {
35601       attachmentImageInfoCount = static_cast<uint32_t>( attachmentImageInfos_.size() );
35602       pAttachmentImageInfos = attachmentImageInfos_.data();
35603       return *this;
35604     }
35605 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35606 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
35607 
35608 
operator VkFramebufferAttachmentsCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35609     operator VkFramebufferAttachmentsCreateInfo const &() const VULKAN_HPP_NOEXCEPT
35610     {
35611       return *reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>( this );
35612     }
35613 
operator VkFramebufferAttachmentsCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35614     operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT
35615     {
35616       return *reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>( this );
35617     }
35618 
35619 #if defined( VULKAN_HPP_USE_REFLECT )
35620 #if 14 <= VULKAN_HPP_CPP_VERSION
35621     auto
35622 #else
35623     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * const &>
35624 #endif
reflectVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35625       reflect() const VULKAN_HPP_NOEXCEPT
35626     {
35627       return std::tie( sType, pNext, attachmentImageInfoCount, pAttachmentImageInfos );
35628     }
35629 #endif
35630 
35631 
35632 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35633 auto operator<=>( FramebufferAttachmentsCreateInfo const & ) const = default;
35634 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35635     bool operator==( FramebufferAttachmentsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
35636     {
35637 #if defined( VULKAN_HPP_USE_REFLECT )
35638       return this->reflect() == rhs.reflect();
35639 #else
35640       return ( sType == rhs.sType )
35641           && ( pNext == rhs.pNext )
35642           && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount )
35643           && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos );
35644 #endif
35645     }
35646 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo35647     bool operator!=( FramebufferAttachmentsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
35648     {
35649       return !operator==( rhs );
35650     }
35651 #endif
35652 
35653     public:
35654     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo;
35655     const void * pNext = {};
35656     uint32_t attachmentImageInfoCount = {};
35657     const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos = {};
35658 
35659   };
35660 
35661   template <>
35662   struct CppType<StructureType, StructureType::eFramebufferAttachmentsCreateInfo>
35663   {
35664     using Type = FramebufferAttachmentsCreateInfo;
35665   };
35666   using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
35667 
35668   struct FramebufferCreateInfo
35669   {
35670     using NativeType = VkFramebufferCreateInfo;
35671 
35672     static const bool allowDuplicate = false;
35673     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo;
35674 
35675 
35676 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35677 VULKAN_HPP_CONSTEXPR FramebufferCreateInfo(VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ = {}, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layers_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
35678     : pNext( pNext_ ), flags( flags_ ), renderPass( renderPass_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), width( width_ ), height( height_ ), layers( layers_ )
35679     {}
35680 
35681     VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35682 
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35683     FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35684       : FramebufferCreateInfo( *reinterpret_cast<FramebufferCreateInfo const *>( &rhs ) )
35685     {}
35686 
35687 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35688     FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_, VULKAN_HPP_NAMESPACE::RenderPass renderPass_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layers_ = {}, const void * pNext_ = nullptr )
35689     : pNext( pNext_ ), flags( flags_ ), renderPass( renderPass_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), width( width_ ), height( height_ ), layers( layers_ )
35690     {}
35691 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35692 
35693 
35694     FramebufferCreateInfo & operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35695 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
35696 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo35697     FramebufferCreateInfo & operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35698     {
35699       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const *>( &rhs );
35700       return *this;
35701     }
35702 
35703 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35704     VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
35705     {
35706       pNext = pNext_;
35707       return *this;
35708     }
35709 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35710     VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
35711     {
35712       flags = flags_;
35713       return *this;
35714     }
35715 
setRenderPassVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35716     VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
35717     {
35718       renderPass = renderPass_;
35719       return *this;
35720     }
35721 
setAttachmentCountVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35722     VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
35723     {
35724       attachmentCount = attachmentCount_;
35725       return *this;
35726     }
35727 
setPAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35728     VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ ) VULKAN_HPP_NOEXCEPT
35729     {
35730       pAttachments = pAttachments_;
35731       return *this;
35732     }
35733 
35734 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35735     FramebufferCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
35736     {
35737       attachmentCount = static_cast<uint32_t>( attachments_.size() );
35738       pAttachments = attachments_.data();
35739       return *this;
35740     }
35741 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35742 
setWidthVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35743     VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
35744     {
35745       width = width_;
35746       return *this;
35747     }
35748 
setHeightVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35749     VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
35750     {
35751       height = height_;
35752       return *this;
35753     }
35754 
setLayersVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35755     VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setLayers( uint32_t layers_ ) VULKAN_HPP_NOEXCEPT
35756     {
35757       layers = layers_;
35758       return *this;
35759     }
35760 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
35761 
35762 
operator VkFramebufferCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo35763     operator VkFramebufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
35764     {
35765       return *reinterpret_cast<const VkFramebufferCreateInfo*>( this );
35766     }
35767 
operator VkFramebufferCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo35768     operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT
35769     {
35770       return *reinterpret_cast<VkFramebufferCreateInfo*>( this );
35771     }
35772 
35773 #if defined( VULKAN_HPP_USE_REFLECT )
35774 #if 14 <= VULKAN_HPP_CPP_VERSION
35775     auto
35776 #else
35777     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::FramebufferCreateFlags const &, VULKAN_HPP_NAMESPACE::RenderPass const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageView * const &, uint32_t const &, uint32_t const &, uint32_t const &>
35778 #endif
reflectVULKAN_HPP_NAMESPACE::FramebufferCreateInfo35779       reflect() const VULKAN_HPP_NOEXCEPT
35780     {
35781       return std::tie( sType, pNext, flags, renderPass, attachmentCount, pAttachments, width, height, layers );
35782     }
35783 #endif
35784 
35785 
35786 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35787 auto operator<=>( FramebufferCreateInfo const & ) const = default;
35788 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferCreateInfo35789     bool operator==( FramebufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
35790     {
35791 #if defined( VULKAN_HPP_USE_REFLECT )
35792       return this->reflect() == rhs.reflect();
35793 #else
35794       return ( sType == rhs.sType )
35795           && ( pNext == rhs.pNext )
35796           && ( flags == rhs.flags )
35797           && ( renderPass == rhs.renderPass )
35798           && ( attachmentCount == rhs.attachmentCount )
35799           && ( pAttachments == rhs.pAttachments )
35800           && ( width == rhs.width )
35801           && ( height == rhs.height )
35802           && ( layers == rhs.layers );
35803 #endif
35804     }
35805 
operator !=VULKAN_HPP_NAMESPACE::FramebufferCreateInfo35806     bool operator!=( FramebufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
35807     {
35808       return !operator==( rhs );
35809     }
35810 #endif
35811 
35812     public:
35813     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo;
35814     const void * pNext = {};
35815     VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {};
35816     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
35817     uint32_t attachmentCount = {};
35818     const VULKAN_HPP_NAMESPACE::ImageView * pAttachments = {};
35819     uint32_t width = {};
35820     uint32_t height = {};
35821     uint32_t layers = {};
35822 
35823   };
35824 
35825   template <>
35826   struct CppType<StructureType, StructureType::eFramebufferCreateInfo>
35827   {
35828     using Type = FramebufferCreateInfo;
35829   };
35830 
35831   struct FramebufferMixedSamplesCombinationNV
35832   {
35833     using NativeType = VkFramebufferMixedSamplesCombinationNV;
35834 
35835     static const bool allowDuplicate = false;
35836     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferMixedSamplesCombinationNV;
35837 
35838 
35839 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV35840 VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV(VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
35841     : pNext( pNext_ ), coverageReductionMode( coverageReductionMode_ ), rasterizationSamples( rasterizationSamples_ ), depthStencilSamples( depthStencilSamples_ ), colorSamples( colorSamples_ )
35842     {}
35843 
35844     VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35845 
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV35846     FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
35847       : FramebufferMixedSamplesCombinationNV( *reinterpret_cast<FramebufferMixedSamplesCombinationNV const *>( &rhs ) )
35848     {}
35849 
35850 
35851     FramebufferMixedSamplesCombinationNV & operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35852 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
35853 
operator =VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV35854     FramebufferMixedSamplesCombinationNV & operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
35855     {
35856       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const *>( &rhs );
35857       return *this;
35858     }
35859 
35860 
operator VkFramebufferMixedSamplesCombinationNV const&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV35861     operator VkFramebufferMixedSamplesCombinationNV const &() const VULKAN_HPP_NOEXCEPT
35862     {
35863       return *reinterpret_cast<const VkFramebufferMixedSamplesCombinationNV*>( this );
35864     }
35865 
operator VkFramebufferMixedSamplesCombinationNV&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV35866     operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT
35867     {
35868       return *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( this );
35869     }
35870 
35871 #if defined( VULKAN_HPP_USE_REFLECT )
35872 #if 14 <= VULKAN_HPP_CPP_VERSION
35873     auto
35874 #else
35875     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::CoverageReductionModeNV const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &>
35876 #endif
reflectVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV35877       reflect() const VULKAN_HPP_NOEXCEPT
35878     {
35879       return std::tie( sType, pNext, coverageReductionMode, rasterizationSamples, depthStencilSamples, colorSamples );
35880     }
35881 #endif
35882 
35883 
35884 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35885 auto operator<=>( FramebufferMixedSamplesCombinationNV const & ) const = default;
35886 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV35887     bool operator==( FramebufferMixedSamplesCombinationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
35888     {
35889 #if defined( VULKAN_HPP_USE_REFLECT )
35890       return this->reflect() == rhs.reflect();
35891 #else
35892       return ( sType == rhs.sType )
35893           && ( pNext == rhs.pNext )
35894           && ( coverageReductionMode == rhs.coverageReductionMode )
35895           && ( rasterizationSamples == rhs.rasterizationSamples )
35896           && ( depthStencilSamples == rhs.depthStencilSamples )
35897           && ( colorSamples == rhs.colorSamples );
35898 #endif
35899     }
35900 
operator !=VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV35901     bool operator!=( FramebufferMixedSamplesCombinationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
35902     {
35903       return !operator==( rhs );
35904     }
35905 #endif
35906 
35907     public:
35908     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV;
35909     void * pNext = {};
35910     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
35911     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
35912     VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {};
35913     VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {};
35914 
35915   };
35916 
35917   template <>
35918   struct CppType<StructureType, StructureType::eFramebufferMixedSamplesCombinationNV>
35919   {
35920     using Type = FramebufferMixedSamplesCombinationNV;
35921   };
35922 
35923   struct IndirectCommandsStreamNV
35924   {
35925     using NativeType = VkIndirectCommandsStreamNV;
35926 
35927 
35928 
35929 
35930 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV35931 VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT
35932     : buffer( buffer_ ), offset( offset_ )
35933     {}
35934 
35935     VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35936 
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV35937     IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
35938       : IndirectCommandsStreamNV( *reinterpret_cast<IndirectCommandsStreamNV const *>( &rhs ) )
35939     {}
35940 
35941 
35942     IndirectCommandsStreamNV & operator=( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35943 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
35944 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV35945     IndirectCommandsStreamNV & operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
35946     {
35947       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const *>( &rhs );
35948       return *this;
35949     }
35950 
35951 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setBufferVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV35952     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
35953     {
35954       buffer = buffer_;
35955       return *this;
35956     }
35957 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV35958     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
35959     {
35960       offset = offset_;
35961       return *this;
35962     }
35963 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
35964 
35965 
operator VkIndirectCommandsStreamNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV35966     operator VkIndirectCommandsStreamNV const &() const VULKAN_HPP_NOEXCEPT
35967     {
35968       return *reinterpret_cast<const VkIndirectCommandsStreamNV*>( this );
35969     }
35970 
operator VkIndirectCommandsStreamNV&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV35971     operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT
35972     {
35973       return *reinterpret_cast<VkIndirectCommandsStreamNV*>( this );
35974     }
35975 
35976 #if defined( VULKAN_HPP_USE_REFLECT )
35977 #if 14 <= VULKAN_HPP_CPP_VERSION
35978     auto
35979 #else
35980     std::tuple<VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
35981 #endif
reflectVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV35982       reflect() const VULKAN_HPP_NOEXCEPT
35983     {
35984       return std::tie( buffer, offset );
35985     }
35986 #endif
35987 
35988 
35989 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35990 auto operator<=>( IndirectCommandsStreamNV const & ) const = default;
35991 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV35992     bool operator==( IndirectCommandsStreamNV const & rhs ) const VULKAN_HPP_NOEXCEPT
35993     {
35994 #if defined( VULKAN_HPP_USE_REFLECT )
35995       return this->reflect() == rhs.reflect();
35996 #else
35997       return ( buffer == rhs.buffer )
35998           && ( offset == rhs.offset );
35999 #endif
36000     }
36001 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV36002     bool operator!=( IndirectCommandsStreamNV const & rhs ) const VULKAN_HPP_NOEXCEPT
36003     {
36004       return !operator==( rhs );
36005     }
36006 #endif
36007 
36008     public:
36009     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
36010     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
36011 
36012   };
36013 
36014   struct GeneratedCommandsInfoNV
36015   {
36016     using NativeType = VkGeneratedCommandsInfoNV;
36017 
36018     static const bool allowDuplicate = false;
36019     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV;
36020 
36021 
36022 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36023 VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {}, uint32_t streamCount_ = {}, const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams_ = {}, uint32_t sequencesCount_ = {}, VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
36024     : pNext( pNext_ ), pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), streamCount( streamCount_ ), pStreams( pStreams_ ), sequencesCount( sequencesCount_ ), preprocessBuffer( preprocessBuffer_ ), preprocessOffset( preprocessOffset_ ), preprocessSize( preprocessSize_ ), sequencesCountBuffer( sequencesCountBuffer_ ), sequencesCountOffset( sequencesCountOffset_ ), sequencesIndexBuffer( sequencesIndexBuffer_ ), sequencesIndexOffset( sequencesIndexOffset_ )
36025     {}
36026 
36027     VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36028 
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36029     GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
36030       : GeneratedCommandsInfoNV( *reinterpret_cast<GeneratedCommandsInfoNV const *>( &rhs ) )
36031     {}
36032 
36033 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36034     GeneratedCommandsInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::Pipeline pipeline_, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_, uint32_t sequencesCount_ = {}, VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {}, const void * pNext_ = nullptr )
36035     : pNext( pNext_ ), pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), streamCount( static_cast<uint32_t>( streams_.size() ) ), pStreams( streams_.data() ), sequencesCount( sequencesCount_ ), preprocessBuffer( preprocessBuffer_ ), preprocessOffset( preprocessOffset_ ), preprocessSize( preprocessSize_ ), sequencesCountBuffer( sequencesCountBuffer_ ), sequencesCountOffset( sequencesCountOffset_ ), sequencesIndexBuffer( sequencesIndexBuffer_ ), sequencesIndexOffset( sequencesIndexOffset_ )
36036     {}
36037 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
36038 
36039 
36040     GeneratedCommandsInfoNV & operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36041 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
36042 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36043     GeneratedCommandsInfoNV & operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
36044     {
36045       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV const *>( &rhs );
36046       return *this;
36047     }
36048 
36049 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36050     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
36051     {
36052       pNext = pNext_;
36053       return *this;
36054     }
36055 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36056     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
36057     {
36058       pipelineBindPoint = pipelineBindPoint_;
36059       return *this;
36060     }
36061 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36062     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
36063     {
36064       pipeline = pipeline_;
36065       return *this;
36066     }
36067 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36068     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
36069     {
36070       indirectCommandsLayout = indirectCommandsLayout_;
36071       return *this;
36072     }
36073 
setStreamCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36074     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
36075     {
36076       streamCount = streamCount_;
36077       return *this;
36078     }
36079 
setPStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36080     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams_ ) VULKAN_HPP_NOEXCEPT
36081     {
36082       pStreams = pStreams_;
36083       return *this;
36084     }
36085 
36086 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36087     GeneratedCommandsInfoNV & setStreams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_ ) VULKAN_HPP_NOEXCEPT
36088     {
36089       streamCount = static_cast<uint32_t>( streams_.size() );
36090       pStreams = streams_.data();
36091       return *this;
36092     }
36093 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
36094 
setSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36095     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT
36096     {
36097       sequencesCount = sequencesCount_;
36098       return *this;
36099     }
36100 
setPreprocessBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36101     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT
36102     {
36103       preprocessBuffer = preprocessBuffer_;
36104       return *this;
36105     }
36106 
setPreprocessOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36107     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT
36108     {
36109       preprocessOffset = preprocessOffset_;
36110       return *this;
36111     }
36112 
setPreprocessSizeVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36113     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT
36114     {
36115       preprocessSize = preprocessSize_;
36116       return *this;
36117     }
36118 
setSequencesCountBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36119     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT
36120     {
36121       sequencesCountBuffer = sequencesCountBuffer_;
36122       return *this;
36123     }
36124 
setSequencesCountOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36125     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT
36126     {
36127       sequencesCountOffset = sequencesCountOffset_;
36128       return *this;
36129     }
36130 
setSequencesIndexBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36131     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT
36132     {
36133       sequencesIndexBuffer = sequencesIndexBuffer_;
36134       return *this;
36135     }
36136 
setSequencesIndexOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36137     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT
36138     {
36139       sequencesIndexOffset = sequencesIndexOffset_;
36140       return *this;
36141     }
36142 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
36143 
36144 
operator VkGeneratedCommandsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36145     operator VkGeneratedCommandsInfoNV const &() const VULKAN_HPP_NOEXCEPT
36146     {
36147       return *reinterpret_cast<const VkGeneratedCommandsInfoNV*>( this );
36148     }
36149 
operator VkGeneratedCommandsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36150     operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT
36151     {
36152       return *reinterpret_cast<VkGeneratedCommandsInfoNV*>( this );
36153     }
36154 
36155 #if defined( VULKAN_HPP_USE_REFLECT )
36156 #if 14 <= VULKAN_HPP_CPP_VERSION
36157     auto
36158 #else
36159     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineBindPoint const &, VULKAN_HPP_NAMESPACE::Pipeline const &, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
36160 #endif
reflectVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36161       reflect() const VULKAN_HPP_NOEXCEPT
36162     {
36163       return std::tie( sType, pNext, pipelineBindPoint, pipeline, indirectCommandsLayout, streamCount, pStreams, sequencesCount, preprocessBuffer, preprocessOffset, preprocessSize, sequencesCountBuffer, sequencesCountOffset, sequencesIndexBuffer, sequencesIndexOffset );
36164     }
36165 #endif
36166 
36167 
36168 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36169 auto operator<=>( GeneratedCommandsInfoNV const & ) const = default;
36170 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36171     bool operator==( GeneratedCommandsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
36172     {
36173 #if defined( VULKAN_HPP_USE_REFLECT )
36174       return this->reflect() == rhs.reflect();
36175 #else
36176       return ( sType == rhs.sType )
36177           && ( pNext == rhs.pNext )
36178           && ( pipelineBindPoint == rhs.pipelineBindPoint )
36179           && ( pipeline == rhs.pipeline )
36180           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
36181           && ( streamCount == rhs.streamCount )
36182           && ( pStreams == rhs.pStreams )
36183           && ( sequencesCount == rhs.sequencesCount )
36184           && ( preprocessBuffer == rhs.preprocessBuffer )
36185           && ( preprocessOffset == rhs.preprocessOffset )
36186           && ( preprocessSize == rhs.preprocessSize )
36187           && ( sequencesCountBuffer == rhs.sequencesCountBuffer )
36188           && ( sequencesCountOffset == rhs.sequencesCountOffset )
36189           && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer )
36190           && ( sequencesIndexOffset == rhs.sequencesIndexOffset );
36191 #endif
36192     }
36193 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV36194     bool operator!=( GeneratedCommandsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
36195     {
36196       return !operator==( rhs );
36197     }
36198 #endif
36199 
36200     public:
36201     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV;
36202     const void * pNext = {};
36203     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
36204     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
36205     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
36206     uint32_t streamCount = {};
36207     const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams = {};
36208     uint32_t sequencesCount = {};
36209     VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {};
36210     VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {};
36211     VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {};
36212     VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {};
36213     VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {};
36214     VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {};
36215     VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {};
36216 
36217   };
36218 
36219   template <>
36220   struct CppType<StructureType, StructureType::eGeneratedCommandsInfoNV>
36221   {
36222     using Type = GeneratedCommandsInfoNV;
36223   };
36224 
36225   struct GeneratedCommandsMemoryRequirementsInfoNV
36226   {
36227     using NativeType = VkGeneratedCommandsMemoryRequirementsInfoNV;
36228 
36229     static const bool allowDuplicate = false;
36230     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
36231 
36232 
36233 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36234 VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {}, uint32_t maxSequencesCount_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
36235     : pNext( pNext_ ), pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), maxSequencesCount( maxSequencesCount_ )
36236     {}
36237 
36238     VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36239 
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36240     GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
36241       : GeneratedCommandsMemoryRequirementsInfoNV( *reinterpret_cast<GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs ) )
36242     {}
36243 
36244 
36245     GeneratedCommandsMemoryRequirementsInfoNV & operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36246 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
36247 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36248     GeneratedCommandsMemoryRequirementsInfoNV & operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
36249     {
36250       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs );
36251       return *this;
36252     }
36253 
36254 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36255     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
36256     {
36257       pNext = pNext_;
36258       return *this;
36259     }
36260 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36261     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
36262     {
36263       pipelineBindPoint = pipelineBindPoint_;
36264       return *this;
36265     }
36266 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36267     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
36268     {
36269       pipeline = pipeline_;
36270       return *this;
36271     }
36272 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36273     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
36274     {
36275       indirectCommandsLayout = indirectCommandsLayout_;
36276       return *this;
36277     }
36278 
setMaxSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36279     VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT
36280     {
36281       maxSequencesCount = maxSequencesCount_;
36282       return *this;
36283     }
36284 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
36285 
36286 
operator VkGeneratedCommandsMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36287     operator VkGeneratedCommandsMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT
36288     {
36289       return *reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
36290     }
36291 
operator VkGeneratedCommandsMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36292     operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
36293     {
36294       return *reinterpret_cast<VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
36295     }
36296 
36297 #if defined( VULKAN_HPP_USE_REFLECT )
36298 #if 14 <= VULKAN_HPP_CPP_VERSION
36299     auto
36300 #else
36301     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineBindPoint const &, VULKAN_HPP_NAMESPACE::Pipeline const &, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const &, uint32_t const &>
36302 #endif
reflectVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36303       reflect() const VULKAN_HPP_NOEXCEPT
36304     {
36305       return std::tie( sType, pNext, pipelineBindPoint, pipeline, indirectCommandsLayout, maxSequencesCount );
36306     }
36307 #endif
36308 
36309 
36310 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36311 auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const & ) const = default;
36312 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36313     bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
36314     {
36315 #if defined( VULKAN_HPP_USE_REFLECT )
36316       return this->reflect() == rhs.reflect();
36317 #else
36318       return ( sType == rhs.sType )
36319           && ( pNext == rhs.pNext )
36320           && ( pipelineBindPoint == rhs.pipelineBindPoint )
36321           && ( pipeline == rhs.pipeline )
36322           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
36323           && ( maxSequencesCount == rhs.maxSequencesCount );
36324 #endif
36325     }
36326 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV36327     bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
36328     {
36329       return !operator==( rhs );
36330     }
36331 #endif
36332 
36333     public:
36334     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
36335     const void * pNext = {};
36336     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
36337     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
36338     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
36339     uint32_t maxSequencesCount = {};
36340 
36341   };
36342 
36343   template <>
36344   struct CppType<StructureType, StructureType::eGeneratedCommandsMemoryRequirementsInfoNV>
36345   {
36346     using Type = GeneratedCommandsMemoryRequirementsInfoNV;
36347   };
36348 
36349   struct LatencyTimingsFrameReportNV
36350   {
36351     using NativeType = VkLatencyTimingsFrameReportNV;
36352 
36353     static const bool allowDuplicate = false;
36354     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencyTimingsFrameReportNV;
36355 
36356 
36357 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
LatencyTimingsFrameReportNVVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36358 VULKAN_HPP_CONSTEXPR LatencyTimingsFrameReportNV(uint64_t presentID_ = {}, uint64_t inputSampleTimeUs_ = {}, uint64_t simStartTimeUs_ = {}, uint64_t simEndTimeUs_ = {}, uint64_t renderSubmitStartTimeUs_ = {}, uint64_t renderSubmitEndTimeUs_ = {}, uint64_t presentStartTimeUs_ = {}, uint64_t presentEndTimeUs_ = {}, uint64_t driverStartTimeUs_ = {}, uint64_t driverEndTimeUs_ = {}, uint64_t osRenderQueueStartTimeUs_ = {}, uint64_t osRenderQueueEndTimeUs_ = {}, uint64_t gpuRenderStartTimeUs_ = {}, uint64_t gpuRenderEndTimeUs_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
36359     : pNext( pNext_ ), presentID( presentID_ ), inputSampleTimeUs( inputSampleTimeUs_ ), simStartTimeUs( simStartTimeUs_ ), simEndTimeUs( simEndTimeUs_ ), renderSubmitStartTimeUs( renderSubmitStartTimeUs_ ), renderSubmitEndTimeUs( renderSubmitEndTimeUs_ ), presentStartTimeUs( presentStartTimeUs_ ), presentEndTimeUs( presentEndTimeUs_ ), driverStartTimeUs( driverStartTimeUs_ ), driverEndTimeUs( driverEndTimeUs_ ), osRenderQueueStartTimeUs( osRenderQueueStartTimeUs_ ), osRenderQueueEndTimeUs( osRenderQueueEndTimeUs_ ), gpuRenderStartTimeUs( gpuRenderStartTimeUs_ ), gpuRenderEndTimeUs( gpuRenderEndTimeUs_ )
36360     {}
36361 
36362     VULKAN_HPP_CONSTEXPR LatencyTimingsFrameReportNV( LatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36363 
LatencyTimingsFrameReportNVVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36364     LatencyTimingsFrameReportNV( VkLatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT
36365       : LatencyTimingsFrameReportNV( *reinterpret_cast<LatencyTimingsFrameReportNV const *>( &rhs ) )
36366     {}
36367 
36368 
36369     LatencyTimingsFrameReportNV & operator=( LatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36370 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
36371 
operator =VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36372     LatencyTimingsFrameReportNV & operator=( VkLatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT
36373     {
36374       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV const *>( &rhs );
36375       return *this;
36376     }
36377 
36378 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36379     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
36380     {
36381       pNext = pNext_;
36382       return *this;
36383     }
36384 
setPresentIDVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36385     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT
36386     {
36387       presentID = presentID_;
36388       return *this;
36389     }
36390 
setInputSampleTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36391     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setInputSampleTimeUs( uint64_t inputSampleTimeUs_ ) VULKAN_HPP_NOEXCEPT
36392     {
36393       inputSampleTimeUs = inputSampleTimeUs_;
36394       return *this;
36395     }
36396 
setSimStartTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36397     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setSimStartTimeUs( uint64_t simStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
36398     {
36399       simStartTimeUs = simStartTimeUs_;
36400       return *this;
36401     }
36402 
setSimEndTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36403     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setSimEndTimeUs( uint64_t simEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
36404     {
36405       simEndTimeUs = simEndTimeUs_;
36406       return *this;
36407     }
36408 
setRenderSubmitStartTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36409     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setRenderSubmitStartTimeUs( uint64_t renderSubmitStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
36410     {
36411       renderSubmitStartTimeUs = renderSubmitStartTimeUs_;
36412       return *this;
36413     }
36414 
setRenderSubmitEndTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36415     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setRenderSubmitEndTimeUs( uint64_t renderSubmitEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
36416     {
36417       renderSubmitEndTimeUs = renderSubmitEndTimeUs_;
36418       return *this;
36419     }
36420 
setPresentStartTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36421     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentStartTimeUs( uint64_t presentStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
36422     {
36423       presentStartTimeUs = presentStartTimeUs_;
36424       return *this;
36425     }
36426 
setPresentEndTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36427     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentEndTimeUs( uint64_t presentEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
36428     {
36429       presentEndTimeUs = presentEndTimeUs_;
36430       return *this;
36431     }
36432 
setDriverStartTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36433     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setDriverStartTimeUs( uint64_t driverStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
36434     {
36435       driverStartTimeUs = driverStartTimeUs_;
36436       return *this;
36437     }
36438 
setDriverEndTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36439     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setDriverEndTimeUs( uint64_t driverEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
36440     {
36441       driverEndTimeUs = driverEndTimeUs_;
36442       return *this;
36443     }
36444 
setOsRenderQueueStartTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36445     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setOsRenderQueueStartTimeUs( uint64_t osRenderQueueStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
36446     {
36447       osRenderQueueStartTimeUs = osRenderQueueStartTimeUs_;
36448       return *this;
36449     }
36450 
setOsRenderQueueEndTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36451     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setOsRenderQueueEndTimeUs( uint64_t osRenderQueueEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
36452     {
36453       osRenderQueueEndTimeUs = osRenderQueueEndTimeUs_;
36454       return *this;
36455     }
36456 
setGpuRenderStartTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36457     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setGpuRenderStartTimeUs( uint64_t gpuRenderStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
36458     {
36459       gpuRenderStartTimeUs = gpuRenderStartTimeUs_;
36460       return *this;
36461     }
36462 
setGpuRenderEndTimeUsVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36463     VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setGpuRenderEndTimeUs( uint64_t gpuRenderEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
36464     {
36465       gpuRenderEndTimeUs = gpuRenderEndTimeUs_;
36466       return *this;
36467     }
36468 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
36469 
36470 
operator VkLatencyTimingsFrameReportNV const&VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36471     operator VkLatencyTimingsFrameReportNV const &() const VULKAN_HPP_NOEXCEPT
36472     {
36473       return *reinterpret_cast<const VkLatencyTimingsFrameReportNV*>( this );
36474     }
36475 
operator VkLatencyTimingsFrameReportNV&VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36476     operator VkLatencyTimingsFrameReportNV &() VULKAN_HPP_NOEXCEPT
36477     {
36478       return *reinterpret_cast<VkLatencyTimingsFrameReportNV*>( this );
36479     }
36480 
36481 #if defined( VULKAN_HPP_USE_REFLECT )
36482 #if 14 <= VULKAN_HPP_CPP_VERSION
36483     auto
36484 #else
36485     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &>
36486 #endif
reflectVULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36487       reflect() const VULKAN_HPP_NOEXCEPT
36488     {
36489       return std::tie( sType, pNext, presentID, inputSampleTimeUs, simStartTimeUs, simEndTimeUs, renderSubmitStartTimeUs, renderSubmitEndTimeUs, presentStartTimeUs, presentEndTimeUs, driverStartTimeUs, driverEndTimeUs, osRenderQueueStartTimeUs, osRenderQueueEndTimeUs, gpuRenderStartTimeUs, gpuRenderEndTimeUs );
36490     }
36491 #endif
36492 
36493 
36494 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36495 auto operator<=>( LatencyTimingsFrameReportNV const & ) const = default;
36496 #else
operator ==VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36497     bool operator==( LatencyTimingsFrameReportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
36498     {
36499 #if defined( VULKAN_HPP_USE_REFLECT )
36500       return this->reflect() == rhs.reflect();
36501 #else
36502       return ( sType == rhs.sType )
36503           && ( pNext == rhs.pNext )
36504           && ( presentID == rhs.presentID )
36505           && ( inputSampleTimeUs == rhs.inputSampleTimeUs )
36506           && ( simStartTimeUs == rhs.simStartTimeUs )
36507           && ( simEndTimeUs == rhs.simEndTimeUs )
36508           && ( renderSubmitStartTimeUs == rhs.renderSubmitStartTimeUs )
36509           && ( renderSubmitEndTimeUs == rhs.renderSubmitEndTimeUs )
36510           && ( presentStartTimeUs == rhs.presentStartTimeUs )
36511           && ( presentEndTimeUs == rhs.presentEndTimeUs )
36512           && ( driverStartTimeUs == rhs.driverStartTimeUs )
36513           && ( driverEndTimeUs == rhs.driverEndTimeUs )
36514           && ( osRenderQueueStartTimeUs == rhs.osRenderQueueStartTimeUs )
36515           && ( osRenderQueueEndTimeUs == rhs.osRenderQueueEndTimeUs )
36516           && ( gpuRenderStartTimeUs == rhs.gpuRenderStartTimeUs )
36517           && ( gpuRenderEndTimeUs == rhs.gpuRenderEndTimeUs );
36518 #endif
36519     }
36520 
operator !=VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV36521     bool operator!=( LatencyTimingsFrameReportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
36522     {
36523       return !operator==( rhs );
36524     }
36525 #endif
36526 
36527     public:
36528     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencyTimingsFrameReportNV;
36529     const void * pNext = {};
36530     uint64_t presentID = {};
36531     uint64_t inputSampleTimeUs = {};
36532     uint64_t simStartTimeUs = {};
36533     uint64_t simEndTimeUs = {};
36534     uint64_t renderSubmitStartTimeUs = {};
36535     uint64_t renderSubmitEndTimeUs = {};
36536     uint64_t presentStartTimeUs = {};
36537     uint64_t presentEndTimeUs = {};
36538     uint64_t driverStartTimeUs = {};
36539     uint64_t driverEndTimeUs = {};
36540     uint64_t osRenderQueueStartTimeUs = {};
36541     uint64_t osRenderQueueEndTimeUs = {};
36542     uint64_t gpuRenderStartTimeUs = {};
36543     uint64_t gpuRenderEndTimeUs = {};
36544 
36545   };
36546 
36547   template <>
36548   struct CppType<StructureType, StructureType::eLatencyTimingsFrameReportNV>
36549   {
36550     using Type = LatencyTimingsFrameReportNV;
36551   };
36552 
36553   struct GetLatencyMarkerInfoNV
36554   {
36555     using NativeType = VkGetLatencyMarkerInfoNV;
36556 
36557     static const bool allowDuplicate = false;
36558     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGetLatencyMarkerInfoNV;
36559 
36560 
36561 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GetLatencyMarkerInfoNVVULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV36562 VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV(VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
36563     : pNext( pNext_ ), pTimings( pTimings_ )
36564     {}
36565 
36566     VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36567 
GetLatencyMarkerInfoNVVULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV36568     GetLatencyMarkerInfoNV( VkGetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
36569       : GetLatencyMarkerInfoNV( *reinterpret_cast<GetLatencyMarkerInfoNV const *>( &rhs ) )
36570     {}
36571 
36572 
36573     GetLatencyMarkerInfoNV & operator=( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36574 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
36575 
operator =VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV36576     GetLatencyMarkerInfoNV & operator=( VkGetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
36577     {
36578       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV const *>( &rhs );
36579       return *this;
36580     }
36581 
36582 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV36583     VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
36584     {
36585       pNext = pNext_;
36586       return *this;
36587     }
36588 
setPTimingsVULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV36589     VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPTimings( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ ) VULKAN_HPP_NOEXCEPT
36590     {
36591       pTimings = pTimings_;
36592       return *this;
36593     }
36594 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
36595 
36596 
operator VkGetLatencyMarkerInfoNV const&VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV36597     operator VkGetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT
36598     {
36599       return *reinterpret_cast<const VkGetLatencyMarkerInfoNV*>( this );
36600     }
36601 
operator VkGetLatencyMarkerInfoNV&VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV36602     operator VkGetLatencyMarkerInfoNV &() VULKAN_HPP_NOEXCEPT
36603     {
36604       return *reinterpret_cast<VkGetLatencyMarkerInfoNV*>( this );
36605     }
36606 
36607 #if defined( VULKAN_HPP_USE_REFLECT )
36608 #if 14 <= VULKAN_HPP_CPP_VERSION
36609     auto
36610 #else
36611     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * const &>
36612 #endif
reflectVULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV36613       reflect() const VULKAN_HPP_NOEXCEPT
36614     {
36615       return std::tie( sType, pNext, pTimings );
36616     }
36617 #endif
36618 
36619 
36620 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36621 auto operator<=>( GetLatencyMarkerInfoNV const & ) const = default;
36622 #else
operator ==VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV36623     bool operator==( GetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
36624     {
36625 #if defined( VULKAN_HPP_USE_REFLECT )
36626       return this->reflect() == rhs.reflect();
36627 #else
36628       return ( sType == rhs.sType )
36629           && ( pNext == rhs.pNext )
36630           && ( pTimings == rhs.pTimings );
36631 #endif
36632     }
36633 
operator !=VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV36634     bool operator!=( GetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
36635     {
36636       return !operator==( rhs );
36637     }
36638 #endif
36639 
36640     public:
36641     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGetLatencyMarkerInfoNV;
36642     const void * pNext = {};
36643     VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings = {};
36644 
36645   };
36646 
36647   template <>
36648   struct CppType<StructureType, StructureType::eGetLatencyMarkerInfoNV>
36649   {
36650     using Type = GetLatencyMarkerInfoNV;
36651   };
36652 
36653   struct VertexInputBindingDescription
36654   {
36655     using NativeType = VkVertexInputBindingDescription;
36656 
36657 
36658 
36659 
36660 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36661 VULKAN_HPP_CONSTEXPR VertexInputBindingDescription(uint32_t binding_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex) VULKAN_HPP_NOEXCEPT
36662     : binding( binding_ ), stride( stride_ ), inputRate( inputRate_ )
36663     {}
36664 
36665     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36666 
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36667     VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36668       : VertexInputBindingDescription( *reinterpret_cast<VertexInputBindingDescription const *>( &rhs ) )
36669     {}
36670 
36671 
36672     VertexInputBindingDescription & operator=( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36673 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
36674 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36675     VertexInputBindingDescription & operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36676     {
36677       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const *>( &rhs );
36678       return *this;
36679     }
36680 
36681 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36682     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
36683     {
36684       binding = binding_;
36685       return *this;
36686     }
36687 
setStrideVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36688     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
36689     {
36690       stride = stride_;
36691       return *this;
36692     }
36693 
setInputRateVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36694     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
36695     {
36696       inputRate = inputRate_;
36697       return *this;
36698     }
36699 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
36700 
36701 
operator VkVertexInputBindingDescription const&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36702     operator VkVertexInputBindingDescription const &() const VULKAN_HPP_NOEXCEPT
36703     {
36704       return *reinterpret_cast<const VkVertexInputBindingDescription*>( this );
36705     }
36706 
operator VkVertexInputBindingDescription&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36707     operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT
36708     {
36709       return *reinterpret_cast<VkVertexInputBindingDescription*>( this );
36710     }
36711 
36712 #if defined( VULKAN_HPP_USE_REFLECT )
36713 #if 14 <= VULKAN_HPP_CPP_VERSION
36714     auto
36715 #else
36716     std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::VertexInputRate const &>
36717 #endif
reflectVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36718       reflect() const VULKAN_HPP_NOEXCEPT
36719     {
36720       return std::tie( binding, stride, inputRate );
36721     }
36722 #endif
36723 
36724 
36725 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36726 auto operator<=>( VertexInputBindingDescription const & ) const = default;
36727 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36728     bool operator==( VertexInputBindingDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
36729     {
36730 #if defined( VULKAN_HPP_USE_REFLECT )
36731       return this->reflect() == rhs.reflect();
36732 #else
36733       return ( binding == rhs.binding )
36734           && ( stride == rhs.stride )
36735           && ( inputRate == rhs.inputRate );
36736 #endif
36737     }
36738 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36739     bool operator!=( VertexInputBindingDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
36740     {
36741       return !operator==( rhs );
36742     }
36743 #endif
36744 
36745     public:
36746     uint32_t binding = {};
36747     uint32_t stride = {};
36748     VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
36749 
36750   };
36751 
36752   struct VertexInputAttributeDescription
36753   {
36754     using NativeType = VkVertexInputAttributeDescription;
36755 
36756 
36757 
36758 
36759 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36760 VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription(uint32_t location_ = {}, uint32_t binding_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint32_t offset_ = {}) VULKAN_HPP_NOEXCEPT
36761     : location( location_ ), binding( binding_ ), format( format_ ), offset( offset_ )
36762     {}
36763 
36764     VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36765 
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36766     VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36767       : VertexInputAttributeDescription( *reinterpret_cast<VertexInputAttributeDescription const *>( &rhs ) )
36768     {}
36769 
36770 
36771     VertexInputAttributeDescription & operator=( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36772 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
36773 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36774     VertexInputAttributeDescription & operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36775     {
36776       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription const *>( &rhs );
36777       return *this;
36778     }
36779 
36780 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setLocationVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36781     VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
36782     {
36783       location = location_;
36784       return *this;
36785     }
36786 
setBindingVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36787     VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
36788     {
36789       binding = binding_;
36790       return *this;
36791     }
36792 
setFormatVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36793     VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
36794     {
36795       format = format_;
36796       return *this;
36797     }
36798 
setOffsetVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36799     VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
36800     {
36801       offset = offset_;
36802       return *this;
36803     }
36804 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
36805 
36806 
operator VkVertexInputAttributeDescription const&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36807     operator VkVertexInputAttributeDescription const &() const VULKAN_HPP_NOEXCEPT
36808     {
36809       return *reinterpret_cast<const VkVertexInputAttributeDescription*>( this );
36810     }
36811 
operator VkVertexInputAttributeDescription&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36812     operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT
36813     {
36814       return *reinterpret_cast<VkVertexInputAttributeDescription*>( this );
36815     }
36816 
36817 #if defined( VULKAN_HPP_USE_REFLECT )
36818 #if 14 <= VULKAN_HPP_CPP_VERSION
36819     auto
36820 #else
36821     std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Format const &, uint32_t const &>
36822 #endif
reflectVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36823       reflect() const VULKAN_HPP_NOEXCEPT
36824     {
36825       return std::tie( location, binding, format, offset );
36826     }
36827 #endif
36828 
36829 
36830 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36831 auto operator<=>( VertexInputAttributeDescription const & ) const = default;
36832 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36833     bool operator==( VertexInputAttributeDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
36834     {
36835 #if defined( VULKAN_HPP_USE_REFLECT )
36836       return this->reflect() == rhs.reflect();
36837 #else
36838       return ( location == rhs.location )
36839           && ( binding == rhs.binding )
36840           && ( format == rhs.format )
36841           && ( offset == rhs.offset );
36842 #endif
36843     }
36844 
operator !=VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36845     bool operator!=( VertexInputAttributeDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
36846     {
36847       return !operator==( rhs );
36848     }
36849 #endif
36850 
36851     public:
36852     uint32_t location = {};
36853     uint32_t binding = {};
36854     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
36855     uint32_t offset = {};
36856 
36857   };
36858 
36859   struct PipelineVertexInputStateCreateInfo
36860   {
36861     using NativeType = VkPipelineVertexInputStateCreateInfo;
36862 
36863     static const bool allowDuplicate = false;
36864     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputStateCreateInfo;
36865 
36866 
36867 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36868 VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ = {}, uint32_t vertexBindingDescriptionCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions_ = {}, uint32_t vertexAttributeDescriptionCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
36869     : pNext( pNext_ ), flags( flags_ ), vertexBindingDescriptionCount( vertexBindingDescriptionCount_ ), pVertexBindingDescriptions( pVertexBindingDescriptions_ ), vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ ), pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
36870     {}
36871 
36872     VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36873 
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36874     PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36875       : PipelineVertexInputStateCreateInfo( *reinterpret_cast<PipelineVertexInputStateCreateInfo const *>( &rhs ) )
36876     {}
36877 
36878 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36879     PipelineVertexInputStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ = {}, const void * pNext_ = nullptr )
36880     : pNext( pNext_ ), flags( flags_ ), vertexBindingDescriptionCount( static_cast<uint32_t>( vertexBindingDescriptions_.size() ) ), pVertexBindingDescriptions( vertexBindingDescriptions_.data() ), vertexAttributeDescriptionCount( static_cast<uint32_t>( vertexAttributeDescriptions_.size() ) ), pVertexAttributeDescriptions( vertexAttributeDescriptions_.data() )
36881     {}
36882 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
36883 
36884 
36885     PipelineVertexInputStateCreateInfo & operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36886 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
36887 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36888     PipelineVertexInputStateCreateInfo & operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36889     {
36890       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const *>( &rhs );
36891       return *this;
36892     }
36893 
36894 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36895     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
36896     {
36897       pNext = pNext_;
36898       return *this;
36899     }
36900 
setFlagsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36901     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36902     {
36903       flags = flags_;
36904       return *this;
36905     }
36906 
setVertexBindingDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36907     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
36908     {
36909       vertexBindingDescriptionCount = vertexBindingDescriptionCount_;
36910       return *this;
36911     }
36912 
setPVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36913     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
36914     {
36915       pVertexBindingDescriptions = pVertexBindingDescriptions_;
36916       return *this;
36917     }
36918 
36919 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36920     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
36921     {
36922       vertexBindingDescriptionCount = static_cast<uint32_t>( vertexBindingDescriptions_.size() );
36923       pVertexBindingDescriptions = vertexBindingDescriptions_.data();
36924       return *this;
36925     }
36926 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
36927 
setVertexAttributeDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36928     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
36929     {
36930       vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
36931       return *this;
36932     }
36933 
setPVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36934     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
36935     {
36936       pVertexAttributeDescriptions = pVertexAttributeDescriptions_;
36937       return *this;
36938     }
36939 
36940 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36941     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
36942     {
36943       vertexAttributeDescriptionCount = static_cast<uint32_t>( vertexAttributeDescriptions_.size() );
36944       pVertexAttributeDescriptions = vertexAttributeDescriptions_.data();
36945       return *this;
36946     }
36947 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
36948 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
36949 
36950 
operator VkPipelineVertexInputStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36951     operator VkPipelineVertexInputStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
36952     {
36953       return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo*>( this );
36954     }
36955 
operator VkPipelineVertexInputStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36956     operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36957     {
36958       return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>( this );
36959     }
36960 
36961 #if defined( VULKAN_HPP_USE_REFLECT )
36962 #if 14 <= VULKAN_HPP_CPP_VERSION
36963     auto
36964 #else
36965     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * const &>
36966 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36967       reflect() const VULKAN_HPP_NOEXCEPT
36968     {
36969       return std::tie( sType, pNext, flags, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions );
36970     }
36971 #endif
36972 
36973 
36974 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36975 auto operator<=>( PipelineVertexInputStateCreateInfo const & ) const = default;
36976 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36977     bool operator==( PipelineVertexInputStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
36978     {
36979 #if defined( VULKAN_HPP_USE_REFLECT )
36980       return this->reflect() == rhs.reflect();
36981 #else
36982       return ( sType == rhs.sType )
36983           && ( pNext == rhs.pNext )
36984           && ( flags == rhs.flags )
36985           && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount )
36986           && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions )
36987           && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount )
36988           && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions );
36989 #endif
36990     }
36991 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36992     bool operator!=( PipelineVertexInputStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
36993     {
36994       return !operator==( rhs );
36995     }
36996 #endif
36997 
36998     public:
36999     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo;
37000     const void * pNext = {};
37001     VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {};
37002     uint32_t vertexBindingDescriptionCount = {};
37003     const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions = {};
37004     uint32_t vertexAttributeDescriptionCount = {};
37005     const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions = {};
37006 
37007   };
37008 
37009   template <>
37010   struct CppType<StructureType, StructureType::ePipelineVertexInputStateCreateInfo>
37011   {
37012     using Type = PipelineVertexInputStateCreateInfo;
37013   };
37014 
37015   struct PipelineInputAssemblyStateCreateInfo
37016   {
37017     using NativeType = VkPipelineInputAssemblyStateCreateInfo;
37018 
37019     static const bool allowDuplicate = false;
37020     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInputAssemblyStateCreateInfo;
37021 
37022 
37023 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37024 VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList, VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
37025     : pNext( pNext_ ), flags( flags_ ), topology( topology_ ), primitiveRestartEnable( primitiveRestartEnable_ )
37026     {}
37027 
37028     VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37029 
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37030     PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37031       : PipelineInputAssemblyStateCreateInfo( *reinterpret_cast<PipelineInputAssemblyStateCreateInfo const *>( &rhs ) )
37032     {}
37033 
37034 
37035     PipelineInputAssemblyStateCreateInfo & operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37036 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
37037 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37038     PipelineInputAssemblyStateCreateInfo & operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37039     {
37040       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const *>( &rhs );
37041       return *this;
37042     }
37043 
37044 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37045     VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
37046     {
37047       pNext = pNext_;
37048       return *this;
37049     }
37050 
setFlagsVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37051     VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37052     {
37053       flags = flags_;
37054       return *this;
37055     }
37056 
setTopologyVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37057     VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT
37058     {
37059       topology = topology_;
37060       return *this;
37061     }
37062 
setPrimitiveRestartEnableVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37063     VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT
37064     {
37065       primitiveRestartEnable = primitiveRestartEnable_;
37066       return *this;
37067     }
37068 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
37069 
37070 
operator VkPipelineInputAssemblyStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37071     operator VkPipelineInputAssemblyStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
37072     {
37073       return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo*>( this );
37074     }
37075 
operator VkPipelineInputAssemblyStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37076     operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37077     {
37078       return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>( this );
37079     }
37080 
37081 #if defined( VULKAN_HPP_USE_REFLECT )
37082 #if 14 <= VULKAN_HPP_CPP_VERSION
37083     auto
37084 #else
37085     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags const &, VULKAN_HPP_NAMESPACE::PrimitiveTopology const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
37086 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37087       reflect() const VULKAN_HPP_NOEXCEPT
37088     {
37089       return std::tie( sType, pNext, flags, topology, primitiveRestartEnable );
37090     }
37091 #endif
37092 
37093 
37094 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37095 auto operator<=>( PipelineInputAssemblyStateCreateInfo const & ) const = default;
37096 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37097     bool operator==( PipelineInputAssemblyStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37098     {
37099 #if defined( VULKAN_HPP_USE_REFLECT )
37100       return this->reflect() == rhs.reflect();
37101 #else
37102       return ( sType == rhs.sType )
37103           && ( pNext == rhs.pNext )
37104           && ( flags == rhs.flags )
37105           && ( topology == rhs.topology )
37106           && ( primitiveRestartEnable == rhs.primitiveRestartEnable );
37107 #endif
37108     }
37109 
operator !=VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo37110     bool operator!=( PipelineInputAssemblyStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37111     {
37112       return !operator==( rhs );
37113     }
37114 #endif
37115 
37116     public:
37117     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo;
37118     const void * pNext = {};
37119     VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {};
37120     VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList;
37121     VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {};
37122 
37123   };
37124 
37125   template <>
37126   struct CppType<StructureType, StructureType::ePipelineInputAssemblyStateCreateInfo>
37127   {
37128     using Type = PipelineInputAssemblyStateCreateInfo;
37129   };
37130 
37131   struct PipelineTessellationStateCreateInfo
37132   {
37133     using NativeType = VkPipelineTessellationStateCreateInfo;
37134 
37135     static const bool allowDuplicate = false;
37136     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationStateCreateInfo;
37137 
37138 
37139 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37140 VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {}, uint32_t patchControlPoints_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
37141     : pNext( pNext_ ), flags( flags_ ), patchControlPoints( patchControlPoints_ )
37142     {}
37143 
37144     VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37145 
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37146     PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37147       : PipelineTessellationStateCreateInfo( *reinterpret_cast<PipelineTessellationStateCreateInfo const *>( &rhs ) )
37148     {}
37149 
37150 
37151     PipelineTessellationStateCreateInfo & operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37152 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
37153 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37154     PipelineTessellationStateCreateInfo & operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37155     {
37156       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const *>( &rhs );
37157       return *this;
37158     }
37159 
37160 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37161     VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
37162     {
37163       pNext = pNext_;
37164       return *this;
37165     }
37166 
setFlagsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37167     VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37168     {
37169       flags = flags_;
37170       return *this;
37171     }
37172 
setPatchControlPointsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37173     VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ ) VULKAN_HPP_NOEXCEPT
37174     {
37175       patchControlPoints = patchControlPoints_;
37176       return *this;
37177     }
37178 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
37179 
37180 
operator VkPipelineTessellationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37181     operator VkPipelineTessellationStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
37182     {
37183       return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo*>( this );
37184     }
37185 
operator VkPipelineTessellationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37186     operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37187     {
37188       return *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>( this );
37189     }
37190 
37191 #if defined( VULKAN_HPP_USE_REFLECT )
37192 #if 14 <= VULKAN_HPP_CPP_VERSION
37193     auto
37194 #else
37195     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags const &, uint32_t const &>
37196 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37197       reflect() const VULKAN_HPP_NOEXCEPT
37198     {
37199       return std::tie( sType, pNext, flags, patchControlPoints );
37200     }
37201 #endif
37202 
37203 
37204 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37205 auto operator<=>( PipelineTessellationStateCreateInfo const & ) const = default;
37206 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37207     bool operator==( PipelineTessellationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37208     {
37209 #if defined( VULKAN_HPP_USE_REFLECT )
37210       return this->reflect() == rhs.reflect();
37211 #else
37212       return ( sType == rhs.sType )
37213           && ( pNext == rhs.pNext )
37214           && ( flags == rhs.flags )
37215           && ( patchControlPoints == rhs.patchControlPoints );
37216 #endif
37217     }
37218 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo37219     bool operator!=( PipelineTessellationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37220     {
37221       return !operator==( rhs );
37222     }
37223 #endif
37224 
37225     public:
37226     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo;
37227     const void * pNext = {};
37228     VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {};
37229     uint32_t patchControlPoints = {};
37230 
37231   };
37232 
37233   template <>
37234   struct CppType<StructureType, StructureType::ePipelineTessellationStateCreateInfo>
37235   {
37236     using Type = PipelineTessellationStateCreateInfo;
37237   };
37238 
37239   struct PipelineViewportStateCreateInfo
37240   {
37241     using NativeType = VkPipelineViewportStateCreateInfo;
37242 
37243     static const bool allowDuplicate = false;
37244     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo;
37245 
37246 
37247 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37248 VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::Viewport * pViewports_ = {}, uint32_t scissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D * pScissors_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
37249     : pNext( pNext_ ), flags( flags_ ), viewportCount( viewportCount_ ), pViewports( pViewports_ ), scissorCount( scissorCount_ ), pScissors( pScissors_ )
37250     {}
37251 
37252     VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37253 
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37254     PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37255       : PipelineViewportStateCreateInfo( *reinterpret_cast<PipelineViewportStateCreateInfo const *>( &rhs ) )
37256     {}
37257 
37258 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37259     PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ = {}, const void * pNext_ = nullptr )
37260     : pNext( pNext_ ), flags( flags_ ), viewportCount( static_cast<uint32_t>( viewports_.size() ) ), pViewports( viewports_.data() ), scissorCount( static_cast<uint32_t>( scissors_.size() ) ), pScissors( scissors_.data() )
37261     {}
37262 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
37263 
37264 
37265     PipelineViewportStateCreateInfo & operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37266 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
37267 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37268     PipelineViewportStateCreateInfo & operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37269     {
37270       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const *>( &rhs );
37271       return *this;
37272     }
37273 
37274 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37275     VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
37276     {
37277       pNext = pNext_;
37278       return *this;
37279     }
37280 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37281     VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37282     {
37283       flags = flags_;
37284       return *this;
37285     }
37286 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37287     VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
37288     {
37289       viewportCount = viewportCount_;
37290       return *this;
37291     }
37292 
setPViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37293     VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport * pViewports_ ) VULKAN_HPP_NOEXCEPT
37294     {
37295       pViewports = pViewports_;
37296       return *this;
37297     }
37298 
37299 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37300     PipelineViewportStateCreateInfo & setViewports( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_ ) VULKAN_HPP_NOEXCEPT
37301     {
37302       viewportCount = static_cast<uint32_t>( viewports_.size() );
37303       pViewports = viewports_.data();
37304       return *this;
37305     }
37306 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
37307 
setScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37308     VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT
37309     {
37310       scissorCount = scissorCount_;
37311       return *this;
37312     }
37313 
setPScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37314     VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D * pScissors_ ) VULKAN_HPP_NOEXCEPT
37315     {
37316       pScissors = pScissors_;
37317       return *this;
37318     }
37319 
37320 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37321     PipelineViewportStateCreateInfo & setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ ) VULKAN_HPP_NOEXCEPT
37322     {
37323       scissorCount = static_cast<uint32_t>( scissors_.size() );
37324       pScissors = scissors_.data();
37325       return *this;
37326     }
37327 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
37328 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
37329 
37330 
operator VkPipelineViewportStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37331     operator VkPipelineViewportStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
37332     {
37333       return *reinterpret_cast<const VkPipelineViewportStateCreateInfo*>( this );
37334     }
37335 
operator VkPipelineViewportStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37336     operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37337     {
37338       return *reinterpret_cast<VkPipelineViewportStateCreateInfo*>( this );
37339     }
37340 
37341 #if defined( VULKAN_HPP_USE_REFLECT )
37342 #if 14 <= VULKAN_HPP_CPP_VERSION
37343     auto
37344 #else
37345     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Viewport * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
37346 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37347       reflect() const VULKAN_HPP_NOEXCEPT
37348     {
37349       return std::tie( sType, pNext, flags, viewportCount, pViewports, scissorCount, pScissors );
37350     }
37351 #endif
37352 
37353 
37354 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37355 auto operator<=>( PipelineViewportStateCreateInfo const & ) const = default;
37356 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37357     bool operator==( PipelineViewportStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37358     {
37359 #if defined( VULKAN_HPP_USE_REFLECT )
37360       return this->reflect() == rhs.reflect();
37361 #else
37362       return ( sType == rhs.sType )
37363           && ( pNext == rhs.pNext )
37364           && ( flags == rhs.flags )
37365           && ( viewportCount == rhs.viewportCount )
37366           && ( pViewports == rhs.pViewports )
37367           && ( scissorCount == rhs.scissorCount )
37368           && ( pScissors == rhs.pScissors );
37369 #endif
37370     }
37371 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37372     bool operator!=( PipelineViewportStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37373     {
37374       return !operator==( rhs );
37375     }
37376 #endif
37377 
37378     public:
37379     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo;
37380     const void * pNext = {};
37381     VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {};
37382     uint32_t viewportCount = {};
37383     const VULKAN_HPP_NAMESPACE::Viewport * pViewports = {};
37384     uint32_t scissorCount = {};
37385     const VULKAN_HPP_NAMESPACE::Rect2D * pScissors = {};
37386 
37387   };
37388 
37389   template <>
37390   struct CppType<StructureType, StructureType::ePipelineViewportStateCreateInfo>
37391   {
37392     using Type = PipelineViewportStateCreateInfo;
37393   };
37394 
37395   struct PipelineRasterizationStateCreateInfo
37396   {
37397     using NativeType = VkPipelineRasterizationStateCreateInfo;
37398 
37399     static const bool allowDuplicate = false;
37400     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateCreateInfo;
37401 
37402 
37403 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37404 VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ = {}, VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ = VULKAN_HPP_NAMESPACE::PolygonMode::eFill, VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ = {}, VULKAN_HPP_NAMESPACE::FrontFace frontFace_ = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise, VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ = {}, float depthBiasConstantFactor_ = {}, float depthBiasClamp_ = {}, float depthBiasSlopeFactor_ = {}, float lineWidth_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
37405     : pNext( pNext_ ), flags( flags_ ), depthClampEnable( depthClampEnable_ ), rasterizerDiscardEnable( rasterizerDiscardEnable_ ), polygonMode( polygonMode_ ), cullMode( cullMode_ ), frontFace( frontFace_ ), depthBiasEnable( depthBiasEnable_ ), depthBiasConstantFactor( depthBiasConstantFactor_ ), depthBiasClamp( depthBiasClamp_ ), depthBiasSlopeFactor( depthBiasSlopeFactor_ ), lineWidth( lineWidth_ )
37406     {}
37407 
37408     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37409 
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37410     PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37411       : PipelineRasterizationStateCreateInfo( *reinterpret_cast<PipelineRasterizationStateCreateInfo const *>( &rhs ) )
37412     {}
37413 
37414 
37415     PipelineRasterizationStateCreateInfo & operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37416 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
37417 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37418     PipelineRasterizationStateCreateInfo & operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37419     {
37420       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const *>( &rhs );
37421       return *this;
37422     }
37423 
37424 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37425     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
37426     {
37427       pNext = pNext_;
37428       return *this;
37429     }
37430 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37431     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37432     {
37433       flags = flags_;
37434       return *this;
37435     }
37436 
setDepthClampEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37437     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT
37438     {
37439       depthClampEnable = depthClampEnable_;
37440       return *this;
37441     }
37442 
setRasterizerDiscardEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37443     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT
37444     {
37445       rasterizerDiscardEnable = rasterizerDiscardEnable_;
37446       return *this;
37447     }
37448 
setPolygonModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37449     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT
37450     {
37451       polygonMode = polygonMode_;
37452       return *this;
37453     }
37454 
setCullModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37455     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT
37456     {
37457       cullMode = cullMode_;
37458       return *this;
37459     }
37460 
setFrontFaceVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37461     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT
37462     {
37463       frontFace = frontFace_;
37464       return *this;
37465     }
37466 
setDepthBiasEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37467     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT
37468     {
37469       depthBiasEnable = depthBiasEnable_;
37470       return *this;
37471     }
37472 
setDepthBiasConstantFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37473     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
37474     {
37475       depthBiasConstantFactor = depthBiasConstantFactor_;
37476       return *this;
37477     }
37478 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37479     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
37480     {
37481       depthBiasClamp = depthBiasClamp_;
37482       return *this;
37483     }
37484 
setDepthBiasSlopeFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37485     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
37486     {
37487       depthBiasSlopeFactor = depthBiasSlopeFactor_;
37488       return *this;
37489     }
37490 
setLineWidthVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37491     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ ) VULKAN_HPP_NOEXCEPT
37492     {
37493       lineWidth = lineWidth_;
37494       return *this;
37495     }
37496 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
37497 
37498 
operator VkPipelineRasterizationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37499     operator VkPipelineRasterizationStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
37500     {
37501       return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo*>( this );
37502     }
37503 
operator VkPipelineRasterizationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37504     operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37505     {
37506       return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>( this );
37507     }
37508 
37509 #if defined( VULKAN_HPP_USE_REFLECT )
37510 #if 14 <= VULKAN_HPP_CPP_VERSION
37511     auto
37512 #else
37513     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::PolygonMode const &, VULKAN_HPP_NAMESPACE::CullModeFlags const &, VULKAN_HPP_NAMESPACE::FrontFace const &, VULKAN_HPP_NAMESPACE::Bool32 const &, float const &, float const &, float const &, float const &>
37514 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37515       reflect() const VULKAN_HPP_NOEXCEPT
37516     {
37517       return std::tie( sType, pNext, flags, depthClampEnable, rasterizerDiscardEnable, polygonMode, cullMode, frontFace, depthBiasEnable, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor, lineWidth );
37518     }
37519 #endif
37520 
37521 
37522 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37523 auto operator<=>( PipelineRasterizationStateCreateInfo const & ) const = default;
37524 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37525     bool operator==( PipelineRasterizationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37526     {
37527 #if defined( VULKAN_HPP_USE_REFLECT )
37528       return this->reflect() == rhs.reflect();
37529 #else
37530       return ( sType == rhs.sType )
37531           && ( pNext == rhs.pNext )
37532           && ( flags == rhs.flags )
37533           && ( depthClampEnable == rhs.depthClampEnable )
37534           && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable )
37535           && ( polygonMode == rhs.polygonMode )
37536           && ( cullMode == rhs.cullMode )
37537           && ( frontFace == rhs.frontFace )
37538           && ( depthBiasEnable == rhs.depthBiasEnable )
37539           && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor )
37540           && ( depthBiasClamp == rhs.depthBiasClamp )
37541           && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor )
37542           && ( lineWidth == rhs.lineWidth );
37543 #endif
37544     }
37545 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37546     bool operator!=( PipelineRasterizationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37547     {
37548       return !operator==( rhs );
37549     }
37550 #endif
37551 
37552     public:
37553     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo;
37554     const void * pNext = {};
37555     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {};
37556     VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {};
37557     VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {};
37558     VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill;
37559     VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {};
37560     VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise;
37561     VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {};
37562     float depthBiasConstantFactor = {};
37563     float depthBiasClamp = {};
37564     float depthBiasSlopeFactor = {};
37565     float lineWidth = {};
37566 
37567   };
37568 
37569   template <>
37570   struct CppType<StructureType, StructureType::ePipelineRasterizationStateCreateInfo>
37571   {
37572     using Type = PipelineRasterizationStateCreateInfo;
37573   };
37574 
37575   struct PipelineMultisampleStateCreateInfo
37576   {
37577     using NativeType = VkPipelineMultisampleStateCreateInfo;
37578 
37579     static const bool allowDuplicate = false;
37580     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineMultisampleStateCreateInfo;
37581 
37582 
37583 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37584 VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ = {}, float minSampleShading_ = {}, const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
37585     : pNext( pNext_ ), flags( flags_ ), rasterizationSamples( rasterizationSamples_ ), sampleShadingEnable( sampleShadingEnable_ ), minSampleShading( minSampleShading_ ), pSampleMask( pSampleMask_ ), alphaToCoverageEnable( alphaToCoverageEnable_ ), alphaToOneEnable( alphaToOneEnable_ )
37586     {}
37587 
37588     VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37589 
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37590     PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37591       : PipelineMultisampleStateCreateInfo( *reinterpret_cast<PipelineMultisampleStateCreateInfo const *>( &rhs ) )
37592     {}
37593 
37594 
37595     PipelineMultisampleStateCreateInfo & operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37596 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
37597 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37598     PipelineMultisampleStateCreateInfo & operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37599     {
37600       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const *>( &rhs );
37601       return *this;
37602     }
37603 
37604 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37605     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
37606     {
37607       pNext = pNext_;
37608       return *this;
37609     }
37610 
setFlagsVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37611     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37612     {
37613       flags = flags_;
37614       return *this;
37615     }
37616 
setRasterizationSamplesVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37617     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
37618     {
37619       rasterizationSamples = rasterizationSamples_;
37620       return *this;
37621     }
37622 
setSampleShadingEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37623     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT
37624     {
37625       sampleShadingEnable = sampleShadingEnable_;
37626       return *this;
37627     }
37628 
setMinSampleShadingVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37629     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ ) VULKAN_HPP_NOEXCEPT
37630     {
37631       minSampleShading = minSampleShading_;
37632       return *this;
37633     }
37634 
setPSampleMaskVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37635     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask_ ) VULKAN_HPP_NOEXCEPT
37636     {
37637       pSampleMask = pSampleMask_;
37638       return *this;
37639     }
37640 
setAlphaToCoverageEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37641     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
37642     {
37643       alphaToCoverageEnable = alphaToCoverageEnable_;
37644       return *this;
37645     }
37646 
setAlphaToOneEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37647     VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
37648     {
37649       alphaToOneEnable = alphaToOneEnable_;
37650       return *this;
37651     }
37652 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
37653 
37654 
operator VkPipelineMultisampleStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37655     operator VkPipelineMultisampleStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
37656     {
37657       return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo*>( this );
37658     }
37659 
operator VkPipelineMultisampleStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37660     operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37661     {
37662       return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>( this );
37663     }
37664 
37665 #if defined( VULKAN_HPP_USE_REFLECT )
37666 #if 14 <= VULKAN_HPP_CPP_VERSION
37667     auto
37668 #else
37669     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &, VULKAN_HPP_NAMESPACE::Bool32 const &, float const &, const VULKAN_HPP_NAMESPACE::SampleMask * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
37670 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37671       reflect() const VULKAN_HPP_NOEXCEPT
37672     {
37673       return std::tie( sType, pNext, flags, rasterizationSamples, sampleShadingEnable, minSampleShading, pSampleMask, alphaToCoverageEnable, alphaToOneEnable );
37674     }
37675 #endif
37676 
37677 
37678 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37679 auto operator<=>( PipelineMultisampleStateCreateInfo const & ) const = default;
37680 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37681     bool operator==( PipelineMultisampleStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37682     {
37683 #if defined( VULKAN_HPP_USE_REFLECT )
37684       return this->reflect() == rhs.reflect();
37685 #else
37686       return ( sType == rhs.sType )
37687           && ( pNext == rhs.pNext )
37688           && ( flags == rhs.flags )
37689           && ( rasterizationSamples == rhs.rasterizationSamples )
37690           && ( sampleShadingEnable == rhs.sampleShadingEnable )
37691           && ( minSampleShading == rhs.minSampleShading )
37692           && ( pSampleMask == rhs.pSampleMask )
37693           && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable )
37694           && ( alphaToOneEnable == rhs.alphaToOneEnable );
37695 #endif
37696     }
37697 
operator !=VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37698     bool operator!=( PipelineMultisampleStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37699     {
37700       return !operator==( rhs );
37701     }
37702 #endif
37703 
37704     public:
37705     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo;
37706     const void * pNext = {};
37707     VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {};
37708     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
37709     VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {};
37710     float minSampleShading = {};
37711     const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask = {};
37712     VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {};
37713     VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {};
37714 
37715   };
37716 
37717   template <>
37718   struct CppType<StructureType, StructureType::ePipelineMultisampleStateCreateInfo>
37719   {
37720     using Type = PipelineMultisampleStateCreateInfo;
37721   };
37722 
37723   struct StencilOpState
37724   {
37725     using NativeType = VkStencilOpState;
37726 
37727 
37728 
37729 
37730 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState37731 VULKAN_HPP_CONSTEXPR StencilOpState(VULKAN_HPP_NAMESPACE::StencilOp failOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::StencilOp passOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, uint32_t compareMask_ = {}, uint32_t writeMask_ = {}, uint32_t reference_ = {}) VULKAN_HPP_NOEXCEPT
37732     : failOp( failOp_ ), passOp( passOp_ ), depthFailOp( depthFailOp_ ), compareOp( compareOp_ ), compareMask( compareMask_ ), writeMask( writeMask_ ), reference( reference_ )
37733     {}
37734 
37735     VULKAN_HPP_CONSTEXPR StencilOpState( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37736 
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState37737     StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37738       : StencilOpState( *reinterpret_cast<StencilOpState const *>( &rhs ) )
37739     {}
37740 
37741 
37742     StencilOpState & operator=( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37743 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
37744 
operator =VULKAN_HPP_NAMESPACE::StencilOpState37745     StencilOpState & operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37746     {
37747       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StencilOpState const *>( &rhs );
37748       return *this;
37749     }
37750 
37751 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setFailOpVULKAN_HPP_NAMESPACE::StencilOpState37752     VULKAN_HPP_CONSTEXPR_14 StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT
37753     {
37754       failOp = failOp_;
37755       return *this;
37756     }
37757 
setPassOpVULKAN_HPP_NAMESPACE::StencilOpState37758     VULKAN_HPP_CONSTEXPR_14 StencilOpState & setPassOp( VULKAN_HPP_NAMESPACE::StencilOp passOp_ ) VULKAN_HPP_NOEXCEPT
37759     {
37760       passOp = passOp_;
37761       return *this;
37762     }
37763 
setDepthFailOpVULKAN_HPP_NAMESPACE::StencilOpState37764     VULKAN_HPP_CONSTEXPR_14 StencilOpState & setDepthFailOp( VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ ) VULKAN_HPP_NOEXCEPT
37765     {
37766       depthFailOp = depthFailOp_;
37767       return *this;
37768     }
37769 
setCompareOpVULKAN_HPP_NAMESPACE::StencilOpState37770     VULKAN_HPP_CONSTEXPR_14 StencilOpState & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
37771     {
37772       compareOp = compareOp_;
37773       return *this;
37774     }
37775 
setCompareMaskVULKAN_HPP_NAMESPACE::StencilOpState37776     VULKAN_HPP_CONSTEXPR_14 StencilOpState & setCompareMask( uint32_t compareMask_ ) VULKAN_HPP_NOEXCEPT
37777     {
37778       compareMask = compareMask_;
37779       return *this;
37780     }
37781 
setWriteMaskVULKAN_HPP_NAMESPACE::StencilOpState37782     VULKAN_HPP_CONSTEXPR_14 StencilOpState & setWriteMask( uint32_t writeMask_ ) VULKAN_HPP_NOEXCEPT
37783     {
37784       writeMask = writeMask_;
37785       return *this;
37786     }
37787 
setReferenceVULKAN_HPP_NAMESPACE::StencilOpState37788     VULKAN_HPP_CONSTEXPR_14 StencilOpState & setReference( uint32_t reference_ ) VULKAN_HPP_NOEXCEPT
37789     {
37790       reference = reference_;
37791       return *this;
37792     }
37793 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
37794 
37795 
operator VkStencilOpState const&VULKAN_HPP_NAMESPACE::StencilOpState37796     operator VkStencilOpState const &() const VULKAN_HPP_NOEXCEPT
37797     {
37798       return *reinterpret_cast<const VkStencilOpState*>( this );
37799     }
37800 
operator VkStencilOpState&VULKAN_HPP_NAMESPACE::StencilOpState37801     operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT
37802     {
37803       return *reinterpret_cast<VkStencilOpState*>( this );
37804     }
37805 
37806 #if defined( VULKAN_HPP_USE_REFLECT )
37807 #if 14 <= VULKAN_HPP_CPP_VERSION
37808     auto
37809 #else
37810     std::tuple<VULKAN_HPP_NAMESPACE::StencilOp const &, VULKAN_HPP_NAMESPACE::StencilOp const &, VULKAN_HPP_NAMESPACE::StencilOp const &, VULKAN_HPP_NAMESPACE::CompareOp const &, uint32_t const &, uint32_t const &, uint32_t const &>
37811 #endif
reflectVULKAN_HPP_NAMESPACE::StencilOpState37812       reflect() const VULKAN_HPP_NOEXCEPT
37813     {
37814       return std::tie( failOp, passOp, depthFailOp, compareOp, compareMask, writeMask, reference );
37815     }
37816 #endif
37817 
37818 
37819 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37820 auto operator<=>( StencilOpState const & ) const = default;
37821 #else
operator ==VULKAN_HPP_NAMESPACE::StencilOpState37822     bool operator==( StencilOpState const & rhs ) const VULKAN_HPP_NOEXCEPT
37823     {
37824 #if defined( VULKAN_HPP_USE_REFLECT )
37825       return this->reflect() == rhs.reflect();
37826 #else
37827       return ( failOp == rhs.failOp )
37828           && ( passOp == rhs.passOp )
37829           && ( depthFailOp == rhs.depthFailOp )
37830           && ( compareOp == rhs.compareOp )
37831           && ( compareMask == rhs.compareMask )
37832           && ( writeMask == rhs.writeMask )
37833           && ( reference == rhs.reference );
37834 #endif
37835     }
37836 
operator !=VULKAN_HPP_NAMESPACE::StencilOpState37837     bool operator!=( StencilOpState const & rhs ) const VULKAN_HPP_NOEXCEPT
37838     {
37839       return !operator==( rhs );
37840     }
37841 #endif
37842 
37843     public:
37844     VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37845     VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37846     VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37847     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
37848     uint32_t compareMask = {};
37849     uint32_t writeMask = {};
37850     uint32_t reference = {};
37851 
37852   };
37853 
37854   struct PipelineDepthStencilStateCreateInfo
37855   {
37856     using NativeType = VkPipelineDepthStencilStateCreateInfo;
37857 
37858     static const bool allowDuplicate = false;
37859     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDepthStencilStateCreateInfo;
37860 
37861 
37862 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37863 VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ = {}, VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ = {}, VULKAN_HPP_NAMESPACE::StencilOpState front_ = {}, VULKAN_HPP_NAMESPACE::StencilOpState back_ = {}, float minDepthBounds_ = {}, float maxDepthBounds_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
37864     : pNext( pNext_ ), flags( flags_ ), depthTestEnable( depthTestEnable_ ), depthWriteEnable( depthWriteEnable_ ), depthCompareOp( depthCompareOp_ ), depthBoundsTestEnable( depthBoundsTestEnable_ ), stencilTestEnable( stencilTestEnable_ ), front( front_ ), back( back_ ), minDepthBounds( minDepthBounds_ ), maxDepthBounds( maxDepthBounds_ )
37865     {}
37866 
37867     VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37868 
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37869     PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37870       : PipelineDepthStencilStateCreateInfo( *reinterpret_cast<PipelineDepthStencilStateCreateInfo const *>( &rhs ) )
37871     {}
37872 
37873 
37874     PipelineDepthStencilStateCreateInfo & operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37875 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
37876 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37877     PipelineDepthStencilStateCreateInfo & operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37878     {
37879       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const *>( &rhs );
37880       return *this;
37881     }
37882 
37883 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37884     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
37885     {
37886       pNext = pNext_;
37887       return *this;
37888     }
37889 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37890     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37891     {
37892       flags = flags_;
37893       return *this;
37894     }
37895 
setDepthTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37896     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT
37897     {
37898       depthTestEnable = depthTestEnable_;
37899       return *this;
37900     }
37901 
setDepthWriteEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37902     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT
37903     {
37904       depthWriteEnable = depthWriteEnable_;
37905       return *this;
37906     }
37907 
setDepthCompareOpVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37908     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT
37909     {
37910       depthCompareOp = depthCompareOp_;
37911       return *this;
37912     }
37913 
setDepthBoundsTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37914     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT
37915     {
37916       depthBoundsTestEnable = depthBoundsTestEnable_;
37917       return *this;
37918     }
37919 
setStencilTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37920     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT
37921     {
37922       stencilTestEnable = stencilTestEnable_;
37923       return *this;
37924     }
37925 
setFrontVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37926     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT
37927     {
37928       front = front_;
37929       return *this;
37930     }
37931 
setBackVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37932     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT
37933     {
37934       back = back_;
37935       return *this;
37936     }
37937 
setMinDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37938     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ ) VULKAN_HPP_NOEXCEPT
37939     {
37940       minDepthBounds = minDepthBounds_;
37941       return *this;
37942     }
37943 
setMaxDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37944     VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ ) VULKAN_HPP_NOEXCEPT
37945     {
37946       maxDepthBounds = maxDepthBounds_;
37947       return *this;
37948     }
37949 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
37950 
37951 
operator VkPipelineDepthStencilStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37952     operator VkPipelineDepthStencilStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
37953     {
37954       return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo*>( this );
37955     }
37956 
operator VkPipelineDepthStencilStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37957     operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37958     {
37959       return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>( this );
37960     }
37961 
37962 #if defined( VULKAN_HPP_USE_REFLECT )
37963 #if 14 <= VULKAN_HPP_CPP_VERSION
37964     auto
37965 #else
37966     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::CompareOp const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::StencilOpState const &, VULKAN_HPP_NAMESPACE::StencilOpState const &, float const &, float const &>
37967 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37968       reflect() const VULKAN_HPP_NOEXCEPT
37969     {
37970       return std::tie( sType, pNext, flags, depthTestEnable, depthWriteEnable, depthCompareOp, depthBoundsTestEnable, stencilTestEnable, front, back, minDepthBounds, maxDepthBounds );
37971     }
37972 #endif
37973 
37974 
37975 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37976 auto operator<=>( PipelineDepthStencilStateCreateInfo const & ) const = default;
37977 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37978     bool operator==( PipelineDepthStencilStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37979     {
37980 #if defined( VULKAN_HPP_USE_REFLECT )
37981       return this->reflect() == rhs.reflect();
37982 #else
37983       return ( sType == rhs.sType )
37984           && ( pNext == rhs.pNext )
37985           && ( flags == rhs.flags )
37986           && ( depthTestEnable == rhs.depthTestEnable )
37987           && ( depthWriteEnable == rhs.depthWriteEnable )
37988           && ( depthCompareOp == rhs.depthCompareOp )
37989           && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable )
37990           && ( stencilTestEnable == rhs.stencilTestEnable )
37991           && ( front == rhs.front )
37992           && ( back == rhs.back )
37993           && ( minDepthBounds == rhs.minDepthBounds )
37994           && ( maxDepthBounds == rhs.maxDepthBounds );
37995 #endif
37996     }
37997 
operator !=VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37998     bool operator!=( PipelineDepthStencilStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
37999     {
38000       return !operator==( rhs );
38001     }
38002 #endif
38003 
38004     public:
38005     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo;
38006     const void * pNext = {};
38007     VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {};
38008     VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {};
38009     VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {};
38010     VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
38011     VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {};
38012     VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {};
38013     VULKAN_HPP_NAMESPACE::StencilOpState front = {};
38014     VULKAN_HPP_NAMESPACE::StencilOpState back = {};
38015     float minDepthBounds = {};
38016     float maxDepthBounds = {};
38017 
38018   };
38019 
38020   template <>
38021   struct CppType<StructureType, StructureType::ePipelineDepthStencilStateCreateInfo>
38022   {
38023     using Type = PipelineDepthStencilStateCreateInfo;
38024   };
38025 
38026   struct PipelineColorBlendAttachmentState
38027   {
38028     using NativeType = VkPipelineColorBlendAttachmentState;
38029 
38030 
38031 
38032 
38033 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38034 VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState(VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ = {}, VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ = {}) VULKAN_HPP_NOEXCEPT
38035     : blendEnable( blendEnable_ ), srcColorBlendFactor( srcColorBlendFactor_ ), dstColorBlendFactor( dstColorBlendFactor_ ), colorBlendOp( colorBlendOp_ ), srcAlphaBlendFactor( srcAlphaBlendFactor_ ), dstAlphaBlendFactor( dstAlphaBlendFactor_ ), alphaBlendOp( alphaBlendOp_ ), colorWriteMask( colorWriteMask_ )
38036     {}
38037 
38038     VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38039 
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38040     PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
38041       : PipelineColorBlendAttachmentState( *reinterpret_cast<PipelineColorBlendAttachmentState const *>( &rhs ) )
38042     {}
38043 
38044 
38045     PipelineColorBlendAttachmentState & operator=( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38046 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
38047 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38048     PipelineColorBlendAttachmentState & operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
38049     {
38050       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState const *>( &rhs );
38051       return *this;
38052     }
38053 
38054 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setBlendEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38055     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT
38056     {
38057       blendEnable = blendEnable_;
38058       return *this;
38059     }
38060 
setSrcColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38061     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
38062     {
38063       srcColorBlendFactor = srcColorBlendFactor_;
38064       return *this;
38065     }
38066 
setDstColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38067     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
38068     {
38069       dstColorBlendFactor = dstColorBlendFactor_;
38070       return *this;
38071     }
38072 
setColorBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38073     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT
38074     {
38075       colorBlendOp = colorBlendOp_;
38076       return *this;
38077     }
38078 
setSrcAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38079     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
38080     {
38081       srcAlphaBlendFactor = srcAlphaBlendFactor_;
38082       return *this;
38083     }
38084 
setDstAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38085     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
38086     {
38087       dstAlphaBlendFactor = dstAlphaBlendFactor_;
38088       return *this;
38089     }
38090 
setAlphaBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38091     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT
38092     {
38093       alphaBlendOp = alphaBlendOp_;
38094       return *this;
38095     }
38096 
setColorWriteMaskVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38097     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT
38098     {
38099       colorWriteMask = colorWriteMask_;
38100       return *this;
38101     }
38102 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
38103 
38104 
operator VkPipelineColorBlendAttachmentState const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38105     operator VkPipelineColorBlendAttachmentState const &() const VULKAN_HPP_NOEXCEPT
38106     {
38107       return *reinterpret_cast<const VkPipelineColorBlendAttachmentState*>( this );
38108     }
38109 
operator VkPipelineColorBlendAttachmentState&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38110     operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT
38111     {
38112       return *reinterpret_cast<VkPipelineColorBlendAttachmentState*>( this );
38113     }
38114 
38115 #if defined( VULKAN_HPP_USE_REFLECT )
38116 #if 14 <= VULKAN_HPP_CPP_VERSION
38117     auto
38118 #else
38119     std::tuple<VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::BlendFactor const &, VULKAN_HPP_NAMESPACE::BlendFactor const &, VULKAN_HPP_NAMESPACE::BlendOp const &, VULKAN_HPP_NAMESPACE::BlendFactor const &, VULKAN_HPP_NAMESPACE::BlendFactor const &, VULKAN_HPP_NAMESPACE::BlendOp const &, VULKAN_HPP_NAMESPACE::ColorComponentFlags const &>
38120 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38121       reflect() const VULKAN_HPP_NOEXCEPT
38122     {
38123       return std::tie( blendEnable, srcColorBlendFactor, dstColorBlendFactor, colorBlendOp, srcAlphaBlendFactor, dstAlphaBlendFactor, alphaBlendOp, colorWriteMask );
38124     }
38125 #endif
38126 
38127 
38128 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38129 auto operator<=>( PipelineColorBlendAttachmentState const & ) const = default;
38130 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38131     bool operator==( PipelineColorBlendAttachmentState const & rhs ) const VULKAN_HPP_NOEXCEPT
38132     {
38133 #if defined( VULKAN_HPP_USE_REFLECT )
38134       return this->reflect() == rhs.reflect();
38135 #else
38136       return ( blendEnable == rhs.blendEnable )
38137           && ( srcColorBlendFactor == rhs.srcColorBlendFactor )
38138           && ( dstColorBlendFactor == rhs.dstColorBlendFactor )
38139           && ( colorBlendOp == rhs.colorBlendOp )
38140           && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor )
38141           && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor )
38142           && ( alphaBlendOp == rhs.alphaBlendOp )
38143           && ( colorWriteMask == rhs.colorWriteMask );
38144 #endif
38145     }
38146 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState38147     bool operator!=( PipelineColorBlendAttachmentState const & rhs ) const VULKAN_HPP_NOEXCEPT
38148     {
38149       return !operator==( rhs );
38150     }
38151 #endif
38152 
38153     public:
38154     VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {};
38155     VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
38156     VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
38157     VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
38158     VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
38159     VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
38160     VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
38161     VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {};
38162 
38163   };
38164 
38165   struct PipelineColorBlendStateCreateInfo
38166   {
38167     using NativeType = VkPipelineColorBlendStateCreateInfo;
38168 
38169     static const bool allowDuplicate = false;
38170     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendStateCreateInfo;
38171 
38172 
38173 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38174 VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ = {}, VULKAN_HPP_NAMESPACE::LogicOp logicOp_ = VULKAN_HPP_NAMESPACE::LogicOp::eClear, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ = {}, std::array<float,4> const & blendConstants_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
38175     : pNext( pNext_ ), flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), blendConstants( blendConstants_ )
38176     {}
38177 
38178     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38179 
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38180     PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38181       : PipelineColorBlendStateCreateInfo( *reinterpret_cast<PipelineColorBlendStateCreateInfo const *>( &rhs ) )
38182     {}
38183 
38184 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38185     PipelineColorBlendStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_, VULKAN_HPP_NAMESPACE::LogicOp logicOp_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_, std::array<float,4> const & blendConstants_ = {}, const void * pNext_ = nullptr )
38186     : pNext( pNext_ ), flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), blendConstants( blendConstants_ )
38187     {}
38188 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
38189 
38190 
38191     PipelineColorBlendStateCreateInfo & operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38192 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
38193 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38194     PipelineColorBlendStateCreateInfo & operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38195     {
38196       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const *>( &rhs );
38197       return *this;
38198     }
38199 
38200 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38201     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
38202     {
38203       pNext = pNext_;
38204       return *this;
38205     }
38206 
setFlagsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38207     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38208     {
38209       flags = flags_;
38210       return *this;
38211     }
38212 
setLogicOpEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38213     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT
38214     {
38215       logicOpEnable = logicOpEnable_;
38216       return *this;
38217     }
38218 
setLogicOpVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38219     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setLogicOp( VULKAN_HPP_NAMESPACE::LogicOp logicOp_ ) VULKAN_HPP_NOEXCEPT
38220     {
38221       logicOp = logicOp_;
38222       return *this;
38223     }
38224 
setAttachmentCountVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38225     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
38226     {
38227       attachmentCount = attachmentCount_;
38228       return *this;
38229     }
38230 
setPAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38231     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ ) VULKAN_HPP_NOEXCEPT
38232     {
38233       pAttachments = pAttachments_;
38234       return *this;
38235     }
38236 
38237 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38238     PipelineColorBlendStateCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_ ) VULKAN_HPP_NOEXCEPT
38239     {
38240       attachmentCount = static_cast<uint32_t>( attachments_.size() );
38241       pAttachments = attachments_.data();
38242       return *this;
38243     }
38244 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
38245 
setBlendConstantsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38246     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float,4> blendConstants_ ) VULKAN_HPP_NOEXCEPT
38247     {
38248       blendConstants = blendConstants_;
38249       return *this;
38250     }
38251 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
38252 
38253 
operator VkPipelineColorBlendStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38254     operator VkPipelineColorBlendStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
38255     {
38256       return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo*>( this );
38257     }
38258 
operator VkPipelineColorBlendStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38259     operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT
38260     {
38261       return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>( this );
38262     }
38263 
38264 #if defined( VULKAN_HPP_USE_REFLECT )
38265 #if 14 <= VULKAN_HPP_CPP_VERSION
38266     auto
38267 #else
38268     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::LogicOp const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> const &>
38269 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38270       reflect() const VULKAN_HPP_NOEXCEPT
38271     {
38272       return std::tie( sType, pNext, flags, logicOpEnable, logicOp, attachmentCount, pAttachments, blendConstants );
38273     }
38274 #endif
38275 
38276 
38277 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38278 auto operator<=>( PipelineColorBlendStateCreateInfo const & ) const = default;
38279 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38280     bool operator==( PipelineColorBlendStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
38281     {
38282 #if defined( VULKAN_HPP_USE_REFLECT )
38283       return this->reflect() == rhs.reflect();
38284 #else
38285       return ( sType == rhs.sType )
38286           && ( pNext == rhs.pNext )
38287           && ( flags == rhs.flags )
38288           && ( logicOpEnable == rhs.logicOpEnable )
38289           && ( logicOp == rhs.logicOp )
38290           && ( attachmentCount == rhs.attachmentCount )
38291           && ( pAttachments == rhs.pAttachments )
38292           && ( blendConstants == rhs.blendConstants );
38293 #endif
38294     }
38295 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo38296     bool operator!=( PipelineColorBlendStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
38297     {
38298       return !operator==( rhs );
38299     }
38300 #endif
38301 
38302     public:
38303     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo;
38304     const void * pNext = {};
38305     VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {};
38306     VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {};
38307     VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear;
38308     uint32_t attachmentCount = {};
38309     const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments = {};
38310     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> blendConstants = {};
38311 
38312   };
38313 
38314   template <>
38315   struct CppType<StructureType, StructureType::ePipelineColorBlendStateCreateInfo>
38316   {
38317     using Type = PipelineColorBlendStateCreateInfo;
38318   };
38319 
38320   struct PipelineDynamicStateCreateInfo
38321   {
38322     using NativeType = VkPipelineDynamicStateCreateInfo;
38323 
38324     static const bool allowDuplicate = false;
38325     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo;
38326 
38327 
38328 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38329 VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {}, uint32_t dynamicStateCount_ = {}, const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
38330     : pNext( pNext_ ), flags( flags_ ), dynamicStateCount( dynamicStateCount_ ), pDynamicStates( pDynamicStates_ )
38331     {}
38332 
38333     VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38334 
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38335     PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38336       : PipelineDynamicStateCreateInfo( *reinterpret_cast<PipelineDynamicStateCreateInfo const *>( &rhs ) )
38337     {}
38338 
38339 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38340     PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_, const void * pNext_ = nullptr )
38341     : pNext( pNext_ ), flags( flags_ ), dynamicStateCount( static_cast<uint32_t>( dynamicStates_.size() ) ), pDynamicStates( dynamicStates_.data() )
38342     {}
38343 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
38344 
38345 
38346     PipelineDynamicStateCreateInfo & operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38347 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
38348 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38349     PipelineDynamicStateCreateInfo & operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38350     {
38351       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const *>( &rhs );
38352       return *this;
38353     }
38354 
38355 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38356     VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
38357     {
38358       pNext = pNext_;
38359       return *this;
38360     }
38361 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38362     VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38363     {
38364       flags = flags_;
38365       return *this;
38366     }
38367 
setDynamicStateCountVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38368     VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ ) VULKAN_HPP_NOEXCEPT
38369     {
38370       dynamicStateCount = dynamicStateCount_;
38371       return *this;
38372     }
38373 
setPDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38374     VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates_ ) VULKAN_HPP_NOEXCEPT
38375     {
38376       pDynamicStates = pDynamicStates_;
38377       return *this;
38378     }
38379 
38380 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38381     PipelineDynamicStateCreateInfo & setDynamicStates( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ ) VULKAN_HPP_NOEXCEPT
38382     {
38383       dynamicStateCount = static_cast<uint32_t>( dynamicStates_.size() );
38384       pDynamicStates = dynamicStates_.data();
38385       return *this;
38386     }
38387 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
38388 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
38389 
38390 
operator VkPipelineDynamicStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38391     operator VkPipelineDynamicStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
38392     {
38393       return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo*>( this );
38394     }
38395 
operator VkPipelineDynamicStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38396     operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT
38397     {
38398       return *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>( this );
38399     }
38400 
38401 #if defined( VULKAN_HPP_USE_REFLECT )
38402 #if 14 <= VULKAN_HPP_CPP_VERSION
38403     auto
38404 #else
38405     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DynamicState * const &>
38406 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38407       reflect() const VULKAN_HPP_NOEXCEPT
38408     {
38409       return std::tie( sType, pNext, flags, dynamicStateCount, pDynamicStates );
38410     }
38411 #endif
38412 
38413 
38414 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38415 auto operator<=>( PipelineDynamicStateCreateInfo const & ) const = default;
38416 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38417     bool operator==( PipelineDynamicStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
38418     {
38419 #if defined( VULKAN_HPP_USE_REFLECT )
38420       return this->reflect() == rhs.reflect();
38421 #else
38422       return ( sType == rhs.sType )
38423           && ( pNext == rhs.pNext )
38424           && ( flags == rhs.flags )
38425           && ( dynamicStateCount == rhs.dynamicStateCount )
38426           && ( pDynamicStates == rhs.pDynamicStates );
38427 #endif
38428     }
38429 
operator !=VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38430     bool operator!=( PipelineDynamicStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
38431     {
38432       return !operator==( rhs );
38433     }
38434 #endif
38435 
38436     public:
38437     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo;
38438     const void * pNext = {};
38439     VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {};
38440     uint32_t dynamicStateCount = {};
38441     const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates = {};
38442 
38443   };
38444 
38445   template <>
38446   struct CppType<StructureType, StructureType::ePipelineDynamicStateCreateInfo>
38447   {
38448     using Type = PipelineDynamicStateCreateInfo;
38449   };
38450 
38451   struct GraphicsPipelineCreateInfo
38452   {
38453     using NativeType = VkGraphicsPipelineCreateInfo;
38454 
38455     static const bool allowDuplicate = false;
38456     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo;
38457 
38458 
38459 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38460 VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {}, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
38461     : pNext( pNext_ ), flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pInputAssemblyState( pInputAssemblyState_ ), pTessellationState( pTessellationState_ ), pViewportState( pViewportState_ ), pRasterizationState( pRasterizationState_ ), pMultisampleState( pMultisampleState_ ), pDepthStencilState( pDepthStencilState_ ), pColorBlendState( pColorBlendState_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), renderPass( renderPass_ ), subpass( subpass_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
38462     {}
38463 
38464     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38465 
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38466     GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38467       : GraphicsPipelineCreateInfo( *reinterpret_cast<GraphicsPipelineCreateInfo const *>( &rhs ) )
38468     {}
38469 
38470 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38471     GraphicsPipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}, const void * pNext_ = nullptr )
38472     : pNext( pNext_ ), flags( flags_ ), stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pInputAssemblyState( pInputAssemblyState_ ), pTessellationState( pTessellationState_ ), pViewportState( pViewportState_ ), pRasterizationState( pRasterizationState_ ), pMultisampleState( pMultisampleState_ ), pDepthStencilState( pDepthStencilState_ ), pColorBlendState( pColorBlendState_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), renderPass( renderPass_ ), subpass( subpass_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
38473     {}
38474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
38475 
38476 
38477     GraphicsPipelineCreateInfo & operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38478 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
38479 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38480     GraphicsPipelineCreateInfo & operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38481     {
38482       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const *>( &rhs );
38483       return *this;
38484     }
38485 
38486 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38487     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
38488     {
38489       pNext = pNext_;
38490       return *this;
38491     }
38492 
setFlagsVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38493     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38494     {
38495       flags = flags_;
38496       return *this;
38497     }
38498 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38499     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
38500     {
38501       stageCount = stageCount_;
38502       return *this;
38503     }
38504 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38505     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
38506     {
38507       pStages = pStages_;
38508       return *this;
38509     }
38510 
38511 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38512     GraphicsPipelineCreateInfo & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
38513     {
38514       stageCount = static_cast<uint32_t>( stages_.size() );
38515       pStages = stages_.data();
38516       return *this;
38517     }
38518 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
38519 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38520     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
38521     {
38522       pVertexInputState = pVertexInputState_;
38523       return *this;
38524     }
38525 
setPInputAssemblyStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38526     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT
38527     {
38528       pInputAssemblyState = pInputAssemblyState_;
38529       return *this;
38530     }
38531 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38532     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT
38533     {
38534       pTessellationState = pTessellationState_;
38535       return *this;
38536     }
38537 
setPViewportStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38538     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ ) VULKAN_HPP_NOEXCEPT
38539     {
38540       pViewportState = pViewportState_;
38541       return *this;
38542     }
38543 
setPRasterizationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38544     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ ) VULKAN_HPP_NOEXCEPT
38545     {
38546       pRasterizationState = pRasterizationState_;
38547       return *this;
38548     }
38549 
setPMultisampleStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38550     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ ) VULKAN_HPP_NOEXCEPT
38551     {
38552       pMultisampleState = pMultisampleState_;
38553       return *this;
38554     }
38555 
setPDepthStencilStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38556     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT
38557     {
38558       pDepthStencilState = pDepthStencilState_;
38559       return *this;
38560     }
38561 
setPColorBlendStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38562     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ ) VULKAN_HPP_NOEXCEPT
38563     {
38564       pColorBlendState = pColorBlendState_;
38565       return *this;
38566     }
38567 
setPDynamicStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38568     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT
38569     {
38570       pDynamicState = pDynamicState_;
38571       return *this;
38572     }
38573 
setLayoutVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38574     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
38575     {
38576       layout = layout_;
38577       return *this;
38578     }
38579 
setRenderPassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38580     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
38581     {
38582       renderPass = renderPass_;
38583       return *this;
38584     }
38585 
setSubpassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38586     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
38587     {
38588       subpass = subpass_;
38589       return *this;
38590     }
38591 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38592     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
38593     {
38594       basePipelineHandle = basePipelineHandle_;
38595       return *this;
38596     }
38597 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38598     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
38599     {
38600       basePipelineIndex = basePipelineIndex_;
38601       return *this;
38602     }
38603 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
38604 
38605 
operator VkGraphicsPipelineCreateInfo const&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38606     operator VkGraphicsPipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT
38607     {
38608       return *reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( this );
38609     }
38610 
operator VkGraphicsPipelineCreateInfo&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38611     operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
38612     {
38613       return *reinterpret_cast<VkGraphicsPipelineCreateInfo*>( this );
38614     }
38615 
38616 #if defined( VULKAN_HPP_USE_REFLECT )
38617 #if 14 <= VULKAN_HPP_CPP_VERSION
38618     auto
38619 #else
38620     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * const &, VULKAN_HPP_NAMESPACE::PipelineLayout const &, VULKAN_HPP_NAMESPACE::RenderPass const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Pipeline const &, int32_t const &>
38621 #endif
reflectVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38622       reflect() const VULKAN_HPP_NOEXCEPT
38623     {
38624       return std::tie( sType, pNext, flags, stageCount, pStages, pVertexInputState, pInputAssemblyState, pTessellationState, pViewportState, pRasterizationState, pMultisampleState, pDepthStencilState, pColorBlendState, pDynamicState, layout, renderPass, subpass, basePipelineHandle, basePipelineIndex );
38625     }
38626 #endif
38627 
38628 
38629 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38630 auto operator<=>( GraphicsPipelineCreateInfo const & ) const = default;
38631 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38632     bool operator==( GraphicsPipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
38633     {
38634 #if defined( VULKAN_HPP_USE_REFLECT )
38635       return this->reflect() == rhs.reflect();
38636 #else
38637       return ( sType == rhs.sType )
38638           && ( pNext == rhs.pNext )
38639           && ( flags == rhs.flags )
38640           && ( stageCount == rhs.stageCount )
38641           && ( pStages == rhs.pStages )
38642           && ( pVertexInputState == rhs.pVertexInputState )
38643           && ( pInputAssemblyState == rhs.pInputAssemblyState )
38644           && ( pTessellationState == rhs.pTessellationState )
38645           && ( pViewportState == rhs.pViewportState )
38646           && ( pRasterizationState == rhs.pRasterizationState )
38647           && ( pMultisampleState == rhs.pMultisampleState )
38648           && ( pDepthStencilState == rhs.pDepthStencilState )
38649           && ( pColorBlendState == rhs.pColorBlendState )
38650           && ( pDynamicState == rhs.pDynamicState )
38651           && ( layout == rhs.layout )
38652           && ( renderPass == rhs.renderPass )
38653           && ( subpass == rhs.subpass )
38654           && ( basePipelineHandle == rhs.basePipelineHandle )
38655           && ( basePipelineIndex == rhs.basePipelineIndex );
38656 #endif
38657     }
38658 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38659     bool operator!=( GraphicsPipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
38660     {
38661       return !operator==( rhs );
38662     }
38663 #endif
38664 
38665     public:
38666     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo;
38667     const void * pNext = {};
38668     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
38669     uint32_t stageCount = {};
38670     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
38671     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState = {};
38672     const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState = {};
38673     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState = {};
38674     const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState = {};
38675     const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState = {};
38676     const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState = {};
38677     const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState = {};
38678     const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState = {};
38679     const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState = {};
38680     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
38681     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
38682     uint32_t subpass = {};
38683     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
38684     int32_t basePipelineIndex = {};
38685 
38686   };
38687 
38688   template <>
38689   struct CppType<StructureType, StructureType::eGraphicsPipelineCreateInfo>
38690   {
38691     using Type = GraphicsPipelineCreateInfo;
38692   };
38693 
38694   struct GraphicsPipelineLibraryCreateInfoEXT
38695   {
38696     using NativeType = VkGraphicsPipelineLibraryCreateInfoEXT;
38697 
38698     static const bool allowDuplicate = false;
38699     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineLibraryCreateInfoEXT;
38700 
38701 
38702 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineLibraryCreateInfoEXTVULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT38703 VULKAN_HPP_CONSTEXPR GraphicsPipelineLibraryCreateInfoEXT(VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
38704     : pNext( pNext_ ), flags( flags_ )
38705     {}
38706 
38707     VULKAN_HPP_CONSTEXPR GraphicsPipelineLibraryCreateInfoEXT( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38708 
GraphicsPipelineLibraryCreateInfoEXTVULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT38709     GraphicsPipelineLibraryCreateInfoEXT( VkGraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
38710       : GraphicsPipelineLibraryCreateInfoEXT( *reinterpret_cast<GraphicsPipelineLibraryCreateInfoEXT const *>( &rhs ) )
38711     {}
38712 
38713 
38714     GraphicsPipelineLibraryCreateInfoEXT & operator=( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38715 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
38716 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT38717     GraphicsPipelineLibraryCreateInfoEXT & operator=( VkGraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
38718     {
38719       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT const *>( &rhs );
38720       return *this;
38721     }
38722 
38723 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT38724     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineLibraryCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
38725     {
38726       pNext = pNext_;
38727       return *this;
38728     }
38729 
setFlagsVULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT38730     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineLibraryCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
38731     {
38732       flags = flags_;
38733       return *this;
38734     }
38735 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
38736 
38737 
operator VkGraphicsPipelineLibraryCreateInfoEXT const&VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT38738     operator VkGraphicsPipelineLibraryCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
38739     {
38740       return *reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT*>( this );
38741     }
38742 
operator VkGraphicsPipelineLibraryCreateInfoEXT&VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT38743     operator VkGraphicsPipelineLibraryCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
38744     {
38745       return *reinterpret_cast<VkGraphicsPipelineLibraryCreateInfoEXT*>( this );
38746     }
38747 
38748 #if defined( VULKAN_HPP_USE_REFLECT )
38749 #if 14 <= VULKAN_HPP_CPP_VERSION
38750     auto
38751 #else
38752     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT const &>
38753 #endif
reflectVULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT38754       reflect() const VULKAN_HPP_NOEXCEPT
38755     {
38756       return std::tie( sType, pNext, flags );
38757     }
38758 #endif
38759 
38760 
38761 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38762 auto operator<=>( GraphicsPipelineLibraryCreateInfoEXT const & ) const = default;
38763 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT38764     bool operator==( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
38765     {
38766 #if defined( VULKAN_HPP_USE_REFLECT )
38767       return this->reflect() == rhs.reflect();
38768 #else
38769       return ( sType == rhs.sType )
38770           && ( pNext == rhs.pNext )
38771           && ( flags == rhs.flags );
38772 #endif
38773     }
38774 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT38775     bool operator!=( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
38776     {
38777       return !operator==( rhs );
38778     }
38779 #endif
38780 
38781     public:
38782     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineLibraryCreateInfoEXT;
38783     const void * pNext = {};
38784     VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags = {};
38785 
38786   };
38787 
38788   template <>
38789   struct CppType<StructureType, StructureType::eGraphicsPipelineLibraryCreateInfoEXT>
38790   {
38791     using Type = GraphicsPipelineLibraryCreateInfoEXT;
38792   };
38793 
38794   struct GraphicsShaderGroupCreateInfoNV
38795   {
38796     using NativeType = VkGraphicsShaderGroupCreateInfoNV;
38797 
38798     static const bool allowDuplicate = false;
38799     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV;
38800 
38801 
38802 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38803 VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV(uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {}, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
38804     : pNext( pNext_ ), stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ )
38805     {}
38806 
38807     VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38808 
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38809     GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38810       : GraphicsShaderGroupCreateInfoNV( *reinterpret_cast<GraphicsShaderGroupCreateInfoNV const *>( &rhs ) )
38811     {}
38812 
38813 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38814     GraphicsShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {}, const void * pNext_ = nullptr )
38815     : pNext( pNext_ ), stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ )
38816     {}
38817 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
38818 
38819 
38820     GraphicsShaderGroupCreateInfoNV & operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38821 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
38822 
operator =VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38823     GraphicsShaderGroupCreateInfoNV & operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38824     {
38825       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV const *>( &rhs );
38826       return *this;
38827     }
38828 
38829 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38830     VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
38831     {
38832       pNext = pNext_;
38833       return *this;
38834     }
38835 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38836     VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
38837     {
38838       stageCount = stageCount_;
38839       return *this;
38840     }
38841 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38842     VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
38843     {
38844       pStages = pStages_;
38845       return *this;
38846     }
38847 
38848 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38849     GraphicsShaderGroupCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
38850     {
38851       stageCount = static_cast<uint32_t>( stages_.size() );
38852       pStages = stages_.data();
38853       return *this;
38854     }
38855 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
38856 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38857     VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
38858     {
38859       pVertexInputState = pVertexInputState_;
38860       return *this;
38861     }
38862 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38863     VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT
38864     {
38865       pTessellationState = pTessellationState_;
38866       return *this;
38867     }
38868 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
38869 
38870 
operator VkGraphicsShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38871     operator VkGraphicsShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
38872     {
38873       return *reinterpret_cast<const VkGraphicsShaderGroupCreateInfoNV*>( this );
38874     }
38875 
operator VkGraphicsShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38876     operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
38877     {
38878       return *reinterpret_cast<VkGraphicsShaderGroupCreateInfoNV*>( this );
38879     }
38880 
38881 #if defined( VULKAN_HPP_USE_REFLECT )
38882 #if 14 <= VULKAN_HPP_CPP_VERSION
38883     auto
38884 #else
38885     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * const &, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * const &>
38886 #endif
reflectVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38887       reflect() const VULKAN_HPP_NOEXCEPT
38888     {
38889       return std::tie( sType, pNext, stageCount, pStages, pVertexInputState, pTessellationState );
38890     }
38891 #endif
38892 
38893 
38894 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38895 auto operator<=>( GraphicsShaderGroupCreateInfoNV const & ) const = default;
38896 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38897     bool operator==( GraphicsShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
38898     {
38899 #if defined( VULKAN_HPP_USE_REFLECT )
38900       return this->reflect() == rhs.reflect();
38901 #else
38902       return ( sType == rhs.sType )
38903           && ( pNext == rhs.pNext )
38904           && ( stageCount == rhs.stageCount )
38905           && ( pStages == rhs.pStages )
38906           && ( pVertexInputState == rhs.pVertexInputState )
38907           && ( pTessellationState == rhs.pTessellationState );
38908 #endif
38909     }
38910 
operator !=VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV38911     bool operator!=( GraphicsShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
38912     {
38913       return !operator==( rhs );
38914     }
38915 #endif
38916 
38917     public:
38918     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV;
38919     const void * pNext = {};
38920     uint32_t stageCount = {};
38921     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
38922     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState = {};
38923     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState = {};
38924 
38925   };
38926 
38927   template <>
38928   struct CppType<StructureType, StructureType::eGraphicsShaderGroupCreateInfoNV>
38929   {
38930     using Type = GraphicsShaderGroupCreateInfoNV;
38931   };
38932 
38933   struct GraphicsPipelineShaderGroupsCreateInfoNV
38934   {
38935     using NativeType = VkGraphicsPipelineShaderGroupsCreateInfoNV;
38936 
38937     static const bool allowDuplicate = false;
38938     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
38939 
38940 
38941 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV38942 VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV(uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups_ = {}, uint32_t pipelineCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
38943     : pNext( pNext_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), pipelineCount( pipelineCount_ ), pPipelines( pPipelines_ )
38944     {}
38945 
38946     VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38947 
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV38948     GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38949       : GraphicsPipelineShaderGroupsCreateInfoNV( *reinterpret_cast<GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs ) )
38950     {}
38951 
38952 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV38953     GraphicsPipelineShaderGroupsCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ = {}, const void * pNext_ = nullptr )
38954     : pNext( pNext_ ), groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), pipelineCount( static_cast<uint32_t>( pipelines_.size() ) ), pPipelines( pipelines_.data() )
38955     {}
38956 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
38957 
38958 
38959     GraphicsPipelineShaderGroupsCreateInfoNV & operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38960 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
38961 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV38962     GraphicsPipelineShaderGroupsCreateInfoNV & operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38963     {
38964       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs );
38965       return *this;
38966     }
38967 
38968 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV38969     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
38970     {
38971       pNext = pNext_;
38972       return *this;
38973     }
38974 
setGroupCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV38975     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
38976     {
38977       groupCount = groupCount_;
38978       return *this;
38979     }
38980 
setPGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV38981     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT
38982     {
38983       pGroups = pGroups_;
38984       return *this;
38985     }
38986 
38987 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV38988     GraphicsPipelineShaderGroupsCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
38989     {
38990       groupCount = static_cast<uint32_t>( groups_.size() );
38991       pGroups = groups_.data();
38992       return *this;
38993     }
38994 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
38995 
setPipelineCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV38996     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT
38997     {
38998       pipelineCount = pipelineCount_;
38999       return *this;
39000     }
39001 
setPPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV39002     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines_ ) VULKAN_HPP_NOEXCEPT
39003     {
39004       pPipelines = pPipelines_;
39005       return *this;
39006     }
39007 
39008 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV39009     GraphicsPipelineShaderGroupsCreateInfoNV & setPipelines( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ ) VULKAN_HPP_NOEXCEPT
39010     {
39011       pipelineCount = static_cast<uint32_t>( pipelines_.size() );
39012       pPipelines = pipelines_.data();
39013       return *this;
39014     }
39015 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
39016 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
39017 
39018 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV39019     operator VkGraphicsPipelineShaderGroupsCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
39020     {
39021       return *reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
39022     }
39023 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV39024     operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT
39025     {
39026       return *reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
39027     }
39028 
39029 #if defined( VULKAN_HPP_USE_REFLECT )
39030 #if 14 <= VULKAN_HPP_CPP_VERSION
39031     auto
39032 #else
39033     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Pipeline * const &>
39034 #endif
reflectVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV39035       reflect() const VULKAN_HPP_NOEXCEPT
39036     {
39037       return std::tie( sType, pNext, groupCount, pGroups, pipelineCount, pPipelines );
39038     }
39039 #endif
39040 
39041 
39042 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39043 auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const & ) const = default;
39044 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV39045     bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
39046     {
39047 #if defined( VULKAN_HPP_USE_REFLECT )
39048       return this->reflect() == rhs.reflect();
39049 #else
39050       return ( sType == rhs.sType )
39051           && ( pNext == rhs.pNext )
39052           && ( groupCount == rhs.groupCount )
39053           && ( pGroups == rhs.pGroups )
39054           && ( pipelineCount == rhs.pipelineCount )
39055           && ( pPipelines == rhs.pPipelines );
39056 #endif
39057     }
39058 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV39059     bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
39060     {
39061       return !operator==( rhs );
39062     }
39063 #endif
39064 
39065     public:
39066     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
39067     const void * pNext = {};
39068     uint32_t groupCount = {};
39069     const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups = {};
39070     uint32_t pipelineCount = {};
39071     const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines = {};
39072 
39073   };
39074 
39075   template <>
39076   struct CppType<StructureType, StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV>
39077   {
39078     using Type = GraphicsPipelineShaderGroupsCreateInfoNV;
39079   };
39080 
39081   struct XYColorEXT
39082   {
39083     using NativeType = VkXYColorEXT;
39084 
39085 
39086 
39087 
39088 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT39089 VULKAN_HPP_CONSTEXPR XYColorEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT
39090     : x( x_ ), y( y_ )
39091     {}
39092 
39093     VULKAN_HPP_CONSTEXPR XYColorEXT( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39094 
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT39095     XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39096       : XYColorEXT( *reinterpret_cast<XYColorEXT const *>( &rhs ) )
39097     {}
39098 
39099 
39100     XYColorEXT & operator=( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39101 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
39102 
operator =VULKAN_HPP_NAMESPACE::XYColorEXT39103     XYColorEXT & operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39104     {
39105       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XYColorEXT const *>( &rhs );
39106       return *this;
39107     }
39108 
39109 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setXVULKAN_HPP_NAMESPACE::XYColorEXT39110     VULKAN_HPP_CONSTEXPR_14 XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
39111     {
39112       x = x_;
39113       return *this;
39114     }
39115 
setYVULKAN_HPP_NAMESPACE::XYColorEXT39116     VULKAN_HPP_CONSTEXPR_14 XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
39117     {
39118       y = y_;
39119       return *this;
39120     }
39121 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
39122 
39123 
operator VkXYColorEXT const&VULKAN_HPP_NAMESPACE::XYColorEXT39124     operator VkXYColorEXT const &() const VULKAN_HPP_NOEXCEPT
39125     {
39126       return *reinterpret_cast<const VkXYColorEXT*>( this );
39127     }
39128 
operator VkXYColorEXT&VULKAN_HPP_NAMESPACE::XYColorEXT39129     operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT
39130     {
39131       return *reinterpret_cast<VkXYColorEXT*>( this );
39132     }
39133 
39134 #if defined( VULKAN_HPP_USE_REFLECT )
39135 #if 14 <= VULKAN_HPP_CPP_VERSION
39136     auto
39137 #else
39138     std::tuple<float const &, float const &>
39139 #endif
reflectVULKAN_HPP_NAMESPACE::XYColorEXT39140       reflect() const VULKAN_HPP_NOEXCEPT
39141     {
39142       return std::tie( x, y );
39143     }
39144 #endif
39145 
39146 
39147 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39148 auto operator<=>( XYColorEXT const & ) const = default;
39149 #else
operator ==VULKAN_HPP_NAMESPACE::XYColorEXT39150     bool operator==( XYColorEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39151     {
39152 #if defined( VULKAN_HPP_USE_REFLECT )
39153       return this->reflect() == rhs.reflect();
39154 #else
39155       return ( x == rhs.x )
39156           && ( y == rhs.y );
39157 #endif
39158     }
39159 
operator !=VULKAN_HPP_NAMESPACE::XYColorEXT39160     bool operator!=( XYColorEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39161     {
39162       return !operator==( rhs );
39163     }
39164 #endif
39165 
39166     public:
39167     float x = {};
39168     float y = {};
39169 
39170   };
39171 
39172   struct HdrMetadataEXT
39173   {
39174     using NativeType = VkHdrMetadataEXT;
39175 
39176     static const bool allowDuplicate = false;
39177     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT;
39178 
39179 
39180 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT39181 VULKAN_HPP_CONSTEXPR HdrMetadataEXT(VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint_ = {}, float maxLuminance_ = {}, float minLuminance_ = {}, float maxContentLightLevel_ = {}, float maxFrameAverageLightLevel_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
39182     : pNext( pNext_ ), displayPrimaryRed( displayPrimaryRed_ ), displayPrimaryGreen( displayPrimaryGreen_ ), displayPrimaryBlue( displayPrimaryBlue_ ), whitePoint( whitePoint_ ), maxLuminance( maxLuminance_ ), minLuminance( minLuminance_ ), maxContentLightLevel( maxContentLightLevel_ ), maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
39183     {}
39184 
39185     VULKAN_HPP_CONSTEXPR HdrMetadataEXT( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39186 
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT39187     HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39188       : HdrMetadataEXT( *reinterpret_cast<HdrMetadataEXT const *>( &rhs ) )
39189     {}
39190 
39191 
39192     HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39193 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
39194 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT39195     HdrMetadataEXT & operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39196     {
39197       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HdrMetadataEXT const *>( &rhs );
39198       return *this;
39199     }
39200 
39201 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::HdrMetadataEXT39202     VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
39203     {
39204       pNext = pNext_;
39205       return *this;
39206     }
39207 
setDisplayPrimaryRedVULKAN_HPP_NAMESPACE::HdrMetadataEXT39208     VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT
39209     {
39210       displayPrimaryRed = displayPrimaryRed_;
39211       return *this;
39212     }
39213 
setDisplayPrimaryGreenVULKAN_HPP_NAMESPACE::HdrMetadataEXT39214     VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT
39215     {
39216       displayPrimaryGreen = displayPrimaryGreen_;
39217       return *this;
39218     }
39219 
setDisplayPrimaryBlueVULKAN_HPP_NAMESPACE::HdrMetadataEXT39220     VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT
39221     {
39222       displayPrimaryBlue = displayPrimaryBlue_;
39223       return *this;
39224     }
39225 
setWhitePointVULKAN_HPP_NAMESPACE::HdrMetadataEXT39226     VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT
39227     {
39228       whitePoint = whitePoint_;
39229       return *this;
39230     }
39231 
setMaxLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT39232     VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT
39233     {
39234       maxLuminance = maxLuminance_;
39235       return *this;
39236     }
39237 
setMinLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT39238     VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT
39239     {
39240       minLuminance = minLuminance_;
39241       return *this;
39242     }
39243 
setMaxContentLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT39244     VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT
39245     {
39246       maxContentLightLevel = maxContentLightLevel_;
39247       return *this;
39248     }
39249 
setMaxFrameAverageLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT39250     VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT
39251     {
39252       maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
39253       return *this;
39254     }
39255 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
39256 
39257 
operator VkHdrMetadataEXT const&VULKAN_HPP_NAMESPACE::HdrMetadataEXT39258     operator VkHdrMetadataEXT const &() const VULKAN_HPP_NOEXCEPT
39259     {
39260       return *reinterpret_cast<const VkHdrMetadataEXT*>( this );
39261     }
39262 
operator VkHdrMetadataEXT&VULKAN_HPP_NAMESPACE::HdrMetadataEXT39263     operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT
39264     {
39265       return *reinterpret_cast<VkHdrMetadataEXT*>( this );
39266     }
39267 
39268 #if defined( VULKAN_HPP_USE_REFLECT )
39269 #if 14 <= VULKAN_HPP_CPP_VERSION
39270     auto
39271 #else
39272     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::XYColorEXT const &, VULKAN_HPP_NAMESPACE::XYColorEXT const &, VULKAN_HPP_NAMESPACE::XYColorEXT const &, VULKAN_HPP_NAMESPACE::XYColorEXT const &, float const &, float const &, float const &, float const &>
39273 #endif
reflectVULKAN_HPP_NAMESPACE::HdrMetadataEXT39274       reflect() const VULKAN_HPP_NOEXCEPT
39275     {
39276       return std::tie( sType, pNext, displayPrimaryRed, displayPrimaryGreen, displayPrimaryBlue, whitePoint, maxLuminance, minLuminance, maxContentLightLevel, maxFrameAverageLightLevel );
39277     }
39278 #endif
39279 
39280 
39281 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39282 auto operator<=>( HdrMetadataEXT const & ) const = default;
39283 #else
operator ==VULKAN_HPP_NAMESPACE::HdrMetadataEXT39284     bool operator==( HdrMetadataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39285     {
39286 #if defined( VULKAN_HPP_USE_REFLECT )
39287       return this->reflect() == rhs.reflect();
39288 #else
39289       return ( sType == rhs.sType )
39290           && ( pNext == rhs.pNext )
39291           && ( displayPrimaryRed == rhs.displayPrimaryRed )
39292           && ( displayPrimaryGreen == rhs.displayPrimaryGreen )
39293           && ( displayPrimaryBlue == rhs.displayPrimaryBlue )
39294           && ( whitePoint == rhs.whitePoint )
39295           && ( maxLuminance == rhs.maxLuminance )
39296           && ( minLuminance == rhs.minLuminance )
39297           && ( maxContentLightLevel == rhs.maxContentLightLevel )
39298           && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel );
39299 #endif
39300     }
39301 
operator !=VULKAN_HPP_NAMESPACE::HdrMetadataEXT39302     bool operator!=( HdrMetadataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39303     {
39304       return !operator==( rhs );
39305     }
39306 #endif
39307 
39308     public:
39309     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT;
39310     const void * pNext = {};
39311     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {};
39312     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {};
39313     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {};
39314     VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {};
39315     float maxLuminance = {};
39316     float minLuminance = {};
39317     float maxContentLightLevel = {};
39318     float maxFrameAverageLightLevel = {};
39319 
39320   };
39321 
39322   template <>
39323   struct CppType<StructureType, StructureType::eHdrMetadataEXT>
39324   {
39325     using Type = HdrMetadataEXT;
39326   };
39327 
39328   struct HeadlessSurfaceCreateInfoEXT
39329   {
39330     using NativeType = VkHeadlessSurfaceCreateInfoEXT;
39331 
39332     static const bool allowDuplicate = false;
39333     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT;
39334 
39335 
39336 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT39337 VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
39338     : pNext( pNext_ ), flags( flags_ )
39339     {}
39340 
39341     VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39342 
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT39343     HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39344       : HeadlessSurfaceCreateInfoEXT( *reinterpret_cast<HeadlessSurfaceCreateInfoEXT const *>( &rhs ) )
39345     {}
39346 
39347 
39348     HeadlessSurfaceCreateInfoEXT & operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39349 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
39350 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT39351     HeadlessSurfaceCreateInfoEXT & operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39352     {
39353       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const *>( &rhs );
39354       return *this;
39355     }
39356 
39357 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT39358     VULKAN_HPP_CONSTEXPR_14 HeadlessSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
39359     {
39360       pNext = pNext_;
39361       return *this;
39362     }
39363 
setFlagsVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT39364     VULKAN_HPP_CONSTEXPR_14 HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
39365     {
39366       flags = flags_;
39367       return *this;
39368     }
39369 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
39370 
39371 
operator VkHeadlessSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT39372     operator VkHeadlessSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
39373     {
39374       return *reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( this );
39375     }
39376 
operator VkHeadlessSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT39377     operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
39378     {
39379       return *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>( this );
39380     }
39381 
39382 #if defined( VULKAN_HPP_USE_REFLECT )
39383 #if 14 <= VULKAN_HPP_CPP_VERSION
39384     auto
39385 #else
39386     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT const &>
39387 #endif
reflectVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT39388       reflect() const VULKAN_HPP_NOEXCEPT
39389     {
39390       return std::tie( sType, pNext, flags );
39391     }
39392 #endif
39393 
39394 
39395 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39396 auto operator<=>( HeadlessSurfaceCreateInfoEXT const & ) const = default;
39397 #else
operator ==VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT39398     bool operator==( HeadlessSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39399     {
39400 #if defined( VULKAN_HPP_USE_REFLECT )
39401       return this->reflect() == rhs.reflect();
39402 #else
39403       return ( sType == rhs.sType )
39404           && ( pNext == rhs.pNext )
39405           && ( flags == rhs.flags );
39406 #endif
39407     }
39408 
operator !=VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT39409     bool operator!=( HeadlessSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39410     {
39411       return !operator==( rhs );
39412     }
39413 #endif
39414 
39415     public:
39416     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT;
39417     const void * pNext = {};
39418     VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {};
39419 
39420   };
39421 
39422   template <>
39423   struct CppType<StructureType, StructureType::eHeadlessSurfaceCreateInfoEXT>
39424   {
39425     using Type = HeadlessSurfaceCreateInfoEXT;
39426   };
39427 
39428   struct HostImageCopyDevicePerformanceQueryEXT
39429   {
39430     using NativeType = VkHostImageCopyDevicePerformanceQueryEXT;
39431 
39432     static const bool allowDuplicate = false;
39433     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHostImageCopyDevicePerformanceQueryEXT;
39434 
39435 
39436 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HostImageCopyDevicePerformanceQueryEXTVULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT39437 VULKAN_HPP_CONSTEXPR HostImageCopyDevicePerformanceQueryEXT(VULKAN_HPP_NAMESPACE::Bool32 optimalDeviceAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryLayout_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
39438     : pNext( pNext_ ), optimalDeviceAccess( optimalDeviceAccess_ ), identicalMemoryLayout( identicalMemoryLayout_ )
39439     {}
39440 
39441     VULKAN_HPP_CONSTEXPR HostImageCopyDevicePerformanceQueryEXT( HostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39442 
HostImageCopyDevicePerformanceQueryEXTVULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT39443     HostImageCopyDevicePerformanceQueryEXT( VkHostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39444       : HostImageCopyDevicePerformanceQueryEXT( *reinterpret_cast<HostImageCopyDevicePerformanceQueryEXT const *>( &rhs ) )
39445     {}
39446 
39447 
39448     HostImageCopyDevicePerformanceQueryEXT & operator=( HostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39449 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
39450 
operator =VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT39451     HostImageCopyDevicePerformanceQueryEXT & operator=( VkHostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39452     {
39453       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT const *>( &rhs );
39454       return *this;
39455     }
39456 
39457 
operator VkHostImageCopyDevicePerformanceQueryEXT const&VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT39458     operator VkHostImageCopyDevicePerformanceQueryEXT const &() const VULKAN_HPP_NOEXCEPT
39459     {
39460       return *reinterpret_cast<const VkHostImageCopyDevicePerformanceQueryEXT*>( this );
39461     }
39462 
operator VkHostImageCopyDevicePerformanceQueryEXT&VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT39463     operator VkHostImageCopyDevicePerformanceQueryEXT &() VULKAN_HPP_NOEXCEPT
39464     {
39465       return *reinterpret_cast<VkHostImageCopyDevicePerformanceQueryEXT*>( this );
39466     }
39467 
39468 #if defined( VULKAN_HPP_USE_REFLECT )
39469 #if 14 <= VULKAN_HPP_CPP_VERSION
39470     auto
39471 #else
39472     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
39473 #endif
reflectVULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT39474       reflect() const VULKAN_HPP_NOEXCEPT
39475     {
39476       return std::tie( sType, pNext, optimalDeviceAccess, identicalMemoryLayout );
39477     }
39478 #endif
39479 
39480 
39481 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39482 auto operator<=>( HostImageCopyDevicePerformanceQueryEXT const & ) const = default;
39483 #else
operator ==VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT39484     bool operator==( HostImageCopyDevicePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39485     {
39486 #if defined( VULKAN_HPP_USE_REFLECT )
39487       return this->reflect() == rhs.reflect();
39488 #else
39489       return ( sType == rhs.sType )
39490           && ( pNext == rhs.pNext )
39491           && ( optimalDeviceAccess == rhs.optimalDeviceAccess )
39492           && ( identicalMemoryLayout == rhs.identicalMemoryLayout );
39493 #endif
39494     }
39495 
operator !=VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT39496     bool operator!=( HostImageCopyDevicePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39497     {
39498       return !operator==( rhs );
39499     }
39500 #endif
39501 
39502     public:
39503     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHostImageCopyDevicePerformanceQueryEXT;
39504     void * pNext = {};
39505     VULKAN_HPP_NAMESPACE::Bool32 optimalDeviceAccess = {};
39506     VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryLayout = {};
39507 
39508   };
39509 
39510   template <>
39511   struct CppType<StructureType, StructureType::eHostImageCopyDevicePerformanceQueryEXT>
39512   {
39513     using Type = HostImageCopyDevicePerformanceQueryEXT;
39514   };
39515 
39516   struct HostImageLayoutTransitionInfoEXT
39517   {
39518     using NativeType = VkHostImageLayoutTransitionInfoEXT;
39519 
39520     static const bool allowDuplicate = false;
39521     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHostImageLayoutTransitionInfoEXT;
39522 
39523 
39524 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HostImageLayoutTransitionInfoEXTVULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39525 VULKAN_HPP_CONSTEXPR HostImageLayoutTransitionInfoEXT(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
39526     : pNext( pNext_ ), image( image_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), subresourceRange( subresourceRange_ )
39527     {}
39528 
39529     VULKAN_HPP_CONSTEXPR HostImageLayoutTransitionInfoEXT( HostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39530 
HostImageLayoutTransitionInfoEXTVULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39531     HostImageLayoutTransitionInfoEXT( VkHostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39532       : HostImageLayoutTransitionInfoEXT( *reinterpret_cast<HostImageLayoutTransitionInfoEXT const *>( &rhs ) )
39533     {}
39534 
39535 
39536     HostImageLayoutTransitionInfoEXT & operator=( HostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39537 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
39538 
operator =VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39539     HostImageLayoutTransitionInfoEXT & operator=( VkHostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39540     {
39541       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT const *>( &rhs );
39542       return *this;
39543     }
39544 
39545 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39546     VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
39547     {
39548       pNext = pNext_;
39549       return *this;
39550     }
39551 
setImageVULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39552     VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
39553     {
39554       image = image_;
39555       return *this;
39556     }
39557 
setOldLayoutVULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39558     VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
39559     {
39560       oldLayout = oldLayout_;
39561       return *this;
39562     }
39563 
setNewLayoutVULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39564     VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
39565     {
39566       newLayout = newLayout_;
39567       return *this;
39568     }
39569 
setSubresourceRangeVULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39570     VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
39571     {
39572       subresourceRange = subresourceRange_;
39573       return *this;
39574     }
39575 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
39576 
39577 
operator VkHostImageLayoutTransitionInfoEXT const&VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39578     operator VkHostImageLayoutTransitionInfoEXT const &() const VULKAN_HPP_NOEXCEPT
39579     {
39580       return *reinterpret_cast<const VkHostImageLayoutTransitionInfoEXT*>( this );
39581     }
39582 
operator VkHostImageLayoutTransitionInfoEXT&VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39583     operator VkHostImageLayoutTransitionInfoEXT &() VULKAN_HPP_NOEXCEPT
39584     {
39585       return *reinterpret_cast<VkHostImageLayoutTransitionInfoEXT*>( this );
39586     }
39587 
39588 #if defined( VULKAN_HPP_USE_REFLECT )
39589 #if 14 <= VULKAN_HPP_CPP_VERSION
39590     auto
39591 #else
39592     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
39593 #endif
reflectVULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39594       reflect() const VULKAN_HPP_NOEXCEPT
39595     {
39596       return std::tie( sType, pNext, image, oldLayout, newLayout, subresourceRange );
39597     }
39598 #endif
39599 
39600 
39601 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39602 auto operator<=>( HostImageLayoutTransitionInfoEXT const & ) const = default;
39603 #else
operator ==VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39604     bool operator==( HostImageLayoutTransitionInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39605     {
39606 #if defined( VULKAN_HPP_USE_REFLECT )
39607       return this->reflect() == rhs.reflect();
39608 #else
39609       return ( sType == rhs.sType )
39610           && ( pNext == rhs.pNext )
39611           && ( image == rhs.image )
39612           && ( oldLayout == rhs.oldLayout )
39613           && ( newLayout == rhs.newLayout )
39614           && ( subresourceRange == rhs.subresourceRange );
39615 #endif
39616     }
39617 
operator !=VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT39618     bool operator!=( HostImageLayoutTransitionInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39619     {
39620       return !operator==( rhs );
39621     }
39622 #endif
39623 
39624     public:
39625     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHostImageLayoutTransitionInfoEXT;
39626     const void * pNext = {};
39627     VULKAN_HPP_NAMESPACE::Image image = {};
39628     VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
39629     VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
39630     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
39631 
39632   };
39633 
39634   template <>
39635   struct CppType<StructureType, StructureType::eHostImageLayoutTransitionInfoEXT>
39636   {
39637     using Type = HostImageLayoutTransitionInfoEXT;
39638   };
39639 
39640 #if defined( VK_USE_PLATFORM_IOS_MVK )
39641   struct IOSSurfaceCreateInfoMVK
39642   {
39643     using NativeType = VkIOSSurfaceCreateInfoMVK;
39644 
39645     static const bool allowDuplicate = false;
39646     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK;
39647 
39648 
39649 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39650 VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {}, const void * pView_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
39651     : pNext( pNext_ ), flags( flags_ ), pView( pView_ )
39652     {}
39653 
39654     VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39655 
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39656     IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
39657       : IOSSurfaceCreateInfoMVK( *reinterpret_cast<IOSSurfaceCreateInfoMVK const *>( &rhs ) )
39658     {}
39659 
39660 
39661     IOSSurfaceCreateInfoMVK & operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39662 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
39663 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39664     IOSSurfaceCreateInfoMVK & operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
39665     {
39666       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const *>( &rhs );
39667       return *this;
39668     }
39669 
39670 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39671     VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
39672     {
39673       pNext = pNext_;
39674       return *this;
39675     }
39676 
setFlagsVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39677     VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
39678     {
39679       flags = flags_;
39680       return *this;
39681     }
39682 
setPViewVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39683     VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & setPView( const void * pView_ ) VULKAN_HPP_NOEXCEPT
39684     {
39685       pView = pView_;
39686       return *this;
39687     }
39688 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
39689 
39690 
operator VkIOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39691     operator VkIOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT
39692     {
39693       return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( this );
39694     }
39695 
operator VkIOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39696     operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
39697     {
39698       return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>( this );
39699     }
39700 
39701 #if defined( VULKAN_HPP_USE_REFLECT )
39702 #if 14 <= VULKAN_HPP_CPP_VERSION
39703     auto
39704 #else
39705     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK const &, const void * const &>
39706 #endif
reflectVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39707       reflect() const VULKAN_HPP_NOEXCEPT
39708     {
39709       return std::tie( sType, pNext, flags, pView );
39710     }
39711 #endif
39712 
39713 
39714 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39715 auto operator<=>( IOSSurfaceCreateInfoMVK const & ) const = default;
39716 #else
operator ==VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39717     bool operator==( IOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
39718     {
39719 #if defined( VULKAN_HPP_USE_REFLECT )
39720       return this->reflect() == rhs.reflect();
39721 #else
39722       return ( sType == rhs.sType )
39723           && ( pNext == rhs.pNext )
39724           && ( flags == rhs.flags )
39725           && ( pView == rhs.pView );
39726 #endif
39727     }
39728 
operator !=VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK39729     bool operator!=( IOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
39730     {
39731       return !operator==( rhs );
39732     }
39733 #endif
39734 
39735     public:
39736     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK;
39737     const void * pNext = {};
39738     VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {};
39739     const void * pView = {};
39740 
39741   };
39742 
39743   template <>
39744   struct CppType<StructureType, StructureType::eIosSurfaceCreateInfoMVK>
39745   {
39746     using Type = IOSSurfaceCreateInfoMVK;
39747   };
39748 #endif /*VK_USE_PLATFORM_IOS_MVK*/
39749 
39750   struct ImageBlit
39751   {
39752     using NativeType = VkImageBlit;
39753 
39754 
39755 
39756 
39757 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit39758 VULKAN_HPP_CONSTEXPR_14 ImageBlit(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ = {}) VULKAN_HPP_NOEXCEPT
39759     : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ )
39760     {}
39761 
39762     VULKAN_HPP_CONSTEXPR_14 ImageBlit( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39763 
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit39764     ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
39765       : ImageBlit( *reinterpret_cast<ImageBlit const *>( &rhs ) )
39766     {}
39767 
39768 
39769     ImageBlit & operator=( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39770 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
39771 
operator =VULKAN_HPP_NAMESPACE::ImageBlit39772     ImageBlit & operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
39773     {
39774       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit const *>( &rhs );
39775       return *this;
39776     }
39777 
39778 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit39779     VULKAN_HPP_CONSTEXPR_14 ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
39780     {
39781       srcSubresource = srcSubresource_;
39782       return *this;
39783     }
39784 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit39785     VULKAN_HPP_CONSTEXPR_14 ImageBlit & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
39786     {
39787       srcOffsets = srcOffsets_;
39788       return *this;
39789     }
39790 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit39791     VULKAN_HPP_CONSTEXPR_14 ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
39792     {
39793       dstSubresource = dstSubresource_;
39794       return *this;
39795     }
39796 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit39797     VULKAN_HPP_CONSTEXPR_14 ImageBlit & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
39798     {
39799       dstOffsets = dstOffsets_;
39800       return *this;
39801     }
39802 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
39803 
39804 
operator VkImageBlit const&VULKAN_HPP_NAMESPACE::ImageBlit39805     operator VkImageBlit const &() const VULKAN_HPP_NOEXCEPT
39806     {
39807       return *reinterpret_cast<const VkImageBlit*>( this );
39808     }
39809 
operator VkImageBlit&VULKAN_HPP_NAMESPACE::ImageBlit39810     operator VkImageBlit &() VULKAN_HPP_NOEXCEPT
39811     {
39812       return *reinterpret_cast<VkImageBlit*>( this );
39813     }
39814 
39815 #if defined( VULKAN_HPP_USE_REFLECT )
39816 #if 14 <= VULKAN_HPP_CPP_VERSION
39817     auto
39818 #else
39819     std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &>
39820 #endif
reflectVULKAN_HPP_NAMESPACE::ImageBlit39821       reflect() const VULKAN_HPP_NOEXCEPT
39822     {
39823       return std::tie( srcSubresource, srcOffsets, dstSubresource, dstOffsets );
39824     }
39825 #endif
39826 
39827 
39828 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39829 auto operator<=>( ImageBlit const & ) const = default;
39830 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit39831     bool operator==( ImageBlit const & rhs ) const VULKAN_HPP_NOEXCEPT
39832     {
39833 #if defined( VULKAN_HPP_USE_REFLECT )
39834       return this->reflect() == rhs.reflect();
39835 #else
39836       return ( srcSubresource == rhs.srcSubresource )
39837           && ( srcOffsets == rhs.srcOffsets )
39838           && ( dstSubresource == rhs.dstSubresource )
39839           && ( dstOffsets == rhs.dstOffsets );
39840 #endif
39841     }
39842 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit39843     bool operator!=( ImageBlit const & rhs ) const VULKAN_HPP_NOEXCEPT
39844     {
39845       return !operator==( rhs );
39846     }
39847 #endif
39848 
39849     public:
39850     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
39851     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
39852     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
39853     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
39854 
39855   };
39856 
39857   struct ImageCaptureDescriptorDataInfoEXT
39858   {
39859     using NativeType = VkImageCaptureDescriptorDataInfoEXT;
39860 
39861     static const bool allowDuplicate = false;
39862     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCaptureDescriptorDataInfoEXT;
39863 
39864 
39865 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCaptureDescriptorDataInfoEXTVULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT39866 VULKAN_HPP_CONSTEXPR ImageCaptureDescriptorDataInfoEXT(VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
39867     : pNext( pNext_ ), image( image_ )
39868     {}
39869 
39870     VULKAN_HPP_CONSTEXPR ImageCaptureDescriptorDataInfoEXT( ImageCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39871 
ImageCaptureDescriptorDataInfoEXTVULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT39872     ImageCaptureDescriptorDataInfoEXT( VkImageCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39873       : ImageCaptureDescriptorDataInfoEXT( *reinterpret_cast<ImageCaptureDescriptorDataInfoEXT const *>( &rhs ) )
39874     {}
39875 
39876 
39877     ImageCaptureDescriptorDataInfoEXT & operator=( ImageCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39878 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
39879 
operator =VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT39880     ImageCaptureDescriptorDataInfoEXT & operator=( VkImageCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39881     {
39882       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT const *>( &rhs );
39883       return *this;
39884     }
39885 
39886 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT39887     VULKAN_HPP_CONSTEXPR_14 ImageCaptureDescriptorDataInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
39888     {
39889       pNext = pNext_;
39890       return *this;
39891     }
39892 
setImageVULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT39893     VULKAN_HPP_CONSTEXPR_14 ImageCaptureDescriptorDataInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
39894     {
39895       image = image_;
39896       return *this;
39897     }
39898 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
39899 
39900 
operator VkImageCaptureDescriptorDataInfoEXT const&VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT39901     operator VkImageCaptureDescriptorDataInfoEXT const &() const VULKAN_HPP_NOEXCEPT
39902     {
39903       return *reinterpret_cast<const VkImageCaptureDescriptorDataInfoEXT*>( this );
39904     }
39905 
operator VkImageCaptureDescriptorDataInfoEXT&VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT39906     operator VkImageCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
39907     {
39908       return *reinterpret_cast<VkImageCaptureDescriptorDataInfoEXT*>( this );
39909     }
39910 
39911 #if defined( VULKAN_HPP_USE_REFLECT )
39912 #if 14 <= VULKAN_HPP_CPP_VERSION
39913     auto
39914 #else
39915     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &>
39916 #endif
reflectVULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT39917       reflect() const VULKAN_HPP_NOEXCEPT
39918     {
39919       return std::tie( sType, pNext, image );
39920     }
39921 #endif
39922 
39923 
39924 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39925 auto operator<=>( ImageCaptureDescriptorDataInfoEXT const & ) const = default;
39926 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT39927     bool operator==( ImageCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39928     {
39929 #if defined( VULKAN_HPP_USE_REFLECT )
39930       return this->reflect() == rhs.reflect();
39931 #else
39932       return ( sType == rhs.sType )
39933           && ( pNext == rhs.pNext )
39934           && ( image == rhs.image );
39935 #endif
39936     }
39937 
operator !=VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT39938     bool operator!=( ImageCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39939     {
39940       return !operator==( rhs );
39941     }
39942 #endif
39943 
39944     public:
39945     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCaptureDescriptorDataInfoEXT;
39946     const void * pNext = {};
39947     VULKAN_HPP_NAMESPACE::Image image = {};
39948 
39949   };
39950 
39951   template <>
39952   struct CppType<StructureType, StructureType::eImageCaptureDescriptorDataInfoEXT>
39953   {
39954     using Type = ImageCaptureDescriptorDataInfoEXT;
39955   };
39956 
39957   struct ImageCompressionControlEXT
39958   {
39959     using NativeType = VkImageCompressionControlEXT;
39960 
39961     static const bool allowDuplicate = false;
39962     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCompressionControlEXT;
39963 
39964 
39965 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCompressionControlEXTVULKAN_HPP_NAMESPACE::ImageCompressionControlEXT39966 VULKAN_HPP_CONSTEXPR ImageCompressionControlEXT(VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags_ = {}, uint32_t compressionControlPlaneCount_ = {}, VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
39967     : pNext( pNext_ ), flags( flags_ ), compressionControlPlaneCount( compressionControlPlaneCount_ ), pFixedRateFlags( pFixedRateFlags_ )
39968     {}
39969 
39970     VULKAN_HPP_CONSTEXPR ImageCompressionControlEXT( ImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39971 
ImageCompressionControlEXTVULKAN_HPP_NAMESPACE::ImageCompressionControlEXT39972     ImageCompressionControlEXT( VkImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39973       : ImageCompressionControlEXT( *reinterpret_cast<ImageCompressionControlEXT const *>( &rhs ) )
39974     {}
39975 
39976 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageCompressionControlEXTVULKAN_HPP_NAMESPACE::ImageCompressionControlEXT39977     ImageCompressionControlEXT( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT> const & fixedRateFlags_, const void * pNext_ = nullptr )
39978     : pNext( pNext_ ), flags( flags_ ), compressionControlPlaneCount( static_cast<uint32_t>( fixedRateFlags_.size() ) ), pFixedRateFlags( fixedRateFlags_.data() )
39979     {}
39980 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
39981 
39982 
39983     ImageCompressionControlEXT & operator=( ImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39984 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
39985 
operator =VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT39986     ImageCompressionControlEXT & operator=( VkImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39987     {
39988       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT const *>( &rhs );
39989       return *this;
39990     }
39991 
39992 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageCompressionControlEXT39993     VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
39994     {
39995       pNext = pNext_;
39996       return *this;
39997     }
39998 
setFlagsVULKAN_HPP_NAMESPACE::ImageCompressionControlEXT39999     VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT & setFlags( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
40000     {
40001       flags = flags_;
40002       return *this;
40003     }
40004 
setCompressionControlPlaneCountVULKAN_HPP_NAMESPACE::ImageCompressionControlEXT40005     VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT & setCompressionControlPlaneCount( uint32_t compressionControlPlaneCount_ ) VULKAN_HPP_NOEXCEPT
40006     {
40007       compressionControlPlaneCount = compressionControlPlaneCount_;
40008       return *this;
40009     }
40010 
setPFixedRateFlagsVULKAN_HPP_NAMESPACE::ImageCompressionControlEXT40011     VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT & setPFixedRateFlags( VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags_ ) VULKAN_HPP_NOEXCEPT
40012     {
40013       pFixedRateFlags = pFixedRateFlags_;
40014       return *this;
40015     }
40016 
40017 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setFixedRateFlagsVULKAN_HPP_NAMESPACE::ImageCompressionControlEXT40018     ImageCompressionControlEXT & setFixedRateFlags( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT> const & fixedRateFlags_ ) VULKAN_HPP_NOEXCEPT
40019     {
40020       compressionControlPlaneCount = static_cast<uint32_t>( fixedRateFlags_.size() );
40021       pFixedRateFlags = fixedRateFlags_.data();
40022       return *this;
40023     }
40024 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
40025 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
40026 
40027 
operator VkImageCompressionControlEXT const&VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT40028     operator VkImageCompressionControlEXT const &() const VULKAN_HPP_NOEXCEPT
40029     {
40030       return *reinterpret_cast<const VkImageCompressionControlEXT*>( this );
40031     }
40032 
operator VkImageCompressionControlEXT&VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT40033     operator VkImageCompressionControlEXT &() VULKAN_HPP_NOEXCEPT
40034     {
40035       return *reinterpret_cast<VkImageCompressionControlEXT*>( this );
40036     }
40037 
40038 #if defined( VULKAN_HPP_USE_REFLECT )
40039 #if 14 <= VULKAN_HPP_CPP_VERSION
40040     auto
40041 #else
40042     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * const &>
40043 #endif
reflectVULKAN_HPP_NAMESPACE::ImageCompressionControlEXT40044       reflect() const VULKAN_HPP_NOEXCEPT
40045     {
40046       return std::tie( sType, pNext, flags, compressionControlPlaneCount, pFixedRateFlags );
40047     }
40048 #endif
40049 
40050 
40051 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40052 auto operator<=>( ImageCompressionControlEXT const & ) const = default;
40053 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT40054     bool operator==( ImageCompressionControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40055     {
40056 #if defined( VULKAN_HPP_USE_REFLECT )
40057       return this->reflect() == rhs.reflect();
40058 #else
40059       return ( sType == rhs.sType )
40060           && ( pNext == rhs.pNext )
40061           && ( flags == rhs.flags )
40062           && ( compressionControlPlaneCount == rhs.compressionControlPlaneCount )
40063           && ( pFixedRateFlags == rhs.pFixedRateFlags );
40064 #endif
40065     }
40066 
operator !=VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT40067     bool operator!=( ImageCompressionControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40068     {
40069       return !operator==( rhs );
40070     }
40071 #endif
40072 
40073     public:
40074     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCompressionControlEXT;
40075     const void * pNext = {};
40076     VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags = {};
40077     uint32_t compressionControlPlaneCount = {};
40078     VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags = {};
40079 
40080   };
40081 
40082   template <>
40083   struct CppType<StructureType, StructureType::eImageCompressionControlEXT>
40084   {
40085     using Type = ImageCompressionControlEXT;
40086   };
40087 
40088   struct ImageCompressionPropertiesEXT
40089   {
40090     using NativeType = VkImageCompressionPropertiesEXT;
40091 
40092     static const bool allowDuplicate = false;
40093     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCompressionPropertiesEXT;
40094 
40095 
40096 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCompressionPropertiesEXTVULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT40097 VULKAN_HPP_CONSTEXPR ImageCompressionPropertiesEXT(VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT imageCompressionFlags_ = {}, VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
40098     : pNext( pNext_ ), imageCompressionFlags( imageCompressionFlags_ ), imageCompressionFixedRateFlags( imageCompressionFixedRateFlags_ )
40099     {}
40100 
40101     VULKAN_HPP_CONSTEXPR ImageCompressionPropertiesEXT( ImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40102 
ImageCompressionPropertiesEXTVULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT40103     ImageCompressionPropertiesEXT( VkImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
40104       : ImageCompressionPropertiesEXT( *reinterpret_cast<ImageCompressionPropertiesEXT const *>( &rhs ) )
40105     {}
40106 
40107 
40108     ImageCompressionPropertiesEXT & operator=( ImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40109 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
40110 
operator =VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT40111     ImageCompressionPropertiesEXT & operator=( VkImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
40112     {
40113       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT const *>( &rhs );
40114       return *this;
40115     }
40116 
40117 
operator VkImageCompressionPropertiesEXT const&VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT40118     operator VkImageCompressionPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
40119     {
40120       return *reinterpret_cast<const VkImageCompressionPropertiesEXT*>( this );
40121     }
40122 
operator VkImageCompressionPropertiesEXT&VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT40123     operator VkImageCompressionPropertiesEXT &() VULKAN_HPP_NOEXCEPT
40124     {
40125       return *reinterpret_cast<VkImageCompressionPropertiesEXT*>( this );
40126     }
40127 
40128 #if defined( VULKAN_HPP_USE_REFLECT )
40129 #if 14 <= VULKAN_HPP_CPP_VERSION
40130     auto
40131 #else
40132     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT const &, VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT const &>
40133 #endif
reflectVULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT40134       reflect() const VULKAN_HPP_NOEXCEPT
40135     {
40136       return std::tie( sType, pNext, imageCompressionFlags, imageCompressionFixedRateFlags );
40137     }
40138 #endif
40139 
40140 
40141 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40142 auto operator<=>( ImageCompressionPropertiesEXT const & ) const = default;
40143 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT40144     bool operator==( ImageCompressionPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40145     {
40146 #if defined( VULKAN_HPP_USE_REFLECT )
40147       return this->reflect() == rhs.reflect();
40148 #else
40149       return ( sType == rhs.sType )
40150           && ( pNext == rhs.pNext )
40151           && ( imageCompressionFlags == rhs.imageCompressionFlags )
40152           && ( imageCompressionFixedRateFlags == rhs.imageCompressionFixedRateFlags );
40153 #endif
40154     }
40155 
operator !=VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT40156     bool operator!=( ImageCompressionPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40157     {
40158       return !operator==( rhs );
40159     }
40160 #endif
40161 
40162     public:
40163     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCompressionPropertiesEXT;
40164     void * pNext = {};
40165     VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT imageCompressionFlags = {};
40166     VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags = {};
40167 
40168   };
40169 
40170   template <>
40171   struct CppType<StructureType, StructureType::eImageCompressionPropertiesEXT>
40172   {
40173     using Type = ImageCompressionPropertiesEXT;
40174   };
40175 
40176 #if defined( VK_USE_PLATFORM_FUCHSIA )
40177   struct ImageFormatConstraintsInfoFUCHSIA
40178   {
40179     using NativeType = VkImageFormatConstraintsInfoFUCHSIA;
40180 
40181     static const bool allowDuplicate = false;
40182     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatConstraintsInfoFUCHSIA;
40183 
40184 
40185 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatConstraintsInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40186 VULKAN_HPP_CONSTEXPR ImageFormatConstraintsInfoFUCHSIA(VULKAN_HPP_NAMESPACE::ImageCreateInfo imageCreateInfo_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ = {}, VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_ = {}, uint64_t sysmemPixelFormat_ = {}, uint32_t colorSpaceCount_ = {}, const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
40187     : pNext( pNext_ ), imageCreateInfo( imageCreateInfo_ ), requiredFormatFeatures( requiredFormatFeatures_ ), flags( flags_ ), sysmemPixelFormat( sysmemPixelFormat_ ), colorSpaceCount( colorSpaceCount_ ), pColorSpaces( pColorSpaces_ )
40188     {}
40189 
40190     VULKAN_HPP_CONSTEXPR ImageFormatConstraintsInfoFUCHSIA( ImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40191 
ImageFormatConstraintsInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40192     ImageFormatConstraintsInfoFUCHSIA( VkImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
40193       : ImageFormatConstraintsInfoFUCHSIA( *reinterpret_cast<ImageFormatConstraintsInfoFUCHSIA const *>( &rhs ) )
40194     {}
40195 
40196 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageFormatConstraintsInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40197     ImageFormatConstraintsInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImageCreateInfo imageCreateInfo_, VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_, VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_, uint64_t sysmemPixelFormat_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA> const & colorSpaces_, const void * pNext_ = nullptr )
40198     : pNext( pNext_ ), imageCreateInfo( imageCreateInfo_ ), requiredFormatFeatures( requiredFormatFeatures_ ), flags( flags_ ), sysmemPixelFormat( sysmemPixelFormat_ ), colorSpaceCount( static_cast<uint32_t>( colorSpaces_.size() ) ), pColorSpaces( colorSpaces_.data() )
40199     {}
40200 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
40201 
40202 
40203     ImageFormatConstraintsInfoFUCHSIA & operator=( ImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40204 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
40205 
operator =VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40206     ImageFormatConstraintsInfoFUCHSIA & operator=( VkImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
40207     {
40208       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA const *>( &rhs );
40209       return *this;
40210     }
40211 
40212 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40213     VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
40214     {
40215       pNext = pNext_;
40216       return *this;
40217     }
40218 
setImageCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40219     VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateInfo const & imageCreateInfo_ ) VULKAN_HPP_NOEXCEPT
40220     {
40221       imageCreateInfo = imageCreateInfo_;
40222       return *this;
40223     }
40224 
setRequiredFormatFeaturesVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40225     VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
40226     {
40227       requiredFormatFeatures = requiredFormatFeatures_;
40228       return *this;
40229     }
40230 
setFlagsVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40231     VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
40232     {
40233       flags = flags_;
40234       return *this;
40235     }
40236 
setSysmemPixelFormatVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40237     VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setSysmemPixelFormat( uint64_t sysmemPixelFormat_ ) VULKAN_HPP_NOEXCEPT
40238     {
40239       sysmemPixelFormat = sysmemPixelFormat_;
40240       return *this;
40241     }
40242 
setColorSpaceCountVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40243     VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setColorSpaceCount( uint32_t colorSpaceCount_ ) VULKAN_HPP_NOEXCEPT
40244     {
40245       colorSpaceCount = colorSpaceCount_;
40246       return *this;
40247     }
40248 
setPColorSpacesVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40249     VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setPColorSpaces( const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ ) VULKAN_HPP_NOEXCEPT
40250     {
40251       pColorSpaces = pColorSpaces_;
40252       return *this;
40253     }
40254 
40255 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setColorSpacesVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40256     ImageFormatConstraintsInfoFUCHSIA & setColorSpaces( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA> const & colorSpaces_ ) VULKAN_HPP_NOEXCEPT
40257     {
40258       colorSpaceCount = static_cast<uint32_t>( colorSpaces_.size() );
40259       pColorSpaces = colorSpaces_.data();
40260       return *this;
40261     }
40262 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
40263 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
40264 
40265 
operator VkImageFormatConstraintsInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40266     operator VkImageFormatConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
40267     {
40268       return *reinterpret_cast<const VkImageFormatConstraintsInfoFUCHSIA*>( this );
40269     }
40270 
operator VkImageFormatConstraintsInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40271     operator VkImageFormatConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
40272     {
40273       return *reinterpret_cast<VkImageFormatConstraintsInfoFUCHSIA*>( this );
40274     }
40275 
40276 #if defined( VULKAN_HPP_USE_REFLECT )
40277 #if 14 <= VULKAN_HPP_CPP_VERSION
40278     auto
40279 #else
40280     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageCreateInfo const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &, VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA const &, uint64_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * const &>
40281 #endif
reflectVULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40282       reflect() const VULKAN_HPP_NOEXCEPT
40283     {
40284       return std::tie( sType, pNext, imageCreateInfo, requiredFormatFeatures, flags, sysmemPixelFormat, colorSpaceCount, pColorSpaces );
40285     }
40286 #endif
40287 
40288 
40289 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40290 auto operator<=>( ImageFormatConstraintsInfoFUCHSIA const & ) const = default;
40291 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40292     bool operator==( ImageFormatConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
40293     {
40294 #if defined( VULKAN_HPP_USE_REFLECT )
40295       return this->reflect() == rhs.reflect();
40296 #else
40297       return ( sType == rhs.sType )
40298           && ( pNext == rhs.pNext )
40299           && ( imageCreateInfo == rhs.imageCreateInfo )
40300           && ( requiredFormatFeatures == rhs.requiredFormatFeatures )
40301           && ( flags == rhs.flags )
40302           && ( sysmemPixelFormat == rhs.sysmemPixelFormat )
40303           && ( colorSpaceCount == rhs.colorSpaceCount )
40304           && ( pColorSpaces == rhs.pColorSpaces );
40305 #endif
40306     }
40307 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA40308     bool operator!=( ImageFormatConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
40309     {
40310       return !operator==( rhs );
40311     }
40312 #endif
40313 
40314     public:
40315     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatConstraintsInfoFUCHSIA;
40316     const void * pNext = {};
40317     VULKAN_HPP_NAMESPACE::ImageCreateInfo imageCreateInfo = {};
40318     VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures = {};
40319     VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags = {};
40320     uint64_t sysmemPixelFormat = {};
40321     uint32_t colorSpaceCount = {};
40322     const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces = {};
40323 
40324   };
40325 
40326   template <>
40327   struct CppType<StructureType, StructureType::eImageFormatConstraintsInfoFUCHSIA>
40328   {
40329     using Type = ImageFormatConstraintsInfoFUCHSIA;
40330   };
40331 #endif /*VK_USE_PLATFORM_FUCHSIA*/
40332 
40333 #if defined( VK_USE_PLATFORM_FUCHSIA )
40334   struct ImageConstraintsInfoFUCHSIA
40335   {
40336     using NativeType = VkImageConstraintsInfoFUCHSIA;
40337 
40338     static const bool allowDuplicate = false;
40339     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageConstraintsInfoFUCHSIA;
40340 
40341 
40342 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageConstraintsInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40343 VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFUCHSIA(uint32_t formatConstraintsCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints_ = {}, VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {}, VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
40344     : pNext( pNext_ ), formatConstraintsCount( formatConstraintsCount_ ), pFormatConstraints( pFormatConstraints_ ), bufferCollectionConstraints( bufferCollectionConstraints_ ), flags( flags_ )
40345     {}
40346 
40347     VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFUCHSIA( ImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40348 
ImageConstraintsInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40349     ImageConstraintsInfoFUCHSIA( VkImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
40350       : ImageConstraintsInfoFUCHSIA( *reinterpret_cast<ImageConstraintsInfoFUCHSIA const *>( &rhs ) )
40351     {}
40352 
40353 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageConstraintsInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40354     ImageConstraintsInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA> const & formatConstraints_, VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {}, VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags_ = {}, const void * pNext_ = nullptr )
40355     : pNext( pNext_ ), formatConstraintsCount( static_cast<uint32_t>( formatConstraints_.size() ) ), pFormatConstraints( formatConstraints_.data() ), bufferCollectionConstraints( bufferCollectionConstraints_ ), flags( flags_ )
40356     {}
40357 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
40358 
40359 
40360     ImageConstraintsInfoFUCHSIA & operator=( ImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40361 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
40362 
operator =VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40363     ImageConstraintsInfoFUCHSIA & operator=( VkImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
40364     {
40365       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA const *>( &rhs );
40366       return *this;
40367     }
40368 
40369 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40370     VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
40371     {
40372       pNext = pNext_;
40373       return *this;
40374     }
40375 
setFormatConstraintsCountVULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40376     VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setFormatConstraintsCount( uint32_t formatConstraintsCount_ ) VULKAN_HPP_NOEXCEPT
40377     {
40378       formatConstraintsCount = formatConstraintsCount_;
40379       return *this;
40380     }
40381 
setPFormatConstraintsVULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40382     VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setPFormatConstraints( const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints_ ) VULKAN_HPP_NOEXCEPT
40383     {
40384       pFormatConstraints = pFormatConstraints_;
40385       return *this;
40386     }
40387 
40388 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setFormatConstraintsVULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40389     ImageConstraintsInfoFUCHSIA & setFormatConstraints( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA> const & formatConstraints_ ) VULKAN_HPP_NOEXCEPT
40390     {
40391       formatConstraintsCount = static_cast<uint32_t>( formatConstraints_.size() );
40392       pFormatConstraints = formatConstraints_.data();
40393       return *this;
40394     }
40395 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
40396 
setBufferCollectionConstraintsVULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40397     VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setBufferCollectionConstraints( VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const & bufferCollectionConstraints_ ) VULKAN_HPP_NOEXCEPT
40398     {
40399       bufferCollectionConstraints = bufferCollectionConstraints_;
40400       return *this;
40401     }
40402 
setFlagsVULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40403     VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
40404     {
40405       flags = flags_;
40406       return *this;
40407     }
40408 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
40409 
40410 
operator VkImageConstraintsInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40411     operator VkImageConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
40412     {
40413       return *reinterpret_cast<const VkImageConstraintsInfoFUCHSIA*>( this );
40414     }
40415 
operator VkImageConstraintsInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40416     operator VkImageConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
40417     {
40418       return *reinterpret_cast<VkImageConstraintsInfoFUCHSIA*>( this );
40419     }
40420 
40421 #if defined( VULKAN_HPP_USE_REFLECT )
40422 #if 14 <= VULKAN_HPP_CPP_VERSION
40423     auto
40424 #else
40425     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * const &, VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const &, VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA const &>
40426 #endif
reflectVULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40427       reflect() const VULKAN_HPP_NOEXCEPT
40428     {
40429       return std::tie( sType, pNext, formatConstraintsCount, pFormatConstraints, bufferCollectionConstraints, flags );
40430     }
40431 #endif
40432 
40433 
40434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40435 auto operator<=>( ImageConstraintsInfoFUCHSIA const & ) const = default;
40436 #else
operator ==VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40437     bool operator==( ImageConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
40438     {
40439 #if defined( VULKAN_HPP_USE_REFLECT )
40440       return this->reflect() == rhs.reflect();
40441 #else
40442       return ( sType == rhs.sType )
40443           && ( pNext == rhs.pNext )
40444           && ( formatConstraintsCount == rhs.formatConstraintsCount )
40445           && ( pFormatConstraints == rhs.pFormatConstraints )
40446           && ( bufferCollectionConstraints == rhs.bufferCollectionConstraints )
40447           && ( flags == rhs.flags );
40448 #endif
40449     }
40450 
operator !=VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA40451     bool operator!=( ImageConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
40452     {
40453       return !operator==( rhs );
40454     }
40455 #endif
40456 
40457     public:
40458     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageConstraintsInfoFUCHSIA;
40459     const void * pNext = {};
40460     uint32_t formatConstraintsCount = {};
40461     const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints = {};
40462     VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints = {};
40463     VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags = {};
40464 
40465   };
40466 
40467   template <>
40468   struct CppType<StructureType, StructureType::eImageConstraintsInfoFUCHSIA>
40469   {
40470     using Type = ImageConstraintsInfoFUCHSIA;
40471   };
40472 #endif /*VK_USE_PLATFORM_FUCHSIA*/
40473 
40474   struct ImageCopy
40475   {
40476     using NativeType = VkImageCopy;
40477 
40478 
40479 
40480 
40481 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy40482 VULKAN_HPP_CONSTEXPR ImageCopy(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT
40483     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
40484     {}
40485 
40486     VULKAN_HPP_CONSTEXPR ImageCopy( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40487 
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy40488     ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
40489       : ImageCopy( *reinterpret_cast<ImageCopy const *>( &rhs ) )
40490     {}
40491 
40492 
40493     ImageCopy & operator=( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40494 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
40495 
operator =VULKAN_HPP_NAMESPACE::ImageCopy40496     ImageCopy & operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
40497     {
40498       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy const *>( &rhs );
40499       return *this;
40500     }
40501 
40502 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy40503     VULKAN_HPP_CONSTEXPR_14 ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
40504     {
40505       srcSubresource = srcSubresource_;
40506       return *this;
40507     }
40508 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy40509     VULKAN_HPP_CONSTEXPR_14 ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
40510     {
40511       srcOffset = srcOffset_;
40512       return *this;
40513     }
40514 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy40515     VULKAN_HPP_CONSTEXPR_14 ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
40516     {
40517       dstSubresource = dstSubresource_;
40518       return *this;
40519     }
40520 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy40521     VULKAN_HPP_CONSTEXPR_14 ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
40522     {
40523       dstOffset = dstOffset_;
40524       return *this;
40525     }
40526 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy40527     VULKAN_HPP_CONSTEXPR_14 ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
40528     {
40529       extent = extent_;
40530       return *this;
40531     }
40532 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
40533 
40534 
operator VkImageCopy const&VULKAN_HPP_NAMESPACE::ImageCopy40535     operator VkImageCopy const &() const VULKAN_HPP_NOEXCEPT
40536     {
40537       return *reinterpret_cast<const VkImageCopy*>( this );
40538     }
40539 
operator VkImageCopy&VULKAN_HPP_NAMESPACE::ImageCopy40540     operator VkImageCopy &() VULKAN_HPP_NOEXCEPT
40541     {
40542       return *reinterpret_cast<VkImageCopy*>( this );
40543     }
40544 
40545 #if defined( VULKAN_HPP_USE_REFLECT )
40546 #if 14 <= VULKAN_HPP_CPP_VERSION
40547     auto
40548 #else
40549     std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
40550 #endif
reflectVULKAN_HPP_NAMESPACE::ImageCopy40551       reflect() const VULKAN_HPP_NOEXCEPT
40552     {
40553       return std::tie( srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
40554     }
40555 #endif
40556 
40557 
40558 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40559 auto operator<=>( ImageCopy const & ) const = default;
40560 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy40561     bool operator==( ImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
40562     {
40563 #if defined( VULKAN_HPP_USE_REFLECT )
40564       return this->reflect() == rhs.reflect();
40565 #else
40566       return ( srcSubresource == rhs.srcSubresource )
40567           && ( srcOffset == rhs.srcOffset )
40568           && ( dstSubresource == rhs.dstSubresource )
40569           && ( dstOffset == rhs.dstOffset )
40570           && ( extent == rhs.extent );
40571 #endif
40572     }
40573 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy40574     bool operator!=( ImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
40575     {
40576       return !operator==( rhs );
40577     }
40578 #endif
40579 
40580     public:
40581     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
40582     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
40583     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
40584     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
40585     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
40586 
40587   };
40588 
40589   struct SubresourceLayout
40590   {
40591     using NativeType = VkSubresourceLayout;
40592 
40593 
40594 
40595 
40596 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout40597 VULKAN_HPP_CONSTEXPR SubresourceLayout(VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ = {}) VULKAN_HPP_NOEXCEPT
40598     : offset( offset_ ), size( size_ ), rowPitch( rowPitch_ ), arrayPitch( arrayPitch_ ), depthPitch( depthPitch_ )
40599     {}
40600 
40601     VULKAN_HPP_CONSTEXPR SubresourceLayout( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40602 
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout40603     SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
40604       : SubresourceLayout( *reinterpret_cast<SubresourceLayout const *>( &rhs ) )
40605     {}
40606 
40607 
40608     SubresourceLayout & operator=( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40609 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
40610 
operator =VULKAN_HPP_NAMESPACE::SubresourceLayout40611     SubresourceLayout & operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
40612     {
40613       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout const *>( &rhs );
40614       return *this;
40615     }
40616 
40617 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setOffsetVULKAN_HPP_NAMESPACE::SubresourceLayout40618     VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
40619     {
40620       offset = offset_;
40621       return *this;
40622     }
40623 
setSizeVULKAN_HPP_NAMESPACE::SubresourceLayout40624     VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
40625     {
40626       size = size_;
40627       return *this;
40628     }
40629 
setRowPitchVULKAN_HPP_NAMESPACE::SubresourceLayout40630     VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & setRowPitch( VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ ) VULKAN_HPP_NOEXCEPT
40631     {
40632       rowPitch = rowPitch_;
40633       return *this;
40634     }
40635 
setArrayPitchVULKAN_HPP_NAMESPACE::SubresourceLayout40636     VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & setArrayPitch( VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ ) VULKAN_HPP_NOEXCEPT
40637     {
40638       arrayPitch = arrayPitch_;
40639       return *this;
40640     }
40641 
setDepthPitchVULKAN_HPP_NAMESPACE::SubresourceLayout40642     VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & setDepthPitch( VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ ) VULKAN_HPP_NOEXCEPT
40643     {
40644       depthPitch = depthPitch_;
40645       return *this;
40646     }
40647 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
40648 
40649 
operator VkSubresourceLayout const&VULKAN_HPP_NAMESPACE::SubresourceLayout40650     operator VkSubresourceLayout const &() const VULKAN_HPP_NOEXCEPT
40651     {
40652       return *reinterpret_cast<const VkSubresourceLayout*>( this );
40653     }
40654 
operator VkSubresourceLayout&VULKAN_HPP_NAMESPACE::SubresourceLayout40655     operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT
40656     {
40657       return *reinterpret_cast<VkSubresourceLayout*>( this );
40658     }
40659 
40660 #if defined( VULKAN_HPP_USE_REFLECT )
40661 #if 14 <= VULKAN_HPP_CPP_VERSION
40662     auto
40663 #else
40664     std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
40665 #endif
reflectVULKAN_HPP_NAMESPACE::SubresourceLayout40666       reflect() const VULKAN_HPP_NOEXCEPT
40667     {
40668       return std::tie( offset, size, rowPitch, arrayPitch, depthPitch );
40669     }
40670 #endif
40671 
40672 
40673 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40674 auto operator<=>( SubresourceLayout const & ) const = default;
40675 #else
operator ==VULKAN_HPP_NAMESPACE::SubresourceLayout40676     bool operator==( SubresourceLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
40677     {
40678 #if defined( VULKAN_HPP_USE_REFLECT )
40679       return this->reflect() == rhs.reflect();
40680 #else
40681       return ( offset == rhs.offset )
40682           && ( size == rhs.size )
40683           && ( rowPitch == rhs.rowPitch )
40684           && ( arrayPitch == rhs.arrayPitch )
40685           && ( depthPitch == rhs.depthPitch );
40686 #endif
40687     }
40688 
operator !=VULKAN_HPP_NAMESPACE::SubresourceLayout40689     bool operator!=( SubresourceLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
40690     {
40691       return !operator==( rhs );
40692     }
40693 #endif
40694 
40695     public:
40696     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
40697     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
40698     VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {};
40699     VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {};
40700     VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {};
40701 
40702   };
40703 
40704   struct ImageDrmFormatModifierExplicitCreateInfoEXT
40705   {
40706     using NativeType = VkImageDrmFormatModifierExplicitCreateInfoEXT;
40707 
40708     static const bool allowDuplicate = false;
40709     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
40710 
40711 
40712 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40713 VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
40714     : pNext( pNext_ ), drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), pPlaneLayouts( pPlaneLayouts_ )
40715     {}
40716 
40717     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40718 
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40719     ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
40720       : ImageDrmFormatModifierExplicitCreateInfoEXT( *reinterpret_cast<ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs ) )
40721     {}
40722 
40723 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40724     ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_, const void * pNext_ = nullptr )
40725     : pNext( pNext_ ), drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( static_cast<uint32_t>( planeLayouts_.size() ) ), pPlaneLayouts( planeLayouts_.data() )
40726     {}
40727 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
40728 
40729 
40730     ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40731 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
40732 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40733     ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
40734     {
40735       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs );
40736       return *this;
40737     }
40738 
40739 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40740     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
40741     {
40742       pNext = pNext_;
40743       return *this;
40744     }
40745 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40746     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
40747     {
40748       drmFormatModifier = drmFormatModifier_;
40749       return *this;
40750     }
40751 
setDrmFormatModifierPlaneCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40752     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT
40753     {
40754       drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
40755       return *this;
40756     }
40757 
setPPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40758     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT
40759     {
40760       pPlaneLayouts = pPlaneLayouts_;
40761       return *this;
40762     }
40763 
40764 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40765     ImageDrmFormatModifierExplicitCreateInfoEXT & setPlaneLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ ) VULKAN_HPP_NOEXCEPT
40766     {
40767       drmFormatModifierPlaneCount = static_cast<uint32_t>( planeLayouts_.size() );
40768       pPlaneLayouts = planeLayouts_.data();
40769       return *this;
40770     }
40771 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
40772 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
40773 
40774 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40775     operator VkImageDrmFormatModifierExplicitCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
40776     {
40777       return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
40778     }
40779 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40780     operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
40781     {
40782       return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
40783     }
40784 
40785 #if defined( VULKAN_HPP_USE_REFLECT )
40786 #if 14 <= VULKAN_HPP_CPP_VERSION
40787     auto
40788 #else
40789     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SubresourceLayout * const &>
40790 #endif
reflectVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40791       reflect() const VULKAN_HPP_NOEXCEPT
40792     {
40793       return std::tie( sType, pNext, drmFormatModifier, drmFormatModifierPlaneCount, pPlaneLayouts );
40794     }
40795 #endif
40796 
40797 
40798 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40799 auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const & ) const = default;
40800 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40801     bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40802     {
40803 #if defined( VULKAN_HPP_USE_REFLECT )
40804       return this->reflect() == rhs.reflect();
40805 #else
40806       return ( sType == rhs.sType )
40807           && ( pNext == rhs.pNext )
40808           && ( drmFormatModifier == rhs.drmFormatModifier )
40809           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
40810           && ( pPlaneLayouts == rhs.pPlaneLayouts );
40811 #endif
40812     }
40813 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT40814     bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40815     {
40816       return !operator==( rhs );
40817     }
40818 #endif
40819 
40820     public:
40821     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
40822     const void * pNext = {};
40823     uint64_t drmFormatModifier = {};
40824     uint32_t drmFormatModifierPlaneCount = {};
40825     const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts = {};
40826 
40827   };
40828 
40829   template <>
40830   struct CppType<StructureType, StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT>
40831   {
40832     using Type = ImageDrmFormatModifierExplicitCreateInfoEXT;
40833   };
40834 
40835   struct ImageDrmFormatModifierListCreateInfoEXT
40836   {
40837     using NativeType = VkImageDrmFormatModifierListCreateInfoEXT;
40838 
40839     static const bool allowDuplicate = false;
40840     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
40841 
40842 
40843 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40844 VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT(uint32_t drmFormatModifierCount_ = {}, const uint64_t * pDrmFormatModifiers_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
40845     : pNext( pNext_ ), drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifiers( pDrmFormatModifiers_ )
40846     {}
40847 
40848     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40849 
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40850     ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
40851       : ImageDrmFormatModifierListCreateInfoEXT( *reinterpret_cast<ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs ) )
40852     {}
40853 
40854 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40855     ImageDrmFormatModifierListCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_, const void * pNext_ = nullptr )
40856     : pNext( pNext_ ), drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifiers_.size() ) ), pDrmFormatModifiers( drmFormatModifiers_.data() )
40857     {}
40858 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
40859 
40860 
40861     ImageDrmFormatModifierListCreateInfoEXT & operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40862 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
40863 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40864     ImageDrmFormatModifierListCreateInfoEXT & operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
40865     {
40866       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs );
40867       return *this;
40868     }
40869 
40870 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40871     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
40872     {
40873       pNext = pNext_;
40874       return *this;
40875     }
40876 
setDrmFormatModifierCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40877     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT
40878     {
40879       drmFormatModifierCount = drmFormatModifierCount_;
40880       return *this;
40881     }
40882 
setPDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40883     VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t * pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
40884     {
40885       pDrmFormatModifiers = pDrmFormatModifiers_;
40886       return *this;
40887     }
40888 
40889 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40890     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifiers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
40891     {
40892       drmFormatModifierCount = static_cast<uint32_t>( drmFormatModifiers_.size() );
40893       pDrmFormatModifiers = drmFormatModifiers_.data();
40894       return *this;
40895     }
40896 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
40897 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
40898 
40899 
operator VkImageDrmFormatModifierListCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40900     operator VkImageDrmFormatModifierListCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
40901     {
40902       return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>( this );
40903     }
40904 
operator VkImageDrmFormatModifierListCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40905     operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
40906     {
40907       return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>( this );
40908     }
40909 
40910 #if defined( VULKAN_HPP_USE_REFLECT )
40911 #if 14 <= VULKAN_HPP_CPP_VERSION
40912     auto
40913 #else
40914     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint64_t * const &>
40915 #endif
reflectVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40916       reflect() const VULKAN_HPP_NOEXCEPT
40917     {
40918       return std::tie( sType, pNext, drmFormatModifierCount, pDrmFormatModifiers );
40919     }
40920 #endif
40921 
40922 
40923 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40924 auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const & ) const = default;
40925 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40926     bool operator==( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40927     {
40928 #if defined( VULKAN_HPP_USE_REFLECT )
40929       return this->reflect() == rhs.reflect();
40930 #else
40931       return ( sType == rhs.sType )
40932           && ( pNext == rhs.pNext )
40933           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
40934           && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers );
40935 #endif
40936     }
40937 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT40938     bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
40939     {
40940       return !operator==( rhs );
40941     }
40942 #endif
40943 
40944     public:
40945     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
40946     const void * pNext = {};
40947     uint32_t drmFormatModifierCount = {};
40948     const uint64_t * pDrmFormatModifiers = {};
40949 
40950   };
40951 
40952   template <>
40953   struct CppType<StructureType, StructureType::eImageDrmFormatModifierListCreateInfoEXT>
40954   {
40955     using Type = ImageDrmFormatModifierListCreateInfoEXT;
40956   };
40957 
40958   struct ImageDrmFormatModifierPropertiesEXT
40959   {
40960     using NativeType = VkImageDrmFormatModifierPropertiesEXT;
40961 
40962     static const bool allowDuplicate = false;
40963     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierPropertiesEXT;
40964 
40965 
40966 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT40967 VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
40968     : pNext( pNext_ ), drmFormatModifier( drmFormatModifier_ )
40969     {}
40970 
40971     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40972 
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT40973     ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
40974       : ImageDrmFormatModifierPropertiesEXT( *reinterpret_cast<ImageDrmFormatModifierPropertiesEXT const *>( &rhs ) )
40975     {}
40976 
40977 
40978     ImageDrmFormatModifierPropertiesEXT & operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40979 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
40980 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT40981     ImageDrmFormatModifierPropertiesEXT & operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
40982     {
40983       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const *>( &rhs );
40984       return *this;
40985     }
40986 
40987 
operator VkImageDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT40988     operator VkImageDrmFormatModifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
40989     {
40990       return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT*>( this );
40991     }
40992 
operator VkImageDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT40993     operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
40994     {
40995       return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( this );
40996     }
40997 
40998 #if defined( VULKAN_HPP_USE_REFLECT )
40999 #if 14 <= VULKAN_HPP_CPP_VERSION
41000     auto
41001 #else
41002     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
41003 #endif
reflectVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT41004       reflect() const VULKAN_HPP_NOEXCEPT
41005     {
41006       return std::tie( sType, pNext, drmFormatModifier );
41007     }
41008 #endif
41009 
41010 
41011 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41012 auto operator<=>( ImageDrmFormatModifierPropertiesEXT const & ) const = default;
41013 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT41014     bool operator==( ImageDrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
41015     {
41016 #if defined( VULKAN_HPP_USE_REFLECT )
41017       return this->reflect() == rhs.reflect();
41018 #else
41019       return ( sType == rhs.sType )
41020           && ( pNext == rhs.pNext )
41021           && ( drmFormatModifier == rhs.drmFormatModifier );
41022 #endif
41023     }
41024 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT41025     bool operator!=( ImageDrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
41026     {
41027       return !operator==( rhs );
41028     }
41029 #endif
41030 
41031     public:
41032     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT;
41033     void * pNext = {};
41034     uint64_t drmFormatModifier = {};
41035 
41036   };
41037 
41038   template <>
41039   struct CppType<StructureType, StructureType::eImageDrmFormatModifierPropertiesEXT>
41040   {
41041     using Type = ImageDrmFormatModifierPropertiesEXT;
41042   };
41043 
41044   struct ImageFormatListCreateInfo
41045   {
41046     using NativeType = VkImageFormatListCreateInfo;
41047 
41048     static const bool allowDuplicate = false;
41049     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo;
41050 
41051 
41052 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41053 VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo(uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
41054     : pNext( pNext_ ), viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ )
41055     {}
41056 
41057     VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41058 
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41059     ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41060       : ImageFormatListCreateInfo( *reinterpret_cast<ImageFormatListCreateInfo const *>( &rhs ) )
41061     {}
41062 
41063 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41064     ImageFormatListCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_, const void * pNext_ = nullptr )
41065     : pNext( pNext_ ), viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
41066     {}
41067 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
41068 
41069 
41070     ImageFormatListCreateInfo & operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41071 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
41072 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41073     ImageFormatListCreateInfo & operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41074     {
41075       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const *>( &rhs );
41076       return *this;
41077     }
41078 
41079 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41080     VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
41081     {
41082       pNext = pNext_;
41083       return *this;
41084     }
41085 
setViewFormatCountVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41086     VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
41087     {
41088       viewFormatCount = viewFormatCount_;
41089       return *this;
41090     }
41091 
setPViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41092     VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ ) VULKAN_HPP_NOEXCEPT
41093     {
41094       pViewFormats = pViewFormats_;
41095       return *this;
41096     }
41097 
41098 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41099     ImageFormatListCreateInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
41100     {
41101       viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
41102       pViewFormats = viewFormats_.data();
41103       return *this;
41104     }
41105 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
41106 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
41107 
41108 
operator VkImageFormatListCreateInfo const&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41109     operator VkImageFormatListCreateInfo const &() const VULKAN_HPP_NOEXCEPT
41110     {
41111       return *reinterpret_cast<const VkImageFormatListCreateInfo*>( this );
41112     }
41113 
operator VkImageFormatListCreateInfo&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41114     operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT
41115     {
41116       return *reinterpret_cast<VkImageFormatListCreateInfo*>( this );
41117     }
41118 
41119 #if defined( VULKAN_HPP_USE_REFLECT )
41120 #if 14 <= VULKAN_HPP_CPP_VERSION
41121     auto
41122 #else
41123     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Format * const &>
41124 #endif
reflectVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41125       reflect() const VULKAN_HPP_NOEXCEPT
41126     {
41127       return std::tie( sType, pNext, viewFormatCount, pViewFormats );
41128     }
41129 #endif
41130 
41131 
41132 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41133 auto operator<=>( ImageFormatListCreateInfo const & ) const = default;
41134 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41135     bool operator==( ImageFormatListCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
41136     {
41137 #if defined( VULKAN_HPP_USE_REFLECT )
41138       return this->reflect() == rhs.reflect();
41139 #else
41140       return ( sType == rhs.sType )
41141           && ( pNext == rhs.pNext )
41142           && ( viewFormatCount == rhs.viewFormatCount )
41143           && ( pViewFormats == rhs.pViewFormats );
41144 #endif
41145     }
41146 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo41147     bool operator!=( ImageFormatListCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
41148     {
41149       return !operator==( rhs );
41150     }
41151 #endif
41152 
41153     public:
41154     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo;
41155     const void * pNext = {};
41156     uint32_t viewFormatCount = {};
41157     const VULKAN_HPP_NAMESPACE::Format * pViewFormats = {};
41158 
41159   };
41160 
41161   template <>
41162   struct CppType<StructureType, StructureType::eImageFormatListCreateInfo>
41163   {
41164     using Type = ImageFormatListCreateInfo;
41165   };
41166   using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
41167 
41168   struct ImageFormatProperties2
41169   {
41170     using NativeType = VkImageFormatProperties2;
41171 
41172     static const bool allowDuplicate = false;
41173     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2;
41174 
41175 
41176 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties241177 VULKAN_HPP_CONSTEXPR ImageFormatProperties2(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
41178     : pNext( pNext_ ), imageFormatProperties( imageFormatProperties_ )
41179     {}
41180 
41181     VULKAN_HPP_CONSTEXPR ImageFormatProperties2( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41182 
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties241183     ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
41184       : ImageFormatProperties2( *reinterpret_cast<ImageFormatProperties2 const *>( &rhs ) )
41185     {}
41186 
41187 
41188     ImageFormatProperties2 & operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41189 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
41190 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties241191     ImageFormatProperties2 & operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
41192     {
41193       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const *>( &rhs );
41194       return *this;
41195     }
41196 
41197 
operator VkImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::ImageFormatProperties241198     operator VkImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
41199     {
41200       return *reinterpret_cast<const VkImageFormatProperties2*>( this );
41201     }
41202 
operator VkImageFormatProperties2&VULKAN_HPP_NAMESPACE::ImageFormatProperties241203     operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
41204     {
41205       return *reinterpret_cast<VkImageFormatProperties2*>( this );
41206     }
41207 
41208 #if defined( VULKAN_HPP_USE_REFLECT )
41209 #if 14 <= VULKAN_HPP_CPP_VERSION
41210     auto
41211 #else
41212     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageFormatProperties const &>
41213 #endif
reflectVULKAN_HPP_NAMESPACE::ImageFormatProperties241214       reflect() const VULKAN_HPP_NOEXCEPT
41215     {
41216       return std::tie( sType, pNext, imageFormatProperties );
41217     }
41218 #endif
41219 
41220 
41221 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41222 auto operator<=>( ImageFormatProperties2 const & ) const = default;
41223 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties241224     bool operator==( ImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
41225     {
41226 #if defined( VULKAN_HPP_USE_REFLECT )
41227       return this->reflect() == rhs.reflect();
41228 #else
41229       return ( sType == rhs.sType )
41230           && ( pNext == rhs.pNext )
41231           && ( imageFormatProperties == rhs.imageFormatProperties );
41232 #endif
41233     }
41234 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties241235     bool operator!=( ImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
41236     {
41237       return !operator==( rhs );
41238     }
41239 #endif
41240 
41241     public:
41242     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2;
41243     void * pNext = {};
41244     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
41245 
41246   };
41247 
41248   template <>
41249   struct CppType<StructureType, StructureType::eImageFormatProperties2>
41250   {
41251     using Type = ImageFormatProperties2;
41252   };
41253   using ImageFormatProperties2KHR = ImageFormatProperties2;
41254 
41255   struct ImageMemoryBarrier
41256   {
41257     using NativeType = VkImageMemoryBarrier;
41258 
41259     static const bool allowDuplicate = false;
41260     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier;
41261 
41262 
41263 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41264 VULKAN_HPP_CONSTEXPR ImageMemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
41265     : pNext( pNext_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), image( image_ ), subresourceRange( subresourceRange_ )
41266     {}
41267 
41268     VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41269 
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41270     ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
41271       : ImageMemoryBarrier( *reinterpret_cast<ImageMemoryBarrier const *>( &rhs ) )
41272     {}
41273 
41274 
41275     ImageMemoryBarrier & operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41276 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
41277 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier41278     ImageMemoryBarrier & operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
41279     {
41280       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const *>( &rhs );
41281       return *this;
41282     }
41283 
41284 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41285     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
41286     {
41287       pNext = pNext_;
41288       return *this;
41289     }
41290 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41291     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
41292     {
41293       srcAccessMask = srcAccessMask_;
41294       return *this;
41295     }
41296 
setDstAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41297     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
41298     {
41299       dstAccessMask = dstAccessMask_;
41300       return *this;
41301     }
41302 
setOldLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41303     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
41304     {
41305       oldLayout = oldLayout_;
41306       return *this;
41307     }
41308 
setNewLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41309     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
41310     {
41311       newLayout = newLayout_;
41312       return *this;
41313     }
41314 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41315     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
41316     {
41317       srcQueueFamilyIndex = srcQueueFamilyIndex_;
41318       return *this;
41319     }
41320 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41321     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
41322     {
41323       dstQueueFamilyIndex = dstQueueFamilyIndex_;
41324       return *this;
41325     }
41326 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41327     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
41328     {
41329       image = image_;
41330       return *this;
41331     }
41332 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41333     VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
41334     {
41335       subresourceRange = subresourceRange_;
41336       return *this;
41337     }
41338 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
41339 
41340 
operator VkImageMemoryBarrier const&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier41341     operator VkImageMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
41342     {
41343       return *reinterpret_cast<const VkImageMemoryBarrier*>( this );
41344     }
41345 
operator VkImageMemoryBarrier&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier41346     operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT
41347     {
41348       return *reinterpret_cast<VkImageMemoryBarrier*>( this );
41349     }
41350 
41351 #if defined( VULKAN_HPP_USE_REFLECT )
41352 #if 14 <= VULKAN_HPP_CPP_VERSION
41353     auto
41354 #else
41355     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccessFlags const &, VULKAN_HPP_NAMESPACE::AccessFlags const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
41356 #endif
reflectVULKAN_HPP_NAMESPACE::ImageMemoryBarrier41357       reflect() const VULKAN_HPP_NOEXCEPT
41358     {
41359       return std::tie( sType, pNext, srcAccessMask, dstAccessMask, oldLayout, newLayout, srcQueueFamilyIndex, dstQueueFamilyIndex, image, subresourceRange );
41360     }
41361 #endif
41362 
41363 
41364 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41365 auto operator<=>( ImageMemoryBarrier const & ) const = default;
41366 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryBarrier41367     bool operator==( ImageMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
41368     {
41369 #if defined( VULKAN_HPP_USE_REFLECT )
41370       return this->reflect() == rhs.reflect();
41371 #else
41372       return ( sType == rhs.sType )
41373           && ( pNext == rhs.pNext )
41374           && ( srcAccessMask == rhs.srcAccessMask )
41375           && ( dstAccessMask == rhs.dstAccessMask )
41376           && ( oldLayout == rhs.oldLayout )
41377           && ( newLayout == rhs.newLayout )
41378           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
41379           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
41380           && ( image == rhs.image )
41381           && ( subresourceRange == rhs.subresourceRange );
41382 #endif
41383     }
41384 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryBarrier41385     bool operator!=( ImageMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
41386     {
41387       return !operator==( rhs );
41388     }
41389 #endif
41390 
41391     public:
41392     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier;
41393     const void * pNext = {};
41394     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
41395     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
41396     VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
41397     VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
41398     uint32_t srcQueueFamilyIndex = {};
41399     uint32_t dstQueueFamilyIndex = {};
41400     VULKAN_HPP_NAMESPACE::Image image = {};
41401     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
41402 
41403   };
41404 
41405   template <>
41406   struct CppType<StructureType, StructureType::eImageMemoryBarrier>
41407   {
41408     using Type = ImageMemoryBarrier;
41409   };
41410 
41411   struct ImageMemoryRequirementsInfo2
41412   {
41413     using NativeType = VkImageMemoryRequirementsInfo2;
41414 
41415     static const bool allowDuplicate = false;
41416     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2;
41417 
41418 
41419 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo241420 VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
41421     : pNext( pNext_ ), image( image_ )
41422     {}
41423 
41424     VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41425 
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo241426     ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41427       : ImageMemoryRequirementsInfo2( *reinterpret_cast<ImageMemoryRequirementsInfo2 const *>( &rhs ) )
41428     {}
41429 
41430 
41431     ImageMemoryRequirementsInfo2 & operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41432 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
41433 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo241434     ImageMemoryRequirementsInfo2 & operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41435     {
41436       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const *>( &rhs );
41437       return *this;
41438     }
41439 
41440 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo241441     VULKAN_HPP_CONSTEXPR_14 ImageMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
41442     {
41443       pNext = pNext_;
41444       return *this;
41445     }
41446 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo241447     VULKAN_HPP_CONSTEXPR_14 ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
41448     {
41449       image = image_;
41450       return *this;
41451     }
41452 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
41453 
41454 
operator VkImageMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo241455     operator VkImageMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
41456     {
41457       return *reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( this );
41458     }
41459 
operator VkImageMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo241460     operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
41461     {
41462       return *reinterpret_cast<VkImageMemoryRequirementsInfo2*>( this );
41463     }
41464 
41465 #if defined( VULKAN_HPP_USE_REFLECT )
41466 #if 14 <= VULKAN_HPP_CPP_VERSION
41467     auto
41468 #else
41469     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &>
41470 #endif
reflectVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo241471       reflect() const VULKAN_HPP_NOEXCEPT
41472     {
41473       return std::tie( sType, pNext, image );
41474     }
41475 #endif
41476 
41477 
41478 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41479 auto operator<=>( ImageMemoryRequirementsInfo2 const & ) const = default;
41480 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo241481     bool operator==( ImageMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
41482     {
41483 #if defined( VULKAN_HPP_USE_REFLECT )
41484       return this->reflect() == rhs.reflect();
41485 #else
41486       return ( sType == rhs.sType )
41487           && ( pNext == rhs.pNext )
41488           && ( image == rhs.image );
41489 #endif
41490     }
41491 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo241492     bool operator!=( ImageMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
41493     {
41494       return !operator==( rhs );
41495     }
41496 #endif
41497 
41498     public:
41499     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2;
41500     const void * pNext = {};
41501     VULKAN_HPP_NAMESPACE::Image image = {};
41502 
41503   };
41504 
41505   template <>
41506   struct CppType<StructureType, StructureType::eImageMemoryRequirementsInfo2>
41507   {
41508     using Type = ImageMemoryRequirementsInfo2;
41509   };
41510   using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
41511 
41512 #if defined( VK_USE_PLATFORM_FUCHSIA )
41513   struct ImagePipeSurfaceCreateInfoFUCHSIA
41514   {
41515     using NativeType = VkImagePipeSurfaceCreateInfoFUCHSIA;
41516 
41517     static const bool allowDuplicate = false;
41518     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
41519 
41520 
41521 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41522 VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA(VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {}, zx_handle_t imagePipeHandle_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
41523     : pNext( pNext_ ), flags( flags_ ), imagePipeHandle( imagePipeHandle_ )
41524     {}
41525 
41526     VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41527 
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41528     ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
41529       : ImagePipeSurfaceCreateInfoFUCHSIA( *reinterpret_cast<ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs ) )
41530     {}
41531 
41532 
41533     ImagePipeSurfaceCreateInfoFUCHSIA & operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41534 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
41535 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41536     ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
41537     {
41538       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs );
41539       return *this;
41540     }
41541 
41542 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41543     VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
41544     {
41545       pNext = pNext_;
41546       return *this;
41547     }
41548 
setFlagsVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41549     VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
41550     {
41551       flags = flags_;
41552       return *this;
41553     }
41554 
setImagePipeHandleVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41555     VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT
41556     {
41557       imagePipeHandle = imagePipeHandle_;
41558       return *this;
41559     }
41560 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
41561 
41562 
operator VkImagePipeSurfaceCreateInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41563     operator VkImagePipeSurfaceCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
41564     {
41565       return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
41566     }
41567 
operator VkImagePipeSurfaceCreateInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41568     operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
41569     {
41570       return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
41571     }
41572 
41573 #if defined( VULKAN_HPP_USE_REFLECT )
41574 #if 14 <= VULKAN_HPP_CPP_VERSION
41575     auto
41576 #else
41577     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA const &, zx_handle_t const &>
41578 #endif
reflectVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41579       reflect() const VULKAN_HPP_NOEXCEPT
41580     {
41581       return std::tie( sType, pNext, flags, imagePipeHandle );
41582     }
41583 #endif
41584 
41585 
41586 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41587     std::strong_ordering operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
41588     {
41589       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
41590       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
41591       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
41592       if ( auto cmp = memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ); cmp != 0 )
41593         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
41594 
41595       return std::strong_ordering::equivalent;
41596     }
41597 #endif
41598 
operator ==VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41599     bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
41600     {
41601       return ( sType == rhs.sType )
41602           && ( pNext == rhs.pNext )
41603           && ( flags == rhs.flags )
41604           && ( memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ) == 0 );
41605     }
41606 
operator !=VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA41607     bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
41608     {
41609       return !operator==( rhs );
41610     }
41611 
41612     public:
41613     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
41614     const void * pNext = {};
41615     VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {};
41616     zx_handle_t imagePipeHandle = {};
41617 
41618   };
41619 
41620   template <>
41621   struct CppType<StructureType, StructureType::eImagepipeSurfaceCreateInfoFUCHSIA>
41622   {
41623     using Type = ImagePipeSurfaceCreateInfoFUCHSIA;
41624   };
41625 #endif /*VK_USE_PLATFORM_FUCHSIA*/
41626 
41627   struct ImagePlaneMemoryRequirementsInfo
41628   {
41629     using NativeType = VkImagePlaneMemoryRequirementsInfo;
41630 
41631     static const bool allowDuplicate = false;
41632     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo;
41633 
41634 
41635 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo41636 VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
41637     : pNext( pNext_ ), planeAspect( planeAspect_ )
41638     {}
41639 
41640     VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41641 
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo41642     ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41643       : ImagePlaneMemoryRequirementsInfo( *reinterpret_cast<ImagePlaneMemoryRequirementsInfo const *>( &rhs ) )
41644     {}
41645 
41646 
41647     ImagePlaneMemoryRequirementsInfo & operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41648 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
41649 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo41650     ImagePlaneMemoryRequirementsInfo & operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41651     {
41652       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const *>( &rhs );
41653       return *this;
41654     }
41655 
41656 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo41657     VULKAN_HPP_CONSTEXPR_14 ImagePlaneMemoryRequirementsInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
41658     {
41659       pNext = pNext_;
41660       return *this;
41661     }
41662 
setPlaneAspectVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo41663     VULKAN_HPP_CONSTEXPR_14 ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
41664     {
41665       planeAspect = planeAspect_;
41666       return *this;
41667     }
41668 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
41669 
41670 
operator VkImagePlaneMemoryRequirementsInfo const&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo41671     operator VkImagePlaneMemoryRequirementsInfo const &() const VULKAN_HPP_NOEXCEPT
41672     {
41673       return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>( this );
41674     }
41675 
operator VkImagePlaneMemoryRequirementsInfo&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo41676     operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT
41677     {
41678       return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>( this );
41679     }
41680 
41681 #if defined( VULKAN_HPP_USE_REFLECT )
41682 #if 14 <= VULKAN_HPP_CPP_VERSION
41683     auto
41684 #else
41685     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &>
41686 #endif
reflectVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo41687       reflect() const VULKAN_HPP_NOEXCEPT
41688     {
41689       return std::tie( sType, pNext, planeAspect );
41690     }
41691 #endif
41692 
41693 
41694 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41695 auto operator<=>( ImagePlaneMemoryRequirementsInfo const & ) const = default;
41696 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo41697     bool operator==( ImagePlaneMemoryRequirementsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
41698     {
41699 #if defined( VULKAN_HPP_USE_REFLECT )
41700       return this->reflect() == rhs.reflect();
41701 #else
41702       return ( sType == rhs.sType )
41703           && ( pNext == rhs.pNext )
41704           && ( planeAspect == rhs.planeAspect );
41705 #endif
41706     }
41707 
operator !=VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo41708     bool operator!=( ImagePlaneMemoryRequirementsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
41709     {
41710       return !operator==( rhs );
41711     }
41712 #endif
41713 
41714     public:
41715     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo;
41716     const void * pNext = {};
41717     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
41718 
41719   };
41720 
41721   template <>
41722   struct CppType<StructureType, StructureType::eImagePlaneMemoryRequirementsInfo>
41723   {
41724     using Type = ImagePlaneMemoryRequirementsInfo;
41725   };
41726   using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
41727 
41728   struct ImageResolve
41729   {
41730     using NativeType = VkImageResolve;
41731 
41732 
41733 
41734 
41735 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve41736 VULKAN_HPP_CONSTEXPR ImageResolve(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT
41737     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
41738     {}
41739 
41740     VULKAN_HPP_CONSTEXPR ImageResolve( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41741 
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve41742     ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
41743       : ImageResolve( *reinterpret_cast<ImageResolve const *>( &rhs ) )
41744     {}
41745 
41746 
41747     ImageResolve & operator=( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41748 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
41749 
operator =VULKAN_HPP_NAMESPACE::ImageResolve41750     ImageResolve & operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
41751     {
41752       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve const *>( &rhs );
41753       return *this;
41754     }
41755 
41756 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve41757     VULKAN_HPP_CONSTEXPR_14 ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
41758     {
41759       srcSubresource = srcSubresource_;
41760       return *this;
41761     }
41762 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve41763     VULKAN_HPP_CONSTEXPR_14 ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
41764     {
41765       srcOffset = srcOffset_;
41766       return *this;
41767     }
41768 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve41769     VULKAN_HPP_CONSTEXPR_14 ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
41770     {
41771       dstSubresource = dstSubresource_;
41772       return *this;
41773     }
41774 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve41775     VULKAN_HPP_CONSTEXPR_14 ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
41776     {
41777       dstOffset = dstOffset_;
41778       return *this;
41779     }
41780 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve41781     VULKAN_HPP_CONSTEXPR_14 ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
41782     {
41783       extent = extent_;
41784       return *this;
41785     }
41786 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
41787 
41788 
operator VkImageResolve const&VULKAN_HPP_NAMESPACE::ImageResolve41789     operator VkImageResolve const &() const VULKAN_HPP_NOEXCEPT
41790     {
41791       return *reinterpret_cast<const VkImageResolve*>( this );
41792     }
41793 
operator VkImageResolve&VULKAN_HPP_NAMESPACE::ImageResolve41794     operator VkImageResolve &() VULKAN_HPP_NOEXCEPT
41795     {
41796       return *reinterpret_cast<VkImageResolve*>( this );
41797     }
41798 
41799 #if defined( VULKAN_HPP_USE_REFLECT )
41800 #if 14 <= VULKAN_HPP_CPP_VERSION
41801     auto
41802 #else
41803     std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
41804 #endif
reflectVULKAN_HPP_NAMESPACE::ImageResolve41805       reflect() const VULKAN_HPP_NOEXCEPT
41806     {
41807       return std::tie( srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
41808     }
41809 #endif
41810 
41811 
41812 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41813 auto operator<=>( ImageResolve const & ) const = default;
41814 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve41815     bool operator==( ImageResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
41816     {
41817 #if defined( VULKAN_HPP_USE_REFLECT )
41818       return this->reflect() == rhs.reflect();
41819 #else
41820       return ( srcSubresource == rhs.srcSubresource )
41821           && ( srcOffset == rhs.srcOffset )
41822           && ( dstSubresource == rhs.dstSubresource )
41823           && ( dstOffset == rhs.dstOffset )
41824           && ( extent == rhs.extent );
41825 #endif
41826     }
41827 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve41828     bool operator!=( ImageResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
41829     {
41830       return !operator==( rhs );
41831     }
41832 #endif
41833 
41834     public:
41835     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
41836     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
41837     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
41838     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
41839     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
41840 
41841   };
41842 
41843   struct ImageResolve2
41844   {
41845     using NativeType = VkImageResolve2;
41846 
41847     static const bool allowDuplicate = false;
41848     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageResolve2;
41849 
41850 
41851 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageResolve2VULKAN_HPP_NAMESPACE::ImageResolve241852 VULKAN_HPP_CONSTEXPR ImageResolve2(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
41853     : pNext( pNext_ ), srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
41854     {}
41855 
41856     VULKAN_HPP_CONSTEXPR ImageResolve2( ImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41857 
ImageResolve2VULKAN_HPP_NAMESPACE::ImageResolve241858     ImageResolve2( VkImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT
41859       : ImageResolve2( *reinterpret_cast<ImageResolve2 const *>( &rhs ) )
41860     {}
41861 
41862 
41863     ImageResolve2 & operator=( ImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41864 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
41865 
operator =VULKAN_HPP_NAMESPACE::ImageResolve241866     ImageResolve2 & operator=( VkImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT
41867     {
41868       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve2 const *>( &rhs );
41869       return *this;
41870     }
41871 
41872 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageResolve241873     VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
41874     {
41875       pNext = pNext_;
41876       return *this;
41877     }
41878 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve241879     VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
41880     {
41881       srcSubresource = srcSubresource_;
41882       return *this;
41883     }
41884 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve241885     VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
41886     {
41887       srcOffset = srcOffset_;
41888       return *this;
41889     }
41890 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve241891     VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
41892     {
41893       dstSubresource = dstSubresource_;
41894       return *this;
41895     }
41896 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve241897     VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
41898     {
41899       dstOffset = dstOffset_;
41900       return *this;
41901     }
41902 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve241903     VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
41904     {
41905       extent = extent_;
41906       return *this;
41907     }
41908 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
41909 
41910 
operator VkImageResolve2 const&VULKAN_HPP_NAMESPACE::ImageResolve241911     operator VkImageResolve2 const &() const VULKAN_HPP_NOEXCEPT
41912     {
41913       return *reinterpret_cast<const VkImageResolve2*>( this );
41914     }
41915 
operator VkImageResolve2&VULKAN_HPP_NAMESPACE::ImageResolve241916     operator VkImageResolve2 &() VULKAN_HPP_NOEXCEPT
41917     {
41918       return *reinterpret_cast<VkImageResolve2*>( this );
41919     }
41920 
41921 #if defined( VULKAN_HPP_USE_REFLECT )
41922 #if 14 <= VULKAN_HPP_CPP_VERSION
41923     auto
41924 #else
41925     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &, VULKAN_HPP_NAMESPACE::Offset3D const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
41926 #endif
reflectVULKAN_HPP_NAMESPACE::ImageResolve241927       reflect() const VULKAN_HPP_NOEXCEPT
41928     {
41929       return std::tie( sType, pNext, srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
41930     }
41931 #endif
41932 
41933 
41934 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41935 auto operator<=>( ImageResolve2 const & ) const = default;
41936 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve241937     bool operator==( ImageResolve2 const & rhs ) const VULKAN_HPP_NOEXCEPT
41938     {
41939 #if defined( VULKAN_HPP_USE_REFLECT )
41940       return this->reflect() == rhs.reflect();
41941 #else
41942       return ( sType == rhs.sType )
41943           && ( pNext == rhs.pNext )
41944           && ( srcSubresource == rhs.srcSubresource )
41945           && ( srcOffset == rhs.srcOffset )
41946           && ( dstSubresource == rhs.dstSubresource )
41947           && ( dstOffset == rhs.dstOffset )
41948           && ( extent == rhs.extent );
41949 #endif
41950     }
41951 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve241952     bool operator!=( ImageResolve2 const & rhs ) const VULKAN_HPP_NOEXCEPT
41953     {
41954       return !operator==( rhs );
41955     }
41956 #endif
41957 
41958     public:
41959     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageResolve2;
41960     const void * pNext = {};
41961     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
41962     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
41963     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
41964     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
41965     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
41966 
41967   };
41968 
41969   template <>
41970   struct CppType<StructureType, StructureType::eImageResolve2>
41971   {
41972     using Type = ImageResolve2;
41973   };
41974   using ImageResolve2KHR = ImageResolve2;
41975 
41976   struct ImageSparseMemoryRequirementsInfo2
41977   {
41978     using NativeType = VkImageSparseMemoryRequirementsInfo2;
41979 
41980     static const bool allowDuplicate = false;
41981     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSparseMemoryRequirementsInfo2;
41982 
41983 
41984 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo241985 VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
41986     : pNext( pNext_ ), image( image_ )
41987     {}
41988 
41989     VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41990 
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo241991     ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41992       : ImageSparseMemoryRequirementsInfo2( *reinterpret_cast<ImageSparseMemoryRequirementsInfo2 const *>( &rhs ) )
41993     {}
41994 
41995 
41996     ImageSparseMemoryRequirementsInfo2 & operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41997 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
41998 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo241999     ImageSparseMemoryRequirementsInfo2 & operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
42000     {
42001       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const *>( &rhs );
42002       return *this;
42003     }
42004 
42005 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo242006     VULKAN_HPP_CONSTEXPR_14 ImageSparseMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
42007     {
42008       pNext = pNext_;
42009       return *this;
42010     }
42011 
setImageVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo242012     VULKAN_HPP_CONSTEXPR_14 ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
42013     {
42014       image = image_;
42015       return *this;
42016     }
42017 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
42018 
42019 
operator VkImageSparseMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo242020     operator VkImageSparseMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
42021     {
42022       return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( this );
42023     }
42024 
operator VkImageSparseMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo242025     operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
42026     {
42027       return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>( this );
42028     }
42029 
42030 #if defined( VULKAN_HPP_USE_REFLECT )
42031 #if 14 <= VULKAN_HPP_CPP_VERSION
42032     auto
42033 #else
42034     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &>
42035 #endif
reflectVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo242036       reflect() const VULKAN_HPP_NOEXCEPT
42037     {
42038       return std::tie( sType, pNext, image );
42039     }
42040 #endif
42041 
42042 
42043 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42044 auto operator<=>( ImageSparseMemoryRequirementsInfo2 const & ) const = default;
42045 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo242046     bool operator==( ImageSparseMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
42047     {
42048 #if defined( VULKAN_HPP_USE_REFLECT )
42049       return this->reflect() == rhs.reflect();
42050 #else
42051       return ( sType == rhs.sType )
42052           && ( pNext == rhs.pNext )
42053           && ( image == rhs.image );
42054 #endif
42055     }
42056 
operator !=VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo242057     bool operator!=( ImageSparseMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
42058     {
42059       return !operator==( rhs );
42060     }
42061 #endif
42062 
42063     public:
42064     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2;
42065     const void * pNext = {};
42066     VULKAN_HPP_NAMESPACE::Image image = {};
42067 
42068   };
42069 
42070   template <>
42071   struct CppType<StructureType, StructureType::eImageSparseMemoryRequirementsInfo2>
42072   {
42073     using Type = ImageSparseMemoryRequirementsInfo2;
42074   };
42075   using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
42076 
42077   struct ImageStencilUsageCreateInfo
42078   {
42079     using NativeType = VkImageStencilUsageCreateInfo;
42080 
42081     static const bool allowDuplicate = false;
42082     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo;
42083 
42084 
42085 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo42086 VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
42087     : pNext( pNext_ ), stencilUsage( stencilUsage_ )
42088     {}
42089 
42090     VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42091 
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo42092     ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42093       : ImageStencilUsageCreateInfo( *reinterpret_cast<ImageStencilUsageCreateInfo const *>( &rhs ) )
42094     {}
42095 
42096 
42097     ImageStencilUsageCreateInfo & operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42098 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
42099 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo42100     ImageStencilUsageCreateInfo & operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42101     {
42102       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const *>( &rhs );
42103       return *this;
42104     }
42105 
42106 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo42107     VULKAN_HPP_CONSTEXPR_14 ImageStencilUsageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
42108     {
42109       pNext = pNext_;
42110       return *this;
42111     }
42112 
setStencilUsageVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo42113     VULKAN_HPP_CONSTEXPR_14 ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT
42114     {
42115       stencilUsage = stencilUsage_;
42116       return *this;
42117     }
42118 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
42119 
42120 
operator VkImageStencilUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo42121     operator VkImageStencilUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
42122     {
42123       return *reinterpret_cast<const VkImageStencilUsageCreateInfo*>( this );
42124     }
42125 
operator VkImageStencilUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo42126     operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
42127     {
42128       return *reinterpret_cast<VkImageStencilUsageCreateInfo*>( this );
42129     }
42130 
42131 #if defined( VULKAN_HPP_USE_REFLECT )
42132 #if 14 <= VULKAN_HPP_CPP_VERSION
42133     auto
42134 #else
42135     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
42136 #endif
reflectVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo42137       reflect() const VULKAN_HPP_NOEXCEPT
42138     {
42139       return std::tie( sType, pNext, stencilUsage );
42140     }
42141 #endif
42142 
42143 
42144 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42145 auto operator<=>( ImageStencilUsageCreateInfo const & ) const = default;
42146 #else
operator ==VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo42147     bool operator==( ImageStencilUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
42148     {
42149 #if defined( VULKAN_HPP_USE_REFLECT )
42150       return this->reflect() == rhs.reflect();
42151 #else
42152       return ( sType == rhs.sType )
42153           && ( pNext == rhs.pNext )
42154           && ( stencilUsage == rhs.stencilUsage );
42155 #endif
42156     }
42157 
operator !=VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo42158     bool operator!=( ImageStencilUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
42159     {
42160       return !operator==( rhs );
42161     }
42162 #endif
42163 
42164     public:
42165     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo;
42166     const void * pNext = {};
42167     VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {};
42168 
42169   };
42170 
42171   template <>
42172   struct CppType<StructureType, StructureType::eImageStencilUsageCreateInfo>
42173   {
42174     using Type = ImageStencilUsageCreateInfo;
42175   };
42176   using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
42177 
42178   struct ImageSwapchainCreateInfoKHR
42179   {
42180     using NativeType = VkImageSwapchainCreateInfoKHR;
42181 
42182     static const bool allowDuplicate = false;
42183     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR;
42184 
42185 
42186 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR42187 VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
42188     : pNext( pNext_ ), swapchain( swapchain_ )
42189     {}
42190 
42191     VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42192 
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR42193     ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42194       : ImageSwapchainCreateInfoKHR( *reinterpret_cast<ImageSwapchainCreateInfoKHR const *>( &rhs ) )
42195     {}
42196 
42197 
42198     ImageSwapchainCreateInfoKHR & operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42199 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
42200 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR42201     ImageSwapchainCreateInfoKHR & operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42202     {
42203       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const *>( &rhs );
42204       return *this;
42205     }
42206 
42207 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR42208     VULKAN_HPP_CONSTEXPR_14 ImageSwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
42209     {
42210       pNext = pNext_;
42211       return *this;
42212     }
42213 
setSwapchainVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR42214     VULKAN_HPP_CONSTEXPR_14 ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
42215     {
42216       swapchain = swapchain_;
42217       return *this;
42218     }
42219 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
42220 
42221 
operator VkImageSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR42222     operator VkImageSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
42223     {
42224       return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>( this );
42225     }
42226 
operator VkImageSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR42227     operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
42228     {
42229       return *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>( this );
42230     }
42231 
42232 #if defined( VULKAN_HPP_USE_REFLECT )
42233 #if 14 <= VULKAN_HPP_CPP_VERSION
42234     auto
42235 #else
42236     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SwapchainKHR const &>
42237 #endif
reflectVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR42238       reflect() const VULKAN_HPP_NOEXCEPT
42239     {
42240       return std::tie( sType, pNext, swapchain );
42241     }
42242 #endif
42243 
42244 
42245 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42246 auto operator<=>( ImageSwapchainCreateInfoKHR const & ) const = default;
42247 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR42248     bool operator==( ImageSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
42249     {
42250 #if defined( VULKAN_HPP_USE_REFLECT )
42251       return this->reflect() == rhs.reflect();
42252 #else
42253       return ( sType == rhs.sType )
42254           && ( pNext == rhs.pNext )
42255           && ( swapchain == rhs.swapchain );
42256 #endif
42257     }
42258 
operator !=VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR42259     bool operator!=( ImageSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
42260     {
42261       return !operator==( rhs );
42262     }
42263 #endif
42264 
42265     public:
42266     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR;
42267     const void * pNext = {};
42268     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
42269 
42270   };
42271 
42272   template <>
42273   struct CppType<StructureType, StructureType::eImageSwapchainCreateInfoKHR>
42274   {
42275     using Type = ImageSwapchainCreateInfoKHR;
42276   };
42277 
42278   struct ImageViewASTCDecodeModeEXT
42279   {
42280     using NativeType = VkImageViewASTCDecodeModeEXT;
42281 
42282     static const bool allowDuplicate = false;
42283     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT;
42284 
42285 
42286 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT42287 VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT(VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
42288     : pNext( pNext_ ), decodeMode( decodeMode_ )
42289     {}
42290 
42291     VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42292 
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT42293     ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42294       : ImageViewASTCDecodeModeEXT( *reinterpret_cast<ImageViewASTCDecodeModeEXT const *>( &rhs ) )
42295     {}
42296 
42297 
42298     ImageViewASTCDecodeModeEXT & operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42299 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
42300 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT42301     ImageViewASTCDecodeModeEXT & operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42302     {
42303       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const *>( &rhs );
42304       return *this;
42305     }
42306 
42307 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT42308     VULKAN_HPP_CONSTEXPR_14 ImageViewASTCDecodeModeEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
42309     {
42310       pNext = pNext_;
42311       return *this;
42312     }
42313 
setDecodeModeVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT42314     VULKAN_HPP_CONSTEXPR_14 ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT
42315     {
42316       decodeMode = decodeMode_;
42317       return *this;
42318     }
42319 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
42320 
42321 
operator VkImageViewASTCDecodeModeEXT const&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT42322     operator VkImageViewASTCDecodeModeEXT const &() const VULKAN_HPP_NOEXCEPT
42323     {
42324       return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>( this );
42325     }
42326 
operator VkImageViewASTCDecodeModeEXT&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT42327     operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT
42328     {
42329       return *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>( this );
42330     }
42331 
42332 #if defined( VULKAN_HPP_USE_REFLECT )
42333 #if 14 <= VULKAN_HPP_CPP_VERSION
42334     auto
42335 #else
42336     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Format const &>
42337 #endif
reflectVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT42338       reflect() const VULKAN_HPP_NOEXCEPT
42339     {
42340       return std::tie( sType, pNext, decodeMode );
42341     }
42342 #endif
42343 
42344 
42345 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42346 auto operator<=>( ImageViewASTCDecodeModeEXT const & ) const = default;
42347 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT42348     bool operator==( ImageViewASTCDecodeModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42349     {
42350 #if defined( VULKAN_HPP_USE_REFLECT )
42351       return this->reflect() == rhs.reflect();
42352 #else
42353       return ( sType == rhs.sType )
42354           && ( pNext == rhs.pNext )
42355           && ( decodeMode == rhs.decodeMode );
42356 #endif
42357     }
42358 
operator !=VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT42359     bool operator!=( ImageViewASTCDecodeModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42360     {
42361       return !operator==( rhs );
42362     }
42363 #endif
42364 
42365     public:
42366     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT;
42367     const void * pNext = {};
42368     VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined;
42369 
42370   };
42371 
42372   template <>
42373   struct CppType<StructureType, StructureType::eImageViewAstcDecodeModeEXT>
42374   {
42375     using Type = ImageViewASTCDecodeModeEXT;
42376   };
42377 
42378   struct ImageViewAddressPropertiesNVX
42379   {
42380     using NativeType = VkImageViewAddressPropertiesNVX;
42381 
42382     static const bool allowDuplicate = false;
42383     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX;
42384 
42385 
42386 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX42387 VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
42388     : pNext( pNext_ ), deviceAddress( deviceAddress_ ), size( size_ )
42389     {}
42390 
42391     VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42392 
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX42393     ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
42394       : ImageViewAddressPropertiesNVX( *reinterpret_cast<ImageViewAddressPropertiesNVX const *>( &rhs ) )
42395     {}
42396 
42397 
42398     ImageViewAddressPropertiesNVX & operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42399 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
42400 
operator =VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX42401     ImageViewAddressPropertiesNVX & operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
42402     {
42403       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX const *>( &rhs );
42404       return *this;
42405     }
42406 
42407 
operator VkImageViewAddressPropertiesNVX const&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX42408     operator VkImageViewAddressPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT
42409     {
42410       return *reinterpret_cast<const VkImageViewAddressPropertiesNVX*>( this );
42411     }
42412 
operator VkImageViewAddressPropertiesNVX&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX42413     operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT
42414     {
42415       return *reinterpret_cast<VkImageViewAddressPropertiesNVX*>( this );
42416     }
42417 
42418 #if defined( VULKAN_HPP_USE_REFLECT )
42419 #if 14 <= VULKAN_HPP_CPP_VERSION
42420     auto
42421 #else
42422     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
42423 #endif
reflectVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX42424       reflect() const VULKAN_HPP_NOEXCEPT
42425     {
42426       return std::tie( sType, pNext, deviceAddress, size );
42427     }
42428 #endif
42429 
42430 
42431 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42432 auto operator<=>( ImageViewAddressPropertiesNVX const & ) const = default;
42433 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX42434     bool operator==( ImageViewAddressPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
42435     {
42436 #if defined( VULKAN_HPP_USE_REFLECT )
42437       return this->reflect() == rhs.reflect();
42438 #else
42439       return ( sType == rhs.sType )
42440           && ( pNext == rhs.pNext )
42441           && ( deviceAddress == rhs.deviceAddress )
42442           && ( size == rhs.size );
42443 #endif
42444     }
42445 
operator !=VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX42446     bool operator!=( ImageViewAddressPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
42447     {
42448       return !operator==( rhs );
42449     }
42450 #endif
42451 
42452     public:
42453     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX;
42454     void * pNext = {};
42455     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
42456     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
42457 
42458   };
42459 
42460   template <>
42461   struct CppType<StructureType, StructureType::eImageViewAddressPropertiesNVX>
42462   {
42463     using Type = ImageViewAddressPropertiesNVX;
42464   };
42465 
42466   struct ImageViewCaptureDescriptorDataInfoEXT
42467   {
42468     using NativeType = VkImageViewCaptureDescriptorDataInfoEXT;
42469 
42470     static const bool allowDuplicate = false;
42471     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCaptureDescriptorDataInfoEXT;
42472 
42473 
42474 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewCaptureDescriptorDataInfoEXTVULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT42475 VULKAN_HPP_CONSTEXPR ImageViewCaptureDescriptorDataInfoEXT(VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
42476     : pNext( pNext_ ), imageView( imageView_ )
42477     {}
42478 
42479     VULKAN_HPP_CONSTEXPR ImageViewCaptureDescriptorDataInfoEXT( ImageViewCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42480 
ImageViewCaptureDescriptorDataInfoEXTVULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT42481     ImageViewCaptureDescriptorDataInfoEXT( VkImageViewCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42482       : ImageViewCaptureDescriptorDataInfoEXT( *reinterpret_cast<ImageViewCaptureDescriptorDataInfoEXT const *>( &rhs ) )
42483     {}
42484 
42485 
42486     ImageViewCaptureDescriptorDataInfoEXT & operator=( ImageViewCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42487 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
42488 
operator =VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT42489     ImageViewCaptureDescriptorDataInfoEXT & operator=( VkImageViewCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42490     {
42491       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT const *>( &rhs );
42492       return *this;
42493     }
42494 
42495 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT42496     VULKAN_HPP_CONSTEXPR_14 ImageViewCaptureDescriptorDataInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
42497     {
42498       pNext = pNext_;
42499       return *this;
42500     }
42501 
setImageViewVULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT42502     VULKAN_HPP_CONSTEXPR_14 ImageViewCaptureDescriptorDataInfoEXT & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
42503     {
42504       imageView = imageView_;
42505       return *this;
42506     }
42507 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
42508 
42509 
operator VkImageViewCaptureDescriptorDataInfoEXT const&VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT42510     operator VkImageViewCaptureDescriptorDataInfoEXT const &() const VULKAN_HPP_NOEXCEPT
42511     {
42512       return *reinterpret_cast<const VkImageViewCaptureDescriptorDataInfoEXT*>( this );
42513     }
42514 
operator VkImageViewCaptureDescriptorDataInfoEXT&VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT42515     operator VkImageViewCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
42516     {
42517       return *reinterpret_cast<VkImageViewCaptureDescriptorDataInfoEXT*>( this );
42518     }
42519 
42520 #if defined( VULKAN_HPP_USE_REFLECT )
42521 #if 14 <= VULKAN_HPP_CPP_VERSION
42522     auto
42523 #else
42524     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageView const &>
42525 #endif
reflectVULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT42526       reflect() const VULKAN_HPP_NOEXCEPT
42527     {
42528       return std::tie( sType, pNext, imageView );
42529     }
42530 #endif
42531 
42532 
42533 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42534 auto operator<=>( ImageViewCaptureDescriptorDataInfoEXT const & ) const = default;
42535 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT42536     bool operator==( ImageViewCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42537     {
42538 #if defined( VULKAN_HPP_USE_REFLECT )
42539       return this->reflect() == rhs.reflect();
42540 #else
42541       return ( sType == rhs.sType )
42542           && ( pNext == rhs.pNext )
42543           && ( imageView == rhs.imageView );
42544 #endif
42545     }
42546 
operator !=VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT42547     bool operator!=( ImageViewCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42548     {
42549       return !operator==( rhs );
42550     }
42551 #endif
42552 
42553     public:
42554     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCaptureDescriptorDataInfoEXT;
42555     const void * pNext = {};
42556     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
42557 
42558   };
42559 
42560   template <>
42561   struct CppType<StructureType, StructureType::eImageViewCaptureDescriptorDataInfoEXT>
42562   {
42563     using Type = ImageViewCaptureDescriptorDataInfoEXT;
42564   };
42565 
42566   struct ImageViewCreateInfo
42567   {
42568     using NativeType = VkImageViewCreateInfo;
42569 
42570     static const bool allowDuplicate = false;
42571     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo;
42572 
42573 
42574 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo42575 VULKAN_HPP_CONSTEXPR ImageViewCreateInfo(VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageViewType viewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
42576     : pNext( pNext_ ), flags( flags_ ), image( image_ ), viewType( viewType_ ), format( format_ ), components( components_ ), subresourceRange( subresourceRange_ )
42577     {}
42578 
42579     VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42580 
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo42581     ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42582       : ImageViewCreateInfo( *reinterpret_cast<ImageViewCreateInfo const *>( &rhs ) )
42583     {}
42584 
42585 
42586     ImageViewCreateInfo & operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42587 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
42588 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo42589     ImageViewCreateInfo & operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42590     {
42591       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const *>( &rhs );
42592       return *this;
42593     }
42594 
42595 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageViewCreateInfo42596     VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
42597     {
42598       pNext = pNext_;
42599       return *this;
42600     }
42601 
setFlagsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo42602     VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
42603     {
42604       flags = flags_;
42605       return *this;
42606     }
42607 
setImageVULKAN_HPP_NAMESPACE::ImageViewCreateInfo42608     VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
42609     {
42610       image = image_;
42611       return *this;
42612     }
42613 
setViewTypeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo42614     VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT
42615     {
42616       viewType = viewType_;
42617       return *this;
42618     }
42619 
setFormatVULKAN_HPP_NAMESPACE::ImageViewCreateInfo42620     VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
42621     {
42622       format = format_;
42623       return *this;
42624     }
42625 
setComponentsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo42626     VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
42627     {
42628       components = components_;
42629       return *this;
42630     }
42631 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo42632     VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
42633     {
42634       subresourceRange = subresourceRange_;
42635       return *this;
42636     }
42637 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
42638 
42639 
operator VkImageViewCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo42640     operator VkImageViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
42641     {
42642       return *reinterpret_cast<const VkImageViewCreateInfo*>( this );
42643     }
42644 
operator VkImageViewCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo42645     operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT
42646     {
42647       return *reinterpret_cast<VkImageViewCreateInfo*>( this );
42648     }
42649 
42650 #if defined( VULKAN_HPP_USE_REFLECT )
42651 #if 14 <= VULKAN_HPP_CPP_VERSION
42652     auto
42653 #else
42654     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageViewCreateFlags const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageViewType const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::ComponentMapping const &, VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
42655 #endif
reflectVULKAN_HPP_NAMESPACE::ImageViewCreateInfo42656       reflect() const VULKAN_HPP_NOEXCEPT
42657     {
42658       return std::tie( sType, pNext, flags, image, viewType, format, components, subresourceRange );
42659     }
42660 #endif
42661 
42662 
42663 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42664 auto operator<=>( ImageViewCreateInfo const & ) const = default;
42665 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewCreateInfo42666     bool operator==( ImageViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
42667     {
42668 #if defined( VULKAN_HPP_USE_REFLECT )
42669       return this->reflect() == rhs.reflect();
42670 #else
42671       return ( sType == rhs.sType )
42672           && ( pNext == rhs.pNext )
42673           && ( flags == rhs.flags )
42674           && ( image == rhs.image )
42675           && ( viewType == rhs.viewType )
42676           && ( format == rhs.format )
42677           && ( components == rhs.components )
42678           && ( subresourceRange == rhs.subresourceRange );
42679 #endif
42680     }
42681 
operator !=VULKAN_HPP_NAMESPACE::ImageViewCreateInfo42682     bool operator!=( ImageViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
42683     {
42684       return !operator==( rhs );
42685     }
42686 #endif
42687 
42688     public:
42689     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo;
42690     const void * pNext = {};
42691     VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {};
42692     VULKAN_HPP_NAMESPACE::Image image = {};
42693     VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
42694     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
42695     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
42696     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
42697 
42698   };
42699 
42700   template <>
42701   struct CppType<StructureType, StructureType::eImageViewCreateInfo>
42702   {
42703     using Type = ImageViewCreateInfo;
42704   };
42705 
42706   struct ImageViewHandleInfoNVX
42707   {
42708     using NativeType = VkImageViewHandleInfoNVX;
42709 
42710     static const bool allowDuplicate = false;
42711     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX;
42712 
42713 
42714 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42715 VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX(VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
42716     : pNext( pNext_ ), imageView( imageView_ ), descriptorType( descriptorType_ ), sampler( sampler_ )
42717     {}
42718 
42719     VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42720 
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42721     ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
42722       : ImageViewHandleInfoNVX( *reinterpret_cast<ImageViewHandleInfoNVX const *>( &rhs ) )
42723     {}
42724 
42725 
42726     ImageViewHandleInfoNVX & operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42727 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
42728 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42729     ImageViewHandleInfoNVX & operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
42730     {
42731       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const *>( &rhs );
42732       return *this;
42733     }
42734 
42735 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42736     VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
42737     {
42738       pNext = pNext_;
42739       return *this;
42740     }
42741 
setImageViewVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42742     VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
42743     {
42744       imageView = imageView_;
42745       return *this;
42746     }
42747 
setDescriptorTypeVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42748     VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
42749     {
42750       descriptorType = descriptorType_;
42751       return *this;
42752     }
42753 
setSamplerVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42754     VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
42755     {
42756       sampler = sampler_;
42757       return *this;
42758     }
42759 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
42760 
42761 
operator VkImageViewHandleInfoNVX const&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42762     operator VkImageViewHandleInfoNVX const &() const VULKAN_HPP_NOEXCEPT
42763     {
42764       return *reinterpret_cast<const VkImageViewHandleInfoNVX*>( this );
42765     }
42766 
operator VkImageViewHandleInfoNVX&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42767     operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT
42768     {
42769       return *reinterpret_cast<VkImageViewHandleInfoNVX*>( this );
42770     }
42771 
42772 #if defined( VULKAN_HPP_USE_REFLECT )
42773 #if 14 <= VULKAN_HPP_CPP_VERSION
42774     auto
42775 #else
42776     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageView const &, VULKAN_HPP_NAMESPACE::DescriptorType const &, VULKAN_HPP_NAMESPACE::Sampler const &>
42777 #endif
reflectVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42778       reflect() const VULKAN_HPP_NOEXCEPT
42779     {
42780       return std::tie( sType, pNext, imageView, descriptorType, sampler );
42781     }
42782 #endif
42783 
42784 
42785 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42786 auto operator<=>( ImageViewHandleInfoNVX const & ) const = default;
42787 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42788     bool operator==( ImageViewHandleInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
42789     {
42790 #if defined( VULKAN_HPP_USE_REFLECT )
42791       return this->reflect() == rhs.reflect();
42792 #else
42793       return ( sType == rhs.sType )
42794           && ( pNext == rhs.pNext )
42795           && ( imageView == rhs.imageView )
42796           && ( descriptorType == rhs.descriptorType )
42797           && ( sampler == rhs.sampler );
42798 #endif
42799     }
42800 
operator !=VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX42801     bool operator!=( ImageViewHandleInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
42802     {
42803       return !operator==( rhs );
42804     }
42805 #endif
42806 
42807     public:
42808     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX;
42809     const void * pNext = {};
42810     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
42811     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
42812     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
42813 
42814   };
42815 
42816   template <>
42817   struct CppType<StructureType, StructureType::eImageViewHandleInfoNVX>
42818   {
42819     using Type = ImageViewHandleInfoNVX;
42820   };
42821 
42822   struct ImageViewMinLodCreateInfoEXT
42823   {
42824     using NativeType = VkImageViewMinLodCreateInfoEXT;
42825 
42826     static const bool allowDuplicate = false;
42827     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewMinLodCreateInfoEXT;
42828 
42829 
42830 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewMinLodCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT42831 VULKAN_HPP_CONSTEXPR ImageViewMinLodCreateInfoEXT(float minLod_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
42832     : pNext( pNext_ ), minLod( minLod_ )
42833     {}
42834 
42835     VULKAN_HPP_CONSTEXPR ImageViewMinLodCreateInfoEXT( ImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42836 
ImageViewMinLodCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT42837     ImageViewMinLodCreateInfoEXT( VkImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42838       : ImageViewMinLodCreateInfoEXT( *reinterpret_cast<ImageViewMinLodCreateInfoEXT const *>( &rhs ) )
42839     {}
42840 
42841 
42842     ImageViewMinLodCreateInfoEXT & operator=( ImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42843 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
42844 
operator =VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT42845     ImageViewMinLodCreateInfoEXT & operator=( VkImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42846     {
42847       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT const *>( &rhs );
42848       return *this;
42849     }
42850 
42851 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT42852     VULKAN_HPP_CONSTEXPR_14 ImageViewMinLodCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
42853     {
42854       pNext = pNext_;
42855       return *this;
42856     }
42857 
setMinLodVULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT42858     VULKAN_HPP_CONSTEXPR_14 ImageViewMinLodCreateInfoEXT & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
42859     {
42860       minLod = minLod_;
42861       return *this;
42862     }
42863 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
42864 
42865 
operator VkImageViewMinLodCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT42866     operator VkImageViewMinLodCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
42867     {
42868       return *reinterpret_cast<const VkImageViewMinLodCreateInfoEXT*>( this );
42869     }
42870 
operator VkImageViewMinLodCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT42871     operator VkImageViewMinLodCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
42872     {
42873       return *reinterpret_cast<VkImageViewMinLodCreateInfoEXT*>( this );
42874     }
42875 
42876 #if defined( VULKAN_HPP_USE_REFLECT )
42877 #if 14 <= VULKAN_HPP_CPP_VERSION
42878     auto
42879 #else
42880     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, float const &>
42881 #endif
reflectVULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT42882       reflect() const VULKAN_HPP_NOEXCEPT
42883     {
42884       return std::tie( sType, pNext, minLod );
42885     }
42886 #endif
42887 
42888 
42889 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42890 auto operator<=>( ImageViewMinLodCreateInfoEXT const & ) const = default;
42891 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT42892     bool operator==( ImageViewMinLodCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42893     {
42894 #if defined( VULKAN_HPP_USE_REFLECT )
42895       return this->reflect() == rhs.reflect();
42896 #else
42897       return ( sType == rhs.sType )
42898           && ( pNext == rhs.pNext )
42899           && ( minLod == rhs.minLod );
42900 #endif
42901     }
42902 
operator !=VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT42903     bool operator!=( ImageViewMinLodCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42904     {
42905       return !operator==( rhs );
42906     }
42907 #endif
42908 
42909     public:
42910     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewMinLodCreateInfoEXT;
42911     const void * pNext = {};
42912     float minLod = {};
42913 
42914   };
42915 
42916   template <>
42917   struct CppType<StructureType, StructureType::eImageViewMinLodCreateInfoEXT>
42918   {
42919     using Type = ImageViewMinLodCreateInfoEXT;
42920   };
42921 
42922   struct ImageViewSampleWeightCreateInfoQCOM
42923   {
42924     using NativeType = VkImageViewSampleWeightCreateInfoQCOM;
42925 
42926     static const bool allowDuplicate = false;
42927     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewSampleWeightCreateInfoQCOM;
42928 
42929 
42930 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewSampleWeightCreateInfoQCOMVULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM42931 VULKAN_HPP_CONSTEXPR ImageViewSampleWeightCreateInfoQCOM(VULKAN_HPP_NAMESPACE::Offset2D filterCenter_ = {}, VULKAN_HPP_NAMESPACE::Extent2D filterSize_ = {}, uint32_t numPhases_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
42932     : pNext( pNext_ ), filterCenter( filterCenter_ ), filterSize( filterSize_ ), numPhases( numPhases_ )
42933     {}
42934 
42935     VULKAN_HPP_CONSTEXPR ImageViewSampleWeightCreateInfoQCOM( ImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42936 
ImageViewSampleWeightCreateInfoQCOMVULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM42937     ImageViewSampleWeightCreateInfoQCOM( VkImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
42938       : ImageViewSampleWeightCreateInfoQCOM( *reinterpret_cast<ImageViewSampleWeightCreateInfoQCOM const *>( &rhs ) )
42939     {}
42940 
42941 
42942     ImageViewSampleWeightCreateInfoQCOM & operator=( ImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42943 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
42944 
operator =VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM42945     ImageViewSampleWeightCreateInfoQCOM & operator=( VkImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
42946     {
42947       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM const *>( &rhs );
42948       return *this;
42949     }
42950 
42951 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM42952     VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
42953     {
42954       pNext = pNext_;
42955       return *this;
42956     }
42957 
setFilterCenterVULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM42958     VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setFilterCenter( VULKAN_HPP_NAMESPACE::Offset2D const & filterCenter_ ) VULKAN_HPP_NOEXCEPT
42959     {
42960       filterCenter = filterCenter_;
42961       return *this;
42962     }
42963 
setFilterSizeVULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM42964     VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setFilterSize( VULKAN_HPP_NAMESPACE::Extent2D const & filterSize_ ) VULKAN_HPP_NOEXCEPT
42965     {
42966       filterSize = filterSize_;
42967       return *this;
42968     }
42969 
setNumPhasesVULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM42970     VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setNumPhases( uint32_t numPhases_ ) VULKAN_HPP_NOEXCEPT
42971     {
42972       numPhases = numPhases_;
42973       return *this;
42974     }
42975 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
42976 
42977 
operator VkImageViewSampleWeightCreateInfoQCOM const&VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM42978     operator VkImageViewSampleWeightCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
42979     {
42980       return *reinterpret_cast<const VkImageViewSampleWeightCreateInfoQCOM*>( this );
42981     }
42982 
operator VkImageViewSampleWeightCreateInfoQCOM&VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM42983     operator VkImageViewSampleWeightCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
42984     {
42985       return *reinterpret_cast<VkImageViewSampleWeightCreateInfoQCOM*>( this );
42986     }
42987 
42988 #if defined( VULKAN_HPP_USE_REFLECT )
42989 #if 14 <= VULKAN_HPP_CPP_VERSION
42990     auto
42991 #else
42992     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &>
42993 #endif
reflectVULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM42994       reflect() const VULKAN_HPP_NOEXCEPT
42995     {
42996       return std::tie( sType, pNext, filterCenter, filterSize, numPhases );
42997     }
42998 #endif
42999 
43000 
43001 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43002 auto operator<=>( ImageViewSampleWeightCreateInfoQCOM const & ) const = default;
43003 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM43004     bool operator==( ImageViewSampleWeightCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
43005     {
43006 #if defined( VULKAN_HPP_USE_REFLECT )
43007       return this->reflect() == rhs.reflect();
43008 #else
43009       return ( sType == rhs.sType )
43010           && ( pNext == rhs.pNext )
43011           && ( filterCenter == rhs.filterCenter )
43012           && ( filterSize == rhs.filterSize )
43013           && ( numPhases == rhs.numPhases );
43014 #endif
43015     }
43016 
operator !=VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM43017     bool operator!=( ImageViewSampleWeightCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
43018     {
43019       return !operator==( rhs );
43020     }
43021 #endif
43022 
43023     public:
43024     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewSampleWeightCreateInfoQCOM;
43025     const void * pNext = {};
43026     VULKAN_HPP_NAMESPACE::Offset2D filterCenter = {};
43027     VULKAN_HPP_NAMESPACE::Extent2D filterSize = {};
43028     uint32_t numPhases = {};
43029 
43030   };
43031 
43032   template <>
43033   struct CppType<StructureType, StructureType::eImageViewSampleWeightCreateInfoQCOM>
43034   {
43035     using Type = ImageViewSampleWeightCreateInfoQCOM;
43036   };
43037 
43038   struct ImageViewSlicedCreateInfoEXT
43039   {
43040     using NativeType = VkImageViewSlicedCreateInfoEXT;
43041 
43042     static const bool allowDuplicate = false;
43043     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewSlicedCreateInfoEXT;
43044 
43045 
43046 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewSlicedCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43047 VULKAN_HPP_CONSTEXPR ImageViewSlicedCreateInfoEXT(uint32_t sliceOffset_ = {}, uint32_t sliceCount_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
43048     : pNext( pNext_ ), sliceOffset( sliceOffset_ ), sliceCount( sliceCount_ )
43049     {}
43050 
43051     VULKAN_HPP_CONSTEXPR ImageViewSlicedCreateInfoEXT( ImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43052 
ImageViewSlicedCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43053     ImageViewSlicedCreateInfoEXT( VkImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43054       : ImageViewSlicedCreateInfoEXT( *reinterpret_cast<ImageViewSlicedCreateInfoEXT const *>( &rhs ) )
43055     {}
43056 
43057 
43058     ImageViewSlicedCreateInfoEXT & operator=( ImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43059 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
43060 
operator =VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43061     ImageViewSlicedCreateInfoEXT & operator=( VkImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43062     {
43063       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT const *>( &rhs );
43064       return *this;
43065     }
43066 
43067 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43068     VULKAN_HPP_CONSTEXPR_14 ImageViewSlicedCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
43069     {
43070       pNext = pNext_;
43071       return *this;
43072     }
43073 
setSliceOffsetVULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43074     VULKAN_HPP_CONSTEXPR_14 ImageViewSlicedCreateInfoEXT & setSliceOffset( uint32_t sliceOffset_ ) VULKAN_HPP_NOEXCEPT
43075     {
43076       sliceOffset = sliceOffset_;
43077       return *this;
43078     }
43079 
setSliceCountVULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43080     VULKAN_HPP_CONSTEXPR_14 ImageViewSlicedCreateInfoEXT & setSliceCount( uint32_t sliceCount_ ) VULKAN_HPP_NOEXCEPT
43081     {
43082       sliceCount = sliceCount_;
43083       return *this;
43084     }
43085 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
43086 
43087 
operator VkImageViewSlicedCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43088     operator VkImageViewSlicedCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
43089     {
43090       return *reinterpret_cast<const VkImageViewSlicedCreateInfoEXT*>( this );
43091     }
43092 
operator VkImageViewSlicedCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43093     operator VkImageViewSlicedCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
43094     {
43095       return *reinterpret_cast<VkImageViewSlicedCreateInfoEXT*>( this );
43096     }
43097 
43098 #if defined( VULKAN_HPP_USE_REFLECT )
43099 #if 14 <= VULKAN_HPP_CPP_VERSION
43100     auto
43101 #else
43102     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &>
43103 #endif
reflectVULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43104       reflect() const VULKAN_HPP_NOEXCEPT
43105     {
43106       return std::tie( sType, pNext, sliceOffset, sliceCount );
43107     }
43108 #endif
43109 
43110 
43111 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43112 auto operator<=>( ImageViewSlicedCreateInfoEXT const & ) const = default;
43113 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43114     bool operator==( ImageViewSlicedCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
43115     {
43116 #if defined( VULKAN_HPP_USE_REFLECT )
43117       return this->reflect() == rhs.reflect();
43118 #else
43119       return ( sType == rhs.sType )
43120           && ( pNext == rhs.pNext )
43121           && ( sliceOffset == rhs.sliceOffset )
43122           && ( sliceCount == rhs.sliceCount );
43123 #endif
43124     }
43125 
operator !=VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT43126     bool operator!=( ImageViewSlicedCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
43127     {
43128       return !operator==( rhs );
43129     }
43130 #endif
43131 
43132     public:
43133     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewSlicedCreateInfoEXT;
43134     const void * pNext = {};
43135     uint32_t sliceOffset = {};
43136     uint32_t sliceCount = {};
43137 
43138   };
43139 
43140   template <>
43141   struct CppType<StructureType, StructureType::eImageViewSlicedCreateInfoEXT>
43142   {
43143     using Type = ImageViewSlicedCreateInfoEXT;
43144   };
43145 
43146   struct ImageViewUsageCreateInfo
43147   {
43148     using NativeType = VkImageViewUsageCreateInfo;
43149 
43150     static const bool allowDuplicate = false;
43151     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo;
43152 
43153 
43154 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo43155 VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
43156     : pNext( pNext_ ), usage( usage_ )
43157     {}
43158 
43159     VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43160 
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo43161     ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43162       : ImageViewUsageCreateInfo( *reinterpret_cast<ImageViewUsageCreateInfo const *>( &rhs ) )
43163     {}
43164 
43165 
43166     ImageViewUsageCreateInfo & operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43167 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
43168 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo43169     ImageViewUsageCreateInfo & operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43170     {
43171       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const *>( &rhs );
43172       return *this;
43173     }
43174 
43175 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo43176     VULKAN_HPP_CONSTEXPR_14 ImageViewUsageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
43177     {
43178       pNext = pNext_;
43179       return *this;
43180     }
43181 
setUsageVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo43182     VULKAN_HPP_CONSTEXPR_14 ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
43183     {
43184       usage = usage_;
43185       return *this;
43186     }
43187 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
43188 
43189 
operator VkImageViewUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo43190     operator VkImageViewUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
43191     {
43192       return *reinterpret_cast<const VkImageViewUsageCreateInfo*>( this );
43193     }
43194 
operator VkImageViewUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo43195     operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
43196     {
43197       return *reinterpret_cast<VkImageViewUsageCreateInfo*>( this );
43198     }
43199 
43200 #if defined( VULKAN_HPP_USE_REFLECT )
43201 #if 14 <= VULKAN_HPP_CPP_VERSION
43202     auto
43203 #else
43204     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
43205 #endif
reflectVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo43206       reflect() const VULKAN_HPP_NOEXCEPT
43207     {
43208       return std::tie( sType, pNext, usage );
43209     }
43210 #endif
43211 
43212 
43213 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43214 auto operator<=>( ImageViewUsageCreateInfo const & ) const = default;
43215 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo43216     bool operator==( ImageViewUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
43217     {
43218 #if defined( VULKAN_HPP_USE_REFLECT )
43219       return this->reflect() == rhs.reflect();
43220 #else
43221       return ( sType == rhs.sType )
43222           && ( pNext == rhs.pNext )
43223           && ( usage == rhs.usage );
43224 #endif
43225     }
43226 
operator !=VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo43227     bool operator!=( ImageViewUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
43228     {
43229       return !operator==( rhs );
43230     }
43231 #endif
43232 
43233     public:
43234     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo;
43235     const void * pNext = {};
43236     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
43237 
43238   };
43239 
43240   template <>
43241   struct CppType<StructureType, StructureType::eImageViewUsageCreateInfo>
43242   {
43243     using Type = ImageViewUsageCreateInfo;
43244   };
43245   using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
43246 
43247 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
43248   struct ImportAndroidHardwareBufferInfoANDROID
43249   {
43250     using NativeType = VkImportAndroidHardwareBufferInfoANDROID;
43251 
43252     static const bool allowDuplicate = false;
43253     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
43254 
43255 
43256 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID43257 VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID(struct AHardwareBuffer * buffer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
43258     : pNext( pNext_ ), buffer( buffer_ )
43259     {}
43260 
43261     VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43262 
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID43263     ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
43264       : ImportAndroidHardwareBufferInfoANDROID( *reinterpret_cast<ImportAndroidHardwareBufferInfoANDROID const *>( &rhs ) )
43265     {}
43266 
43267 
43268     ImportAndroidHardwareBufferInfoANDROID & operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43269 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
43270 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID43271     ImportAndroidHardwareBufferInfoANDROID & operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
43272     {
43273       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const *>( &rhs );
43274       return *this;
43275     }
43276 
43277 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID43278     VULKAN_HPP_CONSTEXPR_14 ImportAndroidHardwareBufferInfoANDROID & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
43279     {
43280       pNext = pNext_;
43281       return *this;
43282     }
43283 
setBufferVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID43284     VULKAN_HPP_CONSTEXPR_14 ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer * buffer_ ) VULKAN_HPP_NOEXCEPT
43285     {
43286       buffer = buffer_;
43287       return *this;
43288     }
43289 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
43290 
43291 
operator VkImportAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID43292     operator VkImportAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
43293     {
43294       return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>( this );
43295     }
43296 
operator VkImportAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID43297     operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
43298     {
43299       return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>( this );
43300     }
43301 
43302 #if defined( VULKAN_HPP_USE_REFLECT )
43303 #if 14 <= VULKAN_HPP_CPP_VERSION
43304     auto
43305 #else
43306     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, struct AHardwareBuffer * const &>
43307 #endif
reflectVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID43308       reflect() const VULKAN_HPP_NOEXCEPT
43309     {
43310       return std::tie( sType, pNext, buffer );
43311     }
43312 #endif
43313 
43314 
43315 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43316 auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const & ) const = default;
43317 #else
operator ==VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID43318     bool operator==( ImportAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
43319     {
43320 #if defined( VULKAN_HPP_USE_REFLECT )
43321       return this->reflect() == rhs.reflect();
43322 #else
43323       return ( sType == rhs.sType )
43324           && ( pNext == rhs.pNext )
43325           && ( buffer == rhs.buffer );
43326 #endif
43327     }
43328 
operator !=VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID43329     bool operator!=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
43330     {
43331       return !operator==( rhs );
43332     }
43333 #endif
43334 
43335     public:
43336     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
43337     const void * pNext = {};
43338     struct AHardwareBuffer * buffer = {};
43339 
43340   };
43341 
43342   template <>
43343   struct CppType<StructureType, StructureType::eImportAndroidHardwareBufferInfoANDROID>
43344   {
43345     using Type = ImportAndroidHardwareBufferInfoANDROID;
43346   };
43347 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
43348 
43349   struct ImportFenceFdInfoKHR
43350   {
43351     using NativeType = VkImportFenceFdInfoKHR;
43352 
43353     static const bool allowDuplicate = false;
43354     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR;
43355 
43356 
43357 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43358 VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, int fd_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
43359     : pNext( pNext_ ), fence( fence_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ )
43360     {}
43361 
43362     VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43363 
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43364     ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43365       : ImportFenceFdInfoKHR( *reinterpret_cast<ImportFenceFdInfoKHR const *>( &rhs ) )
43366     {}
43367 
43368 
43369     ImportFenceFdInfoKHR & operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43370 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
43371 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43372     ImportFenceFdInfoKHR & operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43373     {
43374       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const *>( &rhs );
43375       return *this;
43376     }
43377 
43378 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43379     VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
43380     {
43381       pNext = pNext_;
43382       return *this;
43383     }
43384 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43385     VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
43386     {
43387       fence = fence_;
43388       return *this;
43389     }
43390 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43391     VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
43392     {
43393       flags = flags_;
43394       return *this;
43395     }
43396 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43397     VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
43398     {
43399       handleType = handleType_;
43400       return *this;
43401     }
43402 
setFdVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43403     VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
43404     {
43405       fd = fd_;
43406       return *this;
43407     }
43408 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
43409 
43410 
operator VkImportFenceFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43411     operator VkImportFenceFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
43412     {
43413       return *reinterpret_cast<const VkImportFenceFdInfoKHR*>( this );
43414     }
43415 
operator VkImportFenceFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43416     operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT
43417     {
43418       return *reinterpret_cast<VkImportFenceFdInfoKHR*>( this );
43419     }
43420 
43421 #if defined( VULKAN_HPP_USE_REFLECT )
43422 #if 14 <= VULKAN_HPP_CPP_VERSION
43423     auto
43424 #else
43425     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Fence const &, VULKAN_HPP_NAMESPACE::FenceImportFlags const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &, int const &>
43426 #endif
reflectVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43427       reflect() const VULKAN_HPP_NOEXCEPT
43428     {
43429       return std::tie( sType, pNext, fence, flags, handleType, fd );
43430     }
43431 #endif
43432 
43433 
43434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43435 auto operator<=>( ImportFenceFdInfoKHR const & ) const = default;
43436 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43437     bool operator==( ImportFenceFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
43438     {
43439 #if defined( VULKAN_HPP_USE_REFLECT )
43440       return this->reflect() == rhs.reflect();
43441 #else
43442       return ( sType == rhs.sType )
43443           && ( pNext == rhs.pNext )
43444           && ( fence == rhs.fence )
43445           && ( flags == rhs.flags )
43446           && ( handleType == rhs.handleType )
43447           && ( fd == rhs.fd );
43448 #endif
43449     }
43450 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR43451     bool operator!=( ImportFenceFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
43452     {
43453       return !operator==( rhs );
43454     }
43455 #endif
43456 
43457     public:
43458     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR;
43459     const void * pNext = {};
43460     VULKAN_HPP_NAMESPACE::Fence fence = {};
43461     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
43462     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
43463     int fd = {};
43464 
43465   };
43466 
43467   template <>
43468   struct CppType<StructureType, StructureType::eImportFenceFdInfoKHR>
43469   {
43470     using Type = ImportFenceFdInfoKHR;
43471   };
43472 
43473 #if defined( VK_USE_PLATFORM_WIN32_KHR )
43474   struct ImportFenceWin32HandleInfoKHR
43475   {
43476     using NativeType = VkImportFenceWin32HandleInfoKHR;
43477 
43478     static const bool allowDuplicate = false;
43479     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR;
43480 
43481 
43482 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43483 VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
43484     : pNext( pNext_ ), fence( fence_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
43485     {}
43486 
43487     VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43488 
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43489     ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43490       : ImportFenceWin32HandleInfoKHR( *reinterpret_cast<ImportFenceWin32HandleInfoKHR const *>( &rhs ) )
43491     {}
43492 
43493 
43494     ImportFenceWin32HandleInfoKHR & operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43495 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
43496 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43497     ImportFenceWin32HandleInfoKHR & operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43498     {
43499       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const *>( &rhs );
43500       return *this;
43501     }
43502 
43503 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43504     VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
43505     {
43506       pNext = pNext_;
43507       return *this;
43508     }
43509 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43510     VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
43511     {
43512       fence = fence_;
43513       return *this;
43514     }
43515 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43516     VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
43517     {
43518       flags = flags_;
43519       return *this;
43520     }
43521 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43522     VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
43523     {
43524       handleType = handleType_;
43525       return *this;
43526     }
43527 
setHandleVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43528     VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
43529     {
43530       handle = handle_;
43531       return *this;
43532     }
43533 
setNameVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43534     VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
43535     {
43536       name = name_;
43537       return *this;
43538     }
43539 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
43540 
43541 
operator VkImportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43542     operator VkImportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
43543     {
43544       return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( this );
43545     }
43546 
operator VkImportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43547     operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
43548     {
43549       return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>( this );
43550     }
43551 
43552 #if defined( VULKAN_HPP_USE_REFLECT )
43553 #if 14 <= VULKAN_HPP_CPP_VERSION
43554     auto
43555 #else
43556     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Fence const &, VULKAN_HPP_NAMESPACE::FenceImportFlags const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &, HANDLE const &, LPCWSTR const &>
43557 #endif
reflectVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43558       reflect() const VULKAN_HPP_NOEXCEPT
43559     {
43560       return std::tie( sType, pNext, fence, flags, handleType, handle, name );
43561     }
43562 #endif
43563 
43564 
43565 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43566 auto operator<=>( ImportFenceWin32HandleInfoKHR const & ) const = default;
43567 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43568     bool operator==( ImportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
43569     {
43570 #if defined( VULKAN_HPP_USE_REFLECT )
43571       return this->reflect() == rhs.reflect();
43572 #else
43573       return ( sType == rhs.sType )
43574           && ( pNext == rhs.pNext )
43575           && ( fence == rhs.fence )
43576           && ( flags == rhs.flags )
43577           && ( handleType == rhs.handleType )
43578           && ( handle == rhs.handle )
43579           && ( name == rhs.name );
43580 #endif
43581     }
43582 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR43583     bool operator!=( ImportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
43584     {
43585       return !operator==( rhs );
43586     }
43587 #endif
43588 
43589     public:
43590     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR;
43591     const void * pNext = {};
43592     VULKAN_HPP_NAMESPACE::Fence fence = {};
43593     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
43594     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
43595     HANDLE handle = {};
43596     LPCWSTR name = {};
43597 
43598   };
43599 
43600   template <>
43601   struct CppType<StructureType, StructureType::eImportFenceWin32HandleInfoKHR>
43602   {
43603     using Type = ImportFenceWin32HandleInfoKHR;
43604   };
43605 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
43606 
43607 #if defined( VK_USE_PLATFORM_FUCHSIA )
43608   struct ImportMemoryBufferCollectionFUCHSIA
43609   {
43610     using NativeType = VkImportMemoryBufferCollectionFUCHSIA;
43611 
43612     static const bool allowDuplicate = false;
43613     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryBufferCollectionFUCHSIA;
43614 
43615 
43616 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryBufferCollectionFUCHSIAVULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43617 VULKAN_HPP_CONSTEXPR ImportMemoryBufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {}, uint32_t index_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
43618     : pNext( pNext_ ), collection( collection_ ), index( index_ )
43619     {}
43620 
43621     VULKAN_HPP_CONSTEXPR ImportMemoryBufferCollectionFUCHSIA( ImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43622 
ImportMemoryBufferCollectionFUCHSIAVULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43623     ImportMemoryBufferCollectionFUCHSIA( VkImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
43624       : ImportMemoryBufferCollectionFUCHSIA( *reinterpret_cast<ImportMemoryBufferCollectionFUCHSIA const *>( &rhs ) )
43625     {}
43626 
43627 
43628     ImportMemoryBufferCollectionFUCHSIA & operator=( ImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43629 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
43630 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43631     ImportMemoryBufferCollectionFUCHSIA & operator=( VkImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
43632     {
43633       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA const *>( &rhs );
43634       return *this;
43635     }
43636 
43637 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43638     VULKAN_HPP_CONSTEXPR_14 ImportMemoryBufferCollectionFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
43639     {
43640       pNext = pNext_;
43641       return *this;
43642     }
43643 
setCollectionVULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43644     VULKAN_HPP_CONSTEXPR_14 ImportMemoryBufferCollectionFUCHSIA & setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
43645     {
43646       collection = collection_;
43647       return *this;
43648     }
43649 
setIndexVULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43650     VULKAN_HPP_CONSTEXPR_14 ImportMemoryBufferCollectionFUCHSIA & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
43651     {
43652       index = index_;
43653       return *this;
43654     }
43655 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
43656 
43657 
operator VkImportMemoryBufferCollectionFUCHSIA const&VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43658     operator VkImportMemoryBufferCollectionFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
43659     {
43660       return *reinterpret_cast<const VkImportMemoryBufferCollectionFUCHSIA*>( this );
43661     }
43662 
operator VkImportMemoryBufferCollectionFUCHSIA&VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43663     operator VkImportMemoryBufferCollectionFUCHSIA &() VULKAN_HPP_NOEXCEPT
43664     {
43665       return *reinterpret_cast<VkImportMemoryBufferCollectionFUCHSIA*>( this );
43666     }
43667 
43668 #if defined( VULKAN_HPP_USE_REFLECT )
43669 #if 14 <= VULKAN_HPP_CPP_VERSION
43670     auto
43671 #else
43672     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &, uint32_t const &>
43673 #endif
reflectVULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43674       reflect() const VULKAN_HPP_NOEXCEPT
43675     {
43676       return std::tie( sType, pNext, collection, index );
43677     }
43678 #endif
43679 
43680 
43681 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43682 auto operator<=>( ImportMemoryBufferCollectionFUCHSIA const & ) const = default;
43683 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43684     bool operator==( ImportMemoryBufferCollectionFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
43685     {
43686 #if defined( VULKAN_HPP_USE_REFLECT )
43687       return this->reflect() == rhs.reflect();
43688 #else
43689       return ( sType == rhs.sType )
43690           && ( pNext == rhs.pNext )
43691           && ( collection == rhs.collection )
43692           && ( index == rhs.index );
43693 #endif
43694     }
43695 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA43696     bool operator!=( ImportMemoryBufferCollectionFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
43697     {
43698       return !operator==( rhs );
43699     }
43700 #endif
43701 
43702     public:
43703     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryBufferCollectionFUCHSIA;
43704     const void * pNext = {};
43705     VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection = {};
43706     uint32_t index = {};
43707 
43708   };
43709 
43710   template <>
43711   struct CppType<StructureType, StructureType::eImportMemoryBufferCollectionFUCHSIA>
43712   {
43713     using Type = ImportMemoryBufferCollectionFUCHSIA;
43714   };
43715 #endif /*VK_USE_PLATFORM_FUCHSIA*/
43716 
43717   struct ImportMemoryFdInfoKHR
43718   {
43719     using NativeType = VkImportMemoryFdInfoKHR;
43720 
43721     static const bool allowDuplicate = false;
43722     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR;
43723 
43724 
43725 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43726 VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, int fd_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
43727     : pNext( pNext_ ), handleType( handleType_ ), fd( fd_ )
43728     {}
43729 
43730     VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43731 
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43732     ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43733       : ImportMemoryFdInfoKHR( *reinterpret_cast<ImportMemoryFdInfoKHR const *>( &rhs ) )
43734     {}
43735 
43736 
43737     ImportMemoryFdInfoKHR & operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43738 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
43739 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43740     ImportMemoryFdInfoKHR & operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43741     {
43742       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const *>( &rhs );
43743       return *this;
43744     }
43745 
43746 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43747     VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
43748     {
43749       pNext = pNext_;
43750       return *this;
43751     }
43752 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43753     VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
43754     {
43755       handleType = handleType_;
43756       return *this;
43757     }
43758 
setFdVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43759     VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
43760     {
43761       fd = fd_;
43762       return *this;
43763     }
43764 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
43765 
43766 
operator VkImportMemoryFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43767     operator VkImportMemoryFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
43768     {
43769       return *reinterpret_cast<const VkImportMemoryFdInfoKHR*>( this );
43770     }
43771 
operator VkImportMemoryFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43772     operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT
43773     {
43774       return *reinterpret_cast<VkImportMemoryFdInfoKHR*>( this );
43775     }
43776 
43777 #if defined( VULKAN_HPP_USE_REFLECT )
43778 #if 14 <= VULKAN_HPP_CPP_VERSION
43779     auto
43780 #else
43781     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &, int const &>
43782 #endif
reflectVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43783       reflect() const VULKAN_HPP_NOEXCEPT
43784     {
43785       return std::tie( sType, pNext, handleType, fd );
43786     }
43787 #endif
43788 
43789 
43790 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43791 auto operator<=>( ImportMemoryFdInfoKHR const & ) const = default;
43792 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43793     bool operator==( ImportMemoryFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
43794     {
43795 #if defined( VULKAN_HPP_USE_REFLECT )
43796       return this->reflect() == rhs.reflect();
43797 #else
43798       return ( sType == rhs.sType )
43799           && ( pNext == rhs.pNext )
43800           && ( handleType == rhs.handleType )
43801           && ( fd == rhs.fd );
43802 #endif
43803     }
43804 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR43805     bool operator!=( ImportMemoryFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
43806     {
43807       return !operator==( rhs );
43808     }
43809 #endif
43810 
43811     public:
43812     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR;
43813     const void * pNext = {};
43814     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
43815     int fd = {};
43816 
43817   };
43818 
43819   template <>
43820   struct CppType<StructureType, StructureType::eImportMemoryFdInfoKHR>
43821   {
43822     using Type = ImportMemoryFdInfoKHR;
43823   };
43824 
43825   struct ImportMemoryHostPointerInfoEXT
43826   {
43827     using NativeType = VkImportMemoryHostPointerInfoEXT;
43828 
43829     static const bool allowDuplicate = false;
43830     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT;
43831 
43832 
43833 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43834 VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, void * pHostPointer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
43835     : pNext( pNext_ ), handleType( handleType_ ), pHostPointer( pHostPointer_ )
43836     {}
43837 
43838     VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43839 
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43840     ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43841       : ImportMemoryHostPointerInfoEXT( *reinterpret_cast<ImportMemoryHostPointerInfoEXT const *>( &rhs ) )
43842     {}
43843 
43844 
43845     ImportMemoryHostPointerInfoEXT & operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43846 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
43847 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43848     ImportMemoryHostPointerInfoEXT & operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
43849     {
43850       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const *>( &rhs );
43851       return *this;
43852     }
43853 
43854 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43855     VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
43856     {
43857       pNext = pNext_;
43858       return *this;
43859     }
43860 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43861     VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
43862     {
43863       handleType = handleType_;
43864       return *this;
43865     }
43866 
setPHostPointerVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43867     VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT & setPHostPointer( void * pHostPointer_ ) VULKAN_HPP_NOEXCEPT
43868     {
43869       pHostPointer = pHostPointer_;
43870       return *this;
43871     }
43872 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
43873 
43874 
operator VkImportMemoryHostPointerInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43875     operator VkImportMemoryHostPointerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
43876     {
43877       return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>( this );
43878     }
43879 
operator VkImportMemoryHostPointerInfoEXT&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43880     operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT
43881     {
43882       return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>( this );
43883     }
43884 
43885 #if defined( VULKAN_HPP_USE_REFLECT )
43886 #if 14 <= VULKAN_HPP_CPP_VERSION
43887     auto
43888 #else
43889     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &, void * const &>
43890 #endif
reflectVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43891       reflect() const VULKAN_HPP_NOEXCEPT
43892     {
43893       return std::tie( sType, pNext, handleType, pHostPointer );
43894     }
43895 #endif
43896 
43897 
43898 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43899 auto operator<=>( ImportMemoryHostPointerInfoEXT const & ) const = default;
43900 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43901     bool operator==( ImportMemoryHostPointerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
43902     {
43903 #if defined( VULKAN_HPP_USE_REFLECT )
43904       return this->reflect() == rhs.reflect();
43905 #else
43906       return ( sType == rhs.sType )
43907           && ( pNext == rhs.pNext )
43908           && ( handleType == rhs.handleType )
43909           && ( pHostPointer == rhs.pHostPointer );
43910 #endif
43911     }
43912 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT43913     bool operator!=( ImportMemoryHostPointerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
43914     {
43915       return !operator==( rhs );
43916     }
43917 #endif
43918 
43919     public:
43920     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT;
43921     const void * pNext = {};
43922     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
43923     void * pHostPointer = {};
43924 
43925   };
43926 
43927   template <>
43928   struct CppType<StructureType, StructureType::eImportMemoryHostPointerInfoEXT>
43929   {
43930     using Type = ImportMemoryHostPointerInfoEXT;
43931   };
43932 
43933 #if defined( VK_USE_PLATFORM_WIN32_KHR )
43934   struct ImportMemoryWin32HandleInfoKHR
43935   {
43936     using NativeType = VkImportMemoryWin32HandleInfoKHR;
43937 
43938     static const bool allowDuplicate = false;
43939     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR;
43940 
43941 
43942 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR43943 VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
43944     : pNext( pNext_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
43945     {}
43946 
43947     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43948 
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR43949     ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43950       : ImportMemoryWin32HandleInfoKHR( *reinterpret_cast<ImportMemoryWin32HandleInfoKHR const *>( &rhs ) )
43951     {}
43952 
43953 
43954     ImportMemoryWin32HandleInfoKHR & operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43955 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
43956 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR43957     ImportMemoryWin32HandleInfoKHR & operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43958     {
43959       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const *>( &rhs );
43960       return *this;
43961     }
43962 
43963 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR43964     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
43965     {
43966       pNext = pNext_;
43967       return *this;
43968     }
43969 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR43970     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
43971     {
43972       handleType = handleType_;
43973       return *this;
43974     }
43975 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR43976     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
43977     {
43978       handle = handle_;
43979       return *this;
43980     }
43981 
setNameVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR43982     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
43983     {
43984       name = name_;
43985       return *this;
43986     }
43987 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
43988 
43989 
operator VkImportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR43990     operator VkImportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
43991     {
43992       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>( this );
43993     }
43994 
operator VkImportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR43995     operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
43996     {
43997       return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>( this );
43998     }
43999 
44000 #if defined( VULKAN_HPP_USE_REFLECT )
44001 #if 14 <= VULKAN_HPP_CPP_VERSION
44002     auto
44003 #else
44004     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &, HANDLE const &, LPCWSTR const &>
44005 #endif
reflectVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR44006       reflect() const VULKAN_HPP_NOEXCEPT
44007     {
44008       return std::tie( sType, pNext, handleType, handle, name );
44009     }
44010 #endif
44011 
44012 
44013 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44014 auto operator<=>( ImportMemoryWin32HandleInfoKHR const & ) const = default;
44015 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR44016     bool operator==( ImportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
44017     {
44018 #if defined( VULKAN_HPP_USE_REFLECT )
44019       return this->reflect() == rhs.reflect();
44020 #else
44021       return ( sType == rhs.sType )
44022           && ( pNext == rhs.pNext )
44023           && ( handleType == rhs.handleType )
44024           && ( handle == rhs.handle )
44025           && ( name == rhs.name );
44026 #endif
44027     }
44028 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR44029     bool operator!=( ImportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
44030     {
44031       return !operator==( rhs );
44032     }
44033 #endif
44034 
44035     public:
44036     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR;
44037     const void * pNext = {};
44038     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
44039     HANDLE handle = {};
44040     LPCWSTR name = {};
44041 
44042   };
44043 
44044   template <>
44045   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoKHR>
44046   {
44047     using Type = ImportMemoryWin32HandleInfoKHR;
44048   };
44049 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
44050 
44051 #if defined( VK_USE_PLATFORM_WIN32_KHR )
44052   struct ImportMemoryWin32HandleInfoNV
44053   {
44054     using NativeType = VkImportMemoryWin32HandleInfoNV;
44055 
44056     static const bool allowDuplicate = false;
44057     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV;
44058 
44059 
44060 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44061 VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {}, HANDLE handle_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
44062     : pNext( pNext_ ), handleType( handleType_ ), handle( handle_ )
44063     {}
44064 
44065     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44066 
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44067     ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
44068       : ImportMemoryWin32HandleInfoNV( *reinterpret_cast<ImportMemoryWin32HandleInfoNV const *>( &rhs ) )
44069     {}
44070 
44071 
44072     ImportMemoryWin32HandleInfoNV & operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44073 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
44074 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44075     ImportMemoryWin32HandleInfoNV & operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
44076     {
44077       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const *>( &rhs );
44078       return *this;
44079     }
44080 
44081 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44082     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
44083     {
44084       pNext = pNext_;
44085       return *this;
44086     }
44087 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44088     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT
44089     {
44090       handleType = handleType_;
44091       return *this;
44092     }
44093 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44094     VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
44095     {
44096       handle = handle_;
44097       return *this;
44098     }
44099 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
44100 
44101 
operator VkImportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44102     operator VkImportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT
44103     {
44104       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>( this );
44105     }
44106 
operator VkImportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44107     operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
44108     {
44109       return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>( this );
44110     }
44111 
44112 #if defined( VULKAN_HPP_USE_REFLECT )
44113 #if 14 <= VULKAN_HPP_CPP_VERSION
44114     auto
44115 #else
44116     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &, HANDLE const &>
44117 #endif
reflectVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44118       reflect() const VULKAN_HPP_NOEXCEPT
44119     {
44120       return std::tie( sType, pNext, handleType, handle );
44121     }
44122 #endif
44123 
44124 
44125 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44126 auto operator<=>( ImportMemoryWin32HandleInfoNV const & ) const = default;
44127 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44128     bool operator==( ImportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
44129     {
44130 #if defined( VULKAN_HPP_USE_REFLECT )
44131       return this->reflect() == rhs.reflect();
44132 #else
44133       return ( sType == rhs.sType )
44134           && ( pNext == rhs.pNext )
44135           && ( handleType == rhs.handleType )
44136           && ( handle == rhs.handle );
44137 #endif
44138     }
44139 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV44140     bool operator!=( ImportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
44141     {
44142       return !operator==( rhs );
44143     }
44144 #endif
44145 
44146     public:
44147     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV;
44148     const void * pNext = {};
44149     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {};
44150     HANDLE handle = {};
44151 
44152   };
44153 
44154   template <>
44155   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoNV>
44156   {
44157     using Type = ImportMemoryWin32HandleInfoNV;
44158   };
44159 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
44160 
44161 #if defined( VK_USE_PLATFORM_FUCHSIA )
44162   struct ImportMemoryZirconHandleInfoFUCHSIA
44163   {
44164     using NativeType = VkImportMemoryZirconHandleInfoFUCHSIA;
44165 
44166     static const bool allowDuplicate = false;
44167     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryZirconHandleInfoFUCHSIA;
44168 
44169 
44170 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryZirconHandleInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44171 VULKAN_HPP_CONSTEXPR ImportMemoryZirconHandleInfoFUCHSIA(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, zx_handle_t handle_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
44172     : pNext( pNext_ ), handleType( handleType_ ), handle( handle_ )
44173     {}
44174 
44175     VULKAN_HPP_CONSTEXPR ImportMemoryZirconHandleInfoFUCHSIA( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44176 
ImportMemoryZirconHandleInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44177     ImportMemoryZirconHandleInfoFUCHSIA( VkImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
44178       : ImportMemoryZirconHandleInfoFUCHSIA( *reinterpret_cast<ImportMemoryZirconHandleInfoFUCHSIA const *>( &rhs ) )
44179     {}
44180 
44181 
44182     ImportMemoryZirconHandleInfoFUCHSIA & operator=( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44183 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
44184 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44185     ImportMemoryZirconHandleInfoFUCHSIA & operator=( VkImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
44186     {
44187       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA const *>( &rhs );
44188       return *this;
44189     }
44190 
44191 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44192     VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
44193     {
44194       pNext = pNext_;
44195       return *this;
44196     }
44197 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44198     VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
44199     {
44200       handleType = handleType_;
44201       return *this;
44202     }
44203 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44204     VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA & setHandle( zx_handle_t handle_ ) VULKAN_HPP_NOEXCEPT
44205     {
44206       handle = handle_;
44207       return *this;
44208     }
44209 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
44210 
44211 
operator VkImportMemoryZirconHandleInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44212     operator VkImportMemoryZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
44213     {
44214       return *reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA*>( this );
44215     }
44216 
operator VkImportMemoryZirconHandleInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44217     operator VkImportMemoryZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
44218     {
44219       return *reinterpret_cast<VkImportMemoryZirconHandleInfoFUCHSIA*>( this );
44220     }
44221 
44222 #if defined( VULKAN_HPP_USE_REFLECT )
44223 #if 14 <= VULKAN_HPP_CPP_VERSION
44224     auto
44225 #else
44226     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &, zx_handle_t const &>
44227 #endif
reflectVULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44228       reflect() const VULKAN_HPP_NOEXCEPT
44229     {
44230       return std::tie( sType, pNext, handleType, handle );
44231     }
44232 #endif
44233 
44234 
44235 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44236     std::strong_ordering operator<=>( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
44237     {
44238       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
44239       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
44240       if ( auto cmp = handleType <=> rhs.handleType; cmp != 0 ) return cmp;
44241       if ( auto cmp = memcmp( &handle, &rhs.handle, sizeof( zx_handle_t ) ); cmp != 0 )
44242         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
44243 
44244       return std::strong_ordering::equivalent;
44245     }
44246 #endif
44247 
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44248     bool operator==( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
44249     {
44250       return ( sType == rhs.sType )
44251           && ( pNext == rhs.pNext )
44252           && ( handleType == rhs.handleType )
44253           && ( memcmp( &handle, &rhs.handle, sizeof( zx_handle_t ) ) == 0 );
44254     }
44255 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA44256     bool operator!=( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
44257     {
44258       return !operator==( rhs );
44259     }
44260 
44261     public:
44262     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryZirconHandleInfoFUCHSIA;
44263     const void * pNext = {};
44264     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
44265     zx_handle_t handle = {};
44266 
44267   };
44268 
44269   template <>
44270   struct CppType<StructureType, StructureType::eImportMemoryZirconHandleInfoFUCHSIA>
44271   {
44272     using Type = ImportMemoryZirconHandleInfoFUCHSIA;
44273   };
44274 #endif /*VK_USE_PLATFORM_FUCHSIA*/
44275 
44276 #if defined( VK_USE_PLATFORM_METAL_EXT )
44277   struct ImportMetalBufferInfoEXT
44278   {
44279     using NativeType = VkImportMetalBufferInfoEXT;
44280 
44281     static const bool allowDuplicate = false;
44282     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalBufferInfoEXT;
44283 
44284 
44285 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMetalBufferInfoEXTVULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT44286 VULKAN_HPP_CONSTEXPR ImportMetalBufferInfoEXT(MTLBuffer_id mtlBuffer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
44287     : pNext( pNext_ ), mtlBuffer( mtlBuffer_ )
44288     {}
44289 
44290     VULKAN_HPP_CONSTEXPR ImportMetalBufferInfoEXT( ImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44291 
ImportMetalBufferInfoEXTVULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT44292     ImportMetalBufferInfoEXT( VkImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44293       : ImportMetalBufferInfoEXT( *reinterpret_cast<ImportMetalBufferInfoEXT const *>( &rhs ) )
44294     {}
44295 
44296 
44297     ImportMetalBufferInfoEXT & operator=( ImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44298 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
44299 
operator =VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT44300     ImportMetalBufferInfoEXT & operator=( VkImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44301     {
44302       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT const *>( &rhs );
44303       return *this;
44304     }
44305 
44306 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT44307     VULKAN_HPP_CONSTEXPR_14 ImportMetalBufferInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
44308     {
44309       pNext = pNext_;
44310       return *this;
44311     }
44312 
setMtlBufferVULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT44313     VULKAN_HPP_CONSTEXPR_14 ImportMetalBufferInfoEXT & setMtlBuffer( MTLBuffer_id mtlBuffer_ ) VULKAN_HPP_NOEXCEPT
44314     {
44315       mtlBuffer = mtlBuffer_;
44316       return *this;
44317     }
44318 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
44319 
44320 
operator VkImportMetalBufferInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT44321     operator VkImportMetalBufferInfoEXT const &() const VULKAN_HPP_NOEXCEPT
44322     {
44323       return *reinterpret_cast<const VkImportMetalBufferInfoEXT*>( this );
44324     }
44325 
operator VkImportMetalBufferInfoEXT&VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT44326     operator VkImportMetalBufferInfoEXT &() VULKAN_HPP_NOEXCEPT
44327     {
44328       return *reinterpret_cast<VkImportMetalBufferInfoEXT*>( this );
44329     }
44330 
44331 #if defined( VULKAN_HPP_USE_REFLECT )
44332 #if 14 <= VULKAN_HPP_CPP_VERSION
44333     auto
44334 #else
44335     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, MTLBuffer_id const &>
44336 #endif
reflectVULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT44337       reflect() const VULKAN_HPP_NOEXCEPT
44338     {
44339       return std::tie( sType, pNext, mtlBuffer );
44340     }
44341 #endif
44342 
44343 
44344 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44345 auto operator<=>( ImportMetalBufferInfoEXT const & ) const = default;
44346 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT44347     bool operator==( ImportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
44348     {
44349 #if defined( VULKAN_HPP_USE_REFLECT )
44350       return this->reflect() == rhs.reflect();
44351 #else
44352       return ( sType == rhs.sType )
44353           && ( pNext == rhs.pNext )
44354           && ( mtlBuffer == rhs.mtlBuffer );
44355 #endif
44356     }
44357 
operator !=VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT44358     bool operator!=( ImportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
44359     {
44360       return !operator==( rhs );
44361     }
44362 #endif
44363 
44364     public:
44365     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalBufferInfoEXT;
44366     const void * pNext = {};
44367     MTLBuffer_id mtlBuffer = {};
44368 
44369   };
44370 
44371   template <>
44372   struct CppType<StructureType, StructureType::eImportMetalBufferInfoEXT>
44373   {
44374     using Type = ImportMetalBufferInfoEXT;
44375   };
44376 #endif /*VK_USE_PLATFORM_METAL_EXT*/
44377 
44378 #if defined( VK_USE_PLATFORM_METAL_EXT )
44379   struct ImportMetalIOSurfaceInfoEXT
44380   {
44381     using NativeType = VkImportMetalIOSurfaceInfoEXT;
44382 
44383     static const bool allowDuplicate = false;
44384     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalIoSurfaceInfoEXT;
44385 
44386 
44387 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMetalIOSurfaceInfoEXTVULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT44388 VULKAN_HPP_CONSTEXPR ImportMetalIOSurfaceInfoEXT(IOSurfaceRef ioSurface_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
44389     : pNext( pNext_ ), ioSurface( ioSurface_ )
44390     {}
44391 
44392     VULKAN_HPP_CONSTEXPR ImportMetalIOSurfaceInfoEXT( ImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44393 
ImportMetalIOSurfaceInfoEXTVULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT44394     ImportMetalIOSurfaceInfoEXT( VkImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44395       : ImportMetalIOSurfaceInfoEXT( *reinterpret_cast<ImportMetalIOSurfaceInfoEXT const *>( &rhs ) )
44396     {}
44397 
44398 
44399     ImportMetalIOSurfaceInfoEXT & operator=( ImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44400 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
44401 
operator =VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT44402     ImportMetalIOSurfaceInfoEXT & operator=( VkImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44403     {
44404       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT const *>( &rhs );
44405       return *this;
44406     }
44407 
44408 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT44409     VULKAN_HPP_CONSTEXPR_14 ImportMetalIOSurfaceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
44410     {
44411       pNext = pNext_;
44412       return *this;
44413     }
44414 
setIoSurfaceVULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT44415     VULKAN_HPP_CONSTEXPR_14 ImportMetalIOSurfaceInfoEXT & setIoSurface( IOSurfaceRef ioSurface_ ) VULKAN_HPP_NOEXCEPT
44416     {
44417       ioSurface = ioSurface_;
44418       return *this;
44419     }
44420 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
44421 
44422 
operator VkImportMetalIOSurfaceInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT44423     operator VkImportMetalIOSurfaceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
44424     {
44425       return *reinterpret_cast<const VkImportMetalIOSurfaceInfoEXT*>( this );
44426     }
44427 
operator VkImportMetalIOSurfaceInfoEXT&VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT44428     operator VkImportMetalIOSurfaceInfoEXT &() VULKAN_HPP_NOEXCEPT
44429     {
44430       return *reinterpret_cast<VkImportMetalIOSurfaceInfoEXT*>( this );
44431     }
44432 
44433 #if defined( VULKAN_HPP_USE_REFLECT )
44434 #if 14 <= VULKAN_HPP_CPP_VERSION
44435     auto
44436 #else
44437     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, IOSurfaceRef const &>
44438 #endif
reflectVULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT44439       reflect() const VULKAN_HPP_NOEXCEPT
44440     {
44441       return std::tie( sType, pNext, ioSurface );
44442     }
44443 #endif
44444 
44445 
44446 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44447 auto operator<=>( ImportMetalIOSurfaceInfoEXT const & ) const = default;
44448 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT44449     bool operator==( ImportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
44450     {
44451 #if defined( VULKAN_HPP_USE_REFLECT )
44452       return this->reflect() == rhs.reflect();
44453 #else
44454       return ( sType == rhs.sType )
44455           && ( pNext == rhs.pNext )
44456           && ( ioSurface == rhs.ioSurface );
44457 #endif
44458     }
44459 
operator !=VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT44460     bool operator!=( ImportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
44461     {
44462       return !operator==( rhs );
44463     }
44464 #endif
44465 
44466     public:
44467     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalIoSurfaceInfoEXT;
44468     const void * pNext = {};
44469     IOSurfaceRef ioSurface = {};
44470 
44471   };
44472 
44473   template <>
44474   struct CppType<StructureType, StructureType::eImportMetalIoSurfaceInfoEXT>
44475   {
44476     using Type = ImportMetalIOSurfaceInfoEXT;
44477   };
44478 #endif /*VK_USE_PLATFORM_METAL_EXT*/
44479 
44480 #if defined( VK_USE_PLATFORM_METAL_EXT )
44481   struct ImportMetalSharedEventInfoEXT
44482   {
44483     using NativeType = VkImportMetalSharedEventInfoEXT;
44484 
44485     static const bool allowDuplicate = false;
44486     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalSharedEventInfoEXT;
44487 
44488 
44489 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMetalSharedEventInfoEXTVULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT44490 VULKAN_HPP_CONSTEXPR ImportMetalSharedEventInfoEXT(MTLSharedEvent_id mtlSharedEvent_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
44491     : pNext( pNext_ ), mtlSharedEvent( mtlSharedEvent_ )
44492     {}
44493 
44494     VULKAN_HPP_CONSTEXPR ImportMetalSharedEventInfoEXT( ImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44495 
ImportMetalSharedEventInfoEXTVULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT44496     ImportMetalSharedEventInfoEXT( VkImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44497       : ImportMetalSharedEventInfoEXT( *reinterpret_cast<ImportMetalSharedEventInfoEXT const *>( &rhs ) )
44498     {}
44499 
44500 
44501     ImportMetalSharedEventInfoEXT & operator=( ImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44502 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
44503 
operator =VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT44504     ImportMetalSharedEventInfoEXT & operator=( VkImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44505     {
44506       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT const *>( &rhs );
44507       return *this;
44508     }
44509 
44510 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT44511     VULKAN_HPP_CONSTEXPR_14 ImportMetalSharedEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
44512     {
44513       pNext = pNext_;
44514       return *this;
44515     }
44516 
setMtlSharedEventVULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT44517     VULKAN_HPP_CONSTEXPR_14 ImportMetalSharedEventInfoEXT & setMtlSharedEvent( MTLSharedEvent_id mtlSharedEvent_ ) VULKAN_HPP_NOEXCEPT
44518     {
44519       mtlSharedEvent = mtlSharedEvent_;
44520       return *this;
44521     }
44522 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
44523 
44524 
operator VkImportMetalSharedEventInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT44525     operator VkImportMetalSharedEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
44526     {
44527       return *reinterpret_cast<const VkImportMetalSharedEventInfoEXT*>( this );
44528     }
44529 
operator VkImportMetalSharedEventInfoEXT&VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT44530     operator VkImportMetalSharedEventInfoEXT &() VULKAN_HPP_NOEXCEPT
44531     {
44532       return *reinterpret_cast<VkImportMetalSharedEventInfoEXT*>( this );
44533     }
44534 
44535 #if defined( VULKAN_HPP_USE_REFLECT )
44536 #if 14 <= VULKAN_HPP_CPP_VERSION
44537     auto
44538 #else
44539     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, MTLSharedEvent_id const &>
44540 #endif
reflectVULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT44541       reflect() const VULKAN_HPP_NOEXCEPT
44542     {
44543       return std::tie( sType, pNext, mtlSharedEvent );
44544     }
44545 #endif
44546 
44547 
44548 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44549 auto operator<=>( ImportMetalSharedEventInfoEXT const & ) const = default;
44550 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT44551     bool operator==( ImportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
44552     {
44553 #if defined( VULKAN_HPP_USE_REFLECT )
44554       return this->reflect() == rhs.reflect();
44555 #else
44556       return ( sType == rhs.sType )
44557           && ( pNext == rhs.pNext )
44558           && ( mtlSharedEvent == rhs.mtlSharedEvent );
44559 #endif
44560     }
44561 
operator !=VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT44562     bool operator!=( ImportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
44563     {
44564       return !operator==( rhs );
44565     }
44566 #endif
44567 
44568     public:
44569     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalSharedEventInfoEXT;
44570     const void * pNext = {};
44571     MTLSharedEvent_id mtlSharedEvent = {};
44572 
44573   };
44574 
44575   template <>
44576   struct CppType<StructureType, StructureType::eImportMetalSharedEventInfoEXT>
44577   {
44578     using Type = ImportMetalSharedEventInfoEXT;
44579   };
44580 #endif /*VK_USE_PLATFORM_METAL_EXT*/
44581 
44582 #if defined( VK_USE_PLATFORM_METAL_EXT )
44583   struct ImportMetalTextureInfoEXT
44584   {
44585     using NativeType = VkImportMetalTextureInfoEXT;
44586 
44587     static const bool allowDuplicate = true;
44588     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalTextureInfoEXT;
44589 
44590 
44591 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMetalTextureInfoEXTVULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44592 VULKAN_HPP_CONSTEXPR ImportMetalTextureInfoEXT(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor, MTLTexture_id mtlTexture_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
44593     : pNext( pNext_ ), plane( plane_ ), mtlTexture( mtlTexture_ )
44594     {}
44595 
44596     VULKAN_HPP_CONSTEXPR ImportMetalTextureInfoEXT( ImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44597 
ImportMetalTextureInfoEXTVULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44598     ImportMetalTextureInfoEXT( VkImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44599       : ImportMetalTextureInfoEXT( *reinterpret_cast<ImportMetalTextureInfoEXT const *>( &rhs ) )
44600     {}
44601 
44602 
44603     ImportMetalTextureInfoEXT & operator=( ImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44604 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
44605 
operator =VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44606     ImportMetalTextureInfoEXT & operator=( VkImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44607     {
44608       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT const *>( &rhs );
44609       return *this;
44610     }
44611 
44612 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44613     VULKAN_HPP_CONSTEXPR_14 ImportMetalTextureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
44614     {
44615       pNext = pNext_;
44616       return *this;
44617     }
44618 
setPlaneVULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44619     VULKAN_HPP_CONSTEXPR_14 ImportMetalTextureInfoEXT & setPlane( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ ) VULKAN_HPP_NOEXCEPT
44620     {
44621       plane = plane_;
44622       return *this;
44623     }
44624 
setMtlTextureVULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44625     VULKAN_HPP_CONSTEXPR_14 ImportMetalTextureInfoEXT & setMtlTexture( MTLTexture_id mtlTexture_ ) VULKAN_HPP_NOEXCEPT
44626     {
44627       mtlTexture = mtlTexture_;
44628       return *this;
44629     }
44630 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
44631 
44632 
operator VkImportMetalTextureInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44633     operator VkImportMetalTextureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
44634     {
44635       return *reinterpret_cast<const VkImportMetalTextureInfoEXT*>( this );
44636     }
44637 
operator VkImportMetalTextureInfoEXT&VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44638     operator VkImportMetalTextureInfoEXT &() VULKAN_HPP_NOEXCEPT
44639     {
44640       return *reinterpret_cast<VkImportMetalTextureInfoEXT*>( this );
44641     }
44642 
44643 #if defined( VULKAN_HPP_USE_REFLECT )
44644 #if 14 <= VULKAN_HPP_CPP_VERSION
44645     auto
44646 #else
44647     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &, MTLTexture_id const &>
44648 #endif
reflectVULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44649       reflect() const VULKAN_HPP_NOEXCEPT
44650     {
44651       return std::tie( sType, pNext, plane, mtlTexture );
44652     }
44653 #endif
44654 
44655 
44656 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44657 auto operator<=>( ImportMetalTextureInfoEXT const & ) const = default;
44658 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44659     bool operator==( ImportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
44660     {
44661 #if defined( VULKAN_HPP_USE_REFLECT )
44662       return this->reflect() == rhs.reflect();
44663 #else
44664       return ( sType == rhs.sType )
44665           && ( pNext == rhs.pNext )
44666           && ( plane == rhs.plane )
44667           && ( mtlTexture == rhs.mtlTexture );
44668 #endif
44669     }
44670 
operator !=VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT44671     bool operator!=( ImportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
44672     {
44673       return !operator==( rhs );
44674     }
44675 #endif
44676 
44677     public:
44678     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalTextureInfoEXT;
44679     const void * pNext = {};
44680     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
44681     MTLTexture_id mtlTexture = {};
44682 
44683   };
44684 
44685   template <>
44686   struct CppType<StructureType, StructureType::eImportMetalTextureInfoEXT>
44687   {
44688     using Type = ImportMetalTextureInfoEXT;
44689   };
44690 #endif /*VK_USE_PLATFORM_METAL_EXT*/
44691 
44692 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
44693   struct ImportScreenBufferInfoQNX
44694   {
44695     using NativeType = VkImportScreenBufferInfoQNX;
44696 
44697     static const bool allowDuplicate = false;
44698     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportScreenBufferInfoQNX;
44699 
44700 
44701 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportScreenBufferInfoQNXVULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX44702 VULKAN_HPP_CONSTEXPR ImportScreenBufferInfoQNX(struct _screen_buffer * buffer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
44703     : pNext( pNext_ ), buffer( buffer_ )
44704     {}
44705 
44706     VULKAN_HPP_CONSTEXPR ImportScreenBufferInfoQNX( ImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44707 
ImportScreenBufferInfoQNXVULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX44708     ImportScreenBufferInfoQNX( VkImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
44709       : ImportScreenBufferInfoQNX( *reinterpret_cast<ImportScreenBufferInfoQNX const *>( &rhs ) )
44710     {}
44711 
44712 
44713     ImportScreenBufferInfoQNX & operator=( ImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44714 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
44715 
operator =VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX44716     ImportScreenBufferInfoQNX & operator=( VkImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
44717     {
44718       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX const *>( &rhs );
44719       return *this;
44720     }
44721 
44722 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX44723     VULKAN_HPP_CONSTEXPR_14 ImportScreenBufferInfoQNX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
44724     {
44725       pNext = pNext_;
44726       return *this;
44727     }
44728 
setBufferVULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX44729     VULKAN_HPP_CONSTEXPR_14 ImportScreenBufferInfoQNX & setBuffer( struct _screen_buffer * buffer_ ) VULKAN_HPP_NOEXCEPT
44730     {
44731       buffer = buffer_;
44732       return *this;
44733     }
44734 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
44735 
44736 
operator VkImportScreenBufferInfoQNX const&VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX44737     operator VkImportScreenBufferInfoQNX const &() const VULKAN_HPP_NOEXCEPT
44738     {
44739       return *reinterpret_cast<const VkImportScreenBufferInfoQNX*>( this );
44740     }
44741 
operator VkImportScreenBufferInfoQNX&VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX44742     operator VkImportScreenBufferInfoQNX &() VULKAN_HPP_NOEXCEPT
44743     {
44744       return *reinterpret_cast<VkImportScreenBufferInfoQNX*>( this );
44745     }
44746 
44747 #if defined( VULKAN_HPP_USE_REFLECT )
44748 #if 14 <= VULKAN_HPP_CPP_VERSION
44749     auto
44750 #else
44751     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, struct _screen_buffer * const &>
44752 #endif
reflectVULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX44753       reflect() const VULKAN_HPP_NOEXCEPT
44754     {
44755       return std::tie( sType, pNext, buffer );
44756     }
44757 #endif
44758 
44759 
44760 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44761 auto operator<=>( ImportScreenBufferInfoQNX const & ) const = default;
44762 #else
operator ==VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX44763     bool operator==( ImportScreenBufferInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
44764     {
44765 #if defined( VULKAN_HPP_USE_REFLECT )
44766       return this->reflect() == rhs.reflect();
44767 #else
44768       return ( sType == rhs.sType )
44769           && ( pNext == rhs.pNext )
44770           && ( buffer == rhs.buffer );
44771 #endif
44772     }
44773 
operator !=VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX44774     bool operator!=( ImportScreenBufferInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
44775     {
44776       return !operator==( rhs );
44777     }
44778 #endif
44779 
44780     public:
44781     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportScreenBufferInfoQNX;
44782     const void * pNext = {};
44783     struct _screen_buffer * buffer = {};
44784 
44785   };
44786 
44787   template <>
44788   struct CppType<StructureType, StructureType::eImportScreenBufferInfoQNX>
44789   {
44790     using Type = ImportScreenBufferInfoQNX;
44791   };
44792 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
44793 
44794   struct ImportSemaphoreFdInfoKHR
44795   {
44796     using NativeType = VkImportSemaphoreFdInfoKHR;
44797 
44798     static const bool allowDuplicate = false;
44799     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR;
44800 
44801 
44802 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44803 VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, int fd_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
44804     : pNext( pNext_ ), semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ )
44805     {}
44806 
44807     VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44808 
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44809     ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44810       : ImportSemaphoreFdInfoKHR( *reinterpret_cast<ImportSemaphoreFdInfoKHR const *>( &rhs ) )
44811     {}
44812 
44813 
44814     ImportSemaphoreFdInfoKHR & operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44815 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
44816 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44817     ImportSemaphoreFdInfoKHR & operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44818     {
44819       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const *>( &rhs );
44820       return *this;
44821     }
44822 
44823 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44824     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
44825     {
44826       pNext = pNext_;
44827       return *this;
44828     }
44829 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44830     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
44831     {
44832       semaphore = semaphore_;
44833       return *this;
44834     }
44835 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44836     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
44837     {
44838       flags = flags_;
44839       return *this;
44840     }
44841 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44842     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
44843     {
44844       handleType = handleType_;
44845       return *this;
44846     }
44847 
setFdVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44848     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
44849     {
44850       fd = fd_;
44851       return *this;
44852     }
44853 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
44854 
44855 
operator VkImportSemaphoreFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44856     operator VkImportSemaphoreFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
44857     {
44858       return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( this );
44859     }
44860 
operator VkImportSemaphoreFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44861     operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT
44862     {
44863       return *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>( this );
44864     }
44865 
44866 #if defined( VULKAN_HPP_USE_REFLECT )
44867 #if 14 <= VULKAN_HPP_CPP_VERSION
44868     auto
44869 #else
44870     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &, int const &>
44871 #endif
reflectVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44872       reflect() const VULKAN_HPP_NOEXCEPT
44873     {
44874       return std::tie( sType, pNext, semaphore, flags, handleType, fd );
44875     }
44876 #endif
44877 
44878 
44879 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44880 auto operator<=>( ImportSemaphoreFdInfoKHR const & ) const = default;
44881 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44882     bool operator==( ImportSemaphoreFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
44883     {
44884 #if defined( VULKAN_HPP_USE_REFLECT )
44885       return this->reflect() == rhs.reflect();
44886 #else
44887       return ( sType == rhs.sType )
44888           && ( pNext == rhs.pNext )
44889           && ( semaphore == rhs.semaphore )
44890           && ( flags == rhs.flags )
44891           && ( handleType == rhs.handleType )
44892           && ( fd == rhs.fd );
44893 #endif
44894     }
44895 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR44896     bool operator!=( ImportSemaphoreFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
44897     {
44898       return !operator==( rhs );
44899     }
44900 #endif
44901 
44902     public:
44903     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR;
44904     const void * pNext = {};
44905     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
44906     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
44907     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
44908     int fd = {};
44909 
44910   };
44911 
44912   template <>
44913   struct CppType<StructureType, StructureType::eImportSemaphoreFdInfoKHR>
44914   {
44915     using Type = ImportSemaphoreFdInfoKHR;
44916   };
44917 
44918 #if defined( VK_USE_PLATFORM_WIN32_KHR )
44919   struct ImportSemaphoreWin32HandleInfoKHR
44920   {
44921     using NativeType = VkImportSemaphoreWin32HandleInfoKHR;
44922 
44923     static const bool allowDuplicate = false;
44924     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
44925 
44926 
44927 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44928 VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
44929     : pNext( pNext_ ), semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
44930     {}
44931 
44932     VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44933 
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44934     ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44935       : ImportSemaphoreWin32HandleInfoKHR( *reinterpret_cast<ImportSemaphoreWin32HandleInfoKHR const *>( &rhs ) )
44936     {}
44937 
44938 
44939     ImportSemaphoreWin32HandleInfoKHR & operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44940 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
44941 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44942     ImportSemaphoreWin32HandleInfoKHR & operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44943     {
44944       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const *>( &rhs );
44945       return *this;
44946     }
44947 
44948 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44949     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
44950     {
44951       pNext = pNext_;
44952       return *this;
44953     }
44954 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44955     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
44956     {
44957       semaphore = semaphore_;
44958       return *this;
44959     }
44960 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44961     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
44962     {
44963       flags = flags_;
44964       return *this;
44965     }
44966 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44967     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
44968     {
44969       handleType = handleType_;
44970       return *this;
44971     }
44972 
setHandleVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44973     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
44974     {
44975       handle = handle_;
44976       return *this;
44977     }
44978 
setNameVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44979     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
44980     {
44981       name = name_;
44982       return *this;
44983     }
44984 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
44985 
44986 
operator VkImportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44987     operator VkImportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
44988     {
44989       return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( this );
44990     }
44991 
operator VkImportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR44992     operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
44993     {
44994       return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>( this );
44995     }
44996 
44997 #if defined( VULKAN_HPP_USE_REFLECT )
44998 #if 14 <= VULKAN_HPP_CPP_VERSION
44999     auto
45000 #else
45001     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &, HANDLE const &, LPCWSTR const &>
45002 #endif
reflectVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR45003       reflect() const VULKAN_HPP_NOEXCEPT
45004     {
45005       return std::tie( sType, pNext, semaphore, flags, handleType, handle, name );
45006     }
45007 #endif
45008 
45009 
45010 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45011 auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const & ) const = default;
45012 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR45013     bool operator==( ImportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
45014     {
45015 #if defined( VULKAN_HPP_USE_REFLECT )
45016       return this->reflect() == rhs.reflect();
45017 #else
45018       return ( sType == rhs.sType )
45019           && ( pNext == rhs.pNext )
45020           && ( semaphore == rhs.semaphore )
45021           && ( flags == rhs.flags )
45022           && ( handleType == rhs.handleType )
45023           && ( handle == rhs.handle )
45024           && ( name == rhs.name );
45025 #endif
45026     }
45027 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR45028     bool operator!=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
45029     {
45030       return !operator==( rhs );
45031     }
45032 #endif
45033 
45034     public:
45035     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
45036     const void * pNext = {};
45037     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
45038     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
45039     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
45040     HANDLE handle = {};
45041     LPCWSTR name = {};
45042 
45043   };
45044 
45045   template <>
45046   struct CppType<StructureType, StructureType::eImportSemaphoreWin32HandleInfoKHR>
45047   {
45048     using Type = ImportSemaphoreWin32HandleInfoKHR;
45049   };
45050 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
45051 
45052 #if defined( VK_USE_PLATFORM_FUCHSIA )
45053   struct ImportSemaphoreZirconHandleInfoFUCHSIA
45054   {
45055     using NativeType = VkImportSemaphoreZirconHandleInfoFUCHSIA;
45056 
45057     static const bool allowDuplicate = false;
45058     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA;
45059 
45060 
45061 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreZirconHandleInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45062 VULKAN_HPP_CONSTEXPR ImportSemaphoreZirconHandleInfoFUCHSIA(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, zx_handle_t zirconHandle_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
45063     : pNext( pNext_ ), semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), zirconHandle( zirconHandle_ )
45064     {}
45065 
45066     VULKAN_HPP_CONSTEXPR ImportSemaphoreZirconHandleInfoFUCHSIA( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45067 
ImportSemaphoreZirconHandleInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45068     ImportSemaphoreZirconHandleInfoFUCHSIA( VkImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
45069       : ImportSemaphoreZirconHandleInfoFUCHSIA( *reinterpret_cast<ImportSemaphoreZirconHandleInfoFUCHSIA const *>( &rhs ) )
45070     {}
45071 
45072 
45073     ImportSemaphoreZirconHandleInfoFUCHSIA & operator=( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45074 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
45075 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45076     ImportSemaphoreZirconHandleInfoFUCHSIA & operator=( VkImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
45077     {
45078       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA const *>( &rhs );
45079       return *this;
45080     }
45081 
45082 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45083     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
45084     {
45085       pNext = pNext_;
45086       return *this;
45087     }
45088 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45089     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
45090     {
45091       semaphore = semaphore_;
45092       return *this;
45093     }
45094 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45095     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
45096     {
45097       flags = flags_;
45098       return *this;
45099     }
45100 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45101     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45102     {
45103       handleType = handleType_;
45104       return *this;
45105     }
45106 
setZirconHandleVULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45107     VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setZirconHandle( zx_handle_t zirconHandle_ ) VULKAN_HPP_NOEXCEPT
45108     {
45109       zirconHandle = zirconHandle_;
45110       return *this;
45111     }
45112 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
45113 
45114 
operator VkImportSemaphoreZirconHandleInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45115     operator VkImportSemaphoreZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
45116     {
45117       return *reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA*>( this );
45118     }
45119 
operator VkImportSemaphoreZirconHandleInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45120     operator VkImportSemaphoreZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
45121     {
45122       return *reinterpret_cast<VkImportSemaphoreZirconHandleInfoFUCHSIA*>( this );
45123     }
45124 
45125 #if defined( VULKAN_HPP_USE_REFLECT )
45126 #if 14 <= VULKAN_HPP_CPP_VERSION
45127     auto
45128 #else
45129     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &, zx_handle_t const &>
45130 #endif
reflectVULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45131       reflect() const VULKAN_HPP_NOEXCEPT
45132     {
45133       return std::tie( sType, pNext, semaphore, flags, handleType, zirconHandle );
45134     }
45135 #endif
45136 
45137 
45138 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45139     std::strong_ordering operator<=>( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
45140     {
45141       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
45142       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
45143       if ( auto cmp = semaphore <=> rhs.semaphore; cmp != 0 ) return cmp;
45144       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
45145       if ( auto cmp = handleType <=> rhs.handleType; cmp != 0 ) return cmp;
45146       if ( auto cmp = memcmp( &zirconHandle, &rhs.zirconHandle, sizeof( zx_handle_t ) ); cmp != 0 )
45147         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
45148 
45149       return std::strong_ordering::equivalent;
45150     }
45151 #endif
45152 
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45153     bool operator==( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
45154     {
45155       return ( sType == rhs.sType )
45156           && ( pNext == rhs.pNext )
45157           && ( semaphore == rhs.semaphore )
45158           && ( flags == rhs.flags )
45159           && ( handleType == rhs.handleType )
45160           && ( memcmp( &zirconHandle, &rhs.zirconHandle, sizeof( zx_handle_t ) ) == 0 );
45161     }
45162 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA45163     bool operator!=( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
45164     {
45165       return !operator==( rhs );
45166     }
45167 
45168     public:
45169     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA;
45170     const void * pNext = {};
45171     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
45172     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
45173     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
45174     zx_handle_t zirconHandle = {};
45175 
45176   };
45177 
45178   template <>
45179   struct CppType<StructureType, StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA>
45180   {
45181     using Type = ImportSemaphoreZirconHandleInfoFUCHSIA;
45182   };
45183 #endif /*VK_USE_PLATFORM_FUCHSIA*/
45184 
45185   struct IndirectCommandsLayoutTokenNV
45186   {
45187     using NativeType = VkIndirectCommandsLayoutTokenNV;
45188 
45189     static const bool allowDuplicate = false;
45190     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV;
45191 
45192 
45193 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45194 VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV(VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup, uint32_t stream_ = {}, uint32_t offset_ = {}, uint32_t vertexBindingUnit_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ = {}, uint32_t pushconstantOffset_ = {}, uint32_t pushconstantSize_ = {}, VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ = {}, uint32_t indexTypeCount_ = {}, const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes_ = {}, const uint32_t * pIndexTypeValues_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
45195     : pNext( pNext_ ), tokenType( tokenType_ ), stream( stream_ ), offset( offset_ ), vertexBindingUnit( vertexBindingUnit_ ), vertexDynamicStride( vertexDynamicStride_ ), pushconstantPipelineLayout( pushconstantPipelineLayout_ ), pushconstantShaderStageFlags( pushconstantShaderStageFlags_ ), pushconstantOffset( pushconstantOffset_ ), pushconstantSize( pushconstantSize_ ), indirectStateFlags( indirectStateFlags_ ), indexTypeCount( indexTypeCount_ ), pIndexTypes( pIndexTypes_ ), pIndexTypeValues( pIndexTypeValues_ )
45196     {}
45197 
45198     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45199 
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45200     IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
45201       : IndirectCommandsLayoutTokenNV( *reinterpret_cast<IndirectCommandsLayoutTokenNV const *>( &rhs ) )
45202     {}
45203 
45204 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45205     IndirectCommandsLayoutTokenNV( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_, uint32_t stream_, uint32_t offset_, uint32_t vertexBindingUnit_, VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_, VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_, VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_, uint32_t pushconstantOffset_, uint32_t pushconstantSize_, VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ = {}, const void * pNext_ = nullptr )
45206     : pNext( pNext_ ), tokenType( tokenType_ ), stream( stream_ ), offset( offset_ ), vertexBindingUnit( vertexBindingUnit_ ), vertexDynamicStride( vertexDynamicStride_ ), pushconstantPipelineLayout( pushconstantPipelineLayout_ ), pushconstantShaderStageFlags( pushconstantShaderStageFlags_ ), pushconstantOffset( pushconstantOffset_ ), pushconstantSize( pushconstantSize_ ), indirectStateFlags( indirectStateFlags_ ), indexTypeCount( static_cast<uint32_t>( indexTypes_.size() ) ), pIndexTypes( indexTypes_.data() ), pIndexTypeValues( indexTypeValues_.data() )
45207     {
45208 #ifdef VULKAN_HPP_NO_EXCEPTIONS
45209       VULKAN_HPP_ASSERT( indexTypes_.size() == indexTypeValues_.size() );
45210 #else
45211       if ( indexTypes_.size() != indexTypeValues_.size() )
45212       {
45213         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::IndirectCommandsLayoutTokenNV::IndirectCommandsLayoutTokenNV: indexTypes_.size() != indexTypeValues_.size()" );
45214       }
45215 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
45216     }
45217 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
45218 
45219 
45220     IndirectCommandsLayoutTokenNV & operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45221 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
45222 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45223     IndirectCommandsLayoutTokenNV & operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
45224     {
45225       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const *>( &rhs );
45226       return *this;
45227     }
45228 
45229 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45230     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
45231     {
45232       pNext = pNext_;
45233       return *this;
45234     }
45235 
setTokenTypeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45236     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT
45237     {
45238       tokenType = tokenType_;
45239       return *this;
45240     }
45241 
setStreamVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45242     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT
45243     {
45244       stream = stream_;
45245       return *this;
45246     }
45247 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45248     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
45249     {
45250       offset = offset_;
45251       return *this;
45252     }
45253 
setVertexBindingUnitVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45254     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT
45255     {
45256       vertexBindingUnit = vertexBindingUnit_;
45257       return *this;
45258     }
45259 
setVertexDynamicStrideVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45260     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT
45261     {
45262       vertexDynamicStride = vertexDynamicStride_;
45263       return *this;
45264     }
45265 
setPushconstantPipelineLayoutVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45266     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
45267     {
45268       pushconstantPipelineLayout = pushconstantPipelineLayout_;
45269       return *this;
45270     }
45271 
setPushconstantShaderStageFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45272     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT
45273     {
45274       pushconstantShaderStageFlags = pushconstantShaderStageFlags_;
45275       return *this;
45276     }
45277 
setPushconstantOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45278     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT
45279     {
45280       pushconstantOffset = pushconstantOffset_;
45281       return *this;
45282     }
45283 
setPushconstantSizeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45284     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT
45285     {
45286       pushconstantSize = pushconstantSize_;
45287       return *this;
45288     }
45289 
setIndirectStateFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45290     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT
45291     {
45292       indirectStateFlags = indirectStateFlags_;
45293       return *this;
45294     }
45295 
setIndexTypeCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45296     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT
45297     {
45298       indexTypeCount = indexTypeCount_;
45299       return *this;
45300     }
45301 
setPIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45302     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes_ ) VULKAN_HPP_NOEXCEPT
45303     {
45304       pIndexTypes = pIndexTypes_;
45305       return *this;
45306     }
45307 
45308 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45309     IndirectCommandsLayoutTokenNV & setIndexTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_ ) VULKAN_HPP_NOEXCEPT
45310     {
45311       indexTypeCount = static_cast<uint32_t>( indexTypes_.size() );
45312       pIndexTypes = indexTypes_.data();
45313       return *this;
45314     }
45315 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
45316 
setPIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45317     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t * pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT
45318     {
45319       pIndexTypeValues = pIndexTypeValues_;
45320       return *this;
45321     }
45322 
45323 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45324     IndirectCommandsLayoutTokenNV & setIndexTypeValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT
45325     {
45326       indexTypeCount = static_cast<uint32_t>( indexTypeValues_.size() );
45327       pIndexTypeValues = indexTypeValues_.data();
45328       return *this;
45329     }
45330 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
45331 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
45332 
45333 
operator VkIndirectCommandsLayoutTokenNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45334     operator VkIndirectCommandsLayoutTokenNV const &() const VULKAN_HPP_NOEXCEPT
45335     {
45336       return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNV*>( this );
45337     }
45338 
operator VkIndirectCommandsLayoutTokenNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45339     operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT
45340     {
45341       return *reinterpret_cast<VkIndirectCommandsLayoutTokenNV*>( this );
45342     }
45343 
45344 #if defined( VULKAN_HPP_USE_REFLECT )
45345 #if 14 <= VULKAN_HPP_CPP_VERSION
45346     auto
45347 #else
45348     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::PipelineLayout const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::IndexType * const &, const uint32_t * const &>
45349 #endif
reflectVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45350       reflect() const VULKAN_HPP_NOEXCEPT
45351     {
45352       return std::tie( sType, pNext, tokenType, stream, offset, vertexBindingUnit, vertexDynamicStride, pushconstantPipelineLayout, pushconstantShaderStageFlags, pushconstantOffset, pushconstantSize, indirectStateFlags, indexTypeCount, pIndexTypes, pIndexTypeValues );
45353     }
45354 #endif
45355 
45356 
45357 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45358 auto operator<=>( IndirectCommandsLayoutTokenNV const & ) const = default;
45359 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45360     bool operator==( IndirectCommandsLayoutTokenNV const & rhs ) const VULKAN_HPP_NOEXCEPT
45361     {
45362 #if defined( VULKAN_HPP_USE_REFLECT )
45363       return this->reflect() == rhs.reflect();
45364 #else
45365       return ( sType == rhs.sType )
45366           && ( pNext == rhs.pNext )
45367           && ( tokenType == rhs.tokenType )
45368           && ( stream == rhs.stream )
45369           && ( offset == rhs.offset )
45370           && ( vertexBindingUnit == rhs.vertexBindingUnit )
45371           && ( vertexDynamicStride == rhs.vertexDynamicStride )
45372           && ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout )
45373           && ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags )
45374           && ( pushconstantOffset == rhs.pushconstantOffset )
45375           && ( pushconstantSize == rhs.pushconstantSize )
45376           && ( indirectStateFlags == rhs.indirectStateFlags )
45377           && ( indexTypeCount == rhs.indexTypeCount )
45378           && ( pIndexTypes == rhs.pIndexTypes )
45379           && ( pIndexTypeValues == rhs.pIndexTypeValues );
45380 #endif
45381     }
45382 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV45383     bool operator!=( IndirectCommandsLayoutTokenNV const & rhs ) const VULKAN_HPP_NOEXCEPT
45384     {
45385       return !operator==( rhs );
45386     }
45387 #endif
45388 
45389     public:
45390     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutTokenNV;
45391     const void * pNext = {};
45392     VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup;
45393     uint32_t stream = {};
45394     uint32_t offset = {};
45395     uint32_t vertexBindingUnit = {};
45396     VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {};
45397     VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {};
45398     VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {};
45399     uint32_t pushconstantOffset = {};
45400     uint32_t pushconstantSize = {};
45401     VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {};
45402     uint32_t indexTypeCount = {};
45403     const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes = {};
45404     const uint32_t * pIndexTypeValues = {};
45405 
45406   };
45407 
45408   template <>
45409   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutTokenNV>
45410   {
45411     using Type = IndirectCommandsLayoutTokenNV;
45412   };
45413 
45414   struct IndirectCommandsLayoutCreateInfoNV
45415   {
45416     using NativeType = VkIndirectCommandsLayoutCreateInfoNV;
45417 
45418     static const bool allowDuplicate = false;
45419     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
45420 
45421 
45422 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45423 VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t tokenCount_ = {}, const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens_ = {}, uint32_t streamCount_ = {}, const uint32_t * pStreamStrides_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
45424     : pNext( pNext_ ), flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( tokenCount_ ), pTokens( pTokens_ ), streamCount( streamCount_ ), pStreamStrides( pStreamStrides_ )
45425     {}
45426 
45427     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45428 
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45429     IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
45430       : IndirectCommandsLayoutCreateInfoNV( *reinterpret_cast<IndirectCommandsLayoutCreateInfoNV const *>( &rhs ) )
45431     {}
45432 
45433 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45434     IndirectCommandsLayoutCreateInfoNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ = {}, const void * pNext_ = nullptr )
45435     : pNext( pNext_ ), flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( static_cast<uint32_t>( tokens_.size() ) ), pTokens( tokens_.data() ), streamCount( static_cast<uint32_t>( streamStrides_.size() ) ), pStreamStrides( streamStrides_.data() )
45436     {}
45437 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
45438 
45439 
45440     IndirectCommandsLayoutCreateInfoNV & operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45441 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
45442 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45443     IndirectCommandsLayoutCreateInfoNV & operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
45444     {
45445       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const *>( &rhs );
45446       return *this;
45447     }
45448 
45449 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45450     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
45451     {
45452       pNext = pNext_;
45453       return *this;
45454     }
45455 
setFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45456     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
45457     {
45458       flags = flags_;
45459       return *this;
45460     }
45461 
setPipelineBindPointVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45462     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
45463     {
45464       pipelineBindPoint = pipelineBindPoint_;
45465       return *this;
45466     }
45467 
setTokenCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45468     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT
45469     {
45470       tokenCount = tokenCount_;
45471       return *this;
45472     }
45473 
setPTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45474     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens_ ) VULKAN_HPP_NOEXCEPT
45475     {
45476       pTokens = pTokens_;
45477       return *this;
45478     }
45479 
45480 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45481     IndirectCommandsLayoutCreateInfoNV & setTokens( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_ ) VULKAN_HPP_NOEXCEPT
45482     {
45483       tokenCount = static_cast<uint32_t>( tokens_.size() );
45484       pTokens = tokens_.data();
45485       return *this;
45486     }
45487 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
45488 
setStreamCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45489     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
45490     {
45491       streamCount = streamCount_;
45492       return *this;
45493     }
45494 
setPStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45495     VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t * pStreamStrides_ ) VULKAN_HPP_NOEXCEPT
45496     {
45497       pStreamStrides = pStreamStrides_;
45498       return *this;
45499     }
45500 
45501 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45502     IndirectCommandsLayoutCreateInfoNV & setStreamStrides( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ ) VULKAN_HPP_NOEXCEPT
45503     {
45504       streamCount = static_cast<uint32_t>( streamStrides_.size() );
45505       pStreamStrides = streamStrides_.data();
45506       return *this;
45507     }
45508 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
45509 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
45510 
45511 
operator VkIndirectCommandsLayoutCreateInfoNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45512     operator VkIndirectCommandsLayoutCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
45513     {
45514       return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( this );
45515     }
45516 
operator VkIndirectCommandsLayoutCreateInfoNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45517     operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT
45518     {
45519       return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNV*>( this );
45520     }
45521 
45522 #if defined( VULKAN_HPP_USE_REFLECT )
45523 #if 14 <= VULKAN_HPP_CPP_VERSION
45524     auto
45525 #else
45526     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV const &, VULKAN_HPP_NAMESPACE::PipelineBindPoint const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * const &, uint32_t const &, const uint32_t * const &>
45527 #endif
reflectVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45528       reflect() const VULKAN_HPP_NOEXCEPT
45529     {
45530       return std::tie( sType, pNext, flags, pipelineBindPoint, tokenCount, pTokens, streamCount, pStreamStrides );
45531     }
45532 #endif
45533 
45534 
45535 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45536 auto operator<=>( IndirectCommandsLayoutCreateInfoNV const & ) const = default;
45537 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45538     bool operator==( IndirectCommandsLayoutCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
45539     {
45540 #if defined( VULKAN_HPP_USE_REFLECT )
45541       return this->reflect() == rhs.reflect();
45542 #else
45543       return ( sType == rhs.sType )
45544           && ( pNext == rhs.pNext )
45545           && ( flags == rhs.flags )
45546           && ( pipelineBindPoint == rhs.pipelineBindPoint )
45547           && ( tokenCount == rhs.tokenCount )
45548           && ( pTokens == rhs.pTokens )
45549           && ( streamCount == rhs.streamCount )
45550           && ( pStreamStrides == rhs.pStreamStrides );
45551 #endif
45552     }
45553 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV45554     bool operator!=( IndirectCommandsLayoutCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
45555     {
45556       return !operator==( rhs );
45557     }
45558 #endif
45559 
45560     public:
45561     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
45562     const void * pNext = {};
45563     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {};
45564     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
45565     uint32_t tokenCount = {};
45566     const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens = {};
45567     uint32_t streamCount = {};
45568     const uint32_t * pStreamStrides = {};
45569 
45570   };
45571 
45572   template <>
45573   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutCreateInfoNV>
45574   {
45575     using Type = IndirectCommandsLayoutCreateInfoNV;
45576   };
45577 
45578   struct InitializePerformanceApiInfoINTEL
45579   {
45580     using NativeType = VkInitializePerformanceApiInfoINTEL;
45581 
45582     static const bool allowDuplicate = false;
45583     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInitializePerformanceApiInfoINTEL;
45584 
45585 
45586 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL45587 VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL(void * pUserData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
45588     : pNext( pNext_ ), pUserData( pUserData_ )
45589     {}
45590 
45591     VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45592 
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL45593     InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45594       : InitializePerformanceApiInfoINTEL( *reinterpret_cast<InitializePerformanceApiInfoINTEL const *>( &rhs ) )
45595     {}
45596 
45597 
45598     InitializePerformanceApiInfoINTEL & operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45599 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
45600 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL45601     InitializePerformanceApiInfoINTEL & operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45602     {
45603       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const *>( &rhs );
45604       return *this;
45605     }
45606 
45607 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL45608     VULKAN_HPP_CONSTEXPR_14 InitializePerformanceApiInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
45609     {
45610       pNext = pNext_;
45611       return *this;
45612     }
45613 
setPUserDataVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL45614     VULKAN_HPP_CONSTEXPR_14 InitializePerformanceApiInfoINTEL & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
45615     {
45616       pUserData = pUserData_;
45617       return *this;
45618     }
45619 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
45620 
45621 
operator VkInitializePerformanceApiInfoINTEL const&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL45622     operator VkInitializePerformanceApiInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
45623     {
45624       return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( this );
45625     }
45626 
operator VkInitializePerformanceApiInfoINTEL&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL45627     operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT
45628     {
45629       return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>( this );
45630     }
45631 
45632 #if defined( VULKAN_HPP_USE_REFLECT )
45633 #if 14 <= VULKAN_HPP_CPP_VERSION
45634     auto
45635 #else
45636     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, void * const &>
45637 #endif
reflectVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL45638       reflect() const VULKAN_HPP_NOEXCEPT
45639     {
45640       return std::tie( sType, pNext, pUserData );
45641     }
45642 #endif
45643 
45644 
45645 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45646 auto operator<=>( InitializePerformanceApiInfoINTEL const & ) const = default;
45647 #else
operator ==VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL45648     bool operator==( InitializePerformanceApiInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
45649     {
45650 #if defined( VULKAN_HPP_USE_REFLECT )
45651       return this->reflect() == rhs.reflect();
45652 #else
45653       return ( sType == rhs.sType )
45654           && ( pNext == rhs.pNext )
45655           && ( pUserData == rhs.pUserData );
45656 #endif
45657     }
45658 
operator !=VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL45659     bool operator!=( InitializePerformanceApiInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
45660     {
45661       return !operator==( rhs );
45662     }
45663 #endif
45664 
45665     public:
45666     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL;
45667     const void * pNext = {};
45668     void * pUserData = {};
45669 
45670   };
45671 
45672   template <>
45673   struct CppType<StructureType, StructureType::eInitializePerformanceApiInfoINTEL>
45674   {
45675     using Type = InitializePerformanceApiInfoINTEL;
45676   };
45677 
45678   struct InputAttachmentAspectReference
45679   {
45680     using NativeType = VkInputAttachmentAspectReference;
45681 
45682 
45683 
45684 
45685 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45686 VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference(uint32_t subpass_ = {}, uint32_t inputAttachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}) VULKAN_HPP_NOEXCEPT
45687     : subpass( subpass_ ), inputAttachmentIndex( inputAttachmentIndex_ ), aspectMask( aspectMask_ )
45688     {}
45689 
45690     VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45691 
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45692     InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
45693       : InputAttachmentAspectReference( *reinterpret_cast<InputAttachmentAspectReference const *>( &rhs ) )
45694     {}
45695 
45696 
45697     InputAttachmentAspectReference & operator=( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45698 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
45699 
operator =VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45700     InputAttachmentAspectReference & operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
45701     {
45702       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference const *>( &rhs );
45703       return *this;
45704     }
45705 
45706 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSubpassVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45707     VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
45708     {
45709       subpass = subpass_;
45710       return *this;
45711     }
45712 
setInputAttachmentIndexVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45713     VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT
45714     {
45715       inputAttachmentIndex = inputAttachmentIndex_;
45716       return *this;
45717     }
45718 
setAspectMaskVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45719     VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
45720     {
45721       aspectMask = aspectMask_;
45722       return *this;
45723     }
45724 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
45725 
45726 
operator VkInputAttachmentAspectReference const&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45727     operator VkInputAttachmentAspectReference const &() const VULKAN_HPP_NOEXCEPT
45728     {
45729       return *reinterpret_cast<const VkInputAttachmentAspectReference*>( this );
45730     }
45731 
operator VkInputAttachmentAspectReference&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45732     operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT
45733     {
45734       return *reinterpret_cast<VkInputAttachmentAspectReference*>( this );
45735     }
45736 
45737 #if defined( VULKAN_HPP_USE_REFLECT )
45738 #if 14 <= VULKAN_HPP_CPP_VERSION
45739     auto
45740 #else
45741     std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageAspectFlags const &>
45742 #endif
reflectVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45743       reflect() const VULKAN_HPP_NOEXCEPT
45744     {
45745       return std::tie( subpass, inputAttachmentIndex, aspectMask );
45746     }
45747 #endif
45748 
45749 
45750 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45751 auto operator<=>( InputAttachmentAspectReference const & ) const = default;
45752 #else
operator ==VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45753     bool operator==( InputAttachmentAspectReference const & rhs ) const VULKAN_HPP_NOEXCEPT
45754     {
45755 #if defined( VULKAN_HPP_USE_REFLECT )
45756       return this->reflect() == rhs.reflect();
45757 #else
45758       return ( subpass == rhs.subpass )
45759           && ( inputAttachmentIndex == rhs.inputAttachmentIndex )
45760           && ( aspectMask == rhs.aspectMask );
45761 #endif
45762     }
45763 
operator !=VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference45764     bool operator!=( InputAttachmentAspectReference const & rhs ) const VULKAN_HPP_NOEXCEPT
45765     {
45766       return !operator==( rhs );
45767     }
45768 #endif
45769 
45770     public:
45771     uint32_t subpass = {};
45772     uint32_t inputAttachmentIndex = {};
45773     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
45774 
45775   };
45776   using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
45777 
45778   struct InstanceCreateInfo
45779   {
45780     using NativeType = VkInstanceCreateInfo;
45781 
45782     static const bool allowDuplicate = false;
45783     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo;
45784 
45785 
45786 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo45787 VULKAN_HPP_CONSTEXPR InstanceCreateInfo(VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_ = {}, uint32_t enabledLayerCount_ = {}, const char * const * ppEnabledLayerNames_ = {}, uint32_t enabledExtensionCount_ = {}, const char * const * ppEnabledExtensionNames_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
45788     : pNext( pNext_ ), flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ )
45789     {}
45790 
45791     VULKAN_HPP_CONSTEXPR InstanceCreateInfo( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45792 
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo45793     InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
45794       : InstanceCreateInfo( *reinterpret_cast<InstanceCreateInfo const *>( &rhs ) )
45795     {}
45796 
45797 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo45798     InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_, const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ = {}, const void * pNext_ = nullptr )
45799     : pNext( pNext_ ), flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() )
45800     {}
45801 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
45802 
45803 
45804     InstanceCreateInfo & operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45805 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
45806 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo45807     InstanceCreateInfo & operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
45808     {
45809       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InstanceCreateInfo const *>( &rhs );
45810       return *this;
45811     }
45812 
45813 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::InstanceCreateInfo45814     VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
45815     {
45816       pNext = pNext_;
45817       return *this;
45818     }
45819 
setFlagsVULKAN_HPP_NAMESPACE::InstanceCreateInfo45820     VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
45821     {
45822       flags = flags_;
45823       return *this;
45824     }
45825 
setPApplicationInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo45826     VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT
45827     {
45828       pApplicationInfo = pApplicationInfo_;
45829       return *this;
45830     }
45831 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo45832     VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
45833     {
45834       enabledLayerCount = enabledLayerCount_;
45835       return *this;
45836     }
45837 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo45838     VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPpEnabledLayerNames( const char * const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
45839     {
45840       ppEnabledLayerNames = ppEnabledLayerNames_;
45841       return *this;
45842     }
45843 
45844 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo45845     InstanceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
45846     {
45847       enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
45848       ppEnabledLayerNames = pEnabledLayerNames_.data();
45849       return *this;
45850     }
45851 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
45852 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo45853     VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
45854     {
45855       enabledExtensionCount = enabledExtensionCount_;
45856       return *this;
45857     }
45858 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo45859     VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPpEnabledExtensionNames( const char * const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
45860     {
45861       ppEnabledExtensionNames = ppEnabledExtensionNames_;
45862       return *this;
45863     }
45864 
45865 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo45866     InstanceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
45867     {
45868       enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
45869       ppEnabledExtensionNames = pEnabledExtensionNames_.data();
45870       return *this;
45871     }
45872 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
45873 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
45874 
45875 
operator VkInstanceCreateInfo const&VULKAN_HPP_NAMESPACE::InstanceCreateInfo45876     operator VkInstanceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
45877     {
45878       return *reinterpret_cast<const VkInstanceCreateInfo*>( this );
45879     }
45880 
operator VkInstanceCreateInfo&VULKAN_HPP_NAMESPACE::InstanceCreateInfo45881     operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT
45882     {
45883       return *reinterpret_cast<VkInstanceCreateInfo*>( this );
45884     }
45885 
45886 #if defined( VULKAN_HPP_USE_REFLECT )
45887 #if 14 <= VULKAN_HPP_CPP_VERSION
45888     auto
45889 #else
45890     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::InstanceCreateFlags const &, const VULKAN_HPP_NAMESPACE::ApplicationInfo * const &, uint32_t const &, const char * const * const &, uint32_t const &, const char * const * const &>
45891 #endif
reflectVULKAN_HPP_NAMESPACE::InstanceCreateInfo45892       reflect() const VULKAN_HPP_NOEXCEPT
45893     {
45894       return std::tie( sType, pNext, flags, pApplicationInfo, enabledLayerCount, ppEnabledLayerNames, enabledExtensionCount, ppEnabledExtensionNames );
45895     }
45896 #endif
45897 
45898 
45899 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::InstanceCreateInfo45900     std::strong_ordering operator<=>( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
45901     {
45902       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
45903       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
45904       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
45905       if ( auto cmp = pApplicationInfo <=> rhs.pApplicationInfo; cmp != 0 ) return cmp;
45906       if ( auto cmp = enabledLayerCount <=> rhs.enabledLayerCount; cmp != 0 ) return cmp;
45907       for ( size_t i = 0; i < enabledLayerCount; ++i )
45908       {
45909         if ( ppEnabledLayerNames[i] != rhs.ppEnabledLayerNames[i] )
45910           if ( auto cmp = strcmp( ppEnabledLayerNames[i], rhs.ppEnabledLayerNames[i] ); cmp != 0 )
45911             return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
45912       }
45913       if ( auto cmp = enabledExtensionCount <=> rhs.enabledExtensionCount; cmp != 0 ) return cmp;
45914       for ( size_t i = 0; i < enabledExtensionCount; ++i )
45915       {
45916         if ( ppEnabledExtensionNames[i] != rhs.ppEnabledExtensionNames[i] )
45917           if ( auto cmp = strcmp( ppEnabledExtensionNames[i], rhs.ppEnabledExtensionNames[i] ); cmp != 0 )
45918             return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
45919       }
45920 
45921       return std::strong_ordering::equivalent;
45922     }
45923 #endif
45924 
operator ==VULKAN_HPP_NAMESPACE::InstanceCreateInfo45925     bool operator==( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
45926     {
45927       return ( sType == rhs.sType )
45928           && ( pNext == rhs.pNext )
45929           && ( flags == rhs.flags )
45930           && ( pApplicationInfo == rhs.pApplicationInfo )
45931           && ( enabledLayerCount == rhs.enabledLayerCount )
45932           && std::equal( ppEnabledLayerNames, ppEnabledLayerNames + enabledLayerCount, rhs.ppEnabledLayerNames, []( char const * left, char const * right ) { return ( left == right ) || ( strcmp( left, right ) == 0 ); } )
45933           && ( enabledExtensionCount == rhs.enabledExtensionCount )
45934           && std::equal( ppEnabledExtensionNames, ppEnabledExtensionNames + enabledExtensionCount, rhs.ppEnabledExtensionNames, []( char const * left, char const * right ) { return ( left == right ) || ( strcmp( left, right ) == 0 ); } );
45935     }
45936 
operator !=VULKAN_HPP_NAMESPACE::InstanceCreateInfo45937     bool operator!=( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
45938     {
45939       return !operator==( rhs );
45940     }
45941 
45942     public:
45943     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo;
45944     const void * pNext = {};
45945     VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {};
45946     const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo = {};
45947     uint32_t enabledLayerCount = {};
45948     const char * const * ppEnabledLayerNames = {};
45949     uint32_t enabledExtensionCount = {};
45950     const char * const * ppEnabledExtensionNames = {};
45951 
45952   };
45953 
45954   template <>
45955   struct CppType<StructureType, StructureType::eInstanceCreateInfo>
45956   {
45957     using Type = InstanceCreateInfo;
45958   };
45959 
45960   struct LatencySleepInfoNV
45961   {
45962     using NativeType = VkLatencySleepInfoNV;
45963 
45964     static const bool allowDuplicate = false;
45965     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySleepInfoNV;
45966 
45967 
45968 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
LatencySleepInfoNVVULKAN_HPP_NAMESPACE::LatencySleepInfoNV45969 VULKAN_HPP_CONSTEXPR LatencySleepInfoNV(VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ = {}, uint64_t value_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
45970     : pNext( pNext_ ), signalSemaphore( signalSemaphore_ ), value( value_ )
45971     {}
45972 
45973     VULKAN_HPP_CONSTEXPR LatencySleepInfoNV( LatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45974 
LatencySleepInfoNVVULKAN_HPP_NAMESPACE::LatencySleepInfoNV45975     LatencySleepInfoNV( VkLatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
45976       : LatencySleepInfoNV( *reinterpret_cast<LatencySleepInfoNV const *>( &rhs ) )
45977     {}
45978 
45979 
45980     LatencySleepInfoNV & operator=( LatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45981 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
45982 
operator =VULKAN_HPP_NAMESPACE::LatencySleepInfoNV45983     LatencySleepInfoNV & operator=( VkLatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
45984     {
45985       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV const *>( &rhs );
45986       return *this;
45987     }
45988 
45989 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::LatencySleepInfoNV45990     VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
45991     {
45992       pNext = pNext_;
45993       return *this;
45994     }
45995 
setSignalSemaphoreVULKAN_HPP_NAMESPACE::LatencySleepInfoNV45996     VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setSignalSemaphore( VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ ) VULKAN_HPP_NOEXCEPT
45997     {
45998       signalSemaphore = signalSemaphore_;
45999       return *this;
46000     }
46001 
setValueVULKAN_HPP_NAMESPACE::LatencySleepInfoNV46002     VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
46003     {
46004       value = value_;
46005       return *this;
46006     }
46007 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
46008 
46009 
operator VkLatencySleepInfoNV const&VULKAN_HPP_NAMESPACE::LatencySleepInfoNV46010     operator VkLatencySleepInfoNV const &() const VULKAN_HPP_NOEXCEPT
46011     {
46012       return *reinterpret_cast<const VkLatencySleepInfoNV*>( this );
46013     }
46014 
operator VkLatencySleepInfoNV&VULKAN_HPP_NAMESPACE::LatencySleepInfoNV46015     operator VkLatencySleepInfoNV &() VULKAN_HPP_NOEXCEPT
46016     {
46017       return *reinterpret_cast<VkLatencySleepInfoNV*>( this );
46018     }
46019 
46020 #if defined( VULKAN_HPP_USE_REFLECT )
46021 #if 14 <= VULKAN_HPP_CPP_VERSION
46022     auto
46023 #else
46024     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, uint64_t const &>
46025 #endif
reflectVULKAN_HPP_NAMESPACE::LatencySleepInfoNV46026       reflect() const VULKAN_HPP_NOEXCEPT
46027     {
46028       return std::tie( sType, pNext, signalSemaphore, value );
46029     }
46030 #endif
46031 
46032 
46033 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46034 auto operator<=>( LatencySleepInfoNV const & ) const = default;
46035 #else
operator ==VULKAN_HPP_NAMESPACE::LatencySleepInfoNV46036     bool operator==( LatencySleepInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
46037     {
46038 #if defined( VULKAN_HPP_USE_REFLECT )
46039       return this->reflect() == rhs.reflect();
46040 #else
46041       return ( sType == rhs.sType )
46042           && ( pNext == rhs.pNext )
46043           && ( signalSemaphore == rhs.signalSemaphore )
46044           && ( value == rhs.value );
46045 #endif
46046     }
46047 
operator !=VULKAN_HPP_NAMESPACE::LatencySleepInfoNV46048     bool operator!=( LatencySleepInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
46049     {
46050       return !operator==( rhs );
46051     }
46052 #endif
46053 
46054     public:
46055     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySleepInfoNV;
46056     const void * pNext = {};
46057     VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore = {};
46058     uint64_t value = {};
46059 
46060   };
46061 
46062   template <>
46063   struct CppType<StructureType, StructureType::eLatencySleepInfoNV>
46064   {
46065     using Type = LatencySleepInfoNV;
46066   };
46067 
46068   struct LatencySleepModeInfoNV
46069   {
46070     using NativeType = VkLatencySleepModeInfoNV;
46071 
46072     static const bool allowDuplicate = false;
46073     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySleepModeInfoNV;
46074 
46075 
46076 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
LatencySleepModeInfoNVVULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46077 VULKAN_HPP_CONSTEXPR LatencySleepModeInfoNV(VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_ = {}, uint32_t minimumIntervalUs_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
46078     : pNext( pNext_ ), lowLatencyMode( lowLatencyMode_ ), lowLatencyBoost( lowLatencyBoost_ ), minimumIntervalUs( minimumIntervalUs_ )
46079     {}
46080 
46081     VULKAN_HPP_CONSTEXPR LatencySleepModeInfoNV( LatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46082 
LatencySleepModeInfoNVVULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46083     LatencySleepModeInfoNV( VkLatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
46084       : LatencySleepModeInfoNV( *reinterpret_cast<LatencySleepModeInfoNV const *>( &rhs ) )
46085     {}
46086 
46087 
46088     LatencySleepModeInfoNV & operator=( LatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46089 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
46090 
operator =VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46091     LatencySleepModeInfoNV & operator=( VkLatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
46092     {
46093       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV const *>( &rhs );
46094       return *this;
46095     }
46096 
46097 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46098     VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
46099     {
46100       pNext = pNext_;
46101       return *this;
46102     }
46103 
setLowLatencyModeVULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46104     VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setLowLatencyMode( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode_ ) VULKAN_HPP_NOEXCEPT
46105     {
46106       lowLatencyMode = lowLatencyMode_;
46107       return *this;
46108     }
46109 
setLowLatencyBoostVULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46110     VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setLowLatencyBoost( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_ ) VULKAN_HPP_NOEXCEPT
46111     {
46112       lowLatencyBoost = lowLatencyBoost_;
46113       return *this;
46114     }
46115 
setMinimumIntervalUsVULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46116     VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setMinimumIntervalUs( uint32_t minimumIntervalUs_ ) VULKAN_HPP_NOEXCEPT
46117     {
46118       minimumIntervalUs = minimumIntervalUs_;
46119       return *this;
46120     }
46121 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
46122 
46123 
operator VkLatencySleepModeInfoNV const&VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46124     operator VkLatencySleepModeInfoNV const &() const VULKAN_HPP_NOEXCEPT
46125     {
46126       return *reinterpret_cast<const VkLatencySleepModeInfoNV*>( this );
46127     }
46128 
operator VkLatencySleepModeInfoNV&VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46129     operator VkLatencySleepModeInfoNV &() VULKAN_HPP_NOEXCEPT
46130     {
46131       return *reinterpret_cast<VkLatencySleepModeInfoNV*>( this );
46132     }
46133 
46134 #if defined( VULKAN_HPP_USE_REFLECT )
46135 #if 14 <= VULKAN_HPP_CPP_VERSION
46136     auto
46137 #else
46138     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &>
46139 #endif
reflectVULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46140       reflect() const VULKAN_HPP_NOEXCEPT
46141     {
46142       return std::tie( sType, pNext, lowLatencyMode, lowLatencyBoost, minimumIntervalUs );
46143     }
46144 #endif
46145 
46146 
46147 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46148 auto operator<=>( LatencySleepModeInfoNV const & ) const = default;
46149 #else
operator ==VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46150     bool operator==( LatencySleepModeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
46151     {
46152 #if defined( VULKAN_HPP_USE_REFLECT )
46153       return this->reflect() == rhs.reflect();
46154 #else
46155       return ( sType == rhs.sType )
46156           && ( pNext == rhs.pNext )
46157           && ( lowLatencyMode == rhs.lowLatencyMode )
46158           && ( lowLatencyBoost == rhs.lowLatencyBoost )
46159           && ( minimumIntervalUs == rhs.minimumIntervalUs );
46160 #endif
46161     }
46162 
operator !=VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV46163     bool operator!=( LatencySleepModeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
46164     {
46165       return !operator==( rhs );
46166     }
46167 #endif
46168 
46169     public:
46170     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySleepModeInfoNV;
46171     const void * pNext = {};
46172     VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode = {};
46173     VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost = {};
46174     uint32_t minimumIntervalUs = {};
46175 
46176   };
46177 
46178   template <>
46179   struct CppType<StructureType, StructureType::eLatencySleepModeInfoNV>
46180   {
46181     using Type = LatencySleepModeInfoNV;
46182   };
46183 
46184   struct LatencySubmissionPresentIdNV
46185   {
46186     using NativeType = VkLatencySubmissionPresentIdNV;
46187 
46188     static const bool allowDuplicate = false;
46189     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySubmissionPresentIdNV;
46190 
46191 
46192 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
LatencySubmissionPresentIdNVVULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV46193 VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV(uint64_t presentID_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
46194     : pNext( pNext_ ), presentID( presentID_ )
46195     {}
46196 
46197     VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV( LatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46198 
LatencySubmissionPresentIdNVVULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV46199     LatencySubmissionPresentIdNV( VkLatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT
46200       : LatencySubmissionPresentIdNV( *reinterpret_cast<LatencySubmissionPresentIdNV const *>( &rhs ) )
46201     {}
46202 
46203 
46204     LatencySubmissionPresentIdNV & operator=( LatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46205 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
46206 
operator =VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV46207     LatencySubmissionPresentIdNV & operator=( VkLatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT
46208     {
46209       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV const *>( &rhs );
46210       return *this;
46211     }
46212 
46213 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV46214     VULKAN_HPP_CONSTEXPR_14 LatencySubmissionPresentIdNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
46215     {
46216       pNext = pNext_;
46217       return *this;
46218     }
46219 
setPresentIDVULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV46220     VULKAN_HPP_CONSTEXPR_14 LatencySubmissionPresentIdNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT
46221     {
46222       presentID = presentID_;
46223       return *this;
46224     }
46225 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
46226 
46227 
operator VkLatencySubmissionPresentIdNV const&VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV46228     operator VkLatencySubmissionPresentIdNV const &() const VULKAN_HPP_NOEXCEPT
46229     {
46230       return *reinterpret_cast<const VkLatencySubmissionPresentIdNV*>( this );
46231     }
46232 
operator VkLatencySubmissionPresentIdNV&VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV46233     operator VkLatencySubmissionPresentIdNV &() VULKAN_HPP_NOEXCEPT
46234     {
46235       return *reinterpret_cast<VkLatencySubmissionPresentIdNV*>( this );
46236     }
46237 
46238 #if defined( VULKAN_HPP_USE_REFLECT )
46239 #if 14 <= VULKAN_HPP_CPP_VERSION
46240     auto
46241 #else
46242     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
46243 #endif
reflectVULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV46244       reflect() const VULKAN_HPP_NOEXCEPT
46245     {
46246       return std::tie( sType, pNext, presentID );
46247     }
46248 #endif
46249 
46250 
46251 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46252 auto operator<=>( LatencySubmissionPresentIdNV const & ) const = default;
46253 #else
operator ==VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV46254     bool operator==( LatencySubmissionPresentIdNV const & rhs ) const VULKAN_HPP_NOEXCEPT
46255     {
46256 #if defined( VULKAN_HPP_USE_REFLECT )
46257       return this->reflect() == rhs.reflect();
46258 #else
46259       return ( sType == rhs.sType )
46260           && ( pNext == rhs.pNext )
46261           && ( presentID == rhs.presentID );
46262 #endif
46263     }
46264 
operator !=VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV46265     bool operator!=( LatencySubmissionPresentIdNV const & rhs ) const VULKAN_HPP_NOEXCEPT
46266     {
46267       return !operator==( rhs );
46268     }
46269 #endif
46270 
46271     public:
46272     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySubmissionPresentIdNV;
46273     const void * pNext = {};
46274     uint64_t presentID = {};
46275 
46276   };
46277 
46278   template <>
46279   struct CppType<StructureType, StructureType::eLatencySubmissionPresentIdNV>
46280   {
46281     using Type = LatencySubmissionPresentIdNV;
46282   };
46283 
46284   struct LatencySurfaceCapabilitiesNV
46285   {
46286     using NativeType = VkLatencySurfaceCapabilitiesNV;
46287 
46288     static const bool allowDuplicate = false;
46289     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySurfaceCapabilitiesNV;
46290 
46291 
46292 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
LatencySurfaceCapabilitiesNVVULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46293 VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV(uint32_t presentModeCount_ = {}, VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
46294     : pNext( pNext_ ), presentModeCount( presentModeCount_ ), pPresentModes( pPresentModes_ )
46295     {}
46296 
46297     VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV( LatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46298 
LatencySurfaceCapabilitiesNVVULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46299     LatencySurfaceCapabilitiesNV( VkLatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
46300       : LatencySurfaceCapabilitiesNV( *reinterpret_cast<LatencySurfaceCapabilitiesNV const *>( &rhs ) )
46301     {}
46302 
46303 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
LatencySurfaceCapabilitiesNVVULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46304     LatencySurfaceCapabilitiesNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_, const void * pNext_ = nullptr )
46305     : pNext( pNext_ ), presentModeCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
46306     {}
46307 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
46308 
46309 
46310     LatencySurfaceCapabilitiesNV & operator=( LatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46311 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
46312 
operator =VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46313     LatencySurfaceCapabilitiesNV & operator=( VkLatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
46314     {
46315       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV const *>( &rhs );
46316       return *this;
46317     }
46318 
46319 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46320     VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
46321     {
46322       pNext = pNext_;
46323       return *this;
46324     }
46325 
setPresentModeCountVULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46326     VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPresentModeCount( uint32_t presentModeCount_ ) VULKAN_HPP_NOEXCEPT
46327     {
46328       presentModeCount = presentModeCount_;
46329       return *this;
46330     }
46331 
setPPresentModesVULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46332     VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPPresentModes( VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
46333     {
46334       pPresentModes = pPresentModes_;
46335       return *this;
46336     }
46337 
46338 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPresentModesVULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46339     LatencySurfaceCapabilitiesNV & setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_ ) VULKAN_HPP_NOEXCEPT
46340     {
46341       presentModeCount = static_cast<uint32_t>( presentModes_.size() );
46342       pPresentModes = presentModes_.data();
46343       return *this;
46344     }
46345 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
46346 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
46347 
46348 
operator VkLatencySurfaceCapabilitiesNV const&VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46349     operator VkLatencySurfaceCapabilitiesNV const &() const VULKAN_HPP_NOEXCEPT
46350     {
46351       return *reinterpret_cast<const VkLatencySurfaceCapabilitiesNV*>( this );
46352     }
46353 
operator VkLatencySurfaceCapabilitiesNV&VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46354     operator VkLatencySurfaceCapabilitiesNV &() VULKAN_HPP_NOEXCEPT
46355     {
46356       return *reinterpret_cast<VkLatencySurfaceCapabilitiesNV*>( this );
46357     }
46358 
46359 #if defined( VULKAN_HPP_USE_REFLECT )
46360 #if 14 <= VULKAN_HPP_CPP_VERSION
46361     auto
46362 #else
46363     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
46364 #endif
reflectVULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46365       reflect() const VULKAN_HPP_NOEXCEPT
46366     {
46367       return std::tie( sType, pNext, presentModeCount, pPresentModes );
46368     }
46369 #endif
46370 
46371 
46372 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46373 auto operator<=>( LatencySurfaceCapabilitiesNV const & ) const = default;
46374 #else
operator ==VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46375     bool operator==( LatencySurfaceCapabilitiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
46376     {
46377 #if defined( VULKAN_HPP_USE_REFLECT )
46378       return this->reflect() == rhs.reflect();
46379 #else
46380       return ( sType == rhs.sType )
46381           && ( pNext == rhs.pNext )
46382           && ( presentModeCount == rhs.presentModeCount )
46383           && ( pPresentModes == rhs.pPresentModes );
46384 #endif
46385     }
46386 
operator !=VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV46387     bool operator!=( LatencySurfaceCapabilitiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
46388     {
46389       return !operator==( rhs );
46390     }
46391 #endif
46392 
46393     public:
46394     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySurfaceCapabilitiesNV;
46395     const void * pNext = {};
46396     uint32_t presentModeCount = {};
46397     VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes = {};
46398 
46399   };
46400 
46401   template <>
46402   struct CppType<StructureType, StructureType::eLatencySurfaceCapabilitiesNV>
46403   {
46404     using Type = LatencySurfaceCapabilitiesNV;
46405   };
46406 
46407   struct LayerProperties
46408   {
46409     using NativeType = VkLayerProperties;
46410 
46411 
46412 
46413 
46414 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties46415 VULKAN_HPP_CONSTEXPR_14 LayerProperties(std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const & layerName_ = {}, uint32_t specVersion_ = {}, uint32_t implementationVersion_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & description_ = {}) VULKAN_HPP_NOEXCEPT
46416     : layerName( layerName_ ), specVersion( specVersion_ ), implementationVersion( implementationVersion_ ), description( description_ )
46417     {}
46418 
46419     VULKAN_HPP_CONSTEXPR_14 LayerProperties( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46420 
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties46421     LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
46422       : LayerProperties( *reinterpret_cast<LayerProperties const *>( &rhs ) )
46423     {}
46424 
46425 
46426     LayerProperties & operator=( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46427 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
46428 
operator =VULKAN_HPP_NAMESPACE::LayerProperties46429     LayerProperties & operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
46430     {
46431       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LayerProperties const *>( &rhs );
46432       return *this;
46433     }
46434 
46435 
operator VkLayerProperties const&VULKAN_HPP_NAMESPACE::LayerProperties46436     operator VkLayerProperties const &() const VULKAN_HPP_NOEXCEPT
46437     {
46438       return *reinterpret_cast<const VkLayerProperties*>( this );
46439     }
46440 
operator VkLayerProperties&VULKAN_HPP_NAMESPACE::LayerProperties46441     operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT
46442     {
46443       return *reinterpret_cast<VkLayerProperties*>( this );
46444     }
46445 
46446 #if defined( VULKAN_HPP_USE_REFLECT )
46447 #if 14 <= VULKAN_HPP_CPP_VERSION
46448     auto
46449 #else
46450     std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &>
46451 #endif
reflectVULKAN_HPP_NAMESPACE::LayerProperties46452       reflect() const VULKAN_HPP_NOEXCEPT
46453     {
46454       return std::tie( layerName, specVersion, implementationVersion, description );
46455     }
46456 #endif
46457 
46458 
46459 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46460 auto operator<=>( LayerProperties const & ) const = default;
46461 #else
operator ==VULKAN_HPP_NAMESPACE::LayerProperties46462     bool operator==( LayerProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
46463     {
46464 #if defined( VULKAN_HPP_USE_REFLECT )
46465       return this->reflect() == rhs.reflect();
46466 #else
46467       return ( layerName == rhs.layerName )
46468           && ( specVersion == rhs.specVersion )
46469           && ( implementationVersion == rhs.implementationVersion )
46470           && ( description == rhs.description );
46471 #endif
46472     }
46473 
operator !=VULKAN_HPP_NAMESPACE::LayerProperties46474     bool operator!=( LayerProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
46475     {
46476       return !operator==( rhs );
46477     }
46478 #endif
46479 
46480     public:
46481     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layerName = {};
46482     uint32_t specVersion = {};
46483     uint32_t implementationVersion = {};
46484     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
46485 
46486   };
46487 
46488 #if defined( VK_USE_PLATFORM_MACOS_MVK )
46489   struct MacOSSurfaceCreateInfoMVK
46490   {
46491     using NativeType = VkMacOSSurfaceCreateInfoMVK;
46492 
46493     static const bool allowDuplicate = false;
46494     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK;
46495 
46496 
46497 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46498 VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {}, const void * pView_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
46499     : pNext( pNext_ ), flags( flags_ ), pView( pView_ )
46500     {}
46501 
46502     VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46503 
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46504     MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
46505       : MacOSSurfaceCreateInfoMVK( *reinterpret_cast<MacOSSurfaceCreateInfoMVK const *>( &rhs ) )
46506     {}
46507 
46508 
46509     MacOSSurfaceCreateInfoMVK & operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46510 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
46511 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46512     MacOSSurfaceCreateInfoMVK & operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
46513     {
46514       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const *>( &rhs );
46515       return *this;
46516     }
46517 
46518 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46519     VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
46520     {
46521       pNext = pNext_;
46522       return *this;
46523     }
46524 
setFlagsVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46525     VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
46526     {
46527       flags = flags_;
46528       return *this;
46529     }
46530 
setPViewVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46531     VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & setPView( const void * pView_ ) VULKAN_HPP_NOEXCEPT
46532     {
46533       pView = pView_;
46534       return *this;
46535     }
46536 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
46537 
46538 
operator VkMacOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46539     operator VkMacOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT
46540     {
46541       return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( this );
46542     }
46543 
operator VkMacOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46544     operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
46545     {
46546       return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>( this );
46547     }
46548 
46549 #if defined( VULKAN_HPP_USE_REFLECT )
46550 #if 14 <= VULKAN_HPP_CPP_VERSION
46551     auto
46552 #else
46553     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK const &, const void * const &>
46554 #endif
reflectVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46555       reflect() const VULKAN_HPP_NOEXCEPT
46556     {
46557       return std::tie( sType, pNext, flags, pView );
46558     }
46559 #endif
46560 
46561 
46562 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46563 auto operator<=>( MacOSSurfaceCreateInfoMVK const & ) const = default;
46564 #else
operator ==VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46565     bool operator==( MacOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
46566     {
46567 #if defined( VULKAN_HPP_USE_REFLECT )
46568       return this->reflect() == rhs.reflect();
46569 #else
46570       return ( sType == rhs.sType )
46571           && ( pNext == rhs.pNext )
46572           && ( flags == rhs.flags )
46573           && ( pView == rhs.pView );
46574 #endif
46575     }
46576 
operator !=VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK46577     bool operator!=( MacOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
46578     {
46579       return !operator==( rhs );
46580     }
46581 #endif
46582 
46583     public:
46584     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK;
46585     const void * pNext = {};
46586     VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {};
46587     const void * pView = {};
46588 
46589   };
46590 
46591   template <>
46592   struct CppType<StructureType, StructureType::eMacosSurfaceCreateInfoMVK>
46593   {
46594     using Type = MacOSSurfaceCreateInfoMVK;
46595   };
46596 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
46597 
46598   struct MappedMemoryRange
46599   {
46600     using NativeType = VkMappedMemoryRange;
46601 
46602     static const bool allowDuplicate = false;
46603     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange;
46604 
46605 
46606 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange46607 VULKAN_HPP_CONSTEXPR MappedMemoryRange(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
46608     : pNext( pNext_ ), memory( memory_ ), offset( offset_ ), size( size_ )
46609     {}
46610 
46611     VULKAN_HPP_CONSTEXPR MappedMemoryRange( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46612 
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange46613     MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
46614       : MappedMemoryRange( *reinterpret_cast<MappedMemoryRange const *>( &rhs ) )
46615     {}
46616 
46617 
46618     MappedMemoryRange & operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46619 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
46620 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange46621     MappedMemoryRange & operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
46622     {
46623       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MappedMemoryRange const *>( &rhs );
46624       return *this;
46625     }
46626 
46627 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MappedMemoryRange46628     VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
46629     {
46630       pNext = pNext_;
46631       return *this;
46632     }
46633 
setMemoryVULKAN_HPP_NAMESPACE::MappedMemoryRange46634     VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
46635     {
46636       memory = memory_;
46637       return *this;
46638     }
46639 
setOffsetVULKAN_HPP_NAMESPACE::MappedMemoryRange46640     VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
46641     {
46642       offset = offset_;
46643       return *this;
46644     }
46645 
setSizeVULKAN_HPP_NAMESPACE::MappedMemoryRange46646     VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
46647     {
46648       size = size_;
46649       return *this;
46650     }
46651 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
46652 
46653 
operator VkMappedMemoryRange const&VULKAN_HPP_NAMESPACE::MappedMemoryRange46654     operator VkMappedMemoryRange const &() const VULKAN_HPP_NOEXCEPT
46655     {
46656       return *reinterpret_cast<const VkMappedMemoryRange*>( this );
46657     }
46658 
operator VkMappedMemoryRange&VULKAN_HPP_NAMESPACE::MappedMemoryRange46659     operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT
46660     {
46661       return *reinterpret_cast<VkMappedMemoryRange*>( this );
46662     }
46663 
46664 #if defined( VULKAN_HPP_USE_REFLECT )
46665 #if 14 <= VULKAN_HPP_CPP_VERSION
46666     auto
46667 #else
46668     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
46669 #endif
reflectVULKAN_HPP_NAMESPACE::MappedMemoryRange46670       reflect() const VULKAN_HPP_NOEXCEPT
46671     {
46672       return std::tie( sType, pNext, memory, offset, size );
46673     }
46674 #endif
46675 
46676 
46677 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46678 auto operator<=>( MappedMemoryRange const & ) const = default;
46679 #else
operator ==VULKAN_HPP_NAMESPACE::MappedMemoryRange46680     bool operator==( MappedMemoryRange const & rhs ) const VULKAN_HPP_NOEXCEPT
46681     {
46682 #if defined( VULKAN_HPP_USE_REFLECT )
46683       return this->reflect() == rhs.reflect();
46684 #else
46685       return ( sType == rhs.sType )
46686           && ( pNext == rhs.pNext )
46687           && ( memory == rhs.memory )
46688           && ( offset == rhs.offset )
46689           && ( size == rhs.size );
46690 #endif
46691     }
46692 
operator !=VULKAN_HPP_NAMESPACE::MappedMemoryRange46693     bool operator!=( MappedMemoryRange const & rhs ) const VULKAN_HPP_NOEXCEPT
46694     {
46695       return !operator==( rhs );
46696     }
46697 #endif
46698 
46699     public:
46700     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange;
46701     const void * pNext = {};
46702     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
46703     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
46704     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
46705 
46706   };
46707 
46708   template <>
46709   struct CppType<StructureType, StructureType::eMappedMemoryRange>
46710   {
46711     using Type = MappedMemoryRange;
46712   };
46713 
46714   struct MemoryAllocateFlagsInfo
46715   {
46716     using NativeType = VkMemoryAllocateFlagsInfo;
46717 
46718     static const bool allowDuplicate = false;
46719     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo;
46720 
46721 
46722 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46723 VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo(VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {}, uint32_t deviceMask_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
46724     : pNext( pNext_ ), flags( flags_ ), deviceMask( deviceMask_ )
46725     {}
46726 
46727     VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46728 
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46729     MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
46730       : MemoryAllocateFlagsInfo( *reinterpret_cast<MemoryAllocateFlagsInfo const *>( &rhs ) )
46731     {}
46732 
46733 
46734     MemoryAllocateFlagsInfo & operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46735 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
46736 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46737     MemoryAllocateFlagsInfo & operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
46738     {
46739       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const *>( &rhs );
46740       return *this;
46741     }
46742 
46743 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46744     VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
46745     {
46746       pNext = pNext_;
46747       return *this;
46748     }
46749 
setFlagsVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46750     VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT
46751     {
46752       flags = flags_;
46753       return *this;
46754     }
46755 
setDeviceMaskVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46756     VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
46757     {
46758       deviceMask = deviceMask_;
46759       return *this;
46760     }
46761 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
46762 
46763 
operator VkMemoryAllocateFlagsInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46764     operator VkMemoryAllocateFlagsInfo const &() const VULKAN_HPP_NOEXCEPT
46765     {
46766       return *reinterpret_cast<const VkMemoryAllocateFlagsInfo*>( this );
46767     }
46768 
operator VkMemoryAllocateFlagsInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46769     operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT
46770     {
46771       return *reinterpret_cast<VkMemoryAllocateFlagsInfo*>( this );
46772     }
46773 
46774 #if defined( VULKAN_HPP_USE_REFLECT )
46775 #if 14 <= VULKAN_HPP_CPP_VERSION
46776     auto
46777 #else
46778     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MemoryAllocateFlags const &, uint32_t const &>
46779 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46780       reflect() const VULKAN_HPP_NOEXCEPT
46781     {
46782       return std::tie( sType, pNext, flags, deviceMask );
46783     }
46784 #endif
46785 
46786 
46787 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46788 auto operator<=>( MemoryAllocateFlagsInfo const & ) const = default;
46789 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46790     bool operator==( MemoryAllocateFlagsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
46791     {
46792 #if defined( VULKAN_HPP_USE_REFLECT )
46793       return this->reflect() == rhs.reflect();
46794 #else
46795       return ( sType == rhs.sType )
46796           && ( pNext == rhs.pNext )
46797           && ( flags == rhs.flags )
46798           && ( deviceMask == rhs.deviceMask );
46799 #endif
46800     }
46801 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo46802     bool operator!=( MemoryAllocateFlagsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
46803     {
46804       return !operator==( rhs );
46805     }
46806 #endif
46807 
46808     public:
46809     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo;
46810     const void * pNext = {};
46811     VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {};
46812     uint32_t deviceMask = {};
46813 
46814   };
46815 
46816   template <>
46817   struct CppType<StructureType, StructureType::eMemoryAllocateFlagsInfo>
46818   {
46819     using Type = MemoryAllocateFlagsInfo;
46820   };
46821   using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
46822 
46823   struct MemoryAllocateInfo
46824   {
46825     using NativeType = VkMemoryAllocateInfo;
46826 
46827     static const bool allowDuplicate = false;
46828     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo;
46829 
46830 
46831 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo46832 VULKAN_HPP_CONSTEXPR MemoryAllocateInfo(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
46833     : pNext( pNext_ ), allocationSize( allocationSize_ ), memoryTypeIndex( memoryTypeIndex_ )
46834     {}
46835 
46836     VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46837 
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo46838     MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
46839       : MemoryAllocateInfo( *reinterpret_cast<MemoryAllocateInfo const *>( &rhs ) )
46840     {}
46841 
46842 
46843     MemoryAllocateInfo & operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46844 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
46845 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo46846     MemoryAllocateInfo & operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
46847     {
46848       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const *>( &rhs );
46849       return *this;
46850     }
46851 
46852 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateInfo46853     VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
46854     {
46855       pNext = pNext_;
46856       return *this;
46857     }
46858 
setAllocationSizeVULKAN_HPP_NAMESPACE::MemoryAllocateInfo46859     VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT
46860     {
46861       allocationSize = allocationSize_;
46862       return *this;
46863     }
46864 
setMemoryTypeIndexVULKAN_HPP_NAMESPACE::MemoryAllocateInfo46865     VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT
46866     {
46867       memoryTypeIndex = memoryTypeIndex_;
46868       return *this;
46869     }
46870 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
46871 
46872 
operator VkMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo46873     operator VkMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
46874     {
46875       return *reinterpret_cast<const VkMemoryAllocateInfo*>( this );
46876     }
46877 
operator VkMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo46878     operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
46879     {
46880       return *reinterpret_cast<VkMemoryAllocateInfo*>( this );
46881     }
46882 
46883 #if defined( VULKAN_HPP_USE_REFLECT )
46884 #if 14 <= VULKAN_HPP_CPP_VERSION
46885     auto
46886 #else
46887     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
46888 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryAllocateInfo46889       reflect() const VULKAN_HPP_NOEXCEPT
46890     {
46891       return std::tie( sType, pNext, allocationSize, memoryTypeIndex );
46892     }
46893 #endif
46894 
46895 
46896 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46897 auto operator<=>( MemoryAllocateInfo const & ) const = default;
46898 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateInfo46899     bool operator==( MemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
46900     {
46901 #if defined( VULKAN_HPP_USE_REFLECT )
46902       return this->reflect() == rhs.reflect();
46903 #else
46904       return ( sType == rhs.sType )
46905           && ( pNext == rhs.pNext )
46906           && ( allocationSize == rhs.allocationSize )
46907           && ( memoryTypeIndex == rhs.memoryTypeIndex );
46908 #endif
46909     }
46910 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateInfo46911     bool operator!=( MemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
46912     {
46913       return !operator==( rhs );
46914     }
46915 #endif
46916 
46917     public:
46918     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo;
46919     const void * pNext = {};
46920     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
46921     uint32_t memoryTypeIndex = {};
46922 
46923   };
46924 
46925   template <>
46926   struct CppType<StructureType, StructureType::eMemoryAllocateInfo>
46927   {
46928     using Type = MemoryAllocateInfo;
46929   };
46930 
46931   struct MemoryBarrier
46932   {
46933     using NativeType = VkMemoryBarrier;
46934 
46935     static const bool allowDuplicate = false;
46936     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier;
46937 
46938 
46939 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier46940 VULKAN_HPP_CONSTEXPR MemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
46941     : pNext( pNext_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ )
46942     {}
46943 
46944     VULKAN_HPP_CONSTEXPR MemoryBarrier( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46945 
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier46946     MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
46947       : MemoryBarrier( *reinterpret_cast<MemoryBarrier const *>( &rhs ) )
46948     {}
46949 
46950 
46951     MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46952 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
46953 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier46954     MemoryBarrier & operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
46955     {
46956       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier const *>( &rhs );
46957       return *this;
46958     }
46959 
46960 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryBarrier46961     VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
46962     {
46963       pNext = pNext_;
46964       return *this;
46965     }
46966 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier46967     VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
46968     {
46969       srcAccessMask = srcAccessMask_;
46970       return *this;
46971     }
46972 
setDstAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier46973     VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
46974     {
46975       dstAccessMask = dstAccessMask_;
46976       return *this;
46977     }
46978 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
46979 
46980 
operator VkMemoryBarrier const&VULKAN_HPP_NAMESPACE::MemoryBarrier46981     operator VkMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
46982     {
46983       return *reinterpret_cast<const VkMemoryBarrier*>( this );
46984     }
46985 
operator VkMemoryBarrier&VULKAN_HPP_NAMESPACE::MemoryBarrier46986     operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT
46987     {
46988       return *reinterpret_cast<VkMemoryBarrier*>( this );
46989     }
46990 
46991 #if defined( VULKAN_HPP_USE_REFLECT )
46992 #if 14 <= VULKAN_HPP_CPP_VERSION
46993     auto
46994 #else
46995     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccessFlags const &, VULKAN_HPP_NAMESPACE::AccessFlags const &>
46996 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryBarrier46997       reflect() const VULKAN_HPP_NOEXCEPT
46998     {
46999       return std::tie( sType, pNext, srcAccessMask, dstAccessMask );
47000     }
47001 #endif
47002 
47003 
47004 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47005 auto operator<=>( MemoryBarrier const & ) const = default;
47006 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryBarrier47007     bool operator==( MemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
47008     {
47009 #if defined( VULKAN_HPP_USE_REFLECT )
47010       return this->reflect() == rhs.reflect();
47011 #else
47012       return ( sType == rhs.sType )
47013           && ( pNext == rhs.pNext )
47014           && ( srcAccessMask == rhs.srcAccessMask )
47015           && ( dstAccessMask == rhs.dstAccessMask );
47016 #endif
47017     }
47018 
operator !=VULKAN_HPP_NAMESPACE::MemoryBarrier47019     bool operator!=( MemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
47020     {
47021       return !operator==( rhs );
47022     }
47023 #endif
47024 
47025     public:
47026     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier;
47027     const void * pNext = {};
47028     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
47029     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
47030 
47031   };
47032 
47033   template <>
47034   struct CppType<StructureType, StructureType::eMemoryBarrier>
47035   {
47036     using Type = MemoryBarrier;
47037   };
47038 
47039   struct MemoryDedicatedAllocateInfo
47040   {
47041     using NativeType = VkMemoryDedicatedAllocateInfo;
47042 
47043     static const bool allowDuplicate = false;
47044     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo;
47045 
47046 
47047 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47048 VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
47049     : pNext( pNext_ ), image( image_ ), buffer( buffer_ )
47050     {}
47051 
47052     VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47053 
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47054     MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47055       : MemoryDedicatedAllocateInfo( *reinterpret_cast<MemoryDedicatedAllocateInfo const *>( &rhs ) )
47056     {}
47057 
47058 
47059     MemoryDedicatedAllocateInfo & operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47060 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
47061 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47062     MemoryDedicatedAllocateInfo & operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47063     {
47064       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const *>( &rhs );
47065       return *this;
47066     }
47067 
47068 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47069     VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
47070     {
47071       pNext = pNext_;
47072       return *this;
47073     }
47074 
setImageVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47075     VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
47076     {
47077       image = image_;
47078       return *this;
47079     }
47080 
setBufferVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47081     VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
47082     {
47083       buffer = buffer_;
47084       return *this;
47085     }
47086 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
47087 
47088 
operator VkMemoryDedicatedAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47089     operator VkMemoryDedicatedAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
47090     {
47091       return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>( this );
47092     }
47093 
operator VkMemoryDedicatedAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47094     operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT
47095     {
47096       return *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>( this );
47097     }
47098 
47099 #if defined( VULKAN_HPP_USE_REFLECT )
47100 #if 14 <= VULKAN_HPP_CPP_VERSION
47101     auto
47102 #else
47103     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::Buffer const &>
47104 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47105       reflect() const VULKAN_HPP_NOEXCEPT
47106     {
47107       return std::tie( sType, pNext, image, buffer );
47108     }
47109 #endif
47110 
47111 
47112 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47113 auto operator<=>( MemoryDedicatedAllocateInfo const & ) const = default;
47114 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47115     bool operator==( MemoryDedicatedAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
47116     {
47117 #if defined( VULKAN_HPP_USE_REFLECT )
47118       return this->reflect() == rhs.reflect();
47119 #else
47120       return ( sType == rhs.sType )
47121           && ( pNext == rhs.pNext )
47122           && ( image == rhs.image )
47123           && ( buffer == rhs.buffer );
47124 #endif
47125     }
47126 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo47127     bool operator!=( MemoryDedicatedAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
47128     {
47129       return !operator==( rhs );
47130     }
47131 #endif
47132 
47133     public:
47134     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo;
47135     const void * pNext = {};
47136     VULKAN_HPP_NAMESPACE::Image image = {};
47137     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
47138 
47139   };
47140 
47141   template <>
47142   struct CppType<StructureType, StructureType::eMemoryDedicatedAllocateInfo>
47143   {
47144     using Type = MemoryDedicatedAllocateInfo;
47145   };
47146   using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
47147 
47148   struct MemoryDedicatedRequirements
47149   {
47150     using NativeType = VkMemoryDedicatedRequirements;
47151 
47152     static const bool allowDuplicate = false;
47153     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements;
47154 
47155 
47156 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47157 VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements(VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
47158     : pNext( pNext_ ), prefersDedicatedAllocation( prefersDedicatedAllocation_ ), requiresDedicatedAllocation( requiresDedicatedAllocation_ )
47159     {}
47160 
47161     VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47162 
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47163     MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
47164       : MemoryDedicatedRequirements( *reinterpret_cast<MemoryDedicatedRequirements const *>( &rhs ) )
47165     {}
47166 
47167 
47168     MemoryDedicatedRequirements & operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47169 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
47170 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47171     MemoryDedicatedRequirements & operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
47172     {
47173       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const *>( &rhs );
47174       return *this;
47175     }
47176 
47177 
operator VkMemoryDedicatedRequirements const&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47178     operator VkMemoryDedicatedRequirements const &() const VULKAN_HPP_NOEXCEPT
47179     {
47180       return *reinterpret_cast<const VkMemoryDedicatedRequirements*>( this );
47181     }
47182 
operator VkMemoryDedicatedRequirements&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47183     operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT
47184     {
47185       return *reinterpret_cast<VkMemoryDedicatedRequirements*>( this );
47186     }
47187 
47188 #if defined( VULKAN_HPP_USE_REFLECT )
47189 #if 14 <= VULKAN_HPP_CPP_VERSION
47190     auto
47191 #else
47192     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
47193 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47194       reflect() const VULKAN_HPP_NOEXCEPT
47195     {
47196       return std::tie( sType, pNext, prefersDedicatedAllocation, requiresDedicatedAllocation );
47197     }
47198 #endif
47199 
47200 
47201 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47202 auto operator<=>( MemoryDedicatedRequirements const & ) const = default;
47203 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47204     bool operator==( MemoryDedicatedRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
47205     {
47206 #if defined( VULKAN_HPP_USE_REFLECT )
47207       return this->reflect() == rhs.reflect();
47208 #else
47209       return ( sType == rhs.sType )
47210           && ( pNext == rhs.pNext )
47211           && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation )
47212           && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation );
47213 #endif
47214     }
47215 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements47216     bool operator!=( MemoryDedicatedRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
47217     {
47218       return !operator==( rhs );
47219     }
47220 #endif
47221 
47222     public:
47223     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements;
47224     void * pNext = {};
47225     VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {};
47226     VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {};
47227 
47228   };
47229 
47230   template <>
47231   struct CppType<StructureType, StructureType::eMemoryDedicatedRequirements>
47232   {
47233     using Type = MemoryDedicatedRequirements;
47234   };
47235   using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
47236 
47237   struct MemoryFdPropertiesKHR
47238   {
47239     using NativeType = VkMemoryFdPropertiesKHR;
47240 
47241     static const bool allowDuplicate = false;
47242     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR;
47243 
47244 
47245 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47246 VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR(uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
47247     : pNext( pNext_ ), memoryTypeBits( memoryTypeBits_ )
47248     {}
47249 
47250     VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47251 
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47252     MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47253       : MemoryFdPropertiesKHR( *reinterpret_cast<MemoryFdPropertiesKHR const *>( &rhs ) )
47254     {}
47255 
47256 
47257     MemoryFdPropertiesKHR & operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47258 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
47259 
operator =VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47260     MemoryFdPropertiesKHR & operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47261     {
47262       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const *>( &rhs );
47263       return *this;
47264     }
47265 
47266 
operator VkMemoryFdPropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47267     operator VkMemoryFdPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
47268     {
47269       return *reinterpret_cast<const VkMemoryFdPropertiesKHR*>( this );
47270     }
47271 
operator VkMemoryFdPropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47272     operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT
47273     {
47274       return *reinterpret_cast<VkMemoryFdPropertiesKHR*>( this );
47275     }
47276 
47277 #if defined( VULKAN_HPP_USE_REFLECT )
47278 #if 14 <= VULKAN_HPP_CPP_VERSION
47279     auto
47280 #else
47281     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
47282 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47283       reflect() const VULKAN_HPP_NOEXCEPT
47284     {
47285       return std::tie( sType, pNext, memoryTypeBits );
47286     }
47287 #endif
47288 
47289 
47290 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47291 auto operator<=>( MemoryFdPropertiesKHR const & ) const = default;
47292 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47293     bool operator==( MemoryFdPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
47294     {
47295 #if defined( VULKAN_HPP_USE_REFLECT )
47296       return this->reflect() == rhs.reflect();
47297 #else
47298       return ( sType == rhs.sType )
47299           && ( pNext == rhs.pNext )
47300           && ( memoryTypeBits == rhs.memoryTypeBits );
47301 #endif
47302     }
47303 
operator !=VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR47304     bool operator!=( MemoryFdPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
47305     {
47306       return !operator==( rhs );
47307     }
47308 #endif
47309 
47310     public:
47311     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR;
47312     void * pNext = {};
47313     uint32_t memoryTypeBits = {};
47314 
47315   };
47316 
47317   template <>
47318   struct CppType<StructureType, StructureType::eMemoryFdPropertiesKHR>
47319   {
47320     using Type = MemoryFdPropertiesKHR;
47321   };
47322 
47323 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
47324   struct MemoryGetAndroidHardwareBufferInfoANDROID
47325   {
47326     using NativeType = VkMemoryGetAndroidHardwareBufferInfoANDROID;
47327 
47328     static const bool allowDuplicate = false;
47329     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
47330 
47331 
47332 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47333 VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
47334     : pNext( pNext_ ), memory( memory_ )
47335     {}
47336 
47337     VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47338 
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47339     MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
47340       : MemoryGetAndroidHardwareBufferInfoANDROID( *reinterpret_cast<MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs ) )
47341     {}
47342 
47343 
47344     MemoryGetAndroidHardwareBufferInfoANDROID & operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47345 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
47346 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47347     MemoryGetAndroidHardwareBufferInfoANDROID & operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
47348     {
47349       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs );
47350       return *this;
47351     }
47352 
47353 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47354     VULKAN_HPP_CONSTEXPR_14 MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
47355     {
47356       pNext = pNext_;
47357       return *this;
47358     }
47359 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47360     VULKAN_HPP_CONSTEXPR_14 MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
47361     {
47362       memory = memory_;
47363       return *this;
47364     }
47365 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
47366 
47367 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47368     operator VkMemoryGetAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
47369     {
47370       return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
47371     }
47372 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47373     operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
47374     {
47375       return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
47376     }
47377 
47378 #if defined( VULKAN_HPP_USE_REFLECT )
47379 #if 14 <= VULKAN_HPP_CPP_VERSION
47380     auto
47381 #else
47382     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &>
47383 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47384       reflect() const VULKAN_HPP_NOEXCEPT
47385     {
47386       return std::tie( sType, pNext, memory );
47387     }
47388 #endif
47389 
47390 
47391 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47392 auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const & ) const = default;
47393 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47394     bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
47395     {
47396 #if defined( VULKAN_HPP_USE_REFLECT )
47397       return this->reflect() == rhs.reflect();
47398 #else
47399       return ( sType == rhs.sType )
47400           && ( pNext == rhs.pNext )
47401           && ( memory == rhs.memory );
47402 #endif
47403     }
47404 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID47405     bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
47406     {
47407       return !operator==( rhs );
47408     }
47409 #endif
47410 
47411     public:
47412     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
47413     const void * pNext = {};
47414     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
47415 
47416   };
47417 
47418   template <>
47419   struct CppType<StructureType, StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID>
47420   {
47421     using Type = MemoryGetAndroidHardwareBufferInfoANDROID;
47422   };
47423 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
47424 
47425   struct MemoryGetFdInfoKHR
47426   {
47427     using NativeType = VkMemoryGetFdInfoKHR;
47428 
47429     static const bool allowDuplicate = false;
47430     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR;
47431 
47432 
47433 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47434 VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
47435     : pNext( pNext_ ), memory( memory_ ), handleType( handleType_ )
47436     {}
47437 
47438     VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47439 
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47440     MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47441       : MemoryGetFdInfoKHR( *reinterpret_cast<MemoryGetFdInfoKHR const *>( &rhs ) )
47442     {}
47443 
47444 
47445     MemoryGetFdInfoKHR & operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47446 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
47447 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47448     MemoryGetFdInfoKHR & operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47449     {
47450       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const *>( &rhs );
47451       return *this;
47452     }
47453 
47454 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47455     VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
47456     {
47457       pNext = pNext_;
47458       return *this;
47459     }
47460 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47461     VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
47462     {
47463       memory = memory_;
47464       return *this;
47465     }
47466 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47467     VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47468     {
47469       handleType = handleType_;
47470       return *this;
47471     }
47472 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
47473 
47474 
operator VkMemoryGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47475     operator VkMemoryGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
47476     {
47477       return *reinterpret_cast<const VkMemoryGetFdInfoKHR*>( this );
47478     }
47479 
operator VkMemoryGetFdInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47480     operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
47481     {
47482       return *reinterpret_cast<VkMemoryGetFdInfoKHR*>( this );
47483     }
47484 
47485 #if defined( VULKAN_HPP_USE_REFLECT )
47486 #if 14 <= VULKAN_HPP_CPP_VERSION
47487     auto
47488 #else
47489     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
47490 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47491       reflect() const VULKAN_HPP_NOEXCEPT
47492     {
47493       return std::tie( sType, pNext, memory, handleType );
47494     }
47495 #endif
47496 
47497 
47498 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47499 auto operator<=>( MemoryGetFdInfoKHR const & ) const = default;
47500 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47501     bool operator==( MemoryGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
47502     {
47503 #if defined( VULKAN_HPP_USE_REFLECT )
47504       return this->reflect() == rhs.reflect();
47505 #else
47506       return ( sType == rhs.sType )
47507           && ( pNext == rhs.pNext )
47508           && ( memory == rhs.memory )
47509           && ( handleType == rhs.handleType );
47510 #endif
47511     }
47512 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR47513     bool operator!=( MemoryGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
47514     {
47515       return !operator==( rhs );
47516     }
47517 #endif
47518 
47519     public:
47520     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR;
47521     const void * pNext = {};
47522     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
47523     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
47524 
47525   };
47526 
47527   template <>
47528   struct CppType<StructureType, StructureType::eMemoryGetFdInfoKHR>
47529   {
47530     using Type = MemoryGetFdInfoKHR;
47531   };
47532 
47533   struct MemoryGetRemoteAddressInfoNV
47534   {
47535     using NativeType = VkMemoryGetRemoteAddressInfoNV;
47536 
47537     static const bool allowDuplicate = false;
47538     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetRemoteAddressInfoNV;
47539 
47540 
47541 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetRemoteAddressInfoNVVULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47542 VULKAN_HPP_CONSTEXPR MemoryGetRemoteAddressInfoNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
47543     : pNext( pNext_ ), memory( memory_ ), handleType( handleType_ )
47544     {}
47545 
47546     VULKAN_HPP_CONSTEXPR MemoryGetRemoteAddressInfoNV( MemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47547 
MemoryGetRemoteAddressInfoNVVULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47548     MemoryGetRemoteAddressInfoNV( VkMemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
47549       : MemoryGetRemoteAddressInfoNV( *reinterpret_cast<MemoryGetRemoteAddressInfoNV const *>( &rhs ) )
47550     {}
47551 
47552 
47553     MemoryGetRemoteAddressInfoNV & operator=( MemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47554 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
47555 
operator =VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47556     MemoryGetRemoteAddressInfoNV & operator=( VkMemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
47557     {
47558       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV const *>( &rhs );
47559       return *this;
47560     }
47561 
47562 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47563     VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
47564     {
47565       pNext = pNext_;
47566       return *this;
47567     }
47568 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47569     VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
47570     {
47571       memory = memory_;
47572       return *this;
47573     }
47574 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47575     VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47576     {
47577       handleType = handleType_;
47578       return *this;
47579     }
47580 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
47581 
47582 
operator VkMemoryGetRemoteAddressInfoNV const&VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47583     operator VkMemoryGetRemoteAddressInfoNV const &() const VULKAN_HPP_NOEXCEPT
47584     {
47585       return *reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV*>( this );
47586     }
47587 
operator VkMemoryGetRemoteAddressInfoNV&VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47588     operator VkMemoryGetRemoteAddressInfoNV &() VULKAN_HPP_NOEXCEPT
47589     {
47590       return *reinterpret_cast<VkMemoryGetRemoteAddressInfoNV*>( this );
47591     }
47592 
47593 #if defined( VULKAN_HPP_USE_REFLECT )
47594 #if 14 <= VULKAN_HPP_CPP_VERSION
47595     auto
47596 #else
47597     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
47598 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47599       reflect() const VULKAN_HPP_NOEXCEPT
47600     {
47601       return std::tie( sType, pNext, memory, handleType );
47602     }
47603 #endif
47604 
47605 
47606 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47607 auto operator<=>( MemoryGetRemoteAddressInfoNV const & ) const = default;
47608 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47609     bool operator==( MemoryGetRemoteAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
47610     {
47611 #if defined( VULKAN_HPP_USE_REFLECT )
47612       return this->reflect() == rhs.reflect();
47613 #else
47614       return ( sType == rhs.sType )
47615           && ( pNext == rhs.pNext )
47616           && ( memory == rhs.memory )
47617           && ( handleType == rhs.handleType );
47618 #endif
47619     }
47620 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV47621     bool operator!=( MemoryGetRemoteAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
47622     {
47623       return !operator==( rhs );
47624     }
47625 #endif
47626 
47627     public:
47628     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetRemoteAddressInfoNV;
47629     const void * pNext = {};
47630     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
47631     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
47632 
47633   };
47634 
47635   template <>
47636   struct CppType<StructureType, StructureType::eMemoryGetRemoteAddressInfoNV>
47637   {
47638     using Type = MemoryGetRemoteAddressInfoNV;
47639   };
47640 
47641 #if defined( VK_USE_PLATFORM_WIN32_KHR )
47642   struct MemoryGetWin32HandleInfoKHR
47643   {
47644     using NativeType = VkMemoryGetWin32HandleInfoKHR;
47645 
47646     static const bool allowDuplicate = false;
47647     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR;
47648 
47649 
47650 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47651 VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
47652     : pNext( pNext_ ), memory( memory_ ), handleType( handleType_ )
47653     {}
47654 
47655     VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47656 
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47657     MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47658       : MemoryGetWin32HandleInfoKHR( *reinterpret_cast<MemoryGetWin32HandleInfoKHR const *>( &rhs ) )
47659     {}
47660 
47661 
47662     MemoryGetWin32HandleInfoKHR & operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47663 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
47664 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47665     MemoryGetWin32HandleInfoKHR & operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
47666     {
47667       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const *>( &rhs );
47668       return *this;
47669     }
47670 
47671 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47672     VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
47673     {
47674       pNext = pNext_;
47675       return *this;
47676     }
47677 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47678     VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
47679     {
47680       memory = memory_;
47681       return *this;
47682     }
47683 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47684     VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47685     {
47686       handleType = handleType_;
47687       return *this;
47688     }
47689 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
47690 
47691 
operator VkMemoryGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47692     operator VkMemoryGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
47693     {
47694       return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( this );
47695     }
47696 
operator VkMemoryGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47697     operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
47698     {
47699       return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>( this );
47700     }
47701 
47702 #if defined( VULKAN_HPP_USE_REFLECT )
47703 #if 14 <= VULKAN_HPP_CPP_VERSION
47704     auto
47705 #else
47706     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
47707 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47708       reflect() const VULKAN_HPP_NOEXCEPT
47709     {
47710       return std::tie( sType, pNext, memory, handleType );
47711     }
47712 #endif
47713 
47714 
47715 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47716 auto operator<=>( MemoryGetWin32HandleInfoKHR const & ) const = default;
47717 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47718     bool operator==( MemoryGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
47719     {
47720 #if defined( VULKAN_HPP_USE_REFLECT )
47721       return this->reflect() == rhs.reflect();
47722 #else
47723       return ( sType == rhs.sType )
47724           && ( pNext == rhs.pNext )
47725           && ( memory == rhs.memory )
47726           && ( handleType == rhs.handleType );
47727 #endif
47728     }
47729 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR47730     bool operator!=( MemoryGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
47731     {
47732       return !operator==( rhs );
47733     }
47734 #endif
47735 
47736     public:
47737     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR;
47738     const void * pNext = {};
47739     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
47740     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
47741 
47742   };
47743 
47744   template <>
47745   struct CppType<StructureType, StructureType::eMemoryGetWin32HandleInfoKHR>
47746   {
47747     using Type = MemoryGetWin32HandleInfoKHR;
47748   };
47749 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
47750 
47751 #if defined( VK_USE_PLATFORM_FUCHSIA )
47752   struct MemoryGetZirconHandleInfoFUCHSIA
47753   {
47754     using NativeType = VkMemoryGetZirconHandleInfoFUCHSIA;
47755 
47756     static const bool allowDuplicate = false;
47757     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetZirconHandleInfoFUCHSIA;
47758 
47759 
47760 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetZirconHandleInfoFUCHSIAVULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47761 VULKAN_HPP_CONSTEXPR MemoryGetZirconHandleInfoFUCHSIA(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
47762     : pNext( pNext_ ), memory( memory_ ), handleType( handleType_ )
47763     {}
47764 
47765     VULKAN_HPP_CONSTEXPR MemoryGetZirconHandleInfoFUCHSIA( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47766 
MemoryGetZirconHandleInfoFUCHSIAVULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47767     MemoryGetZirconHandleInfoFUCHSIA( VkMemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
47768       : MemoryGetZirconHandleInfoFUCHSIA( *reinterpret_cast<MemoryGetZirconHandleInfoFUCHSIA const *>( &rhs ) )
47769     {}
47770 
47771 
47772     MemoryGetZirconHandleInfoFUCHSIA & operator=( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47773 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
47774 
operator =VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47775     MemoryGetZirconHandleInfoFUCHSIA & operator=( VkMemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
47776     {
47777       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA const *>( &rhs );
47778       return *this;
47779     }
47780 
47781 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47782     VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
47783     {
47784       pNext = pNext_;
47785       return *this;
47786     }
47787 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47788     VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
47789     {
47790       memory = memory_;
47791       return *this;
47792     }
47793 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47794     VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
47795     {
47796       handleType = handleType_;
47797       return *this;
47798     }
47799 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
47800 
47801 
operator VkMemoryGetZirconHandleInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47802     operator VkMemoryGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
47803     {
47804       return *reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA*>( this );
47805     }
47806 
operator VkMemoryGetZirconHandleInfoFUCHSIA&VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47807     operator VkMemoryGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
47808     {
47809       return *reinterpret_cast<VkMemoryGetZirconHandleInfoFUCHSIA*>( this );
47810     }
47811 
47812 #if defined( VULKAN_HPP_USE_REFLECT )
47813 #if 14 <= VULKAN_HPP_CPP_VERSION
47814     auto
47815 #else
47816     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
47817 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47818       reflect() const VULKAN_HPP_NOEXCEPT
47819     {
47820       return std::tie( sType, pNext, memory, handleType );
47821     }
47822 #endif
47823 
47824 
47825 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47826 auto operator<=>( MemoryGetZirconHandleInfoFUCHSIA const & ) const = default;
47827 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47828     bool operator==( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
47829     {
47830 #if defined( VULKAN_HPP_USE_REFLECT )
47831       return this->reflect() == rhs.reflect();
47832 #else
47833       return ( sType == rhs.sType )
47834           && ( pNext == rhs.pNext )
47835           && ( memory == rhs.memory )
47836           && ( handleType == rhs.handleType );
47837 #endif
47838     }
47839 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA47840     bool operator!=( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
47841     {
47842       return !operator==( rhs );
47843     }
47844 #endif
47845 
47846     public:
47847     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetZirconHandleInfoFUCHSIA;
47848     const void * pNext = {};
47849     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
47850     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
47851 
47852   };
47853 
47854   template <>
47855   struct CppType<StructureType, StructureType::eMemoryGetZirconHandleInfoFUCHSIA>
47856   {
47857     using Type = MemoryGetZirconHandleInfoFUCHSIA;
47858   };
47859 #endif /*VK_USE_PLATFORM_FUCHSIA*/
47860 
47861   struct MemoryHeap
47862   {
47863     using NativeType = VkMemoryHeap;
47864 
47865 
47866 
47867 
47868 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap47869 VULKAN_HPP_CONSTEXPR MemoryHeap(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
47870     : size( size_ ), flags( flags_ )
47871     {}
47872 
47873     VULKAN_HPP_CONSTEXPR MemoryHeap( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47874 
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap47875     MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
47876       : MemoryHeap( *reinterpret_cast<MemoryHeap const *>( &rhs ) )
47877     {}
47878 
47879 
47880     MemoryHeap & operator=( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47881 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
47882 
operator =VULKAN_HPP_NAMESPACE::MemoryHeap47883     MemoryHeap & operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
47884     {
47885       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHeap const *>( &rhs );
47886       return *this;
47887     }
47888 
47889 
operator VkMemoryHeap const&VULKAN_HPP_NAMESPACE::MemoryHeap47890     operator VkMemoryHeap const &() const VULKAN_HPP_NOEXCEPT
47891     {
47892       return *reinterpret_cast<const VkMemoryHeap*>( this );
47893     }
47894 
operator VkMemoryHeap&VULKAN_HPP_NAMESPACE::MemoryHeap47895     operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT
47896     {
47897       return *reinterpret_cast<VkMemoryHeap*>( this );
47898     }
47899 
47900 #if defined( VULKAN_HPP_USE_REFLECT )
47901 #if 14 <= VULKAN_HPP_CPP_VERSION
47902     auto
47903 #else
47904     std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::MemoryHeapFlags const &>
47905 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryHeap47906       reflect() const VULKAN_HPP_NOEXCEPT
47907     {
47908       return std::tie( size, flags );
47909     }
47910 #endif
47911 
47912 
47913 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47914 auto operator<=>( MemoryHeap const & ) const = default;
47915 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHeap47916     bool operator==( MemoryHeap const & rhs ) const VULKAN_HPP_NOEXCEPT
47917     {
47918 #if defined( VULKAN_HPP_USE_REFLECT )
47919       return this->reflect() == rhs.reflect();
47920 #else
47921       return ( size == rhs.size )
47922           && ( flags == rhs.flags );
47923 #endif
47924     }
47925 
operator !=VULKAN_HPP_NAMESPACE::MemoryHeap47926     bool operator!=( MemoryHeap const & rhs ) const VULKAN_HPP_NOEXCEPT
47927     {
47928       return !operator==( rhs );
47929     }
47930 #endif
47931 
47932     public:
47933     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
47934     VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {};
47935 
47936   };
47937 
47938   struct MemoryHostPointerPropertiesEXT
47939   {
47940     using NativeType = VkMemoryHostPointerPropertiesEXT;
47941 
47942     static const bool allowDuplicate = false;
47943     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT;
47944 
47945 
47946 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT47947 VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT(uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
47948     : pNext( pNext_ ), memoryTypeBits( memoryTypeBits_ )
47949     {}
47950 
47951     VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47952 
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT47953     MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47954       : MemoryHostPointerPropertiesEXT( *reinterpret_cast<MemoryHostPointerPropertiesEXT const *>( &rhs ) )
47955     {}
47956 
47957 
47958     MemoryHostPointerPropertiesEXT & operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47959 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
47960 
operator =VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT47961     MemoryHostPointerPropertiesEXT & operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47962     {
47963       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const *>( &rhs );
47964       return *this;
47965     }
47966 
47967 
operator VkMemoryHostPointerPropertiesEXT const&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT47968     operator VkMemoryHostPointerPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
47969     {
47970       return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT*>( this );
47971     }
47972 
operator VkMemoryHostPointerPropertiesEXT&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT47973     operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT
47974     {
47975       return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( this );
47976     }
47977 
47978 #if defined( VULKAN_HPP_USE_REFLECT )
47979 #if 14 <= VULKAN_HPP_CPP_VERSION
47980     auto
47981 #else
47982     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
47983 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT47984       reflect() const VULKAN_HPP_NOEXCEPT
47985     {
47986       return std::tie( sType, pNext, memoryTypeBits );
47987     }
47988 #endif
47989 
47990 
47991 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47992 auto operator<=>( MemoryHostPointerPropertiesEXT const & ) const = default;
47993 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT47994     bool operator==( MemoryHostPointerPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
47995     {
47996 #if defined( VULKAN_HPP_USE_REFLECT )
47997       return this->reflect() == rhs.reflect();
47998 #else
47999       return ( sType == rhs.sType )
48000           && ( pNext == rhs.pNext )
48001           && ( memoryTypeBits == rhs.memoryTypeBits );
48002 #endif
48003     }
48004 
operator !=VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT48005     bool operator!=( MemoryHostPointerPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
48006     {
48007       return !operator==( rhs );
48008     }
48009 #endif
48010 
48011     public:
48012     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT;
48013     void * pNext = {};
48014     uint32_t memoryTypeBits = {};
48015 
48016   };
48017 
48018   template <>
48019   struct CppType<StructureType, StructureType::eMemoryHostPointerPropertiesEXT>
48020   {
48021     using Type = MemoryHostPointerPropertiesEXT;
48022   };
48023 
48024   struct MemoryMapInfoKHR
48025   {
48026     using NativeType = VkMemoryMapInfoKHR;
48027 
48028     static const bool allowDuplicate = false;
48029     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryMapInfoKHR;
48030 
48031 
48032 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryMapInfoKHRVULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48033 VULKAN_HPP_CONSTEXPR MemoryMapInfoKHR(VULKAN_HPP_NAMESPACE::MemoryMapFlags flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
48034     : pNext( pNext_ ), flags( flags_ ), memory( memory_ ), offset( offset_ ), size( size_ )
48035     {}
48036 
48037     VULKAN_HPP_CONSTEXPR MemoryMapInfoKHR( MemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48038 
MemoryMapInfoKHRVULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48039     MemoryMapInfoKHR( VkMemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48040       : MemoryMapInfoKHR( *reinterpret_cast<MemoryMapInfoKHR const *>( &rhs ) )
48041     {}
48042 
48043 
48044     MemoryMapInfoKHR & operator=( MemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48045 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
48046 
operator =VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48047     MemoryMapInfoKHR & operator=( VkMemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48048     {
48049       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR const *>( &rhs );
48050       return *this;
48051     }
48052 
48053 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48054     VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
48055     {
48056       pNext = pNext_;
48057       return *this;
48058     }
48059 
setFlagsVULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48060     VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::MemoryMapFlags flags_ ) VULKAN_HPP_NOEXCEPT
48061     {
48062       flags = flags_;
48063       return *this;
48064     }
48065 
setMemoryVULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48066     VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
48067     {
48068       memory = memory_;
48069       return *this;
48070     }
48071 
setOffsetVULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48072     VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
48073     {
48074       offset = offset_;
48075       return *this;
48076     }
48077 
setSizeVULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48078     VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
48079     {
48080       size = size_;
48081       return *this;
48082     }
48083 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
48084 
48085 
operator VkMemoryMapInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48086     operator VkMemoryMapInfoKHR const &() const VULKAN_HPP_NOEXCEPT
48087     {
48088       return *reinterpret_cast<const VkMemoryMapInfoKHR*>( this );
48089     }
48090 
operator VkMemoryMapInfoKHR&VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48091     operator VkMemoryMapInfoKHR &() VULKAN_HPP_NOEXCEPT
48092     {
48093       return *reinterpret_cast<VkMemoryMapInfoKHR*>( this );
48094     }
48095 
48096 #if defined( VULKAN_HPP_USE_REFLECT )
48097 #if 14 <= VULKAN_HPP_CPP_VERSION
48098     auto
48099 #else
48100     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MemoryMapFlags const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
48101 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48102       reflect() const VULKAN_HPP_NOEXCEPT
48103     {
48104       return std::tie( sType, pNext, flags, memory, offset, size );
48105     }
48106 #endif
48107 
48108 
48109 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48110 auto operator<=>( MemoryMapInfoKHR const & ) const = default;
48111 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48112     bool operator==( MemoryMapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
48113     {
48114 #if defined( VULKAN_HPP_USE_REFLECT )
48115       return this->reflect() == rhs.reflect();
48116 #else
48117       return ( sType == rhs.sType )
48118           && ( pNext == rhs.pNext )
48119           && ( flags == rhs.flags )
48120           && ( memory == rhs.memory )
48121           && ( offset == rhs.offset )
48122           && ( size == rhs.size );
48123 #endif
48124     }
48125 
operator !=VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR48126     bool operator!=( MemoryMapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
48127     {
48128       return !operator==( rhs );
48129     }
48130 #endif
48131 
48132     public:
48133     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryMapInfoKHR;
48134     const void * pNext = {};
48135     VULKAN_HPP_NAMESPACE::MemoryMapFlags flags = {};
48136     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
48137     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
48138     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
48139 
48140   };
48141 
48142   template <>
48143   struct CppType<StructureType, StructureType::eMemoryMapInfoKHR>
48144   {
48145     using Type = MemoryMapInfoKHR;
48146   };
48147 
48148   struct MemoryOpaqueCaptureAddressAllocateInfo
48149   {
48150     using NativeType = VkMemoryOpaqueCaptureAddressAllocateInfo;
48151 
48152     static const bool allowDuplicate = false;
48153     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
48154 
48155 
48156 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48157 VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo(uint64_t opaqueCaptureAddress_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
48158     : pNext( pNext_ ), opaqueCaptureAddress( opaqueCaptureAddress_ )
48159     {}
48160 
48161     VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48162 
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48163     MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
48164       : MemoryOpaqueCaptureAddressAllocateInfo( *reinterpret_cast<MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs ) )
48165     {}
48166 
48167 
48168     MemoryOpaqueCaptureAddressAllocateInfo & operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48169 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
48170 
operator =VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48171     MemoryOpaqueCaptureAddressAllocateInfo & operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
48172     {
48173       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs );
48174       return *this;
48175     }
48176 
48177 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48178     VULKAN_HPP_CONSTEXPR_14 MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
48179     {
48180       pNext = pNext_;
48181       return *this;
48182     }
48183 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48184     VULKAN_HPP_CONSTEXPR_14 MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
48185     {
48186       opaqueCaptureAddress = opaqueCaptureAddress_;
48187       return *this;
48188     }
48189 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
48190 
48191 
operator VkMemoryOpaqueCaptureAddressAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48192     operator VkMemoryOpaqueCaptureAddressAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
48193     {
48194       return *reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
48195     }
48196 
operator VkMemoryOpaqueCaptureAddressAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48197     operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT
48198     {
48199       return *reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
48200     }
48201 
48202 #if defined( VULKAN_HPP_USE_REFLECT )
48203 #if 14 <= VULKAN_HPP_CPP_VERSION
48204     auto
48205 #else
48206     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
48207 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48208       reflect() const VULKAN_HPP_NOEXCEPT
48209     {
48210       return std::tie( sType, pNext, opaqueCaptureAddress );
48211     }
48212 #endif
48213 
48214 
48215 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48216 auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const & ) const = default;
48217 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48218     bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
48219     {
48220 #if defined( VULKAN_HPP_USE_REFLECT )
48221       return this->reflect() == rhs.reflect();
48222 #else
48223       return ( sType == rhs.sType )
48224           && ( pNext == rhs.pNext )
48225           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
48226 #endif
48227     }
48228 
operator !=VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo48229     bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
48230     {
48231       return !operator==( rhs );
48232     }
48233 #endif
48234 
48235     public:
48236     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
48237     const void * pNext = {};
48238     uint64_t opaqueCaptureAddress = {};
48239 
48240   };
48241 
48242   template <>
48243   struct CppType<StructureType, StructureType::eMemoryOpaqueCaptureAddressAllocateInfo>
48244   {
48245     using Type = MemoryOpaqueCaptureAddressAllocateInfo;
48246   };
48247   using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
48248 
48249   struct MemoryPriorityAllocateInfoEXT
48250   {
48251     using NativeType = VkMemoryPriorityAllocateInfoEXT;
48252 
48253     static const bool allowDuplicate = false;
48254     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT;
48255 
48256 
48257 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48258 VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT(float priority_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
48259     : pNext( pNext_ ), priority( priority_ )
48260     {}
48261 
48262     VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48263 
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48264     MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48265       : MemoryPriorityAllocateInfoEXT( *reinterpret_cast<MemoryPriorityAllocateInfoEXT const *>( &rhs ) )
48266     {}
48267 
48268 
48269     MemoryPriorityAllocateInfoEXT & operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48270 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
48271 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48272     MemoryPriorityAllocateInfoEXT & operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48273     {
48274       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const *>( &rhs );
48275       return *this;
48276     }
48277 
48278 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48279     VULKAN_HPP_CONSTEXPR_14 MemoryPriorityAllocateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
48280     {
48281       pNext = pNext_;
48282       return *this;
48283     }
48284 
setPriorityVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48285     VULKAN_HPP_CONSTEXPR_14 MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT
48286     {
48287       priority = priority_;
48288       return *this;
48289     }
48290 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
48291 
48292 
operator VkMemoryPriorityAllocateInfoEXT const&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48293     operator VkMemoryPriorityAllocateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
48294     {
48295       return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>( this );
48296     }
48297 
operator VkMemoryPriorityAllocateInfoEXT&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48298     operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT
48299     {
48300       return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>( this );
48301     }
48302 
48303 #if defined( VULKAN_HPP_USE_REFLECT )
48304 #if 14 <= VULKAN_HPP_CPP_VERSION
48305     auto
48306 #else
48307     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, float const &>
48308 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48309       reflect() const VULKAN_HPP_NOEXCEPT
48310     {
48311       return std::tie( sType, pNext, priority );
48312     }
48313 #endif
48314 
48315 
48316 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48317 auto operator<=>( MemoryPriorityAllocateInfoEXT const & ) const = default;
48318 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48319     bool operator==( MemoryPriorityAllocateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
48320     {
48321 #if defined( VULKAN_HPP_USE_REFLECT )
48322       return this->reflect() == rhs.reflect();
48323 #else
48324       return ( sType == rhs.sType )
48325           && ( pNext == rhs.pNext )
48326           && ( priority == rhs.priority );
48327 #endif
48328     }
48329 
operator !=VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT48330     bool operator!=( MemoryPriorityAllocateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
48331     {
48332       return !operator==( rhs );
48333     }
48334 #endif
48335 
48336     public:
48337     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT;
48338     const void * pNext = {};
48339     float priority = {};
48340 
48341   };
48342 
48343   template <>
48344   struct CppType<StructureType, StructureType::eMemoryPriorityAllocateInfoEXT>
48345   {
48346     using Type = MemoryPriorityAllocateInfoEXT;
48347   };
48348 
48349   struct MemoryRequirements
48350   {
48351     using NativeType = VkMemoryRequirements;
48352 
48353 
48354 
48355 
48356 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements48357 VULKAN_HPP_CONSTEXPR MemoryRequirements(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
48358     : size( size_ ), alignment( alignment_ ), memoryTypeBits( memoryTypeBits_ )
48359     {}
48360 
48361     VULKAN_HPP_CONSTEXPR MemoryRequirements( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48362 
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements48363     MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
48364       : MemoryRequirements( *reinterpret_cast<MemoryRequirements const *>( &rhs ) )
48365     {}
48366 
48367 
48368     MemoryRequirements & operator=( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48369 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
48370 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements48371     MemoryRequirements & operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
48372     {
48373       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements const *>( &rhs );
48374       return *this;
48375     }
48376 
48377 
operator VkMemoryRequirements const&VULKAN_HPP_NAMESPACE::MemoryRequirements48378     operator VkMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
48379     {
48380       return *reinterpret_cast<const VkMemoryRequirements*>( this );
48381     }
48382 
operator VkMemoryRequirements&VULKAN_HPP_NAMESPACE::MemoryRequirements48383     operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT
48384     {
48385       return *reinterpret_cast<VkMemoryRequirements*>( this );
48386     }
48387 
48388 #if defined( VULKAN_HPP_USE_REFLECT )
48389 #if 14 <= VULKAN_HPP_CPP_VERSION
48390     auto
48391 #else
48392     std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
48393 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryRequirements48394       reflect() const VULKAN_HPP_NOEXCEPT
48395     {
48396       return std::tie( size, alignment, memoryTypeBits );
48397     }
48398 #endif
48399 
48400 
48401 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48402 auto operator<=>( MemoryRequirements const & ) const = default;
48403 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements48404     bool operator==( MemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
48405     {
48406 #if defined( VULKAN_HPP_USE_REFLECT )
48407       return this->reflect() == rhs.reflect();
48408 #else
48409       return ( size == rhs.size )
48410           && ( alignment == rhs.alignment )
48411           && ( memoryTypeBits == rhs.memoryTypeBits );
48412 #endif
48413     }
48414 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements48415     bool operator!=( MemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
48416     {
48417       return !operator==( rhs );
48418     }
48419 #endif
48420 
48421     public:
48422     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
48423     VULKAN_HPP_NAMESPACE::DeviceSize alignment = {};
48424     uint32_t memoryTypeBits = {};
48425 
48426   };
48427 
48428   struct MemoryRequirements2
48429   {
48430     using NativeType = VkMemoryRequirements2;
48431 
48432     static const bool allowDuplicate = false;
48433     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2;
48434 
48435 
48436 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements248437 VULKAN_HPP_CONSTEXPR MemoryRequirements2(VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
48438     : pNext( pNext_ ), memoryRequirements( memoryRequirements_ )
48439     {}
48440 
48441     VULKAN_HPP_CONSTEXPR MemoryRequirements2( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48442 
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements248443     MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
48444       : MemoryRequirements2( *reinterpret_cast<MemoryRequirements2 const *>( &rhs ) )
48445     {}
48446 
48447 
48448     MemoryRequirements2 & operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48449 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
48450 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements248451     MemoryRequirements2 & operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
48452     {
48453       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements2 const *>( &rhs );
48454       return *this;
48455     }
48456 
48457 
operator VkMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::MemoryRequirements248458     operator VkMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT
48459     {
48460       return *reinterpret_cast<const VkMemoryRequirements2*>( this );
48461     }
48462 
operator VkMemoryRequirements2&VULKAN_HPP_NAMESPACE::MemoryRequirements248463     operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
48464     {
48465       return *reinterpret_cast<VkMemoryRequirements2*>( this );
48466     }
48467 
48468 #if defined( VULKAN_HPP_USE_REFLECT )
48469 #if 14 <= VULKAN_HPP_CPP_VERSION
48470     auto
48471 #else
48472     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::MemoryRequirements const &>
48473 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryRequirements248474       reflect() const VULKAN_HPP_NOEXCEPT
48475     {
48476       return std::tie( sType, pNext, memoryRequirements );
48477     }
48478 #endif
48479 
48480 
48481 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48482 auto operator<=>( MemoryRequirements2 const & ) const = default;
48483 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements248484     bool operator==( MemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
48485     {
48486 #if defined( VULKAN_HPP_USE_REFLECT )
48487       return this->reflect() == rhs.reflect();
48488 #else
48489       return ( sType == rhs.sType )
48490           && ( pNext == rhs.pNext )
48491           && ( memoryRequirements == rhs.memoryRequirements );
48492 #endif
48493     }
48494 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements248495     bool operator!=( MemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
48496     {
48497       return !operator==( rhs );
48498     }
48499 #endif
48500 
48501     public:
48502     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2;
48503     void * pNext = {};
48504     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
48505 
48506   };
48507 
48508   template <>
48509   struct CppType<StructureType, StructureType::eMemoryRequirements2>
48510   {
48511     using Type = MemoryRequirements2;
48512   };
48513   using MemoryRequirements2KHR = MemoryRequirements2;
48514 
48515   struct MemoryType
48516   {
48517     using NativeType = VkMemoryType;
48518 
48519 
48520 
48521 
48522 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType48523 VULKAN_HPP_CONSTEXPR MemoryType(VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, uint32_t heapIndex_ = {}) VULKAN_HPP_NOEXCEPT
48524     : propertyFlags( propertyFlags_ ), heapIndex( heapIndex_ )
48525     {}
48526 
48527     VULKAN_HPP_CONSTEXPR MemoryType( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48528 
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType48529     MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
48530       : MemoryType( *reinterpret_cast<MemoryType const *>( &rhs ) )
48531     {}
48532 
48533 
48534     MemoryType & operator=( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48535 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
48536 
operator =VULKAN_HPP_NAMESPACE::MemoryType48537     MemoryType & operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
48538     {
48539       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryType const *>( &rhs );
48540       return *this;
48541     }
48542 
48543 
operator VkMemoryType const&VULKAN_HPP_NAMESPACE::MemoryType48544     operator VkMemoryType const &() const VULKAN_HPP_NOEXCEPT
48545     {
48546       return *reinterpret_cast<const VkMemoryType*>( this );
48547     }
48548 
operator VkMemoryType&VULKAN_HPP_NAMESPACE::MemoryType48549     operator VkMemoryType &() VULKAN_HPP_NOEXCEPT
48550     {
48551       return *reinterpret_cast<VkMemoryType*>( this );
48552     }
48553 
48554 #if defined( VULKAN_HPP_USE_REFLECT )
48555 #if 14 <= VULKAN_HPP_CPP_VERSION
48556     auto
48557 #else
48558     std::tuple<VULKAN_HPP_NAMESPACE::MemoryPropertyFlags const &, uint32_t const &>
48559 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryType48560       reflect() const VULKAN_HPP_NOEXCEPT
48561     {
48562       return std::tie( propertyFlags, heapIndex );
48563     }
48564 #endif
48565 
48566 
48567 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48568 auto operator<=>( MemoryType const & ) const = default;
48569 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryType48570     bool operator==( MemoryType const & rhs ) const VULKAN_HPP_NOEXCEPT
48571     {
48572 #if defined( VULKAN_HPP_USE_REFLECT )
48573       return this->reflect() == rhs.reflect();
48574 #else
48575       return ( propertyFlags == rhs.propertyFlags )
48576           && ( heapIndex == rhs.heapIndex );
48577 #endif
48578     }
48579 
operator !=VULKAN_HPP_NAMESPACE::MemoryType48580     bool operator!=( MemoryType const & rhs ) const VULKAN_HPP_NOEXCEPT
48581     {
48582       return !operator==( rhs );
48583     }
48584 #endif
48585 
48586     public:
48587     VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {};
48588     uint32_t heapIndex = {};
48589 
48590   };
48591 
48592   struct MemoryUnmapInfoKHR
48593   {
48594     using NativeType = VkMemoryUnmapInfoKHR;
48595 
48596     static const bool allowDuplicate = false;
48597     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryUnmapInfoKHR;
48598 
48599 
48600 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryUnmapInfoKHRVULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48601 VULKAN_HPP_CONSTEXPR MemoryUnmapInfoKHR(VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
48602     : pNext( pNext_ ), flags( flags_ ), memory( memory_ )
48603     {}
48604 
48605     VULKAN_HPP_CONSTEXPR MemoryUnmapInfoKHR( MemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48606 
MemoryUnmapInfoKHRVULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48607     MemoryUnmapInfoKHR( VkMemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48608       : MemoryUnmapInfoKHR( *reinterpret_cast<MemoryUnmapInfoKHR const *>( &rhs ) )
48609     {}
48610 
48611 
48612     MemoryUnmapInfoKHR & operator=( MemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48613 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
48614 
operator =VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48615     MemoryUnmapInfoKHR & operator=( VkMemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48616     {
48617       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR const *>( &rhs );
48618       return *this;
48619     }
48620 
48621 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48622     VULKAN_HPP_CONSTEXPR_14 MemoryUnmapInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
48623     {
48624       pNext = pNext_;
48625       return *this;
48626     }
48627 
setFlagsVULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48628     VULKAN_HPP_CONSTEXPR_14 MemoryUnmapInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
48629     {
48630       flags = flags_;
48631       return *this;
48632     }
48633 
setMemoryVULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48634     VULKAN_HPP_CONSTEXPR_14 MemoryUnmapInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
48635     {
48636       memory = memory_;
48637       return *this;
48638     }
48639 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
48640 
48641 
operator VkMemoryUnmapInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48642     operator VkMemoryUnmapInfoKHR const &() const VULKAN_HPP_NOEXCEPT
48643     {
48644       return *reinterpret_cast<const VkMemoryUnmapInfoKHR*>( this );
48645     }
48646 
operator VkMemoryUnmapInfoKHR&VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48647     operator VkMemoryUnmapInfoKHR &() VULKAN_HPP_NOEXCEPT
48648     {
48649       return *reinterpret_cast<VkMemoryUnmapInfoKHR*>( this );
48650     }
48651 
48652 #if defined( VULKAN_HPP_USE_REFLECT )
48653 #if 14 <= VULKAN_HPP_CPP_VERSION
48654     auto
48655 #else
48656     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &>
48657 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48658       reflect() const VULKAN_HPP_NOEXCEPT
48659     {
48660       return std::tie( sType, pNext, flags, memory );
48661     }
48662 #endif
48663 
48664 
48665 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48666 auto operator<=>( MemoryUnmapInfoKHR const & ) const = default;
48667 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48668     bool operator==( MemoryUnmapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
48669     {
48670 #if defined( VULKAN_HPP_USE_REFLECT )
48671       return this->reflect() == rhs.reflect();
48672 #else
48673       return ( sType == rhs.sType )
48674           && ( pNext == rhs.pNext )
48675           && ( flags == rhs.flags )
48676           && ( memory == rhs.memory );
48677 #endif
48678     }
48679 
operator !=VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR48680     bool operator!=( MemoryUnmapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
48681     {
48682       return !operator==( rhs );
48683     }
48684 #endif
48685 
48686     public:
48687     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryUnmapInfoKHR;
48688     const void * pNext = {};
48689     VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR flags = {};
48690     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
48691 
48692   };
48693 
48694   template <>
48695   struct CppType<StructureType, StructureType::eMemoryUnmapInfoKHR>
48696   {
48697     using Type = MemoryUnmapInfoKHR;
48698   };
48699 
48700 #if defined( VK_USE_PLATFORM_WIN32_KHR )
48701   struct MemoryWin32HandlePropertiesKHR
48702   {
48703     using NativeType = VkMemoryWin32HandlePropertiesKHR;
48704 
48705     static const bool allowDuplicate = false;
48706     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR;
48707 
48708 
48709 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48710 VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR(uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
48711     : pNext( pNext_ ), memoryTypeBits( memoryTypeBits_ )
48712     {}
48713 
48714     VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48715 
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48716     MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48717       : MemoryWin32HandlePropertiesKHR( *reinterpret_cast<MemoryWin32HandlePropertiesKHR const *>( &rhs ) )
48718     {}
48719 
48720 
48721     MemoryWin32HandlePropertiesKHR & operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48722 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
48723 
operator =VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48724     MemoryWin32HandlePropertiesKHR & operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
48725     {
48726       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const *>( &rhs );
48727       return *this;
48728     }
48729 
48730 
operator VkMemoryWin32HandlePropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48731     operator VkMemoryWin32HandlePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
48732     {
48733       return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR*>( this );
48734     }
48735 
operator VkMemoryWin32HandlePropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48736     operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT
48737     {
48738       return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( this );
48739     }
48740 
48741 #if defined( VULKAN_HPP_USE_REFLECT )
48742 #if 14 <= VULKAN_HPP_CPP_VERSION
48743     auto
48744 #else
48745     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
48746 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48747       reflect() const VULKAN_HPP_NOEXCEPT
48748     {
48749       return std::tie( sType, pNext, memoryTypeBits );
48750     }
48751 #endif
48752 
48753 
48754 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48755 auto operator<=>( MemoryWin32HandlePropertiesKHR const & ) const = default;
48756 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48757     bool operator==( MemoryWin32HandlePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
48758     {
48759 #if defined( VULKAN_HPP_USE_REFLECT )
48760       return this->reflect() == rhs.reflect();
48761 #else
48762       return ( sType == rhs.sType )
48763           && ( pNext == rhs.pNext )
48764           && ( memoryTypeBits == rhs.memoryTypeBits );
48765 #endif
48766     }
48767 
operator !=VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR48768     bool operator!=( MemoryWin32HandlePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
48769     {
48770       return !operator==( rhs );
48771     }
48772 #endif
48773 
48774     public:
48775     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR;
48776     void * pNext = {};
48777     uint32_t memoryTypeBits = {};
48778 
48779   };
48780 
48781   template <>
48782   struct CppType<StructureType, StructureType::eMemoryWin32HandlePropertiesKHR>
48783   {
48784     using Type = MemoryWin32HandlePropertiesKHR;
48785   };
48786 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
48787 
48788 #if defined( VK_USE_PLATFORM_FUCHSIA )
48789   struct MemoryZirconHandlePropertiesFUCHSIA
48790   {
48791     using NativeType = VkMemoryZirconHandlePropertiesFUCHSIA;
48792 
48793     static const bool allowDuplicate = false;
48794     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryZirconHandlePropertiesFUCHSIA;
48795 
48796 
48797 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryZirconHandlePropertiesFUCHSIAVULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA48798 VULKAN_HPP_CONSTEXPR MemoryZirconHandlePropertiesFUCHSIA(uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
48799     : pNext( pNext_ ), memoryTypeBits( memoryTypeBits_ )
48800     {}
48801 
48802     VULKAN_HPP_CONSTEXPR MemoryZirconHandlePropertiesFUCHSIA( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48803 
MemoryZirconHandlePropertiesFUCHSIAVULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA48804     MemoryZirconHandlePropertiesFUCHSIA( VkMemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
48805       : MemoryZirconHandlePropertiesFUCHSIA( *reinterpret_cast<MemoryZirconHandlePropertiesFUCHSIA const *>( &rhs ) )
48806     {}
48807 
48808 
48809     MemoryZirconHandlePropertiesFUCHSIA & operator=( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48810 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
48811 
operator =VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA48812     MemoryZirconHandlePropertiesFUCHSIA & operator=( VkMemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
48813     {
48814       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA const *>( &rhs );
48815       return *this;
48816     }
48817 
48818 
operator VkMemoryZirconHandlePropertiesFUCHSIA const&VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA48819     operator VkMemoryZirconHandlePropertiesFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
48820     {
48821       return *reinterpret_cast<const VkMemoryZirconHandlePropertiesFUCHSIA*>( this );
48822     }
48823 
operator VkMemoryZirconHandlePropertiesFUCHSIA&VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA48824     operator VkMemoryZirconHandlePropertiesFUCHSIA &() VULKAN_HPP_NOEXCEPT
48825     {
48826       return *reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA*>( this );
48827     }
48828 
48829 #if defined( VULKAN_HPP_USE_REFLECT )
48830 #if 14 <= VULKAN_HPP_CPP_VERSION
48831     auto
48832 #else
48833     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
48834 #endif
reflectVULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA48835       reflect() const VULKAN_HPP_NOEXCEPT
48836     {
48837       return std::tie( sType, pNext, memoryTypeBits );
48838     }
48839 #endif
48840 
48841 
48842 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48843 auto operator<=>( MemoryZirconHandlePropertiesFUCHSIA const & ) const = default;
48844 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA48845     bool operator==( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
48846     {
48847 #if defined( VULKAN_HPP_USE_REFLECT )
48848       return this->reflect() == rhs.reflect();
48849 #else
48850       return ( sType == rhs.sType )
48851           && ( pNext == rhs.pNext )
48852           && ( memoryTypeBits == rhs.memoryTypeBits );
48853 #endif
48854     }
48855 
operator !=VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA48856     bool operator!=( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
48857     {
48858       return !operator==( rhs );
48859     }
48860 #endif
48861 
48862     public:
48863     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryZirconHandlePropertiesFUCHSIA;
48864     void * pNext = {};
48865     uint32_t memoryTypeBits = {};
48866 
48867   };
48868 
48869   template <>
48870   struct CppType<StructureType, StructureType::eMemoryZirconHandlePropertiesFUCHSIA>
48871   {
48872     using Type = MemoryZirconHandlePropertiesFUCHSIA;
48873   };
48874 #endif /*VK_USE_PLATFORM_FUCHSIA*/
48875 
48876 #if defined( VK_USE_PLATFORM_METAL_EXT )
48877   struct MetalSurfaceCreateInfoEXT
48878   {
48879     using NativeType = VkMetalSurfaceCreateInfoEXT;
48880 
48881     static const bool allowDuplicate = false;
48882     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT;
48883 
48884 
48885 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48886 VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {}, const CAMetalLayer * pLayer_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
48887     : pNext( pNext_ ), flags( flags_ ), pLayer( pLayer_ )
48888     {}
48889 
48890     VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48891 
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48892     MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48893       : MetalSurfaceCreateInfoEXT( *reinterpret_cast<MetalSurfaceCreateInfoEXT const *>( &rhs ) )
48894     {}
48895 
48896 
48897     MetalSurfaceCreateInfoEXT & operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
48898 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
48899 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48900     MetalSurfaceCreateInfoEXT & operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
48901     {
48902       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const *>( &rhs );
48903       return *this;
48904     }
48905 
48906 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48907     VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
48908     {
48909       pNext = pNext_;
48910       return *this;
48911     }
48912 
setFlagsVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48913     VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
48914     {
48915       flags = flags_;
48916       return *this;
48917     }
48918 
setPLayerVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48919     VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer * pLayer_ ) VULKAN_HPP_NOEXCEPT
48920     {
48921       pLayer = pLayer_;
48922       return *this;
48923     }
48924 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
48925 
48926 
operator VkMetalSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48927     operator VkMetalSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
48928     {
48929       return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( this );
48930     }
48931 
operator VkMetalSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48932     operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
48933     {
48934       return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>( this );
48935     }
48936 
48937 #if defined( VULKAN_HPP_USE_REFLECT )
48938 #if 14 <= VULKAN_HPP_CPP_VERSION
48939     auto
48940 #else
48941     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT const &, const CAMetalLayer * const &>
48942 #endif
reflectVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48943       reflect() const VULKAN_HPP_NOEXCEPT
48944     {
48945       return std::tie( sType, pNext, flags, pLayer );
48946     }
48947 #endif
48948 
48949 
48950 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
48951 auto operator<=>( MetalSurfaceCreateInfoEXT const & ) const = default;
48952 #else
operator ==VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48953     bool operator==( MetalSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
48954     {
48955 #if defined( VULKAN_HPP_USE_REFLECT )
48956       return this->reflect() == rhs.reflect();
48957 #else
48958       return ( sType == rhs.sType )
48959           && ( pNext == rhs.pNext )
48960           && ( flags == rhs.flags )
48961           && ( pLayer == rhs.pLayer );
48962 #endif
48963     }
48964 
operator !=VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT48965     bool operator!=( MetalSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
48966     {
48967       return !operator==( rhs );
48968     }
48969 #endif
48970 
48971     public:
48972     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT;
48973     const void * pNext = {};
48974     VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {};
48975     const CAMetalLayer * pLayer = {};
48976 
48977   };
48978 
48979   template <>
48980   struct CppType<StructureType, StructureType::eMetalSurfaceCreateInfoEXT>
48981   {
48982     using Type = MetalSurfaceCreateInfoEXT;
48983   };
48984 #endif /*VK_USE_PLATFORM_METAL_EXT*/
48985 
48986   struct MicromapBuildInfoEXT
48987   {
48988     using NativeType = VkMicromapBuildInfoEXT;
48989 
48990     static const bool allowDuplicate = false;
48991     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMicromapBuildInfoEXT;
48992 
48993 
48994 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MicromapBuildInfoEXTVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT48995 VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT(VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_ = VULKAN_HPP_NAMESPACE::MicromapTypeEXT::eOpacityMicromap, VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT::eBuild, VULKAN_HPP_NAMESPACE::MicromapEXT dstMicromap_ = {}, uint32_t usageCountsCount_ = {}, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ = {}, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR triangleArray_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize triangleArrayStride_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
48996     : pNext( pNext_ ), type( type_ ), flags( flags_ ), mode( mode_ ), dstMicromap( dstMicromap_ ), usageCountsCount( usageCountsCount_ ), pUsageCounts( pUsageCounts_ ), ppUsageCounts( ppUsageCounts_ ), data( data_ ), scratchData( scratchData_ ), triangleArray( triangleArray_ ), triangleArrayStride( triangleArrayStride_ )
48997     {}
48998 
48999     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT( MicromapBuildInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49000 
MicromapBuildInfoEXTVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49001     MicromapBuildInfoEXT( VkMicromapBuildInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49002       : MicromapBuildInfoEXT( *reinterpret_cast<MicromapBuildInfoEXT const *>( &rhs ) )
49003     {}
49004 
49005 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
MicromapBuildInfoEXTVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49006     MicromapBuildInfoEXT( VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_, VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT flags_, VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT mode_, VULKAN_HPP_NAMESPACE::MicromapEXT dstMicromap_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR triangleArray_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize triangleArrayStride_ = {}, const void * pNext_ = nullptr )
49007     : pNext( pNext_ ), type( type_ ), flags( flags_ ), mode( mode_ ), dstMicromap( dstMicromap_ ), usageCountsCount( static_cast<uint32_t>( !usageCounts_.empty() ? usageCounts_.size() : pUsageCounts_.size() ) ), pUsageCounts( usageCounts_.data() ), ppUsageCounts( pUsageCounts_.data() ), data( data_ ), scratchData( scratchData_ ), triangleArray( triangleArray_ ), triangleArrayStride( triangleArrayStride_ )
49008     {
49009 #ifdef VULKAN_HPP_NO_EXCEPTIONS
49010       VULKAN_HPP_ASSERT( ( !usageCounts_.empty() + !pUsageCounts_.empty() ) <= 1);
49011 #else
49012       if ( 1 < ( !usageCounts_.empty() + !pUsageCounts_.empty() ) )
49013       {
49014         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::MicromapBuildInfoEXT::MicromapBuildInfoEXT: 1 < ( !usageCounts_.empty() + !pUsageCounts_.empty() )" );
49015       }
49016 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
49017     }
49018 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49019 
49020 
49021     MicromapBuildInfoEXT & operator=( MicromapBuildInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49022 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
49023 
operator =VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49024     MicromapBuildInfoEXT & operator=( VkMicromapBuildInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49025     {
49026       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT const *>( &rhs );
49027       return *this;
49028     }
49029 
49030 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49031     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
49032     {
49033       pNext = pNext_;
49034       return *this;
49035     }
49036 
setTypeVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49037     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setType( VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_ ) VULKAN_HPP_NOEXCEPT
49038     {
49039       type = type_;
49040       return *this;
49041     }
49042 
setFlagsVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49043     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
49044     {
49045       flags = flags_;
49046       return *this;
49047     }
49048 
setModeVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49049     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setMode( VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT mode_ ) VULKAN_HPP_NOEXCEPT
49050     {
49051       mode = mode_;
49052       return *this;
49053     }
49054 
setDstMicromapVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49055     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setDstMicromap( VULKAN_HPP_NAMESPACE::MicromapEXT dstMicromap_ ) VULKAN_HPP_NOEXCEPT
49056     {
49057       dstMicromap = dstMicromap_;
49058       return *this;
49059     }
49060 
setUsageCountsCountVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49061     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setUsageCountsCount( uint32_t usageCountsCount_ ) VULKAN_HPP_NOEXCEPT
49062     {
49063       usageCountsCount = usageCountsCount_;
49064       return *this;
49065     }
49066 
setPUsageCountsVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49067     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setPUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
49068     {
49069       pUsageCounts = pUsageCounts_;
49070       return *this;
49071     }
49072 
49073 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setUsageCountsVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49074     MicromapBuildInfoEXT & setUsageCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_ ) VULKAN_HPP_NOEXCEPT
49075     {
49076       usageCountsCount = static_cast<uint32_t>( usageCounts_.size() );
49077       pUsageCounts = usageCounts_.data();
49078       return *this;
49079     }
49080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49081 
setPpUsageCountsVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49082     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setPpUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ ) VULKAN_HPP_NOEXCEPT
49083     {
49084       ppUsageCounts = ppUsageCounts_;
49085       return *this;
49086     }
49087 
49088 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPUsageCountsVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49089     MicromapBuildInfoEXT & setPUsageCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
49090     {
49091       usageCountsCount = static_cast<uint32_t>( pUsageCounts_.size() );
49092       ppUsageCounts = pUsageCounts_.data();
49093       return *this;
49094     }
49095 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49096 
setDataVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49097     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
49098     {
49099       data = data_;
49100       return *this;
49101     }
49102 
setScratchDataVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49103     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
49104     {
49105       scratchData = scratchData_;
49106       return *this;
49107     }
49108 
setTriangleArrayVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49109     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setTriangleArray( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & triangleArray_ ) VULKAN_HPP_NOEXCEPT
49110     {
49111       triangleArray = triangleArray_;
49112       return *this;
49113     }
49114 
setTriangleArrayStrideVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49115     VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setTriangleArrayStride( VULKAN_HPP_NAMESPACE::DeviceSize triangleArrayStride_ ) VULKAN_HPP_NOEXCEPT
49116     {
49117       triangleArrayStride = triangleArrayStride_;
49118       return *this;
49119     }
49120 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
49121 
49122 
operator VkMicromapBuildInfoEXT const&VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49123     operator VkMicromapBuildInfoEXT const &() const VULKAN_HPP_NOEXCEPT
49124     {
49125       return *reinterpret_cast<const VkMicromapBuildInfoEXT*>( this );
49126     }
49127 
operator VkMicromapBuildInfoEXT&VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49128     operator VkMicromapBuildInfoEXT &() VULKAN_HPP_NOEXCEPT
49129     {
49130       return *reinterpret_cast<VkMicromapBuildInfoEXT*>( this );
49131     }
49132 
49133 #if defined( VULKAN_HPP_USE_REFLECT )
49134 #if 14 <= VULKAN_HPP_CPP_VERSION
49135     auto
49136 #else
49137     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MicromapTypeEXT const &, VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT const &, VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT const &, VULKAN_HPP_NAMESPACE::MicromapEXT const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const &, const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
49138 #endif
reflectVULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT49139       reflect() const VULKAN_HPP_NOEXCEPT
49140     {
49141       return std::tie( sType, pNext, type, flags, mode, dstMicromap, usageCountsCount, pUsageCounts, ppUsageCounts, data, scratchData, triangleArray, triangleArrayStride );
49142     }
49143 #endif
49144 
49145 
49146     public:
49147     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMicromapBuildInfoEXT;
49148     const void * pNext = {};
49149     VULKAN_HPP_NAMESPACE::MicromapTypeEXT type = VULKAN_HPP_NAMESPACE::MicromapTypeEXT::eOpacityMicromap;
49150     VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT flags = {};
49151     VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT mode = VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT::eBuild;
49152     VULKAN_HPP_NAMESPACE::MicromapEXT dstMicromap = {};
49153     uint32_t usageCountsCount = {};
49154     const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts = {};
49155     const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts = {};
49156     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
49157     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {};
49158     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR triangleArray = {};
49159     VULKAN_HPP_NAMESPACE::DeviceSize triangleArrayStride = {};
49160 
49161   };
49162 
49163   template <>
49164   struct CppType<StructureType, StructureType::eMicromapBuildInfoEXT>
49165   {
49166     using Type = MicromapBuildInfoEXT;
49167   };
49168 
49169   struct MicromapBuildSizesInfoEXT
49170   {
49171     using NativeType = VkMicromapBuildSizesInfoEXT;
49172 
49173     static const bool allowDuplicate = false;
49174     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMicromapBuildSizesInfoEXT;
49175 
49176 
49177 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MicromapBuildSizesInfoEXTVULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49178 VULKAN_HPP_CONSTEXPR MicromapBuildSizesInfoEXT(VULKAN_HPP_NAMESPACE::DeviceSize micromapSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 discardable_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
49179     : pNext( pNext_ ), micromapSize( micromapSize_ ), buildScratchSize( buildScratchSize_ ), discardable( discardable_ )
49180     {}
49181 
49182     VULKAN_HPP_CONSTEXPR MicromapBuildSizesInfoEXT( MicromapBuildSizesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49183 
MicromapBuildSizesInfoEXTVULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49184     MicromapBuildSizesInfoEXT( VkMicromapBuildSizesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49185       : MicromapBuildSizesInfoEXT( *reinterpret_cast<MicromapBuildSizesInfoEXT const *>( &rhs ) )
49186     {}
49187 
49188 
49189     MicromapBuildSizesInfoEXT & operator=( MicromapBuildSizesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49190 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
49191 
operator =VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49192     MicromapBuildSizesInfoEXT & operator=( VkMicromapBuildSizesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49193     {
49194       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT const *>( &rhs );
49195       return *this;
49196     }
49197 
49198 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49199     VULKAN_HPP_CONSTEXPR_14 MicromapBuildSizesInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
49200     {
49201       pNext = pNext_;
49202       return *this;
49203     }
49204 
setMicromapSizeVULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49205     VULKAN_HPP_CONSTEXPR_14 MicromapBuildSizesInfoEXT & setMicromapSize( VULKAN_HPP_NAMESPACE::DeviceSize micromapSize_ ) VULKAN_HPP_NOEXCEPT
49206     {
49207       micromapSize = micromapSize_;
49208       return *this;
49209     }
49210 
setBuildScratchSizeVULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49211     VULKAN_HPP_CONSTEXPR_14 MicromapBuildSizesInfoEXT & setBuildScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ ) VULKAN_HPP_NOEXCEPT
49212     {
49213       buildScratchSize = buildScratchSize_;
49214       return *this;
49215     }
49216 
setDiscardableVULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49217     VULKAN_HPP_CONSTEXPR_14 MicromapBuildSizesInfoEXT & setDiscardable( VULKAN_HPP_NAMESPACE::Bool32 discardable_ ) VULKAN_HPP_NOEXCEPT
49218     {
49219       discardable = discardable_;
49220       return *this;
49221     }
49222 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
49223 
49224 
operator VkMicromapBuildSizesInfoEXT const&VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49225     operator VkMicromapBuildSizesInfoEXT const &() const VULKAN_HPP_NOEXCEPT
49226     {
49227       return *reinterpret_cast<const VkMicromapBuildSizesInfoEXT*>( this );
49228     }
49229 
operator VkMicromapBuildSizesInfoEXT&VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49230     operator VkMicromapBuildSizesInfoEXT &() VULKAN_HPP_NOEXCEPT
49231     {
49232       return *reinterpret_cast<VkMicromapBuildSizesInfoEXT*>( this );
49233     }
49234 
49235 #if defined( VULKAN_HPP_USE_REFLECT )
49236 #if 14 <= VULKAN_HPP_CPP_VERSION
49237     auto
49238 #else
49239     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
49240 #endif
reflectVULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49241       reflect() const VULKAN_HPP_NOEXCEPT
49242     {
49243       return std::tie( sType, pNext, micromapSize, buildScratchSize, discardable );
49244     }
49245 #endif
49246 
49247 
49248 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49249 auto operator<=>( MicromapBuildSizesInfoEXT const & ) const = default;
49250 #else
operator ==VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49251     bool operator==( MicromapBuildSizesInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49252     {
49253 #if defined( VULKAN_HPP_USE_REFLECT )
49254       return this->reflect() == rhs.reflect();
49255 #else
49256       return ( sType == rhs.sType )
49257           && ( pNext == rhs.pNext )
49258           && ( micromapSize == rhs.micromapSize )
49259           && ( buildScratchSize == rhs.buildScratchSize )
49260           && ( discardable == rhs.discardable );
49261 #endif
49262     }
49263 
operator !=VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT49264     bool operator!=( MicromapBuildSizesInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49265     {
49266       return !operator==( rhs );
49267     }
49268 #endif
49269 
49270     public:
49271     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMicromapBuildSizesInfoEXT;
49272     const void * pNext = {};
49273     VULKAN_HPP_NAMESPACE::DeviceSize micromapSize = {};
49274     VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize = {};
49275     VULKAN_HPP_NAMESPACE::Bool32 discardable = {};
49276 
49277   };
49278 
49279   template <>
49280   struct CppType<StructureType, StructureType::eMicromapBuildSizesInfoEXT>
49281   {
49282     using Type = MicromapBuildSizesInfoEXT;
49283   };
49284 
49285   struct MicromapCreateInfoEXT
49286   {
49287     using NativeType = VkMicromapCreateInfoEXT;
49288 
49289     static const bool allowDuplicate = false;
49290     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMicromapCreateInfoEXT;
49291 
49292 
49293 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MicromapCreateInfoEXTVULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49294 VULKAN_HPP_CONSTEXPR MicromapCreateInfoEXT(VULKAN_HPP_NAMESPACE::MicromapCreateFlagsEXT createFlags_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_ = VULKAN_HPP_NAMESPACE::MicromapTypeEXT::eOpacityMicromap, VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
49295     : pNext( pNext_ ), createFlags( createFlags_ ), buffer( buffer_ ), offset( offset_ ), size( size_ ), type( type_ ), deviceAddress( deviceAddress_ )
49296     {}
49297 
49298     VULKAN_HPP_CONSTEXPR MicromapCreateInfoEXT( MicromapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49299 
MicromapCreateInfoEXTVULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49300     MicromapCreateInfoEXT( VkMicromapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49301       : MicromapCreateInfoEXT( *reinterpret_cast<MicromapCreateInfoEXT const *>( &rhs ) )
49302     {}
49303 
49304 
49305     MicromapCreateInfoEXT & operator=( MicromapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49306 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
49307 
operator =VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49308     MicromapCreateInfoEXT & operator=( VkMicromapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49309     {
49310       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const *>( &rhs );
49311       return *this;
49312     }
49313 
49314 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49315     VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
49316     {
49317       pNext = pNext_;
49318       return *this;
49319     }
49320 
setCreateFlagsVULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49321     VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setCreateFlags( VULKAN_HPP_NAMESPACE::MicromapCreateFlagsEXT createFlags_ ) VULKAN_HPP_NOEXCEPT
49322     {
49323       createFlags = createFlags_;
49324       return *this;
49325     }
49326 
setBufferVULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49327     VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
49328     {
49329       buffer = buffer_;
49330       return *this;
49331     }
49332 
setOffsetVULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49333     VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
49334     {
49335       offset = offset_;
49336       return *this;
49337     }
49338 
setSizeVULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49339     VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
49340     {
49341       size = size_;
49342       return *this;
49343     }
49344 
setTypeVULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49345     VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setType( VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_ ) VULKAN_HPP_NOEXCEPT
49346     {
49347       type = type_;
49348       return *this;
49349     }
49350 
setDeviceAddressVULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49351     VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
49352     {
49353       deviceAddress = deviceAddress_;
49354       return *this;
49355     }
49356 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
49357 
49358 
operator VkMicromapCreateInfoEXT const&VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49359     operator VkMicromapCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
49360     {
49361       return *reinterpret_cast<const VkMicromapCreateInfoEXT*>( this );
49362     }
49363 
operator VkMicromapCreateInfoEXT&VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49364     operator VkMicromapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
49365     {
49366       return *reinterpret_cast<VkMicromapCreateInfoEXT*>( this );
49367     }
49368 
49369 #if defined( VULKAN_HPP_USE_REFLECT )
49370 #if 14 <= VULKAN_HPP_CPP_VERSION
49371     auto
49372 #else
49373     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MicromapCreateFlagsEXT const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::MicromapTypeEXT const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &>
49374 #endif
reflectVULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49375       reflect() const VULKAN_HPP_NOEXCEPT
49376     {
49377       return std::tie( sType, pNext, createFlags, buffer, offset, size, type, deviceAddress );
49378     }
49379 #endif
49380 
49381 
49382 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49383 auto operator<=>( MicromapCreateInfoEXT const & ) const = default;
49384 #else
operator ==VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49385     bool operator==( MicromapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49386     {
49387 #if defined( VULKAN_HPP_USE_REFLECT )
49388       return this->reflect() == rhs.reflect();
49389 #else
49390       return ( sType == rhs.sType )
49391           && ( pNext == rhs.pNext )
49392           && ( createFlags == rhs.createFlags )
49393           && ( buffer == rhs.buffer )
49394           && ( offset == rhs.offset )
49395           && ( size == rhs.size )
49396           && ( type == rhs.type )
49397           && ( deviceAddress == rhs.deviceAddress );
49398 #endif
49399     }
49400 
operator !=VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT49401     bool operator!=( MicromapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49402     {
49403       return !operator==( rhs );
49404     }
49405 #endif
49406 
49407     public:
49408     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMicromapCreateInfoEXT;
49409     const void * pNext = {};
49410     VULKAN_HPP_NAMESPACE::MicromapCreateFlagsEXT createFlags = {};
49411     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
49412     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
49413     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
49414     VULKAN_HPP_NAMESPACE::MicromapTypeEXT type = VULKAN_HPP_NAMESPACE::MicromapTypeEXT::eOpacityMicromap;
49415     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
49416 
49417   };
49418 
49419   template <>
49420   struct CppType<StructureType, StructureType::eMicromapCreateInfoEXT>
49421   {
49422     using Type = MicromapCreateInfoEXT;
49423   };
49424 
49425   struct MicromapTriangleEXT
49426   {
49427     using NativeType = VkMicromapTriangleEXT;
49428 
49429 
49430 
49431 
49432 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MicromapTriangleEXTVULKAN_HPP_NAMESPACE::MicromapTriangleEXT49433 VULKAN_HPP_CONSTEXPR MicromapTriangleEXT(uint32_t dataOffset_ = {}, uint16_t subdivisionLevel_ = {}, uint16_t format_ = {}) VULKAN_HPP_NOEXCEPT
49434     : dataOffset( dataOffset_ ), subdivisionLevel( subdivisionLevel_ ), format( format_ )
49435     {}
49436 
49437     VULKAN_HPP_CONSTEXPR MicromapTriangleEXT( MicromapTriangleEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49438 
MicromapTriangleEXTVULKAN_HPP_NAMESPACE::MicromapTriangleEXT49439     MicromapTriangleEXT( VkMicromapTriangleEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49440       : MicromapTriangleEXT( *reinterpret_cast<MicromapTriangleEXT const *>( &rhs ) )
49441     {}
49442 
49443 
49444     MicromapTriangleEXT & operator=( MicromapTriangleEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49445 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
49446 
operator =VULKAN_HPP_NAMESPACE::MicromapTriangleEXT49447     MicromapTriangleEXT & operator=( VkMicromapTriangleEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49448     {
49449       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapTriangleEXT const *>( &rhs );
49450       return *this;
49451     }
49452 
49453 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setDataOffsetVULKAN_HPP_NAMESPACE::MicromapTriangleEXT49454     VULKAN_HPP_CONSTEXPR_14 MicromapTriangleEXT & setDataOffset( uint32_t dataOffset_ ) VULKAN_HPP_NOEXCEPT
49455     {
49456       dataOffset = dataOffset_;
49457       return *this;
49458     }
49459 
setSubdivisionLevelVULKAN_HPP_NAMESPACE::MicromapTriangleEXT49460     VULKAN_HPP_CONSTEXPR_14 MicromapTriangleEXT & setSubdivisionLevel( uint16_t subdivisionLevel_ ) VULKAN_HPP_NOEXCEPT
49461     {
49462       subdivisionLevel = subdivisionLevel_;
49463       return *this;
49464     }
49465 
setFormatVULKAN_HPP_NAMESPACE::MicromapTriangleEXT49466     VULKAN_HPP_CONSTEXPR_14 MicromapTriangleEXT & setFormat( uint16_t format_ ) VULKAN_HPP_NOEXCEPT
49467     {
49468       format = format_;
49469       return *this;
49470     }
49471 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
49472 
49473 
operator VkMicromapTriangleEXT const&VULKAN_HPP_NAMESPACE::MicromapTriangleEXT49474     operator VkMicromapTriangleEXT const &() const VULKAN_HPP_NOEXCEPT
49475     {
49476       return *reinterpret_cast<const VkMicromapTriangleEXT*>( this );
49477     }
49478 
operator VkMicromapTriangleEXT&VULKAN_HPP_NAMESPACE::MicromapTriangleEXT49479     operator VkMicromapTriangleEXT &() VULKAN_HPP_NOEXCEPT
49480     {
49481       return *reinterpret_cast<VkMicromapTriangleEXT*>( this );
49482     }
49483 
49484 #if defined( VULKAN_HPP_USE_REFLECT )
49485 #if 14 <= VULKAN_HPP_CPP_VERSION
49486     auto
49487 #else
49488     std::tuple<uint32_t const &, uint16_t const &, uint16_t const &>
49489 #endif
reflectVULKAN_HPP_NAMESPACE::MicromapTriangleEXT49490       reflect() const VULKAN_HPP_NOEXCEPT
49491     {
49492       return std::tie( dataOffset, subdivisionLevel, format );
49493     }
49494 #endif
49495 
49496 
49497 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49498 auto operator<=>( MicromapTriangleEXT const & ) const = default;
49499 #else
operator ==VULKAN_HPP_NAMESPACE::MicromapTriangleEXT49500     bool operator==( MicromapTriangleEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49501     {
49502 #if defined( VULKAN_HPP_USE_REFLECT )
49503       return this->reflect() == rhs.reflect();
49504 #else
49505       return ( dataOffset == rhs.dataOffset )
49506           && ( subdivisionLevel == rhs.subdivisionLevel )
49507           && ( format == rhs.format );
49508 #endif
49509     }
49510 
operator !=VULKAN_HPP_NAMESPACE::MicromapTriangleEXT49511     bool operator!=( MicromapTriangleEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49512     {
49513       return !operator==( rhs );
49514     }
49515 #endif
49516 
49517     public:
49518     uint32_t dataOffset = {};
49519     uint16_t subdivisionLevel = {};
49520     uint16_t format = {};
49521 
49522   };
49523 
49524   struct MicromapVersionInfoEXT
49525   {
49526     using NativeType = VkMicromapVersionInfoEXT;
49527 
49528     static const bool allowDuplicate = false;
49529     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMicromapVersionInfoEXT;
49530 
49531 
49532 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MicromapVersionInfoEXTVULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT49533 VULKAN_HPP_CONSTEXPR MicromapVersionInfoEXT(const uint8_t * pVersionData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
49534     : pNext( pNext_ ), pVersionData( pVersionData_ )
49535     {}
49536 
49537     VULKAN_HPP_CONSTEXPR MicromapVersionInfoEXT( MicromapVersionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49538 
MicromapVersionInfoEXTVULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT49539     MicromapVersionInfoEXT( VkMicromapVersionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49540       : MicromapVersionInfoEXT( *reinterpret_cast<MicromapVersionInfoEXT const *>( &rhs ) )
49541     {}
49542 
49543 
49544     MicromapVersionInfoEXT & operator=( MicromapVersionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49545 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
49546 
operator =VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT49547     MicromapVersionInfoEXT & operator=( VkMicromapVersionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49548     {
49549       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT const *>( &rhs );
49550       return *this;
49551     }
49552 
49553 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT49554     VULKAN_HPP_CONSTEXPR_14 MicromapVersionInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
49555     {
49556       pNext = pNext_;
49557       return *this;
49558     }
49559 
setPVersionDataVULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT49560     VULKAN_HPP_CONSTEXPR_14 MicromapVersionInfoEXT & setPVersionData( const uint8_t * pVersionData_ ) VULKAN_HPP_NOEXCEPT
49561     {
49562       pVersionData = pVersionData_;
49563       return *this;
49564     }
49565 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
49566 
49567 
operator VkMicromapVersionInfoEXT const&VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT49568     operator VkMicromapVersionInfoEXT const &() const VULKAN_HPP_NOEXCEPT
49569     {
49570       return *reinterpret_cast<const VkMicromapVersionInfoEXT*>( this );
49571     }
49572 
operator VkMicromapVersionInfoEXT&VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT49573     operator VkMicromapVersionInfoEXT &() VULKAN_HPP_NOEXCEPT
49574     {
49575       return *reinterpret_cast<VkMicromapVersionInfoEXT*>( this );
49576     }
49577 
49578 #if defined( VULKAN_HPP_USE_REFLECT )
49579 #if 14 <= VULKAN_HPP_CPP_VERSION
49580     auto
49581 #else
49582     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const uint8_t * const &>
49583 #endif
reflectVULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT49584       reflect() const VULKAN_HPP_NOEXCEPT
49585     {
49586       return std::tie( sType, pNext, pVersionData );
49587     }
49588 #endif
49589 
49590 
49591 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49592 auto operator<=>( MicromapVersionInfoEXT const & ) const = default;
49593 #else
operator ==VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT49594     bool operator==( MicromapVersionInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49595     {
49596 #if defined( VULKAN_HPP_USE_REFLECT )
49597       return this->reflect() == rhs.reflect();
49598 #else
49599       return ( sType == rhs.sType )
49600           && ( pNext == rhs.pNext )
49601           && ( pVersionData == rhs.pVersionData );
49602 #endif
49603     }
49604 
operator !=VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT49605     bool operator!=( MicromapVersionInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49606     {
49607       return !operator==( rhs );
49608     }
49609 #endif
49610 
49611     public:
49612     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMicromapVersionInfoEXT;
49613     const void * pNext = {};
49614     const uint8_t * pVersionData = {};
49615 
49616   };
49617 
49618   template <>
49619   struct CppType<StructureType, StructureType::eMicromapVersionInfoEXT>
49620   {
49621     using Type = MicromapVersionInfoEXT;
49622   };
49623 
49624   struct MultiDrawIndexedInfoEXT
49625   {
49626     using NativeType = VkMultiDrawIndexedInfoEXT;
49627 
49628 
49629 
49630 
49631 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MultiDrawIndexedInfoEXTVULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49632 VULKAN_HPP_CONSTEXPR MultiDrawIndexedInfoEXT(uint32_t firstIndex_ = {}, uint32_t indexCount_ = {}, int32_t vertexOffset_ = {}) VULKAN_HPP_NOEXCEPT
49633     : firstIndex( firstIndex_ ), indexCount( indexCount_ ), vertexOffset( vertexOffset_ )
49634     {}
49635 
49636     VULKAN_HPP_CONSTEXPR MultiDrawIndexedInfoEXT( MultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49637 
MultiDrawIndexedInfoEXTVULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49638     MultiDrawIndexedInfoEXT( VkMultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49639       : MultiDrawIndexedInfoEXT( *reinterpret_cast<MultiDrawIndexedInfoEXT const *>( &rhs ) )
49640     {}
49641 
49642 
49643     MultiDrawIndexedInfoEXT & operator=( MultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49644 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
49645 
operator =VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49646     MultiDrawIndexedInfoEXT & operator=( VkMultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49647     {
49648       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT const *>( &rhs );
49649       return *this;
49650     }
49651 
49652 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setFirstIndexVULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49653     VULKAN_HPP_CONSTEXPR_14 MultiDrawIndexedInfoEXT & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
49654     {
49655       firstIndex = firstIndex_;
49656       return *this;
49657     }
49658 
setIndexCountVULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49659     VULKAN_HPP_CONSTEXPR_14 MultiDrawIndexedInfoEXT & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
49660     {
49661       indexCount = indexCount_;
49662       return *this;
49663     }
49664 
setVertexOffsetVULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49665     VULKAN_HPP_CONSTEXPR_14 MultiDrawIndexedInfoEXT & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
49666     {
49667       vertexOffset = vertexOffset_;
49668       return *this;
49669     }
49670 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
49671 
49672 
operator VkMultiDrawIndexedInfoEXT const&VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49673     operator VkMultiDrawIndexedInfoEXT const &() const VULKAN_HPP_NOEXCEPT
49674     {
49675       return *reinterpret_cast<const VkMultiDrawIndexedInfoEXT*>( this );
49676     }
49677 
operator VkMultiDrawIndexedInfoEXT&VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49678     operator VkMultiDrawIndexedInfoEXT &() VULKAN_HPP_NOEXCEPT
49679     {
49680       return *reinterpret_cast<VkMultiDrawIndexedInfoEXT*>( this );
49681     }
49682 
49683 #if defined( VULKAN_HPP_USE_REFLECT )
49684 #if 14 <= VULKAN_HPP_CPP_VERSION
49685     auto
49686 #else
49687     std::tuple<uint32_t const &, uint32_t const &, int32_t const &>
49688 #endif
reflectVULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49689       reflect() const VULKAN_HPP_NOEXCEPT
49690     {
49691       return std::tie( firstIndex, indexCount, vertexOffset );
49692     }
49693 #endif
49694 
49695 
49696 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49697 auto operator<=>( MultiDrawIndexedInfoEXT const & ) const = default;
49698 #else
operator ==VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49699     bool operator==( MultiDrawIndexedInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49700     {
49701 #if defined( VULKAN_HPP_USE_REFLECT )
49702       return this->reflect() == rhs.reflect();
49703 #else
49704       return ( firstIndex == rhs.firstIndex )
49705           && ( indexCount == rhs.indexCount )
49706           && ( vertexOffset == rhs.vertexOffset );
49707 #endif
49708     }
49709 
operator !=VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT49710     bool operator!=( MultiDrawIndexedInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49711     {
49712       return !operator==( rhs );
49713     }
49714 #endif
49715 
49716     public:
49717     uint32_t firstIndex = {};
49718     uint32_t indexCount = {};
49719     int32_t vertexOffset = {};
49720 
49721   };
49722 
49723   struct MultiDrawInfoEXT
49724   {
49725     using NativeType = VkMultiDrawInfoEXT;
49726 
49727 
49728 
49729 
49730 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MultiDrawInfoEXTVULKAN_HPP_NAMESPACE::MultiDrawInfoEXT49731 VULKAN_HPP_CONSTEXPR MultiDrawInfoEXT(uint32_t firstVertex_ = {}, uint32_t vertexCount_ = {}) VULKAN_HPP_NOEXCEPT
49732     : firstVertex( firstVertex_ ), vertexCount( vertexCount_ )
49733     {}
49734 
49735     VULKAN_HPP_CONSTEXPR MultiDrawInfoEXT( MultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49736 
MultiDrawInfoEXTVULKAN_HPP_NAMESPACE::MultiDrawInfoEXT49737     MultiDrawInfoEXT( VkMultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49738       : MultiDrawInfoEXT( *reinterpret_cast<MultiDrawInfoEXT const *>( &rhs ) )
49739     {}
49740 
49741 
49742     MultiDrawInfoEXT & operator=( MultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49743 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
49744 
operator =VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT49745     MultiDrawInfoEXT & operator=( VkMultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49746     {
49747       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT const *>( &rhs );
49748       return *this;
49749     }
49750 
49751 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setFirstVertexVULKAN_HPP_NAMESPACE::MultiDrawInfoEXT49752     VULKAN_HPP_CONSTEXPR_14 MultiDrawInfoEXT & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
49753     {
49754       firstVertex = firstVertex_;
49755       return *this;
49756     }
49757 
setVertexCountVULKAN_HPP_NAMESPACE::MultiDrawInfoEXT49758     VULKAN_HPP_CONSTEXPR_14 MultiDrawInfoEXT & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
49759     {
49760       vertexCount = vertexCount_;
49761       return *this;
49762     }
49763 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
49764 
49765 
operator VkMultiDrawInfoEXT const&VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT49766     operator VkMultiDrawInfoEXT const &() const VULKAN_HPP_NOEXCEPT
49767     {
49768       return *reinterpret_cast<const VkMultiDrawInfoEXT*>( this );
49769     }
49770 
operator VkMultiDrawInfoEXT&VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT49771     operator VkMultiDrawInfoEXT &() VULKAN_HPP_NOEXCEPT
49772     {
49773       return *reinterpret_cast<VkMultiDrawInfoEXT*>( this );
49774     }
49775 
49776 #if defined( VULKAN_HPP_USE_REFLECT )
49777 #if 14 <= VULKAN_HPP_CPP_VERSION
49778     auto
49779 #else
49780     std::tuple<uint32_t const &, uint32_t const &>
49781 #endif
reflectVULKAN_HPP_NAMESPACE::MultiDrawInfoEXT49782       reflect() const VULKAN_HPP_NOEXCEPT
49783     {
49784       return std::tie( firstVertex, vertexCount );
49785     }
49786 #endif
49787 
49788 
49789 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49790 auto operator<=>( MultiDrawInfoEXT const & ) const = default;
49791 #else
operator ==VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT49792     bool operator==( MultiDrawInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49793     {
49794 #if defined( VULKAN_HPP_USE_REFLECT )
49795       return this->reflect() == rhs.reflect();
49796 #else
49797       return ( firstVertex == rhs.firstVertex )
49798           && ( vertexCount == rhs.vertexCount );
49799 #endif
49800     }
49801 
operator !=VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT49802     bool operator!=( MultiDrawInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49803     {
49804       return !operator==( rhs );
49805     }
49806 #endif
49807 
49808     public:
49809     uint32_t firstVertex = {};
49810     uint32_t vertexCount = {};
49811 
49812   };
49813 
49814   struct MultisamplePropertiesEXT
49815   {
49816     using NativeType = VkMultisamplePropertiesEXT;
49817 
49818     static const bool allowDuplicate = false;
49819     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT;
49820 
49821 
49822 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT49823 VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
49824     : pNext( pNext_ ), maxSampleLocationGridSize( maxSampleLocationGridSize_ )
49825     {}
49826 
49827     VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49828 
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT49829     MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49830       : MultisamplePropertiesEXT( *reinterpret_cast<MultisamplePropertiesEXT const *>( &rhs ) )
49831     {}
49832 
49833 
49834     MultisamplePropertiesEXT & operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49835 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
49836 
operator =VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT49837     MultisamplePropertiesEXT & operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49838     {
49839       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const *>( &rhs );
49840       return *this;
49841     }
49842 
49843 
operator VkMultisamplePropertiesEXT const&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT49844     operator VkMultisamplePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
49845     {
49846       return *reinterpret_cast<const VkMultisamplePropertiesEXT*>( this );
49847     }
49848 
operator VkMultisamplePropertiesEXT&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT49849     operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT
49850     {
49851       return *reinterpret_cast<VkMultisamplePropertiesEXT*>( this );
49852     }
49853 
49854 #if defined( VULKAN_HPP_USE_REFLECT )
49855 #if 14 <= VULKAN_HPP_CPP_VERSION
49856     auto
49857 #else
49858     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
49859 #endif
reflectVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT49860       reflect() const VULKAN_HPP_NOEXCEPT
49861     {
49862       return std::tie( sType, pNext, maxSampleLocationGridSize );
49863     }
49864 #endif
49865 
49866 
49867 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49868 auto operator<=>( MultisamplePropertiesEXT const & ) const = default;
49869 #else
operator ==VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT49870     bool operator==( MultisamplePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49871     {
49872 #if defined( VULKAN_HPP_USE_REFLECT )
49873       return this->reflect() == rhs.reflect();
49874 #else
49875       return ( sType == rhs.sType )
49876           && ( pNext == rhs.pNext )
49877           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize );
49878 #endif
49879     }
49880 
operator !=VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT49881     bool operator!=( MultisamplePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49882     {
49883       return !operator==( rhs );
49884     }
49885 #endif
49886 
49887     public:
49888     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT;
49889     void * pNext = {};
49890     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
49891 
49892   };
49893 
49894   template <>
49895   struct CppType<StructureType, StructureType::eMultisamplePropertiesEXT>
49896   {
49897     using Type = MultisamplePropertiesEXT;
49898   };
49899 
49900   struct MultisampledRenderToSingleSampledInfoEXT
49901   {
49902     using NativeType = VkMultisampledRenderToSingleSampledInfoEXT;
49903 
49904     static const bool allowDuplicate = false;
49905     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisampledRenderToSingleSampledInfoEXT;
49906 
49907 
49908 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MultisampledRenderToSingleSampledInfoEXTVULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49909 VULKAN_HPP_CONSTEXPR MultisampledRenderToSingleSampledInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampledEnable_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
49910     : pNext( pNext_ ), multisampledRenderToSingleSampledEnable( multisampledRenderToSingleSampledEnable_ ), rasterizationSamples( rasterizationSamples_ )
49911     {}
49912 
49913     VULKAN_HPP_CONSTEXPR MultisampledRenderToSingleSampledInfoEXT( MultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49914 
MultisampledRenderToSingleSampledInfoEXTVULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49915     MultisampledRenderToSingleSampledInfoEXT( VkMultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49916       : MultisampledRenderToSingleSampledInfoEXT( *reinterpret_cast<MultisampledRenderToSingleSampledInfoEXT const *>( &rhs ) )
49917     {}
49918 
49919 
49920     MultisampledRenderToSingleSampledInfoEXT & operator=( MultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49921 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
49922 
operator =VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49923     MultisampledRenderToSingleSampledInfoEXT & operator=( VkMultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
49924     {
49925       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT const *>( &rhs );
49926       return *this;
49927     }
49928 
49929 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49930     VULKAN_HPP_CONSTEXPR_14 MultisampledRenderToSingleSampledInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
49931     {
49932       pNext = pNext_;
49933       return *this;
49934     }
49935 
setMultisampledRenderToSingleSampledEnableVULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49936     VULKAN_HPP_CONSTEXPR_14 MultisampledRenderToSingleSampledInfoEXT & setMultisampledRenderToSingleSampledEnable( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampledEnable_ ) VULKAN_HPP_NOEXCEPT
49937     {
49938       multisampledRenderToSingleSampledEnable = multisampledRenderToSingleSampledEnable_;
49939       return *this;
49940     }
49941 
setRasterizationSamplesVULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49942     VULKAN_HPP_CONSTEXPR_14 MultisampledRenderToSingleSampledInfoEXT & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
49943     {
49944       rasterizationSamples = rasterizationSamples_;
49945       return *this;
49946     }
49947 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
49948 
49949 
operator VkMultisampledRenderToSingleSampledInfoEXT const&VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49950     operator VkMultisampledRenderToSingleSampledInfoEXT const &() const VULKAN_HPP_NOEXCEPT
49951     {
49952       return *reinterpret_cast<const VkMultisampledRenderToSingleSampledInfoEXT*>( this );
49953     }
49954 
operator VkMultisampledRenderToSingleSampledInfoEXT&VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49955     operator VkMultisampledRenderToSingleSampledInfoEXT &() VULKAN_HPP_NOEXCEPT
49956     {
49957       return *reinterpret_cast<VkMultisampledRenderToSingleSampledInfoEXT*>( this );
49958     }
49959 
49960 #if defined( VULKAN_HPP_USE_REFLECT )
49961 #if 14 <= VULKAN_HPP_CPP_VERSION
49962     auto
49963 #else
49964     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
49965 #endif
reflectVULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49966       reflect() const VULKAN_HPP_NOEXCEPT
49967     {
49968       return std::tie( sType, pNext, multisampledRenderToSingleSampledEnable, rasterizationSamples );
49969     }
49970 #endif
49971 
49972 
49973 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
49974 auto operator<=>( MultisampledRenderToSingleSampledInfoEXT const & ) const = default;
49975 #else
operator ==VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49976     bool operator==( MultisampledRenderToSingleSampledInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49977     {
49978 #if defined( VULKAN_HPP_USE_REFLECT )
49979       return this->reflect() == rhs.reflect();
49980 #else
49981       return ( sType == rhs.sType )
49982           && ( pNext == rhs.pNext )
49983           && ( multisampledRenderToSingleSampledEnable == rhs.multisampledRenderToSingleSampledEnable )
49984           && ( rasterizationSamples == rhs.rasterizationSamples );
49985 #endif
49986     }
49987 
operator !=VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT49988     bool operator!=( MultisampledRenderToSingleSampledInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
49989     {
49990       return !operator==( rhs );
49991     }
49992 #endif
49993 
49994     public:
49995     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisampledRenderToSingleSampledInfoEXT;
49996     const void * pNext = {};
49997     VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampledEnable = {};
49998     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
49999 
50000   };
50001 
50002   template <>
50003   struct CppType<StructureType, StructureType::eMultisampledRenderToSingleSampledInfoEXT>
50004   {
50005     using Type = MultisampledRenderToSingleSampledInfoEXT;
50006   };
50007 
50008   struct MultiviewPerViewAttributesInfoNVX
50009   {
50010     using NativeType = VkMultiviewPerViewAttributesInfoNVX;
50011 
50012     static const bool allowDuplicate = false;
50013     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultiviewPerViewAttributesInfoNVX;
50014 
50015 
50016 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MultiviewPerViewAttributesInfoNVXVULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50017 VULKAN_HPP_CONSTEXPR MultiviewPerViewAttributesInfoNVX(VULKAN_HPP_NAMESPACE::Bool32 perViewAttributes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
50018     : pNext( pNext_ ), perViewAttributes( perViewAttributes_ ), perViewAttributesPositionXOnly( perViewAttributesPositionXOnly_ )
50019     {}
50020 
50021     VULKAN_HPP_CONSTEXPR MultiviewPerViewAttributesInfoNVX( MultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50022 
MultiviewPerViewAttributesInfoNVXVULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50023     MultiviewPerViewAttributesInfoNVX( VkMultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
50024       : MultiviewPerViewAttributesInfoNVX( *reinterpret_cast<MultiviewPerViewAttributesInfoNVX const *>( &rhs ) )
50025     {}
50026 
50027 
50028     MultiviewPerViewAttributesInfoNVX & operator=( MultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50029 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
50030 
operator =VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50031     MultiviewPerViewAttributesInfoNVX & operator=( VkMultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
50032     {
50033       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX const *>( &rhs );
50034       return *this;
50035     }
50036 
50037 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50038     VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewAttributesInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
50039     {
50040       pNext = pNext_;
50041       return *this;
50042     }
50043 
setPerViewAttributesVULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50044     VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewAttributesInfoNVX & setPerViewAttributes( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributes_ ) VULKAN_HPP_NOEXCEPT
50045     {
50046       perViewAttributes = perViewAttributes_;
50047       return *this;
50048     }
50049 
setPerViewAttributesPositionXOnlyVULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50050     VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewAttributesInfoNVX & setPerViewAttributesPositionXOnly( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly_ ) VULKAN_HPP_NOEXCEPT
50051     {
50052       perViewAttributesPositionXOnly = perViewAttributesPositionXOnly_;
50053       return *this;
50054     }
50055 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
50056 
50057 
operator VkMultiviewPerViewAttributesInfoNVX const&VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50058     operator VkMultiviewPerViewAttributesInfoNVX const &() const VULKAN_HPP_NOEXCEPT
50059     {
50060       return *reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>( this );
50061     }
50062 
operator VkMultiviewPerViewAttributesInfoNVX&VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50063     operator VkMultiviewPerViewAttributesInfoNVX &() VULKAN_HPP_NOEXCEPT
50064     {
50065       return *reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX*>( this );
50066     }
50067 
50068 #if defined( VULKAN_HPP_USE_REFLECT )
50069 #if 14 <= VULKAN_HPP_CPP_VERSION
50070     auto
50071 #else
50072     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
50073 #endif
reflectVULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50074       reflect() const VULKAN_HPP_NOEXCEPT
50075     {
50076       return std::tie( sType, pNext, perViewAttributes, perViewAttributesPositionXOnly );
50077     }
50078 #endif
50079 
50080 
50081 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50082 auto operator<=>( MultiviewPerViewAttributesInfoNVX const & ) const = default;
50083 #else
operator ==VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50084     bool operator==( MultiviewPerViewAttributesInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
50085     {
50086 #if defined( VULKAN_HPP_USE_REFLECT )
50087       return this->reflect() == rhs.reflect();
50088 #else
50089       return ( sType == rhs.sType )
50090           && ( pNext == rhs.pNext )
50091           && ( perViewAttributes == rhs.perViewAttributes )
50092           && ( perViewAttributesPositionXOnly == rhs.perViewAttributesPositionXOnly );
50093 #endif
50094     }
50095 
operator !=VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX50096     bool operator!=( MultiviewPerViewAttributesInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
50097     {
50098       return !operator==( rhs );
50099     }
50100 #endif
50101 
50102     public:
50103     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultiviewPerViewAttributesInfoNVX;
50104     const void * pNext = {};
50105     VULKAN_HPP_NAMESPACE::Bool32 perViewAttributes = {};
50106     VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly = {};
50107 
50108   };
50109 
50110   template <>
50111   struct CppType<StructureType, StructureType::eMultiviewPerViewAttributesInfoNVX>
50112   {
50113     using Type = MultiviewPerViewAttributesInfoNVX;
50114   };
50115 
50116   struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM
50117   {
50118     using NativeType = VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
50119 
50120     static const bool allowDuplicate = false;
50121     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
50122 
50123 
50124 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MultiviewPerViewRenderAreasRenderPassBeginInfoQCOMVULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50125 VULKAN_HPP_CONSTEXPR MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(uint32_t perViewRenderAreaCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D * pPerViewRenderAreas_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
50126     : pNext( pNext_ ), perViewRenderAreaCount( perViewRenderAreaCount_ ), pPerViewRenderAreas( pPerViewRenderAreas_ )
50127     {}
50128 
50129     VULKAN_HPP_CONSTEXPR MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50130 
MultiviewPerViewRenderAreasRenderPassBeginInfoQCOMVULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50131     MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
50132       : MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( *reinterpret_cast<MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const *>( &rhs ) )
50133     {}
50134 
50135 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
MultiviewPerViewRenderAreasRenderPassBeginInfoQCOMVULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50136     MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & perViewRenderAreas_, const void * pNext_ = nullptr )
50137     : pNext( pNext_ ), perViewRenderAreaCount( static_cast<uint32_t>( perViewRenderAreas_.size() ) ), pPerViewRenderAreas( perViewRenderAreas_.data() )
50138     {}
50139 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50140 
50141 
50142     MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM & operator=( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50143 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
50144 
operator =VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50145     MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM & operator=( VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
50146     {
50147       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const *>( &rhs );
50148       return *this;
50149     }
50150 
50151 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50152     VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
50153     {
50154       pNext = pNext_;
50155       return *this;
50156     }
50157 
setPerViewRenderAreaCountVULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50158     VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM & setPerViewRenderAreaCount( uint32_t perViewRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
50159     {
50160       perViewRenderAreaCount = perViewRenderAreaCount_;
50161       return *this;
50162     }
50163 
setPPerViewRenderAreasVULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50164     VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM & setPPerViewRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D * pPerViewRenderAreas_ ) VULKAN_HPP_NOEXCEPT
50165     {
50166       pPerViewRenderAreas = pPerViewRenderAreas_;
50167       return *this;
50168     }
50169 
50170 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPerViewRenderAreasVULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50171     MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM & setPerViewRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & perViewRenderAreas_ ) VULKAN_HPP_NOEXCEPT
50172     {
50173       perViewRenderAreaCount = static_cast<uint32_t>( perViewRenderAreas_.size() );
50174       pPerViewRenderAreas = perViewRenderAreas_.data();
50175       return *this;
50176     }
50177 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50178 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
50179 
50180 
operator VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const&VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50181     operator VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
50182     {
50183       return *reinterpret_cast<const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM*>( this );
50184     }
50185 
operator VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM&VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50186     operator VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
50187     {
50188       return *reinterpret_cast<VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM*>( this );
50189     }
50190 
50191 #if defined( VULKAN_HPP_USE_REFLECT )
50192 #if 14 <= VULKAN_HPP_CPP_VERSION
50193     auto
50194 #else
50195     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
50196 #endif
reflectVULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50197       reflect() const VULKAN_HPP_NOEXCEPT
50198     {
50199       return std::tie( sType, pNext, perViewRenderAreaCount, pPerViewRenderAreas );
50200     }
50201 #endif
50202 
50203 
50204 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50205 auto operator<=>( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & ) const = default;
50206 #else
operator ==VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50207     bool operator==( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
50208     {
50209 #if defined( VULKAN_HPP_USE_REFLECT )
50210       return this->reflect() == rhs.reflect();
50211 #else
50212       return ( sType == rhs.sType )
50213           && ( pNext == rhs.pNext )
50214           && ( perViewRenderAreaCount == rhs.perViewRenderAreaCount )
50215           && ( pPerViewRenderAreas == rhs.pPerViewRenderAreas );
50216 #endif
50217     }
50218 
operator !=VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM50219     bool operator!=( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
50220     {
50221       return !operator==( rhs );
50222     }
50223 #endif
50224 
50225     public:
50226     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
50227     const void * pNext = {};
50228     uint32_t perViewRenderAreaCount = {};
50229     const VULKAN_HPP_NAMESPACE::Rect2D * pPerViewRenderAreas = {};
50230 
50231   };
50232 
50233   template <>
50234   struct CppType<StructureType, StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM>
50235   {
50236     using Type = MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
50237   };
50238 
50239   struct MutableDescriptorTypeListEXT
50240   {
50241     using NativeType = VkMutableDescriptorTypeListEXT;
50242 
50243 
50244 
50245 
50246 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MutableDescriptorTypeListEXTVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50247 VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListEXT(uint32_t descriptorTypeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ = {}) VULKAN_HPP_NOEXCEPT
50248     : descriptorTypeCount( descriptorTypeCount_ ), pDescriptorTypes( pDescriptorTypes_ )
50249     {}
50250 
50251     VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListEXT( MutableDescriptorTypeListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50252 
MutableDescriptorTypeListEXTVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50253     MutableDescriptorTypeListEXT( VkMutableDescriptorTypeListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50254       : MutableDescriptorTypeListEXT( *reinterpret_cast<MutableDescriptorTypeListEXT const *>( &rhs ) )
50255     {}
50256 
50257 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
MutableDescriptorTypeListEXTVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50258     MutableDescriptorTypeListEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorType> const & descriptorTypes_ )
50259     : descriptorTypeCount( static_cast<uint32_t>( descriptorTypes_.size() ) ), pDescriptorTypes( descriptorTypes_.data() )
50260     {}
50261 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50262 
50263 
50264     MutableDescriptorTypeListEXT & operator=( MutableDescriptorTypeListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50265 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
50266 
operator =VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50267     MutableDescriptorTypeListEXT & operator=( VkMutableDescriptorTypeListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50268     {
50269       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT const *>( &rhs );
50270       return *this;
50271     }
50272 
50273 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setDescriptorTypeCountVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50274     VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeListEXT & setDescriptorTypeCount( uint32_t descriptorTypeCount_ ) VULKAN_HPP_NOEXCEPT
50275     {
50276       descriptorTypeCount = descriptorTypeCount_;
50277       return *this;
50278     }
50279 
setPDescriptorTypesVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50280     VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeListEXT & setPDescriptorTypes( const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ ) VULKAN_HPP_NOEXCEPT
50281     {
50282       pDescriptorTypes = pDescriptorTypes_;
50283       return *this;
50284     }
50285 
50286 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDescriptorTypesVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50287     MutableDescriptorTypeListEXT & setDescriptorTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorType> const & descriptorTypes_ ) VULKAN_HPP_NOEXCEPT
50288     {
50289       descriptorTypeCount = static_cast<uint32_t>( descriptorTypes_.size() );
50290       pDescriptorTypes = descriptorTypes_.data();
50291       return *this;
50292     }
50293 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50294 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
50295 
50296 
operator VkMutableDescriptorTypeListEXT const&VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50297     operator VkMutableDescriptorTypeListEXT const &() const VULKAN_HPP_NOEXCEPT
50298     {
50299       return *reinterpret_cast<const VkMutableDescriptorTypeListEXT*>( this );
50300     }
50301 
operator VkMutableDescriptorTypeListEXT&VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50302     operator VkMutableDescriptorTypeListEXT &() VULKAN_HPP_NOEXCEPT
50303     {
50304       return *reinterpret_cast<VkMutableDescriptorTypeListEXT*>( this );
50305     }
50306 
50307 #if defined( VULKAN_HPP_USE_REFLECT )
50308 #if 14 <= VULKAN_HPP_CPP_VERSION
50309     auto
50310 #else
50311     std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorType * const &>
50312 #endif
reflectVULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50313       reflect() const VULKAN_HPP_NOEXCEPT
50314     {
50315       return std::tie( descriptorTypeCount, pDescriptorTypes );
50316     }
50317 #endif
50318 
50319 
50320 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50321 auto operator<=>( MutableDescriptorTypeListEXT const & ) const = default;
50322 #else
operator ==VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50323     bool operator==( MutableDescriptorTypeListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
50324     {
50325 #if defined( VULKAN_HPP_USE_REFLECT )
50326       return this->reflect() == rhs.reflect();
50327 #else
50328       return ( descriptorTypeCount == rhs.descriptorTypeCount )
50329           && ( pDescriptorTypes == rhs.pDescriptorTypes );
50330 #endif
50331     }
50332 
operator !=VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT50333     bool operator!=( MutableDescriptorTypeListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
50334     {
50335       return !operator==( rhs );
50336     }
50337 #endif
50338 
50339     public:
50340     uint32_t descriptorTypeCount = {};
50341     const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes = {};
50342 
50343   };
50344   using MutableDescriptorTypeListVALVE = MutableDescriptorTypeListEXT;
50345 
50346   struct MutableDescriptorTypeCreateInfoEXT
50347   {
50348     using NativeType = VkMutableDescriptorTypeCreateInfoEXT;
50349 
50350     static const bool allowDuplicate = false;
50351     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMutableDescriptorTypeCreateInfoEXT;
50352 
50353 
50354 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MutableDescriptorTypeCreateInfoEXTVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50355 VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoEXT(uint32_t mutableDescriptorTypeListCount_ = {}, const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT * pMutableDescriptorTypeLists_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
50356     : pNext( pNext_ ), mutableDescriptorTypeListCount( mutableDescriptorTypeListCount_ ), pMutableDescriptorTypeLists( pMutableDescriptorTypeLists_ )
50357     {}
50358 
50359     VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoEXT( MutableDescriptorTypeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50360 
MutableDescriptorTypeCreateInfoEXTVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50361     MutableDescriptorTypeCreateInfoEXT( VkMutableDescriptorTypeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50362       : MutableDescriptorTypeCreateInfoEXT( *reinterpret_cast<MutableDescriptorTypeCreateInfoEXT const *>( &rhs ) )
50363     {}
50364 
50365 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
MutableDescriptorTypeCreateInfoEXTVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50366     MutableDescriptorTypeCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT> const & mutableDescriptorTypeLists_, const void * pNext_ = nullptr )
50367     : pNext( pNext_ ), mutableDescriptorTypeListCount( static_cast<uint32_t>( mutableDescriptorTypeLists_.size() ) ), pMutableDescriptorTypeLists( mutableDescriptorTypeLists_.data() )
50368     {}
50369 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50370 
50371 
50372     MutableDescriptorTypeCreateInfoEXT & operator=( MutableDescriptorTypeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50373 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
50374 
operator =VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50375     MutableDescriptorTypeCreateInfoEXT & operator=( VkMutableDescriptorTypeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50376     {
50377       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT const *>( &rhs );
50378       return *this;
50379     }
50380 
50381 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50382     VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
50383     {
50384       pNext = pNext_;
50385       return *this;
50386     }
50387 
setMutableDescriptorTypeListCountVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50388     VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoEXT & setMutableDescriptorTypeListCount( uint32_t mutableDescriptorTypeListCount_ ) VULKAN_HPP_NOEXCEPT
50389     {
50390       mutableDescriptorTypeListCount = mutableDescriptorTypeListCount_;
50391       return *this;
50392     }
50393 
setPMutableDescriptorTypeListsVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50394     VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoEXT & setPMutableDescriptorTypeLists( const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT * pMutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT
50395     {
50396       pMutableDescriptorTypeLists = pMutableDescriptorTypeLists_;
50397       return *this;
50398     }
50399 
50400 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setMutableDescriptorTypeListsVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50401     MutableDescriptorTypeCreateInfoEXT & setMutableDescriptorTypeLists( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT> const & mutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT
50402     {
50403       mutableDescriptorTypeListCount = static_cast<uint32_t>( mutableDescriptorTypeLists_.size() );
50404       pMutableDescriptorTypeLists = mutableDescriptorTypeLists_.data();
50405       return *this;
50406     }
50407 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50408 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
50409 
50410 
operator VkMutableDescriptorTypeCreateInfoEXT const&VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50411     operator VkMutableDescriptorTypeCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
50412     {
50413       return *reinterpret_cast<const VkMutableDescriptorTypeCreateInfoEXT*>( this );
50414     }
50415 
operator VkMutableDescriptorTypeCreateInfoEXT&VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50416     operator VkMutableDescriptorTypeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
50417     {
50418       return *reinterpret_cast<VkMutableDescriptorTypeCreateInfoEXT*>( this );
50419     }
50420 
50421 #if defined( VULKAN_HPP_USE_REFLECT )
50422 #if 14 <= VULKAN_HPP_CPP_VERSION
50423     auto
50424 #else
50425     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT * const &>
50426 #endif
reflectVULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50427       reflect() const VULKAN_HPP_NOEXCEPT
50428     {
50429       return std::tie( sType, pNext, mutableDescriptorTypeListCount, pMutableDescriptorTypeLists );
50430     }
50431 #endif
50432 
50433 
50434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50435 auto operator<=>( MutableDescriptorTypeCreateInfoEXT const & ) const = default;
50436 #else
operator ==VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50437     bool operator==( MutableDescriptorTypeCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
50438     {
50439 #if defined( VULKAN_HPP_USE_REFLECT )
50440       return this->reflect() == rhs.reflect();
50441 #else
50442       return ( sType == rhs.sType )
50443           && ( pNext == rhs.pNext )
50444           && ( mutableDescriptorTypeListCount == rhs.mutableDescriptorTypeListCount )
50445           && ( pMutableDescriptorTypeLists == rhs.pMutableDescriptorTypeLists );
50446 #endif
50447     }
50448 
operator !=VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT50449     bool operator!=( MutableDescriptorTypeCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
50450     {
50451       return !operator==( rhs );
50452     }
50453 #endif
50454 
50455     public:
50456     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMutableDescriptorTypeCreateInfoEXT;
50457     const void * pNext = {};
50458     uint32_t mutableDescriptorTypeListCount = {};
50459     const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT * pMutableDescriptorTypeLists = {};
50460 
50461   };
50462 
50463   template <>
50464   struct CppType<StructureType, StructureType::eMutableDescriptorTypeCreateInfoEXT>
50465   {
50466     using Type = MutableDescriptorTypeCreateInfoEXT;
50467   };
50468   using MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoEXT;
50469 
50470   struct OpaqueCaptureDescriptorDataCreateInfoEXT
50471   {
50472     using NativeType = VkOpaqueCaptureDescriptorDataCreateInfoEXT;
50473 
50474     static const bool allowDuplicate = false;
50475     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpaqueCaptureDescriptorDataCreateInfoEXT;
50476 
50477 
50478 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
OpaqueCaptureDescriptorDataCreateInfoEXTVULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT50479 VULKAN_HPP_CONSTEXPR OpaqueCaptureDescriptorDataCreateInfoEXT(const void * opaqueCaptureDescriptorData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
50480     : pNext( pNext_ ), opaqueCaptureDescriptorData( opaqueCaptureDescriptorData_ )
50481     {}
50482 
50483     VULKAN_HPP_CONSTEXPR OpaqueCaptureDescriptorDataCreateInfoEXT( OpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50484 
OpaqueCaptureDescriptorDataCreateInfoEXTVULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT50485     OpaqueCaptureDescriptorDataCreateInfoEXT( VkOpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50486       : OpaqueCaptureDescriptorDataCreateInfoEXT( *reinterpret_cast<OpaqueCaptureDescriptorDataCreateInfoEXT const *>( &rhs ) )
50487     {}
50488 
50489 
50490     OpaqueCaptureDescriptorDataCreateInfoEXT & operator=( OpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50491 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
50492 
operator =VULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT50493     OpaqueCaptureDescriptorDataCreateInfoEXT & operator=( VkOpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
50494     {
50495       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT const *>( &rhs );
50496       return *this;
50497     }
50498 
50499 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT50500     VULKAN_HPP_CONSTEXPR_14 OpaqueCaptureDescriptorDataCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
50501     {
50502       pNext = pNext_;
50503       return *this;
50504     }
50505 
setOpaqueCaptureDescriptorDataVULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT50506     VULKAN_HPP_CONSTEXPR_14 OpaqueCaptureDescriptorDataCreateInfoEXT & setOpaqueCaptureDescriptorData( const void * opaqueCaptureDescriptorData_ ) VULKAN_HPP_NOEXCEPT
50507     {
50508       opaqueCaptureDescriptorData = opaqueCaptureDescriptorData_;
50509       return *this;
50510     }
50511 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
50512 
50513 
operator VkOpaqueCaptureDescriptorDataCreateInfoEXT const&VULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT50514     operator VkOpaqueCaptureDescriptorDataCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
50515     {
50516       return *reinterpret_cast<const VkOpaqueCaptureDescriptorDataCreateInfoEXT*>( this );
50517     }
50518 
operator VkOpaqueCaptureDescriptorDataCreateInfoEXT&VULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT50519     operator VkOpaqueCaptureDescriptorDataCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
50520     {
50521       return *reinterpret_cast<VkOpaqueCaptureDescriptorDataCreateInfoEXT*>( this );
50522     }
50523 
50524 #if defined( VULKAN_HPP_USE_REFLECT )
50525 #if 14 <= VULKAN_HPP_CPP_VERSION
50526     auto
50527 #else
50528     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const void * const &>
50529 #endif
reflectVULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT50530       reflect() const VULKAN_HPP_NOEXCEPT
50531     {
50532       return std::tie( sType, pNext, opaqueCaptureDescriptorData );
50533     }
50534 #endif
50535 
50536 
50537 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50538 auto operator<=>( OpaqueCaptureDescriptorDataCreateInfoEXT const & ) const = default;
50539 #else
operator ==VULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT50540     bool operator==( OpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
50541     {
50542 #if defined( VULKAN_HPP_USE_REFLECT )
50543       return this->reflect() == rhs.reflect();
50544 #else
50545       return ( sType == rhs.sType )
50546           && ( pNext == rhs.pNext )
50547           && ( opaqueCaptureDescriptorData == rhs.opaqueCaptureDescriptorData );
50548 #endif
50549     }
50550 
operator !=VULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT50551     bool operator!=( OpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
50552     {
50553       return !operator==( rhs );
50554     }
50555 #endif
50556 
50557     public:
50558     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpaqueCaptureDescriptorDataCreateInfoEXT;
50559     const void * pNext = {};
50560     const void * opaqueCaptureDescriptorData = {};
50561 
50562   };
50563 
50564   template <>
50565   struct CppType<StructureType, StructureType::eOpaqueCaptureDescriptorDataCreateInfoEXT>
50566   {
50567     using Type = OpaqueCaptureDescriptorDataCreateInfoEXT;
50568   };
50569 
50570   struct OpticalFlowExecuteInfoNV
50571   {
50572     using NativeType = VkOpticalFlowExecuteInfoNV;
50573 
50574     static const bool allowDuplicate = false;
50575     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpticalFlowExecuteInfoNV;
50576 
50577 
50578 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
OpticalFlowExecuteInfoNVVULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50579 VULKAN_HPP_CONSTEXPR OpticalFlowExecuteInfoNV(VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV flags_ = {}, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D * pRegions_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
50580     : pNext( pNext_ ), flags( flags_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
50581     {}
50582 
50583     VULKAN_HPP_CONSTEXPR OpticalFlowExecuteInfoNV( OpticalFlowExecuteInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50584 
OpticalFlowExecuteInfoNVVULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50585     OpticalFlowExecuteInfoNV( VkOpticalFlowExecuteInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
50586       : OpticalFlowExecuteInfoNV( *reinterpret_cast<OpticalFlowExecuteInfoNV const *>( &rhs ) )
50587     {}
50588 
50589 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
OpticalFlowExecuteInfoNVVULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50590     OpticalFlowExecuteInfoNV( VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & regions_, void * pNext_ = nullptr )
50591     : pNext( pNext_ ), flags( flags_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
50592     {}
50593 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50594 
50595 
50596     OpticalFlowExecuteInfoNV & operator=( OpticalFlowExecuteInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50597 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
50598 
operator =VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50599     OpticalFlowExecuteInfoNV & operator=( VkOpticalFlowExecuteInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
50600     {
50601       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV const *>( &rhs );
50602       return *this;
50603     }
50604 
50605 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50606     VULKAN_HPP_CONSTEXPR_14 OpticalFlowExecuteInfoNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
50607     {
50608       pNext = pNext_;
50609       return *this;
50610     }
50611 
setFlagsVULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50612     VULKAN_HPP_CONSTEXPR_14 OpticalFlowExecuteInfoNV & setFlags( VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
50613     {
50614       flags = flags_;
50615       return *this;
50616     }
50617 
setRegionCountVULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50618     VULKAN_HPP_CONSTEXPR_14 OpticalFlowExecuteInfoNV & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
50619     {
50620       regionCount = regionCount_;
50621       return *this;
50622     }
50623 
setPRegionsVULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50624     VULKAN_HPP_CONSTEXPR_14 OpticalFlowExecuteInfoNV & setPRegions( const VULKAN_HPP_NAMESPACE::Rect2D * pRegions_ ) VULKAN_HPP_NOEXCEPT
50625     {
50626       pRegions = pRegions_;
50627       return *this;
50628     }
50629 
50630 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50631     OpticalFlowExecuteInfoNV & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & regions_ ) VULKAN_HPP_NOEXCEPT
50632     {
50633       regionCount = static_cast<uint32_t>( regions_.size() );
50634       pRegions = regions_.data();
50635       return *this;
50636     }
50637 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
50638 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
50639 
50640 
operator VkOpticalFlowExecuteInfoNV const&VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50641     operator VkOpticalFlowExecuteInfoNV const &() const VULKAN_HPP_NOEXCEPT
50642     {
50643       return *reinterpret_cast<const VkOpticalFlowExecuteInfoNV*>( this );
50644     }
50645 
operator VkOpticalFlowExecuteInfoNV&VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50646     operator VkOpticalFlowExecuteInfoNV &() VULKAN_HPP_NOEXCEPT
50647     {
50648       return *reinterpret_cast<VkOpticalFlowExecuteInfoNV*>( this );
50649     }
50650 
50651 #if defined( VULKAN_HPP_USE_REFLECT )
50652 #if 14 <= VULKAN_HPP_CPP_VERSION
50653     auto
50654 #else
50655     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
50656 #endif
reflectVULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50657       reflect() const VULKAN_HPP_NOEXCEPT
50658     {
50659       return std::tie( sType, pNext, flags, regionCount, pRegions );
50660     }
50661 #endif
50662 
50663 
50664 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50665 auto operator<=>( OpticalFlowExecuteInfoNV const & ) const = default;
50666 #else
operator ==VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50667     bool operator==( OpticalFlowExecuteInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
50668     {
50669 #if defined( VULKAN_HPP_USE_REFLECT )
50670       return this->reflect() == rhs.reflect();
50671 #else
50672       return ( sType == rhs.sType )
50673           && ( pNext == rhs.pNext )
50674           && ( flags == rhs.flags )
50675           && ( regionCount == rhs.regionCount )
50676           && ( pRegions == rhs.pRegions );
50677 #endif
50678     }
50679 
operator !=VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV50680     bool operator!=( OpticalFlowExecuteInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
50681     {
50682       return !operator==( rhs );
50683     }
50684 #endif
50685 
50686     public:
50687     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpticalFlowExecuteInfoNV;
50688     void * pNext = {};
50689     VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV flags = {};
50690     uint32_t regionCount = {};
50691     const VULKAN_HPP_NAMESPACE::Rect2D * pRegions = {};
50692 
50693   };
50694 
50695   template <>
50696   struct CppType<StructureType, StructureType::eOpticalFlowExecuteInfoNV>
50697   {
50698     using Type = OpticalFlowExecuteInfoNV;
50699   };
50700 
50701   struct OpticalFlowImageFormatInfoNV
50702   {
50703     using NativeType = VkOpticalFlowImageFormatInfoNV;
50704 
50705     static const bool allowDuplicate = false;
50706     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpticalFlowImageFormatInfoNV;
50707 
50708 
50709 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
OpticalFlowImageFormatInfoNVVULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV50710 VULKAN_HPP_CONSTEXPR OpticalFlowImageFormatInfoNV(VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV usage_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
50711     : pNext( pNext_ ), usage( usage_ )
50712     {}
50713 
50714     VULKAN_HPP_CONSTEXPR OpticalFlowImageFormatInfoNV( OpticalFlowImageFormatInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50715 
OpticalFlowImageFormatInfoNVVULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV50716     OpticalFlowImageFormatInfoNV( VkOpticalFlowImageFormatInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
50717       : OpticalFlowImageFormatInfoNV( *reinterpret_cast<OpticalFlowImageFormatInfoNV const *>( &rhs ) )
50718     {}
50719 
50720 
50721     OpticalFlowImageFormatInfoNV & operator=( OpticalFlowImageFormatInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50722 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
50723 
operator =VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV50724     OpticalFlowImageFormatInfoNV & operator=( VkOpticalFlowImageFormatInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
50725     {
50726       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV const *>( &rhs );
50727       return *this;
50728     }
50729 
50730 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV50731     VULKAN_HPP_CONSTEXPR_14 OpticalFlowImageFormatInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
50732     {
50733       pNext = pNext_;
50734       return *this;
50735     }
50736 
setUsageVULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV50737     VULKAN_HPP_CONSTEXPR_14 OpticalFlowImageFormatInfoNV & setUsage( VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV usage_ ) VULKAN_HPP_NOEXCEPT
50738     {
50739       usage = usage_;
50740       return *this;
50741     }
50742 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
50743 
50744 
operator VkOpticalFlowImageFormatInfoNV const&VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV50745     operator VkOpticalFlowImageFormatInfoNV const &() const VULKAN_HPP_NOEXCEPT
50746     {
50747       return *reinterpret_cast<const VkOpticalFlowImageFormatInfoNV*>( this );
50748     }
50749 
operator VkOpticalFlowImageFormatInfoNV&VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV50750     operator VkOpticalFlowImageFormatInfoNV &() VULKAN_HPP_NOEXCEPT
50751     {
50752       return *reinterpret_cast<VkOpticalFlowImageFormatInfoNV*>( this );
50753     }
50754 
50755 #if defined( VULKAN_HPP_USE_REFLECT )
50756 #if 14 <= VULKAN_HPP_CPP_VERSION
50757     auto
50758 #else
50759     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV const &>
50760 #endif
reflectVULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV50761       reflect() const VULKAN_HPP_NOEXCEPT
50762     {
50763       return std::tie( sType, pNext, usage );
50764     }
50765 #endif
50766 
50767 
50768 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50769 auto operator<=>( OpticalFlowImageFormatInfoNV const & ) const = default;
50770 #else
operator ==VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV50771     bool operator==( OpticalFlowImageFormatInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
50772     {
50773 #if defined( VULKAN_HPP_USE_REFLECT )
50774       return this->reflect() == rhs.reflect();
50775 #else
50776       return ( sType == rhs.sType )
50777           && ( pNext == rhs.pNext )
50778           && ( usage == rhs.usage );
50779 #endif
50780     }
50781 
operator !=VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV50782     bool operator!=( OpticalFlowImageFormatInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
50783     {
50784       return !operator==( rhs );
50785     }
50786 #endif
50787 
50788     public:
50789     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpticalFlowImageFormatInfoNV;
50790     const void * pNext = {};
50791     VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV usage = {};
50792 
50793   };
50794 
50795   template <>
50796   struct CppType<StructureType, StructureType::eOpticalFlowImageFormatInfoNV>
50797   {
50798     using Type = OpticalFlowImageFormatInfoNV;
50799   };
50800 
50801   struct OpticalFlowImageFormatPropertiesNV
50802   {
50803     using NativeType = VkOpticalFlowImageFormatPropertiesNV;
50804 
50805     static const bool allowDuplicate = false;
50806     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpticalFlowImageFormatPropertiesNV;
50807 
50808 
50809 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
OpticalFlowImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV50810 VULKAN_HPP_CONSTEXPR OpticalFlowImageFormatPropertiesNV(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
50811     : pNext( pNext_ ), format( format_ )
50812     {}
50813 
50814     VULKAN_HPP_CONSTEXPR OpticalFlowImageFormatPropertiesNV( OpticalFlowImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50815 
OpticalFlowImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV50816     OpticalFlowImageFormatPropertiesNV( VkOpticalFlowImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50817       : OpticalFlowImageFormatPropertiesNV( *reinterpret_cast<OpticalFlowImageFormatPropertiesNV const *>( &rhs ) )
50818     {}
50819 
50820 
50821     OpticalFlowImageFormatPropertiesNV & operator=( OpticalFlowImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50822 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
50823 
operator =VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV50824     OpticalFlowImageFormatPropertiesNV & operator=( VkOpticalFlowImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
50825     {
50826       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV const *>( &rhs );
50827       return *this;
50828     }
50829 
50830 
operator VkOpticalFlowImageFormatPropertiesNV const&VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV50831     operator VkOpticalFlowImageFormatPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
50832     {
50833       return *reinterpret_cast<const VkOpticalFlowImageFormatPropertiesNV*>( this );
50834     }
50835 
operator VkOpticalFlowImageFormatPropertiesNV&VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV50836     operator VkOpticalFlowImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT
50837     {
50838       return *reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV*>( this );
50839     }
50840 
50841 #if defined( VULKAN_HPP_USE_REFLECT )
50842 #if 14 <= VULKAN_HPP_CPP_VERSION
50843     auto
50844 #else
50845     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Format const &>
50846 #endif
reflectVULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV50847       reflect() const VULKAN_HPP_NOEXCEPT
50848     {
50849       return std::tie( sType, pNext, format );
50850     }
50851 #endif
50852 
50853 
50854 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50855 auto operator<=>( OpticalFlowImageFormatPropertiesNV const & ) const = default;
50856 #else
operator ==VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV50857     bool operator==( OpticalFlowImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
50858     {
50859 #if defined( VULKAN_HPP_USE_REFLECT )
50860       return this->reflect() == rhs.reflect();
50861 #else
50862       return ( sType == rhs.sType )
50863           && ( pNext == rhs.pNext )
50864           && ( format == rhs.format );
50865 #endif
50866     }
50867 
operator !=VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV50868     bool operator!=( OpticalFlowImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
50869     {
50870       return !operator==( rhs );
50871     }
50872 #endif
50873 
50874     public:
50875     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpticalFlowImageFormatPropertiesNV;
50876     const void * pNext = {};
50877     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
50878 
50879   };
50880 
50881   template <>
50882   struct CppType<StructureType, StructureType::eOpticalFlowImageFormatPropertiesNV>
50883   {
50884     using Type = OpticalFlowImageFormatPropertiesNV;
50885   };
50886 
50887   struct OpticalFlowSessionCreateInfoNV
50888   {
50889     using NativeType = VkOpticalFlowSessionCreateInfoNV;
50890 
50891     static const bool allowDuplicate = false;
50892     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpticalFlowSessionCreateInfoNV;
50893 
50894 
50895 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
OpticalFlowSessionCreateInfoNVVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50896 VULKAN_HPP_CONSTEXPR OpticalFlowSessionCreateInfoNV(uint32_t width_ = {}, uint32_t height_ = {}, VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Format flowVectorFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Format costFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV outputGridSize_ = {}, VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV hintGridSize_ = {}, VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV performanceLevel_ = VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV::eUnknown, VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagsNV flags_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
50897     : pNext( pNext_ ), width( width_ ), height( height_ ), imageFormat( imageFormat_ ), flowVectorFormat( flowVectorFormat_ ), costFormat( costFormat_ ), outputGridSize( outputGridSize_ ), hintGridSize( hintGridSize_ ), performanceLevel( performanceLevel_ ), flags( flags_ )
50898     {}
50899 
50900     VULKAN_HPP_CONSTEXPR OpticalFlowSessionCreateInfoNV( OpticalFlowSessionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50901 
OpticalFlowSessionCreateInfoNVVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50902     OpticalFlowSessionCreateInfoNV( VkOpticalFlowSessionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
50903       : OpticalFlowSessionCreateInfoNV( *reinterpret_cast<OpticalFlowSessionCreateInfoNV const *>( &rhs ) )
50904     {}
50905 
50906 
50907     OpticalFlowSessionCreateInfoNV & operator=( OpticalFlowSessionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50908 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
50909 
operator =VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50910     OpticalFlowSessionCreateInfoNV & operator=( VkOpticalFlowSessionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
50911     {
50912       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const *>( &rhs );
50913       return *this;
50914     }
50915 
50916 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50917     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
50918     {
50919       pNext = pNext_;
50920       return *this;
50921     }
50922 
setWidthVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50923     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
50924     {
50925       width = width_;
50926       return *this;
50927     }
50928 
setHeightVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50929     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
50930     {
50931       height = height_;
50932       return *this;
50933     }
50934 
setImageFormatVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50935     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT
50936     {
50937       imageFormat = imageFormat_;
50938       return *this;
50939     }
50940 
setFlowVectorFormatVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50941     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setFlowVectorFormat( VULKAN_HPP_NAMESPACE::Format flowVectorFormat_ ) VULKAN_HPP_NOEXCEPT
50942     {
50943       flowVectorFormat = flowVectorFormat_;
50944       return *this;
50945     }
50946 
setCostFormatVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50947     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setCostFormat( VULKAN_HPP_NAMESPACE::Format costFormat_ ) VULKAN_HPP_NOEXCEPT
50948     {
50949       costFormat = costFormat_;
50950       return *this;
50951     }
50952 
setOutputGridSizeVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50953     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setOutputGridSize( VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV outputGridSize_ ) VULKAN_HPP_NOEXCEPT
50954     {
50955       outputGridSize = outputGridSize_;
50956       return *this;
50957     }
50958 
setHintGridSizeVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50959     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setHintGridSize( VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV hintGridSize_ ) VULKAN_HPP_NOEXCEPT
50960     {
50961       hintGridSize = hintGridSize_;
50962       return *this;
50963     }
50964 
setPerformanceLevelVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50965     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setPerformanceLevel( VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV performanceLevel_ ) VULKAN_HPP_NOEXCEPT
50966     {
50967       performanceLevel = performanceLevel_;
50968       return *this;
50969     }
50970 
setFlagsVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50971     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
50972     {
50973       flags = flags_;
50974       return *this;
50975     }
50976 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
50977 
50978 
operator VkOpticalFlowSessionCreateInfoNV const&VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50979     operator VkOpticalFlowSessionCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
50980     {
50981       return *reinterpret_cast<const VkOpticalFlowSessionCreateInfoNV*>( this );
50982     }
50983 
operator VkOpticalFlowSessionCreateInfoNV&VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50984     operator VkOpticalFlowSessionCreateInfoNV &() VULKAN_HPP_NOEXCEPT
50985     {
50986       return *reinterpret_cast<VkOpticalFlowSessionCreateInfoNV*>( this );
50987     }
50988 
50989 #if defined( VULKAN_HPP_USE_REFLECT )
50990 #if 14 <= VULKAN_HPP_CPP_VERSION
50991     auto
50992 #else
50993     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV const &, VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV const &, VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV const &, VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagsNV const &>
50994 #endif
reflectVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV50995       reflect() const VULKAN_HPP_NOEXCEPT
50996     {
50997       return std::tie( sType, pNext, width, height, imageFormat, flowVectorFormat, costFormat, outputGridSize, hintGridSize, performanceLevel, flags );
50998     }
50999 #endif
51000 
51001 
51002 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51003 auto operator<=>( OpticalFlowSessionCreateInfoNV const & ) const = default;
51004 #else
operator ==VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV51005     bool operator==( OpticalFlowSessionCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
51006     {
51007 #if defined( VULKAN_HPP_USE_REFLECT )
51008       return this->reflect() == rhs.reflect();
51009 #else
51010       return ( sType == rhs.sType )
51011           && ( pNext == rhs.pNext )
51012           && ( width == rhs.width )
51013           && ( height == rhs.height )
51014           && ( imageFormat == rhs.imageFormat )
51015           && ( flowVectorFormat == rhs.flowVectorFormat )
51016           && ( costFormat == rhs.costFormat )
51017           && ( outputGridSize == rhs.outputGridSize )
51018           && ( hintGridSize == rhs.hintGridSize )
51019           && ( performanceLevel == rhs.performanceLevel )
51020           && ( flags == rhs.flags );
51021 #endif
51022     }
51023 
operator !=VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV51024     bool operator!=( OpticalFlowSessionCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
51025     {
51026       return !operator==( rhs );
51027     }
51028 #endif
51029 
51030     public:
51031     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpticalFlowSessionCreateInfoNV;
51032     void * pNext = {};
51033     uint32_t width = {};
51034     uint32_t height = {};
51035     VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
51036     VULKAN_HPP_NAMESPACE::Format flowVectorFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
51037     VULKAN_HPP_NAMESPACE::Format costFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
51038     VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV outputGridSize = {};
51039     VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV hintGridSize = {};
51040     VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV performanceLevel = VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV::eUnknown;
51041     VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagsNV flags = {};
51042 
51043   };
51044 
51045   template <>
51046   struct CppType<StructureType, StructureType::eOpticalFlowSessionCreateInfoNV>
51047   {
51048     using Type = OpticalFlowSessionCreateInfoNV;
51049   };
51050 
51051   struct OpticalFlowSessionCreatePrivateDataInfoNV
51052   {
51053     using NativeType = VkOpticalFlowSessionCreatePrivateDataInfoNV;
51054 
51055     static const bool allowDuplicate = false;
51056     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpticalFlowSessionCreatePrivateDataInfoNV;
51057 
51058 
51059 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
OpticalFlowSessionCreatePrivateDataInfoNVVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51060 VULKAN_HPP_CONSTEXPR OpticalFlowSessionCreatePrivateDataInfoNV(uint32_t id_ = {}, uint32_t size_ = {}, const void * pPrivateData_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
51061     : pNext( pNext_ ), id( id_ ), size( size_ ), pPrivateData( pPrivateData_ )
51062     {}
51063 
51064     VULKAN_HPP_CONSTEXPR OpticalFlowSessionCreatePrivateDataInfoNV( OpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51065 
OpticalFlowSessionCreatePrivateDataInfoNVVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51066     OpticalFlowSessionCreatePrivateDataInfoNV( VkOpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
51067       : OpticalFlowSessionCreatePrivateDataInfoNV( *reinterpret_cast<OpticalFlowSessionCreatePrivateDataInfoNV const *>( &rhs ) )
51068     {}
51069 
51070 
51071     OpticalFlowSessionCreatePrivateDataInfoNV & operator=( OpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51072 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
51073 
operator =VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51074     OpticalFlowSessionCreatePrivateDataInfoNV & operator=( VkOpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
51075     {
51076       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV const *>( &rhs );
51077       return *this;
51078     }
51079 
51080 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51081     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreatePrivateDataInfoNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
51082     {
51083       pNext = pNext_;
51084       return *this;
51085     }
51086 
setIdVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51087     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreatePrivateDataInfoNV & setId( uint32_t id_ ) VULKAN_HPP_NOEXCEPT
51088     {
51089       id = id_;
51090       return *this;
51091     }
51092 
setSizeVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51093     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreatePrivateDataInfoNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
51094     {
51095       size = size_;
51096       return *this;
51097     }
51098 
setPPrivateDataVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51099     VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreatePrivateDataInfoNV & setPPrivateData( const void * pPrivateData_ ) VULKAN_HPP_NOEXCEPT
51100     {
51101       pPrivateData = pPrivateData_;
51102       return *this;
51103     }
51104 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
51105 
51106 
operator VkOpticalFlowSessionCreatePrivateDataInfoNV const&VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51107     operator VkOpticalFlowSessionCreatePrivateDataInfoNV const &() const VULKAN_HPP_NOEXCEPT
51108     {
51109       return *reinterpret_cast<const VkOpticalFlowSessionCreatePrivateDataInfoNV*>( this );
51110     }
51111 
operator VkOpticalFlowSessionCreatePrivateDataInfoNV&VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51112     operator VkOpticalFlowSessionCreatePrivateDataInfoNV &() VULKAN_HPP_NOEXCEPT
51113     {
51114       return *reinterpret_cast<VkOpticalFlowSessionCreatePrivateDataInfoNV*>( this );
51115     }
51116 
51117 #if defined( VULKAN_HPP_USE_REFLECT )
51118 #if 14 <= VULKAN_HPP_CPP_VERSION
51119     auto
51120 #else
51121     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, const void * const &>
51122 #endif
reflectVULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51123       reflect() const VULKAN_HPP_NOEXCEPT
51124     {
51125       return std::tie( sType, pNext, id, size, pPrivateData );
51126     }
51127 #endif
51128 
51129 
51130 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51131 auto operator<=>( OpticalFlowSessionCreatePrivateDataInfoNV const & ) const = default;
51132 #else
operator ==VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51133     bool operator==( OpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
51134     {
51135 #if defined( VULKAN_HPP_USE_REFLECT )
51136       return this->reflect() == rhs.reflect();
51137 #else
51138       return ( sType == rhs.sType )
51139           && ( pNext == rhs.pNext )
51140           && ( id == rhs.id )
51141           && ( size == rhs.size )
51142           && ( pPrivateData == rhs.pPrivateData );
51143 #endif
51144     }
51145 
operator !=VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV51146     bool operator!=( OpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
51147     {
51148       return !operator==( rhs );
51149     }
51150 #endif
51151 
51152     public:
51153     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpticalFlowSessionCreatePrivateDataInfoNV;
51154     void * pNext = {};
51155     uint32_t id = {};
51156     uint32_t size = {};
51157     const void * pPrivateData = {};
51158 
51159   };
51160 
51161   template <>
51162   struct CppType<StructureType, StructureType::eOpticalFlowSessionCreatePrivateDataInfoNV>
51163   {
51164     using Type = OpticalFlowSessionCreatePrivateDataInfoNV;
51165   };
51166 
51167   struct OutOfBandQueueTypeInfoNV
51168   {
51169     using NativeType = VkOutOfBandQueueTypeInfoNV;
51170 
51171     static const bool allowDuplicate = false;
51172     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOutOfBandQueueTypeInfoNV;
51173 
51174 
51175 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
OutOfBandQueueTypeInfoNVVULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV51176 VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV(VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
51177     : pNext( pNext_ ), queueType( queueType_ )
51178     {}
51179 
51180     VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV( OutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51181 
OutOfBandQueueTypeInfoNVVULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV51182     OutOfBandQueueTypeInfoNV( VkOutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
51183       : OutOfBandQueueTypeInfoNV( *reinterpret_cast<OutOfBandQueueTypeInfoNV const *>( &rhs ) )
51184     {}
51185 
51186 
51187     OutOfBandQueueTypeInfoNV & operator=( OutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51188 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
51189 
operator =VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV51190     OutOfBandQueueTypeInfoNV & operator=( VkOutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
51191     {
51192       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV const *>( &rhs );
51193       return *this;
51194     }
51195 
51196 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV51197     VULKAN_HPP_CONSTEXPR_14 OutOfBandQueueTypeInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
51198     {
51199       pNext = pNext_;
51200       return *this;
51201     }
51202 
setQueueTypeVULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV51203     VULKAN_HPP_CONSTEXPR_14 OutOfBandQueueTypeInfoNV & setQueueType( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ ) VULKAN_HPP_NOEXCEPT
51204     {
51205       queueType = queueType_;
51206       return *this;
51207     }
51208 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
51209 
51210 
operator VkOutOfBandQueueTypeInfoNV const&VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV51211     operator VkOutOfBandQueueTypeInfoNV const &() const VULKAN_HPP_NOEXCEPT
51212     {
51213       return *reinterpret_cast<const VkOutOfBandQueueTypeInfoNV*>( this );
51214     }
51215 
operator VkOutOfBandQueueTypeInfoNV&VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV51216     operator VkOutOfBandQueueTypeInfoNV &() VULKAN_HPP_NOEXCEPT
51217     {
51218       return *reinterpret_cast<VkOutOfBandQueueTypeInfoNV*>( this );
51219     }
51220 
51221 #if defined( VULKAN_HPP_USE_REFLECT )
51222 #if 14 <= VULKAN_HPP_CPP_VERSION
51223     auto
51224 #else
51225     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV const &>
51226 #endif
reflectVULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV51227       reflect() const VULKAN_HPP_NOEXCEPT
51228     {
51229       return std::tie( sType, pNext, queueType );
51230     }
51231 #endif
51232 
51233 
51234 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51235 auto operator<=>( OutOfBandQueueTypeInfoNV const & ) const = default;
51236 #else
operator ==VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV51237     bool operator==( OutOfBandQueueTypeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
51238     {
51239 #if defined( VULKAN_HPP_USE_REFLECT )
51240       return this->reflect() == rhs.reflect();
51241 #else
51242       return ( sType == rhs.sType )
51243           && ( pNext == rhs.pNext )
51244           && ( queueType == rhs.queueType );
51245 #endif
51246     }
51247 
operator !=VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV51248     bool operator!=( OutOfBandQueueTypeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
51249     {
51250       return !operator==( rhs );
51251     }
51252 #endif
51253 
51254     public:
51255     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOutOfBandQueueTypeInfoNV;
51256     const void * pNext = {};
51257     VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender;
51258 
51259   };
51260 
51261   template <>
51262   struct CppType<StructureType, StructureType::eOutOfBandQueueTypeInfoNV>
51263   {
51264     using Type = OutOfBandQueueTypeInfoNV;
51265   };
51266 
51267   struct PastPresentationTimingGOOGLE
51268   {
51269     using NativeType = VkPastPresentationTimingGOOGLE;
51270 
51271 
51272 
51273 
51274 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE51275 VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}, uint64_t actualPresentTime_ = {}, uint64_t earliestPresentTime_ = {}, uint64_t presentMargin_ = {}) VULKAN_HPP_NOEXCEPT
51276     : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ ), actualPresentTime( actualPresentTime_ ), earliestPresentTime( earliestPresentTime_ ), presentMargin( presentMargin_ )
51277     {}
51278 
51279     VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51280 
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE51281     PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
51282       : PastPresentationTimingGOOGLE( *reinterpret_cast<PastPresentationTimingGOOGLE const *>( &rhs ) )
51283     {}
51284 
51285 
51286     PastPresentationTimingGOOGLE & operator=( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51287 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
51288 
operator =VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE51289     PastPresentationTimingGOOGLE & operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
51290     {
51291       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const *>( &rhs );
51292       return *this;
51293     }
51294 
51295 
operator VkPastPresentationTimingGOOGLE const&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE51296     operator VkPastPresentationTimingGOOGLE const &() const VULKAN_HPP_NOEXCEPT
51297     {
51298       return *reinterpret_cast<const VkPastPresentationTimingGOOGLE*>( this );
51299     }
51300 
operator VkPastPresentationTimingGOOGLE&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE51301     operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT
51302     {
51303       return *reinterpret_cast<VkPastPresentationTimingGOOGLE*>( this );
51304     }
51305 
51306 #if defined( VULKAN_HPP_USE_REFLECT )
51307 #if 14 <= VULKAN_HPP_CPP_VERSION
51308     auto
51309 #else
51310     std::tuple<uint32_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &>
51311 #endif
reflectVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE51312       reflect() const VULKAN_HPP_NOEXCEPT
51313     {
51314       return std::tie( presentID, desiredPresentTime, actualPresentTime, earliestPresentTime, presentMargin );
51315     }
51316 #endif
51317 
51318 
51319 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51320 auto operator<=>( PastPresentationTimingGOOGLE const & ) const = default;
51321 #else
operator ==VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE51322     bool operator==( PastPresentationTimingGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
51323     {
51324 #if defined( VULKAN_HPP_USE_REFLECT )
51325       return this->reflect() == rhs.reflect();
51326 #else
51327       return ( presentID == rhs.presentID )
51328           && ( desiredPresentTime == rhs.desiredPresentTime )
51329           && ( actualPresentTime == rhs.actualPresentTime )
51330           && ( earliestPresentTime == rhs.earliestPresentTime )
51331           && ( presentMargin == rhs.presentMargin );
51332 #endif
51333     }
51334 
operator !=VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE51335     bool operator!=( PastPresentationTimingGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
51336     {
51337       return !operator==( rhs );
51338     }
51339 #endif
51340 
51341     public:
51342     uint32_t presentID = {};
51343     uint64_t desiredPresentTime = {};
51344     uint64_t actualPresentTime = {};
51345     uint64_t earliestPresentTime = {};
51346     uint64_t presentMargin = {};
51347 
51348   };
51349 
51350   struct PerformanceConfigurationAcquireInfoINTEL
51351   {
51352     using NativeType = VkPerformanceConfigurationAcquireInfoINTEL;
51353 
51354     static const bool allowDuplicate = false;
51355     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
51356 
51357 
51358 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL51359 VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
51360     : pNext( pNext_ ), type( type_ )
51361     {}
51362 
51363     VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51364 
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL51365     PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
51366       : PerformanceConfigurationAcquireInfoINTEL( *reinterpret_cast<PerformanceConfigurationAcquireInfoINTEL const *>( &rhs ) )
51367     {}
51368 
51369 
51370     PerformanceConfigurationAcquireInfoINTEL & operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51371 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
51372 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL51373     PerformanceConfigurationAcquireInfoINTEL & operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
51374     {
51375       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const *>( &rhs );
51376       return *this;
51377     }
51378 
51379 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL51380     VULKAN_HPP_CONSTEXPR_14 PerformanceConfigurationAcquireInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
51381     {
51382       pNext = pNext_;
51383       return *this;
51384     }
51385 
setTypeVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL51386     VULKAN_HPP_CONSTEXPR_14 PerformanceConfigurationAcquireInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
51387     {
51388       type = type_;
51389       return *this;
51390     }
51391 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
51392 
51393 
operator VkPerformanceConfigurationAcquireInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL51394     operator VkPerformanceConfigurationAcquireInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
51395     {
51396       return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( this );
51397     }
51398 
operator VkPerformanceConfigurationAcquireInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL51399     operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT
51400     {
51401       return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>( this );
51402     }
51403 
51404 #if defined( VULKAN_HPP_USE_REFLECT )
51405 #if 14 <= VULKAN_HPP_CPP_VERSION
51406     auto
51407 #else
51408     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL const &>
51409 #endif
reflectVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL51410       reflect() const VULKAN_HPP_NOEXCEPT
51411     {
51412       return std::tie( sType, pNext, type );
51413     }
51414 #endif
51415 
51416 
51417 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51418 auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const & ) const = default;
51419 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL51420     bool operator==( PerformanceConfigurationAcquireInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
51421     {
51422 #if defined( VULKAN_HPP_USE_REFLECT )
51423       return this->reflect() == rhs.reflect();
51424 #else
51425       return ( sType == rhs.sType )
51426           && ( pNext == rhs.pNext )
51427           && ( type == rhs.type );
51428 #endif
51429     }
51430 
operator !=VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL51431     bool operator!=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
51432     {
51433       return !operator==( rhs );
51434     }
51435 #endif
51436 
51437     public:
51438     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
51439     const void * pNext = {};
51440     VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated;
51441 
51442   };
51443 
51444   template <>
51445   struct CppType<StructureType, StructureType::ePerformanceConfigurationAcquireInfoINTEL>
51446   {
51447     using Type = PerformanceConfigurationAcquireInfoINTEL;
51448   };
51449 
51450   struct PerformanceCounterDescriptionKHR
51451   {
51452     using NativeType = VkPerformanceCounterDescriptionKHR;
51453 
51454     static const bool allowDuplicate = false;
51455     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR;
51456 
51457 
51458 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51459 VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & name_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & category_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & description_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
51460     : pNext( pNext_ ), flags( flags_ ), name( name_ ), category( category_ ), description( description_ )
51461     {}
51462 
51463     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51464 
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51465     PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51466       : PerformanceCounterDescriptionKHR( *reinterpret_cast<PerformanceCounterDescriptionKHR const *>( &rhs ) )
51467     {}
51468 
51469 
51470     PerformanceCounterDescriptionKHR & operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51471 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
51472 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51473     PerformanceCounterDescriptionKHR & operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51474     {
51475       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const *>( &rhs );
51476       return *this;
51477     }
51478 
51479 
operator VkPerformanceCounterDescriptionKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51480     operator VkPerformanceCounterDescriptionKHR const &() const VULKAN_HPP_NOEXCEPT
51481     {
51482       return *reinterpret_cast<const VkPerformanceCounterDescriptionKHR*>( this );
51483     }
51484 
operator VkPerformanceCounterDescriptionKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51485     operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT
51486     {
51487       return *reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( this );
51488     }
51489 
51490 #if defined( VULKAN_HPP_USE_REFLECT )
51491 #if 14 <= VULKAN_HPP_CPP_VERSION
51492     auto
51493 #else
51494     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &>
51495 #endif
reflectVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51496       reflect() const VULKAN_HPP_NOEXCEPT
51497     {
51498       return std::tie( sType, pNext, flags, name, category, description );
51499     }
51500 #endif
51501 
51502 
51503 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51504 auto operator<=>( PerformanceCounterDescriptionKHR const & ) const = default;
51505 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51506     bool operator==( PerformanceCounterDescriptionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
51507     {
51508 #if defined( VULKAN_HPP_USE_REFLECT )
51509       return this->reflect() == rhs.reflect();
51510 #else
51511       return ( sType == rhs.sType )
51512           && ( pNext == rhs.pNext )
51513           && ( flags == rhs.flags )
51514           && ( name == rhs.name )
51515           && ( category == rhs.category )
51516           && ( description == rhs.description );
51517 #endif
51518     }
51519 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR51520     bool operator!=( PerformanceCounterDescriptionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
51521     {
51522       return !operator==( rhs );
51523     }
51524 #endif
51525 
51526     public:
51527     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR;
51528     void * pNext = {};
51529     VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {};
51530     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
51531     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> category = {};
51532     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
51533 
51534   };
51535 
51536   template <>
51537   struct CppType<StructureType, StructureType::ePerformanceCounterDescriptionKHR>
51538   {
51539     using Type = PerformanceCounterDescriptionKHR;
51540   };
51541 
51542   struct PerformanceCounterKHR
51543   {
51544     using NativeType = VkPerformanceCounterKHR;
51545 
51546     static const bool allowDuplicate = false;
51547     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR;
51548 
51549 
51550 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR51551 VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit_ = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric, VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope_ = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer, VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage_ = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32, std::array<uint8_t,VK_UUID_SIZE> const & uuid_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
51552     : pNext( pNext_ ), unit( unit_ ), scope( scope_ ), storage( storage_ ), uuid( uuid_ )
51553     {}
51554 
51555     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51556 
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR51557     PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51558       : PerformanceCounterKHR( *reinterpret_cast<PerformanceCounterKHR const *>( &rhs ) )
51559     {}
51560 
51561 
51562     PerformanceCounterKHR & operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51563 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
51564 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterKHR51565     PerformanceCounterKHR & operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51566     {
51567       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const *>( &rhs );
51568       return *this;
51569     }
51570 
51571 
operator VkPerformanceCounterKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR51572     operator VkPerformanceCounterKHR const &() const VULKAN_HPP_NOEXCEPT
51573     {
51574       return *reinterpret_cast<const VkPerformanceCounterKHR*>( this );
51575     }
51576 
operator VkPerformanceCounterKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR51577     operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT
51578     {
51579       return *reinterpret_cast<VkPerformanceCounterKHR*>( this );
51580     }
51581 
51582 #if defined( VULKAN_HPP_USE_REFLECT )
51583 #if 14 <= VULKAN_HPP_CPP_VERSION
51584     auto
51585 #else
51586     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR const &, VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR const &, VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
51587 #endif
reflectVULKAN_HPP_NAMESPACE::PerformanceCounterKHR51588       reflect() const VULKAN_HPP_NOEXCEPT
51589     {
51590       return std::tie( sType, pNext, unit, scope, storage, uuid );
51591     }
51592 #endif
51593 
51594 
51595 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51596 auto operator<=>( PerformanceCounterKHR const & ) const = default;
51597 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterKHR51598     bool operator==( PerformanceCounterKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
51599     {
51600 #if defined( VULKAN_HPP_USE_REFLECT )
51601       return this->reflect() == rhs.reflect();
51602 #else
51603       return ( sType == rhs.sType )
51604           && ( pNext == rhs.pNext )
51605           && ( unit == rhs.unit )
51606           && ( scope == rhs.scope )
51607           && ( storage == rhs.storage )
51608           && ( uuid == rhs.uuid );
51609 #endif
51610     }
51611 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterKHR51612     bool operator!=( PerformanceCounterKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
51613     {
51614       return !operator==( rhs );
51615     }
51616 #endif
51617 
51618     public:
51619     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR;
51620     void * pNext = {};
51621     VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric;
51622     VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer;
51623     VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32;
51624     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> uuid = {};
51625 
51626   };
51627 
51628   template <>
51629   struct CppType<StructureType, StructureType::ePerformanceCounterKHR>
51630   {
51631     using Type = PerformanceCounterKHR;
51632   };
51633 
51634   union PerformanceCounterResultKHR
51635   {
51636     using NativeType = VkPerformanceCounterResultKHR;
51637 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
51638 
PerformanceCounterResultKHR(int32_t int32_={} )51639     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( int32_t int32_ = {} )
51640       : int32( int32_ )
51641     {}
51642 
PerformanceCounterResultKHR(int64_t int64_)51643     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( int64_t int64_ )
51644       : int64( int64_ )
51645     {}
51646 
PerformanceCounterResultKHR(uint32_t uint32_)51647     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( uint32_t uint32_ )
51648       : uint32( uint32_ )
51649     {}
51650 
PerformanceCounterResultKHR(uint64_t uint64_)51651     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( uint64_t uint64_ )
51652       : uint64( uint64_ )
51653     {}
51654 
PerformanceCounterResultKHR(float float32_)51655     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( float float32_ )
51656       : float32( float32_ )
51657     {}
51658 
PerformanceCounterResultKHR(double float64_)51659     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( double float64_ )
51660       : float64( float64_ )
51661     {}
51662 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
51663 
51664 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setInt32(int32_t int32_)51665     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT
51666     {
51667       int32 = int32_;
51668       return *this;
51669     }
51670 
setInt64(int64_t int64_)51671     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT
51672     {
51673       int64 = int64_;
51674       return *this;
51675     }
51676 
setUint32(uint32_t uint32_)51677     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT
51678     {
51679       uint32 = uint32_;
51680       return *this;
51681     }
51682 
setUint64(uint64_t uint64_)51683     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT
51684     {
51685       uint64 = uint64_;
51686       return *this;
51687     }
51688 
setFloat32(float float32_)51689     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT
51690     {
51691       float32 = float32_;
51692       return *this;
51693     }
51694 
setFloat64(double float64_)51695     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT
51696     {
51697       float64 = float64_;
51698       return *this;
51699     }
51700 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
51701 
operator VkPerformanceCounterResultKHR const&() const51702     operator VkPerformanceCounterResultKHR const &() const
51703     {
51704       return *reinterpret_cast<const VkPerformanceCounterResultKHR*>( this );
51705     }
51706 
operator VkPerformanceCounterResultKHR&()51707     operator VkPerformanceCounterResultKHR &()
51708     {
51709       return *reinterpret_cast<VkPerformanceCounterResultKHR*>( this );
51710     }
51711 
51712     int32_t int32;
51713     int64_t int64;
51714     uint32_t uint32;
51715     uint64_t uint64;
51716     float float32;
51717     double float64;
51718 
51719   };
51720 
51721   struct PerformanceMarkerInfoINTEL
51722   {
51723     using NativeType = VkPerformanceMarkerInfoINTEL;
51724 
51725     static const bool allowDuplicate = false;
51726     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL;
51727 
51728 
51729 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL51730 VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL(uint64_t marker_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
51731     : pNext( pNext_ ), marker( marker_ )
51732     {}
51733 
51734     VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51735 
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL51736     PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
51737       : PerformanceMarkerInfoINTEL( *reinterpret_cast<PerformanceMarkerInfoINTEL const *>( &rhs ) )
51738     {}
51739 
51740 
51741     PerformanceMarkerInfoINTEL & operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51742 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
51743 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL51744     PerformanceMarkerInfoINTEL & operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
51745     {
51746       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const *>( &rhs );
51747       return *this;
51748     }
51749 
51750 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL51751     VULKAN_HPP_CONSTEXPR_14 PerformanceMarkerInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
51752     {
51753       pNext = pNext_;
51754       return *this;
51755     }
51756 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL51757     VULKAN_HPP_CONSTEXPR_14 PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT
51758     {
51759       marker = marker_;
51760       return *this;
51761     }
51762 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
51763 
51764 
operator VkPerformanceMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL51765     operator VkPerformanceMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
51766     {
51767       return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( this );
51768     }
51769 
operator VkPerformanceMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL51770     operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
51771     {
51772       return *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>( this );
51773     }
51774 
51775 #if defined( VULKAN_HPP_USE_REFLECT )
51776 #if 14 <= VULKAN_HPP_CPP_VERSION
51777     auto
51778 #else
51779     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
51780 #endif
reflectVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL51781       reflect() const VULKAN_HPP_NOEXCEPT
51782     {
51783       return std::tie( sType, pNext, marker );
51784     }
51785 #endif
51786 
51787 
51788 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51789 auto operator<=>( PerformanceMarkerInfoINTEL const & ) const = default;
51790 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL51791     bool operator==( PerformanceMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
51792     {
51793 #if defined( VULKAN_HPP_USE_REFLECT )
51794       return this->reflect() == rhs.reflect();
51795 #else
51796       return ( sType == rhs.sType )
51797           && ( pNext == rhs.pNext )
51798           && ( marker == rhs.marker );
51799 #endif
51800     }
51801 
operator !=VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL51802     bool operator!=( PerformanceMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
51803     {
51804       return !operator==( rhs );
51805     }
51806 #endif
51807 
51808     public:
51809     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL;
51810     const void * pNext = {};
51811     uint64_t marker = {};
51812 
51813   };
51814 
51815   template <>
51816   struct CppType<StructureType, StructureType::ePerformanceMarkerInfoINTEL>
51817   {
51818     using Type = PerformanceMarkerInfoINTEL;
51819   };
51820 
51821   struct PerformanceOverrideInfoINTEL
51822   {
51823     using NativeType = VkPerformanceOverrideInfoINTEL;
51824 
51825     static const bool allowDuplicate = false;
51826     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL;
51827 
51828 
51829 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51830 VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware, VULKAN_HPP_NAMESPACE::Bool32 enable_ = {}, uint64_t parameter_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
51831     : pNext( pNext_ ), type( type_ ), enable( enable_ ), parameter( parameter_ )
51832     {}
51833 
51834     VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51835 
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51836     PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
51837       : PerformanceOverrideInfoINTEL( *reinterpret_cast<PerformanceOverrideInfoINTEL const *>( &rhs ) )
51838     {}
51839 
51840 
51841     PerformanceOverrideInfoINTEL & operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51842 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
51843 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51844     PerformanceOverrideInfoINTEL & operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
51845     {
51846       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const *>( &rhs );
51847       return *this;
51848     }
51849 
51850 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51851     VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
51852     {
51853       pNext = pNext_;
51854       return *this;
51855     }
51856 
setTypeVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51857     VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
51858     {
51859       type = type_;
51860       return *this;
51861     }
51862 
setEnableVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51863     VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT
51864     {
51865       enable = enable_;
51866       return *this;
51867     }
51868 
setParameterVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51869     VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT
51870     {
51871       parameter = parameter_;
51872       return *this;
51873     }
51874 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
51875 
51876 
operator VkPerformanceOverrideInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51877     operator VkPerformanceOverrideInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
51878     {
51879       return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( this );
51880     }
51881 
operator VkPerformanceOverrideInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51882     operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT
51883     {
51884       return *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>( this );
51885     }
51886 
51887 #if defined( VULKAN_HPP_USE_REFLECT )
51888 #if 14 <= VULKAN_HPP_CPP_VERSION
51889     auto
51890 #else
51891     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint64_t const &>
51892 #endif
reflectVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51893       reflect() const VULKAN_HPP_NOEXCEPT
51894     {
51895       return std::tie( sType, pNext, type, enable, parameter );
51896     }
51897 #endif
51898 
51899 
51900 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51901 auto operator<=>( PerformanceOverrideInfoINTEL const & ) const = default;
51902 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51903     bool operator==( PerformanceOverrideInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
51904     {
51905 #if defined( VULKAN_HPP_USE_REFLECT )
51906       return this->reflect() == rhs.reflect();
51907 #else
51908       return ( sType == rhs.sType )
51909           && ( pNext == rhs.pNext )
51910           && ( type == rhs.type )
51911           && ( enable == rhs.enable )
51912           && ( parameter == rhs.parameter );
51913 #endif
51914     }
51915 
operator !=VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL51916     bool operator!=( PerformanceOverrideInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
51917     {
51918       return !operator==( rhs );
51919     }
51920 #endif
51921 
51922     public:
51923     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL;
51924     const void * pNext = {};
51925     VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware;
51926     VULKAN_HPP_NAMESPACE::Bool32 enable = {};
51927     uint64_t parameter = {};
51928 
51929   };
51930 
51931   template <>
51932   struct CppType<StructureType, StructureType::ePerformanceOverrideInfoINTEL>
51933   {
51934     using Type = PerformanceOverrideInfoINTEL;
51935   };
51936 
51937   struct PerformanceQuerySubmitInfoKHR
51938   {
51939     using NativeType = VkPerformanceQuerySubmitInfoKHR;
51940 
51941     static const bool allowDuplicate = false;
51942     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR;
51943 
51944 
51945 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR51946 VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR(uint32_t counterPassIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
51947     : pNext( pNext_ ), counterPassIndex( counterPassIndex_ )
51948     {}
51949 
51950     VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51951 
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR51952     PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51953       : PerformanceQuerySubmitInfoKHR( *reinterpret_cast<PerformanceQuerySubmitInfoKHR const *>( &rhs ) )
51954     {}
51955 
51956 
51957     PerformanceQuerySubmitInfoKHR & operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51958 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
51959 
operator =VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR51960     PerformanceQuerySubmitInfoKHR & operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51961     {
51962       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const *>( &rhs );
51963       return *this;
51964     }
51965 
51966 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR51967     VULKAN_HPP_CONSTEXPR_14 PerformanceQuerySubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
51968     {
51969       pNext = pNext_;
51970       return *this;
51971     }
51972 
setCounterPassIndexVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR51973     VULKAN_HPP_CONSTEXPR_14 PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT
51974     {
51975       counterPassIndex = counterPassIndex_;
51976       return *this;
51977     }
51978 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
51979 
51980 
operator VkPerformanceQuerySubmitInfoKHR const&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR51981     operator VkPerformanceQuerySubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
51982     {
51983       return *reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>( this );
51984     }
51985 
operator VkPerformanceQuerySubmitInfoKHR&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR51986     operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
51987     {
51988       return *reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>( this );
51989     }
51990 
51991 #if defined( VULKAN_HPP_USE_REFLECT )
51992 #if 14 <= VULKAN_HPP_CPP_VERSION
51993     auto
51994 #else
51995     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
51996 #endif
reflectVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR51997       reflect() const VULKAN_HPP_NOEXCEPT
51998     {
51999       return std::tie( sType, pNext, counterPassIndex );
52000     }
52001 #endif
52002 
52003 
52004 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52005 auto operator<=>( PerformanceQuerySubmitInfoKHR const & ) const = default;
52006 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR52007     bool operator==( PerformanceQuerySubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
52008     {
52009 #if defined( VULKAN_HPP_USE_REFLECT )
52010       return this->reflect() == rhs.reflect();
52011 #else
52012       return ( sType == rhs.sType )
52013           && ( pNext == rhs.pNext )
52014           && ( counterPassIndex == rhs.counterPassIndex );
52015 #endif
52016     }
52017 
operator !=VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR52018     bool operator!=( PerformanceQuerySubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
52019     {
52020       return !operator==( rhs );
52021     }
52022 #endif
52023 
52024     public:
52025     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR;
52026     const void * pNext = {};
52027     uint32_t counterPassIndex = {};
52028 
52029   };
52030 
52031   template <>
52032   struct CppType<StructureType, StructureType::ePerformanceQuerySubmitInfoKHR>
52033   {
52034     using Type = PerformanceQuerySubmitInfoKHR;
52035   };
52036 
52037   struct PerformanceStreamMarkerInfoINTEL
52038   {
52039     using NativeType = VkPerformanceStreamMarkerInfoINTEL;
52040 
52041     static const bool allowDuplicate = false;
52042     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL;
52043 
52044 
52045 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL52046 VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL(uint32_t marker_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
52047     : pNext( pNext_ ), marker( marker_ )
52048     {}
52049 
52050     VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52051 
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL52052     PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
52053       : PerformanceStreamMarkerInfoINTEL( *reinterpret_cast<PerformanceStreamMarkerInfoINTEL const *>( &rhs ) )
52054     {}
52055 
52056 
52057     PerformanceStreamMarkerInfoINTEL & operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52058 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
52059 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL52060     PerformanceStreamMarkerInfoINTEL & operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
52061     {
52062       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const *>( &rhs );
52063       return *this;
52064     }
52065 
52066 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL52067     VULKAN_HPP_CONSTEXPR_14 PerformanceStreamMarkerInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
52068     {
52069       pNext = pNext_;
52070       return *this;
52071     }
52072 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL52073     VULKAN_HPP_CONSTEXPR_14 PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT
52074     {
52075       marker = marker_;
52076       return *this;
52077     }
52078 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
52079 
52080 
operator VkPerformanceStreamMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL52081     operator VkPerformanceStreamMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
52082     {
52083       return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( this );
52084     }
52085 
operator VkPerformanceStreamMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL52086     operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
52087     {
52088       return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>( this );
52089     }
52090 
52091 #if defined( VULKAN_HPP_USE_REFLECT )
52092 #if 14 <= VULKAN_HPP_CPP_VERSION
52093     auto
52094 #else
52095     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
52096 #endif
reflectVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL52097       reflect() const VULKAN_HPP_NOEXCEPT
52098     {
52099       return std::tie( sType, pNext, marker );
52100     }
52101 #endif
52102 
52103 
52104 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52105 auto operator<=>( PerformanceStreamMarkerInfoINTEL const & ) const = default;
52106 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL52107     bool operator==( PerformanceStreamMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
52108     {
52109 #if defined( VULKAN_HPP_USE_REFLECT )
52110       return this->reflect() == rhs.reflect();
52111 #else
52112       return ( sType == rhs.sType )
52113           && ( pNext == rhs.pNext )
52114           && ( marker == rhs.marker );
52115 #endif
52116     }
52117 
operator !=VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL52118     bool operator!=( PerformanceStreamMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
52119     {
52120       return !operator==( rhs );
52121     }
52122 #endif
52123 
52124     public:
52125     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL;
52126     const void * pNext = {};
52127     uint32_t marker = {};
52128 
52129   };
52130 
52131   template <>
52132   struct CppType<StructureType, StructureType::ePerformanceStreamMarkerInfoINTEL>
52133   {
52134     using Type = PerformanceStreamMarkerInfoINTEL;
52135   };
52136 
52137   union PerformanceValueDataINTEL
52138   {
52139     using NativeType = VkPerformanceValueDataINTEL;
52140 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
52141 
PerformanceValueDataINTEL(uint32_t value32_={} )52142     VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( uint32_t value32_ = {} )
52143       : value32( value32_ )
52144     {}
52145 
PerformanceValueDataINTEL(uint64_t value64_)52146     VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( uint64_t value64_ )
52147       : value64( value64_ )
52148     {}
52149 
PerformanceValueDataINTEL(float valueFloat_)52150     VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( float valueFloat_ )
52151       : valueFloat( valueFloat_ )
52152     {}
52153 
PerformanceValueDataINTEL(const char * valueString_)52154     VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( const char * valueString_ )
52155       : valueString( valueString_ )
52156     {}
52157 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
52158 
52159 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setValue32(uint32_t value32_)52160     VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT
52161     {
52162       value32 = value32_;
52163       return *this;
52164     }
52165 
setValue64(uint64_t value64_)52166     VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT
52167     {
52168       value64 = value64_;
52169       return *this;
52170     }
52171 
setValueFloat(float valueFloat_)52172     VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT
52173     {
52174       valueFloat = valueFloat_;
52175       return *this;
52176     }
52177 
setValueBool(VULKAN_HPP_NAMESPACE::Bool32 valueBool_)52178     VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT
52179     {
52180       valueBool = valueBool_;
52181       return *this;
52182     }
52183 
setValueString(const char * valueString_)52184     VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValueString( const char * valueString_ ) VULKAN_HPP_NOEXCEPT
52185     {
52186       valueString = valueString_;
52187       return *this;
52188     }
52189 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
52190 
operator VkPerformanceValueDataINTEL const&() const52191     operator VkPerformanceValueDataINTEL const &() const
52192     {
52193       return *reinterpret_cast<const VkPerformanceValueDataINTEL*>( this );
52194     }
52195 
operator VkPerformanceValueDataINTEL&()52196     operator VkPerformanceValueDataINTEL &()
52197     {
52198       return *reinterpret_cast<VkPerformanceValueDataINTEL*>( this );
52199     }
52200 
52201 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
52202     uint32_t value32;
52203     uint64_t value64;
52204     float valueFloat;
52205     VULKAN_HPP_NAMESPACE::Bool32 valueBool;
52206     const char * valueString;
52207 #else
52208     uint32_t value32;
52209     uint64_t value64;
52210     float valueFloat;
52211     VkBool32 valueBool;
52212     const char * valueString;
52213 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
52214 
52215   };
52216 
52217   struct PerformanceValueINTEL
52218   {
52219     using NativeType = VkPerformanceValueINTEL;
52220 
52221 
52222 
52223 
52224 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL52225 VULKAN_HPP_CONSTEXPR_14 PerformanceValueINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32, VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {}) VULKAN_HPP_NOEXCEPT
52226     : type( type_ ), data( data_ )
52227     {}
52228 
52229     VULKAN_HPP_CONSTEXPR_14 PerformanceValueINTEL( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52230 
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL52231     PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
52232       : PerformanceValueINTEL( *reinterpret_cast<PerformanceValueINTEL const *>( &rhs ) )
52233     {}
52234 
52235 
52236     PerformanceValueINTEL & operator=( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52237 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
52238 
operator =VULKAN_HPP_NAMESPACE::PerformanceValueINTEL52239     PerformanceValueINTEL & operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
52240     {
52241       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL const *>( &rhs );
52242       return *this;
52243     }
52244 
52245 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setTypeVULKAN_HPP_NAMESPACE::PerformanceValueINTEL52246     VULKAN_HPP_CONSTEXPR_14 PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
52247     {
52248       type = type_;
52249       return *this;
52250     }
52251 
setDataVULKAN_HPP_NAMESPACE::PerformanceValueINTEL52252     VULKAN_HPP_CONSTEXPR_14 PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT
52253     {
52254       data = data_;
52255       return *this;
52256     }
52257 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
52258 
52259 
operator VkPerformanceValueINTEL const&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL52260     operator VkPerformanceValueINTEL const &() const VULKAN_HPP_NOEXCEPT
52261     {
52262       return *reinterpret_cast<const VkPerformanceValueINTEL*>( this );
52263     }
52264 
operator VkPerformanceValueINTEL&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL52265     operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT
52266     {
52267       return *reinterpret_cast<VkPerformanceValueINTEL*>( this );
52268     }
52269 
52270 #if defined( VULKAN_HPP_USE_REFLECT )
52271 #if 14 <= VULKAN_HPP_CPP_VERSION
52272     auto
52273 #else
52274     std::tuple<VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL const &, VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const &>
52275 #endif
reflectVULKAN_HPP_NAMESPACE::PerformanceValueINTEL52276       reflect() const VULKAN_HPP_NOEXCEPT
52277     {
52278       return std::tie( type, data );
52279     }
52280 #endif
52281 
52282 
52283     public:
52284     VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32;
52285     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {};
52286 
52287   };
52288 
52289   struct PhysicalDevice16BitStorageFeatures
52290   {
52291     using NativeType = VkPhysicalDevice16BitStorageFeatures;
52292 
52293     static const bool allowDuplicate = false;
52294     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice16BitStorageFeatures;
52295 
52296 
52297 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52298 VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
52299     : pNext( pNext_ ), storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ )
52300     {}
52301 
52302     VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52303 
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52304     PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
52305       : PhysicalDevice16BitStorageFeatures( *reinterpret_cast<PhysicalDevice16BitStorageFeatures const *>( &rhs ) )
52306     {}
52307 
52308 
52309     PhysicalDevice16BitStorageFeatures & operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52310 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
52311 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52312     PhysicalDevice16BitStorageFeatures & operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
52313     {
52314       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const *>( &rhs );
52315       return *this;
52316     }
52317 
52318 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52319     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
52320     {
52321       pNext = pNext_;
52322       return *this;
52323     }
52324 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52325     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
52326     {
52327       storageBuffer16BitAccess = storageBuffer16BitAccess_;
52328       return *this;
52329     }
52330 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52331     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
52332     {
52333       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
52334       return *this;
52335     }
52336 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52337     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
52338     {
52339       storagePushConstant16 = storagePushConstant16_;
52340       return *this;
52341     }
52342 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52343     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
52344     {
52345       storageInputOutput16 = storageInputOutput16_;
52346       return *this;
52347     }
52348 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
52349 
52350 
operator VkPhysicalDevice16BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52351     operator VkPhysicalDevice16BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
52352     {
52353       return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>( this );
52354     }
52355 
operator VkPhysicalDevice16BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52356     operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
52357     {
52358       return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>( this );
52359     }
52360 
52361 #if defined( VULKAN_HPP_USE_REFLECT )
52362 #if 14 <= VULKAN_HPP_CPP_VERSION
52363     auto
52364 #else
52365     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
52366 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52367       reflect() const VULKAN_HPP_NOEXCEPT
52368     {
52369       return std::tie( sType, pNext, storageBuffer16BitAccess, uniformAndStorageBuffer16BitAccess, storagePushConstant16, storageInputOutput16 );
52370     }
52371 #endif
52372 
52373 
52374 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52375 auto operator<=>( PhysicalDevice16BitStorageFeatures const & ) const = default;
52376 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52377     bool operator==( PhysicalDevice16BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
52378     {
52379 #if defined( VULKAN_HPP_USE_REFLECT )
52380       return this->reflect() == rhs.reflect();
52381 #else
52382       return ( sType == rhs.sType )
52383           && ( pNext == rhs.pNext )
52384           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
52385           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
52386           && ( storagePushConstant16 == rhs.storagePushConstant16 )
52387           && ( storageInputOutput16 == rhs.storageInputOutput16 );
52388 #endif
52389     }
52390 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures52391     bool operator!=( PhysicalDevice16BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
52392     {
52393       return !operator==( rhs );
52394     }
52395 #endif
52396 
52397     public:
52398     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures;
52399     void * pNext = {};
52400     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
52401     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
52402     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
52403     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
52404 
52405   };
52406 
52407   template <>
52408   struct CppType<StructureType, StructureType::ePhysicalDevice16BitStorageFeatures>
52409   {
52410     using Type = PhysicalDevice16BitStorageFeatures;
52411   };
52412   using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
52413 
52414   struct PhysicalDevice4444FormatsFeaturesEXT
52415   {
52416     using NativeType = VkPhysicalDevice4444FormatsFeaturesEXT;
52417 
52418     static const bool allowDuplicate = false;
52419     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
52420 
52421 
52422 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice4444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52423 VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {}, VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
52424     : pNext( pNext_ ), formatA4R4G4B4( formatA4R4G4B4_ ), formatA4B4G4R4( formatA4B4G4R4_ )
52425     {}
52426 
52427     VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52428 
PhysicalDevice4444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52429     PhysicalDevice4444FormatsFeaturesEXT( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52430       : PhysicalDevice4444FormatsFeaturesEXT( *reinterpret_cast<PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs ) )
52431     {}
52432 
52433 
52434     PhysicalDevice4444FormatsFeaturesEXT & operator=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52435 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
52436 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52437     PhysicalDevice4444FormatsFeaturesEXT & operator=( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52438     {
52439       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs );
52440       return *this;
52441     }
52442 
52443 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52444     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
52445     {
52446       pNext = pNext_;
52447       return *this;
52448     }
52449 
setFormatA4R4G4B4VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52450     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & setFormatA4R4G4B4( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ ) VULKAN_HPP_NOEXCEPT
52451     {
52452       formatA4R4G4B4 = formatA4R4G4B4_;
52453       return *this;
52454     }
52455 
setFormatA4B4G4R4VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52456     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & setFormatA4B4G4R4( VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ ) VULKAN_HPP_NOEXCEPT
52457     {
52458       formatA4B4G4R4 = formatA4B4G4R4_;
52459       return *this;
52460     }
52461 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
52462 
52463 
operator VkPhysicalDevice4444FormatsFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52464     operator VkPhysicalDevice4444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
52465     {
52466       return *reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>( this );
52467     }
52468 
operator VkPhysicalDevice4444FormatsFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52469     operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
52470     {
52471       return *reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>( this );
52472     }
52473 
52474 #if defined( VULKAN_HPP_USE_REFLECT )
52475 #if 14 <= VULKAN_HPP_CPP_VERSION
52476     auto
52477 #else
52478     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
52479 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52480       reflect() const VULKAN_HPP_NOEXCEPT
52481     {
52482       return std::tie( sType, pNext, formatA4R4G4B4, formatA4B4G4R4 );
52483     }
52484 #endif
52485 
52486 
52487 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52488 auto operator<=>( PhysicalDevice4444FormatsFeaturesEXT const & ) const = default;
52489 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52490     bool operator==( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
52491     {
52492 #if defined( VULKAN_HPP_USE_REFLECT )
52493       return this->reflect() == rhs.reflect();
52494 #else
52495       return ( sType == rhs.sType )
52496           && ( pNext == rhs.pNext )
52497           && ( formatA4R4G4B4 == rhs.formatA4R4G4B4 )
52498           && ( formatA4B4G4R4 == rhs.formatA4B4G4R4 );
52499 #endif
52500     }
52501 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT52502     bool operator!=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
52503     {
52504       return !operator==( rhs );
52505     }
52506 #endif
52507 
52508     public:
52509     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
52510     void * pNext = {};
52511     VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4 = {};
52512     VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4 = {};
52513 
52514   };
52515 
52516   template <>
52517   struct CppType<StructureType, StructureType::ePhysicalDevice4444FormatsFeaturesEXT>
52518   {
52519     using Type = PhysicalDevice4444FormatsFeaturesEXT;
52520   };
52521 
52522   struct PhysicalDevice8BitStorageFeatures
52523   {
52524     using NativeType = VkPhysicalDevice8BitStorageFeatures;
52525 
52526     static const bool allowDuplicate = false;
52527     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice8BitStorageFeatures;
52528 
52529 
52530 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52531 VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
52532     : pNext( pNext_ ), storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ )
52533     {}
52534 
52535     VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52536 
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52537     PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
52538       : PhysicalDevice8BitStorageFeatures( *reinterpret_cast<PhysicalDevice8BitStorageFeatures const *>( &rhs ) )
52539     {}
52540 
52541 
52542     PhysicalDevice8BitStorageFeatures & operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52543 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
52544 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52545     PhysicalDevice8BitStorageFeatures & operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
52546     {
52547       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const *>( &rhs );
52548       return *this;
52549     }
52550 
52551 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52552     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
52553     {
52554       pNext = pNext_;
52555       return *this;
52556     }
52557 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52558     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
52559     {
52560       storageBuffer8BitAccess = storageBuffer8BitAccess_;
52561       return *this;
52562     }
52563 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52564     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
52565     {
52566       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
52567       return *this;
52568     }
52569 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52570     VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
52571     {
52572       storagePushConstant8 = storagePushConstant8_;
52573       return *this;
52574     }
52575 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
52576 
52577 
operator VkPhysicalDevice8BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52578     operator VkPhysicalDevice8BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
52579     {
52580       return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>( this );
52581     }
52582 
operator VkPhysicalDevice8BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52583     operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
52584     {
52585       return *reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>( this );
52586     }
52587 
52588 #if defined( VULKAN_HPP_USE_REFLECT )
52589 #if 14 <= VULKAN_HPP_CPP_VERSION
52590     auto
52591 #else
52592     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
52593 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52594       reflect() const VULKAN_HPP_NOEXCEPT
52595     {
52596       return std::tie( sType, pNext, storageBuffer8BitAccess, uniformAndStorageBuffer8BitAccess, storagePushConstant8 );
52597     }
52598 #endif
52599 
52600 
52601 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52602 auto operator<=>( PhysicalDevice8BitStorageFeatures const & ) const = default;
52603 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52604     bool operator==( PhysicalDevice8BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
52605     {
52606 #if defined( VULKAN_HPP_USE_REFLECT )
52607       return this->reflect() == rhs.reflect();
52608 #else
52609       return ( sType == rhs.sType )
52610           && ( pNext == rhs.pNext )
52611           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
52612           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
52613           && ( storagePushConstant8 == rhs.storagePushConstant8 );
52614 #endif
52615     }
52616 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures52617     bool operator!=( PhysicalDevice8BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
52618     {
52619       return !operator==( rhs );
52620     }
52621 #endif
52622 
52623     public:
52624     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures;
52625     void * pNext = {};
52626     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
52627     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
52628     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
52629 
52630   };
52631 
52632   template <>
52633   struct CppType<StructureType, StructureType::ePhysicalDevice8BitStorageFeatures>
52634   {
52635     using Type = PhysicalDevice8BitStorageFeatures;
52636   };
52637   using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
52638 
52639   struct PhysicalDeviceASTCDecodeFeaturesEXT
52640   {
52641     using NativeType = VkPhysicalDeviceASTCDecodeFeaturesEXT;
52642 
52643     static const bool allowDuplicate = false;
52644     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
52645 
52646 
52647 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT52648 VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
52649     : pNext( pNext_ ), decodeModeSharedExponent( decodeModeSharedExponent_ )
52650     {}
52651 
52652     VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52653 
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT52654     PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52655       : PhysicalDeviceASTCDecodeFeaturesEXT( *reinterpret_cast<PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs ) )
52656     {}
52657 
52658 
52659     PhysicalDeviceASTCDecodeFeaturesEXT & operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52660 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
52661 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT52662     PhysicalDeviceASTCDecodeFeaturesEXT & operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52663     {
52664       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs );
52665       return *this;
52666     }
52667 
52668 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT52669     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
52670     {
52671       pNext = pNext_;
52672       return *this;
52673     }
52674 
setDecodeModeSharedExponentVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT52675     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT
52676     {
52677       decodeModeSharedExponent = decodeModeSharedExponent_;
52678       return *this;
52679     }
52680 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
52681 
52682 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT52683     operator VkPhysicalDeviceASTCDecodeFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
52684     {
52685       return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
52686     }
52687 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT52688     operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
52689     {
52690       return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
52691     }
52692 
52693 #if defined( VULKAN_HPP_USE_REFLECT )
52694 #if 14 <= VULKAN_HPP_CPP_VERSION
52695     auto
52696 #else
52697     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
52698 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT52699       reflect() const VULKAN_HPP_NOEXCEPT
52700     {
52701       return std::tie( sType, pNext, decodeModeSharedExponent );
52702     }
52703 #endif
52704 
52705 
52706 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52707 auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const & ) const = default;
52708 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT52709     bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
52710     {
52711 #if defined( VULKAN_HPP_USE_REFLECT )
52712       return this->reflect() == rhs.reflect();
52713 #else
52714       return ( sType == rhs.sType )
52715           && ( pNext == rhs.pNext )
52716           && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent );
52717 #endif
52718     }
52719 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT52720     bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
52721     {
52722       return !operator==( rhs );
52723     }
52724 #endif
52725 
52726     public:
52727     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
52728     void * pNext = {};
52729     VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {};
52730 
52731   };
52732 
52733   template <>
52734   struct CppType<StructureType, StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT>
52735   {
52736     using Type = PhysicalDeviceASTCDecodeFeaturesEXT;
52737   };
52738 
52739   struct PhysicalDeviceAccelerationStructureFeaturesKHR
52740   {
52741     using NativeType = VkPhysicalDeviceAccelerationStructureFeaturesKHR;
52742 
52743     static const bool allowDuplicate = false;
52744     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR;
52745 
52746 
52747 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceAccelerationStructureFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52748 VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructureFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
52749     : pNext( pNext_ ), accelerationStructure( accelerationStructure_ ), accelerationStructureCaptureReplay( accelerationStructureCaptureReplay_ ), accelerationStructureIndirectBuild( accelerationStructureIndirectBuild_ ), accelerationStructureHostCommands( accelerationStructureHostCommands_ ), descriptorBindingAccelerationStructureUpdateAfterBind( descriptorBindingAccelerationStructureUpdateAfterBind_ )
52750     {}
52751 
52752     VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructureFeaturesKHR( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52753 
PhysicalDeviceAccelerationStructureFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52754     PhysicalDeviceAccelerationStructureFeaturesKHR( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52755       : PhysicalDeviceAccelerationStructureFeaturesKHR( *reinterpret_cast<PhysicalDeviceAccelerationStructureFeaturesKHR const *>( &rhs ) )
52756     {}
52757 
52758 
52759     PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52760 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
52761 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52762     PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52763     {
52764       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR const *>( &rhs );
52765       return *this;
52766     }
52767 
52768 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52769     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
52770     {
52771       pNext = pNext_;
52772       return *this;
52773     }
52774 
setAccelerationStructureVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52775     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
52776     {
52777       accelerationStructure = accelerationStructure_;
52778       return *this;
52779     }
52780 
setAccelerationStructureCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52781     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
52782     {
52783       accelerationStructureCaptureReplay = accelerationStructureCaptureReplay_;
52784       return *this;
52785     }
52786 
setAccelerationStructureIndirectBuildVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52787     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureIndirectBuild( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ ) VULKAN_HPP_NOEXCEPT
52788     {
52789       accelerationStructureIndirectBuild = accelerationStructureIndirectBuild_;
52790       return *this;
52791     }
52792 
setAccelerationStructureHostCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52793     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureHostCommands( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ ) VULKAN_HPP_NOEXCEPT
52794     {
52795       accelerationStructureHostCommands = accelerationStructureHostCommands_;
52796       return *this;
52797     }
52798 
setDescriptorBindingAccelerationStructureUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52799     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & setDescriptorBindingAccelerationStructureUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
52800     {
52801       descriptorBindingAccelerationStructureUpdateAfterBind = descriptorBindingAccelerationStructureUpdateAfterBind_;
52802       return *this;
52803     }
52804 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
52805 
52806 
operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52807     operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
52808     {
52809       return *reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>( this );
52810     }
52811 
operator VkPhysicalDeviceAccelerationStructureFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52812     operator VkPhysicalDeviceAccelerationStructureFeaturesKHR &() VULKAN_HPP_NOEXCEPT
52813     {
52814       return *reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR*>( this );
52815     }
52816 
52817 #if defined( VULKAN_HPP_USE_REFLECT )
52818 #if 14 <= VULKAN_HPP_CPP_VERSION
52819     auto
52820 #else
52821     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
52822 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52823       reflect() const VULKAN_HPP_NOEXCEPT
52824     {
52825       return std::tie( sType, pNext, accelerationStructure, accelerationStructureCaptureReplay, accelerationStructureIndirectBuild, accelerationStructureHostCommands, descriptorBindingAccelerationStructureUpdateAfterBind );
52826     }
52827 #endif
52828 
52829 
52830 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52831 auto operator<=>( PhysicalDeviceAccelerationStructureFeaturesKHR const & ) const = default;
52832 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52833     bool operator==( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
52834     {
52835 #if defined( VULKAN_HPP_USE_REFLECT )
52836       return this->reflect() == rhs.reflect();
52837 #else
52838       return ( sType == rhs.sType )
52839           && ( pNext == rhs.pNext )
52840           && ( accelerationStructure == rhs.accelerationStructure )
52841           && ( accelerationStructureCaptureReplay == rhs.accelerationStructureCaptureReplay )
52842           && ( accelerationStructureIndirectBuild == rhs.accelerationStructureIndirectBuild )
52843           && ( accelerationStructureHostCommands == rhs.accelerationStructureHostCommands )
52844           && ( descriptorBindingAccelerationStructureUpdateAfterBind == rhs.descriptorBindingAccelerationStructureUpdateAfterBind );
52845 #endif
52846     }
52847 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR52848     bool operator!=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
52849     {
52850       return !operator==( rhs );
52851     }
52852 #endif
52853 
52854     public:
52855     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR;
52856     void * pNext = {};
52857     VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure = {};
52858     VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay = {};
52859     VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild = {};
52860     VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands = {};
52861     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind = {};
52862 
52863   };
52864 
52865   template <>
52866   struct CppType<StructureType, StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR>
52867   {
52868     using Type = PhysicalDeviceAccelerationStructureFeaturesKHR;
52869   };
52870 
52871   struct PhysicalDeviceAccelerationStructurePropertiesKHR
52872   {
52873     using NativeType = VkPhysicalDeviceAccelerationStructurePropertiesKHR;
52874 
52875     static const bool allowDuplicate = false;
52876     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR;
52877 
52878 
52879 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceAccelerationStructurePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR52880 VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR(uint64_t maxGeometryCount_ = {}, uint64_t maxInstanceCount_ = {}, uint64_t maxPrimitiveCount_ = {}, uint32_t maxPerStageDescriptorAccelerationStructures_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ = {}, uint32_t maxDescriptorSetAccelerationStructures_ = {}, uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures_ = {}, uint32_t minAccelerationStructureScratchOffsetAlignment_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
52881     : pNext( pNext_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxPrimitiveCount( maxPrimitiveCount_ ), maxPerStageDescriptorAccelerationStructures( maxPerStageDescriptorAccelerationStructures_ ), maxPerStageDescriptorUpdateAfterBindAccelerationStructures( maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ), maxDescriptorSetUpdateAfterBindAccelerationStructures( maxDescriptorSetUpdateAfterBindAccelerationStructures_ ), minAccelerationStructureScratchOffsetAlignment( minAccelerationStructureScratchOffsetAlignment_ )
52882     {}
52883 
52884     VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52885 
PhysicalDeviceAccelerationStructurePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR52886     PhysicalDeviceAccelerationStructurePropertiesKHR( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52887       : PhysicalDeviceAccelerationStructurePropertiesKHR( *reinterpret_cast<PhysicalDeviceAccelerationStructurePropertiesKHR const *>( &rhs ) )
52888     {}
52889 
52890 
52891     PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52892 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
52893 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR52894     PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52895     {
52896       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR const *>( &rhs );
52897       return *this;
52898     }
52899 
52900 
operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR52901     operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
52902     {
52903       return *reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR*>( this );
52904     }
52905 
operator VkPhysicalDeviceAccelerationStructurePropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR52906     operator VkPhysicalDeviceAccelerationStructurePropertiesKHR &() VULKAN_HPP_NOEXCEPT
52907     {
52908       return *reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR*>( this );
52909     }
52910 
52911 #if defined( VULKAN_HPP_USE_REFLECT )
52912 #if 14 <= VULKAN_HPP_CPP_VERSION
52913     auto
52914 #else
52915     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &, uint64_t const &, uint64_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
52916 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR52917       reflect() const VULKAN_HPP_NOEXCEPT
52918     {
52919       return std::tie( sType, pNext, maxGeometryCount, maxInstanceCount, maxPrimitiveCount, maxPerStageDescriptorAccelerationStructures, maxPerStageDescriptorUpdateAfterBindAccelerationStructures, maxDescriptorSetAccelerationStructures, maxDescriptorSetUpdateAfterBindAccelerationStructures, minAccelerationStructureScratchOffsetAlignment );
52920     }
52921 #endif
52922 
52923 
52924 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52925 auto operator<=>( PhysicalDeviceAccelerationStructurePropertiesKHR const & ) const = default;
52926 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR52927     bool operator==( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
52928     {
52929 #if defined( VULKAN_HPP_USE_REFLECT )
52930       return this->reflect() == rhs.reflect();
52931 #else
52932       return ( sType == rhs.sType )
52933           && ( pNext == rhs.pNext )
52934           && ( maxGeometryCount == rhs.maxGeometryCount )
52935           && ( maxInstanceCount == rhs.maxInstanceCount )
52936           && ( maxPrimitiveCount == rhs.maxPrimitiveCount )
52937           && ( maxPerStageDescriptorAccelerationStructures == rhs.maxPerStageDescriptorAccelerationStructures )
52938           && ( maxPerStageDescriptorUpdateAfterBindAccelerationStructures == rhs.maxPerStageDescriptorUpdateAfterBindAccelerationStructures )
52939           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures )
52940           && ( maxDescriptorSetUpdateAfterBindAccelerationStructures == rhs.maxDescriptorSetUpdateAfterBindAccelerationStructures )
52941           && ( minAccelerationStructureScratchOffsetAlignment == rhs.minAccelerationStructureScratchOffsetAlignment );
52942 #endif
52943     }
52944 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR52945     bool operator!=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
52946     {
52947       return !operator==( rhs );
52948     }
52949 #endif
52950 
52951     public:
52952     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR;
52953     void * pNext = {};
52954     uint64_t maxGeometryCount = {};
52955     uint64_t maxInstanceCount = {};
52956     uint64_t maxPrimitiveCount = {};
52957     uint32_t maxPerStageDescriptorAccelerationStructures = {};
52958     uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures = {};
52959     uint32_t maxDescriptorSetAccelerationStructures = {};
52960     uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures = {};
52961     uint32_t minAccelerationStructureScratchOffsetAlignment = {};
52962 
52963   };
52964 
52965   template <>
52966   struct CppType<StructureType, StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR>
52967   {
52968     using Type = PhysicalDeviceAccelerationStructurePropertiesKHR;
52969   };
52970 
52971   struct PhysicalDeviceAddressBindingReportFeaturesEXT
52972   {
52973     using NativeType = VkPhysicalDeviceAddressBindingReportFeaturesEXT;
52974 
52975     static const bool allowDuplicate = false;
52976     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAddressBindingReportFeaturesEXT;
52977 
52978 
52979 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceAddressBindingReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT52980 VULKAN_HPP_CONSTEXPR PhysicalDeviceAddressBindingReportFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 reportAddressBinding_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
52981     : pNext( pNext_ ), reportAddressBinding( reportAddressBinding_ )
52982     {}
52983 
52984     VULKAN_HPP_CONSTEXPR PhysicalDeviceAddressBindingReportFeaturesEXT( PhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52985 
PhysicalDeviceAddressBindingReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT52986     PhysicalDeviceAddressBindingReportFeaturesEXT( VkPhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52987       : PhysicalDeviceAddressBindingReportFeaturesEXT( *reinterpret_cast<PhysicalDeviceAddressBindingReportFeaturesEXT const *>( &rhs ) )
52988     {}
52989 
52990 
52991     PhysicalDeviceAddressBindingReportFeaturesEXT & operator=( PhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52992 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
52993 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT52994     PhysicalDeviceAddressBindingReportFeaturesEXT & operator=( VkPhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52995     {
52996       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT const *>( &rhs );
52997       return *this;
52998     }
52999 
53000 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT53001     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAddressBindingReportFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
53002     {
53003       pNext = pNext_;
53004       return *this;
53005     }
53006 
setReportAddressBindingVULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT53007     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAddressBindingReportFeaturesEXT & setReportAddressBinding( VULKAN_HPP_NAMESPACE::Bool32 reportAddressBinding_ ) VULKAN_HPP_NOEXCEPT
53008     {
53009       reportAddressBinding = reportAddressBinding_;
53010       return *this;
53011     }
53012 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
53013 
53014 
operator VkPhysicalDeviceAddressBindingReportFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT53015     operator VkPhysicalDeviceAddressBindingReportFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
53016     {
53017       return *reinterpret_cast<const VkPhysicalDeviceAddressBindingReportFeaturesEXT*>( this );
53018     }
53019 
operator VkPhysicalDeviceAddressBindingReportFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT53020     operator VkPhysicalDeviceAddressBindingReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
53021     {
53022       return *reinterpret_cast<VkPhysicalDeviceAddressBindingReportFeaturesEXT*>( this );
53023     }
53024 
53025 #if defined( VULKAN_HPP_USE_REFLECT )
53026 #if 14 <= VULKAN_HPP_CPP_VERSION
53027     auto
53028 #else
53029     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
53030 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT53031       reflect() const VULKAN_HPP_NOEXCEPT
53032     {
53033       return std::tie( sType, pNext, reportAddressBinding );
53034     }
53035 #endif
53036 
53037 
53038 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53039 auto operator<=>( PhysicalDeviceAddressBindingReportFeaturesEXT const & ) const = default;
53040 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT53041     bool operator==( PhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53042     {
53043 #if defined( VULKAN_HPP_USE_REFLECT )
53044       return this->reflect() == rhs.reflect();
53045 #else
53046       return ( sType == rhs.sType )
53047           && ( pNext == rhs.pNext )
53048           && ( reportAddressBinding == rhs.reportAddressBinding );
53049 #endif
53050     }
53051 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT53052     bool operator!=( PhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53053     {
53054       return !operator==( rhs );
53055     }
53056 #endif
53057 
53058     public:
53059     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAddressBindingReportFeaturesEXT;
53060     void * pNext = {};
53061     VULKAN_HPP_NAMESPACE::Bool32 reportAddressBinding = {};
53062 
53063   };
53064 
53065   template <>
53066   struct CppType<StructureType, StructureType::ePhysicalDeviceAddressBindingReportFeaturesEXT>
53067   {
53068     using Type = PhysicalDeviceAddressBindingReportFeaturesEXT;
53069   };
53070 
53071   struct PhysicalDeviceAmigoProfilingFeaturesSEC
53072   {
53073     using NativeType = VkPhysicalDeviceAmigoProfilingFeaturesSEC;
53074 
53075     static const bool allowDuplicate = false;
53076     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAmigoProfilingFeaturesSEC;
53077 
53078 
53079 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceAmigoProfilingFeaturesSECVULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC53080 VULKAN_HPP_CONSTEXPR PhysicalDeviceAmigoProfilingFeaturesSEC(VULKAN_HPP_NAMESPACE::Bool32 amigoProfiling_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
53081     : pNext( pNext_ ), amigoProfiling( amigoProfiling_ )
53082     {}
53083 
53084     VULKAN_HPP_CONSTEXPR PhysicalDeviceAmigoProfilingFeaturesSEC( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53085 
PhysicalDeviceAmigoProfilingFeaturesSECVULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC53086     PhysicalDeviceAmigoProfilingFeaturesSEC( VkPhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT
53087       : PhysicalDeviceAmigoProfilingFeaturesSEC( *reinterpret_cast<PhysicalDeviceAmigoProfilingFeaturesSEC const *>( &rhs ) )
53088     {}
53089 
53090 
53091     PhysicalDeviceAmigoProfilingFeaturesSEC & operator=( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53092 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
53093 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC53094     PhysicalDeviceAmigoProfilingFeaturesSEC & operator=( VkPhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT
53095     {
53096       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC const *>( &rhs );
53097       return *this;
53098     }
53099 
53100 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC53101     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAmigoProfilingFeaturesSEC & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
53102     {
53103       pNext = pNext_;
53104       return *this;
53105     }
53106 
setAmigoProfilingVULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC53107     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAmigoProfilingFeaturesSEC & setAmigoProfiling( VULKAN_HPP_NAMESPACE::Bool32 amigoProfiling_ ) VULKAN_HPP_NOEXCEPT
53108     {
53109       amigoProfiling = amigoProfiling_;
53110       return *this;
53111     }
53112 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
53113 
53114 
operator VkPhysicalDeviceAmigoProfilingFeaturesSEC const&VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC53115     operator VkPhysicalDeviceAmigoProfilingFeaturesSEC const &() const VULKAN_HPP_NOEXCEPT
53116     {
53117       return *reinterpret_cast<const VkPhysicalDeviceAmigoProfilingFeaturesSEC*>( this );
53118     }
53119 
operator VkPhysicalDeviceAmigoProfilingFeaturesSEC&VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC53120     operator VkPhysicalDeviceAmigoProfilingFeaturesSEC &() VULKAN_HPP_NOEXCEPT
53121     {
53122       return *reinterpret_cast<VkPhysicalDeviceAmigoProfilingFeaturesSEC*>( this );
53123     }
53124 
53125 #if defined( VULKAN_HPP_USE_REFLECT )
53126 #if 14 <= VULKAN_HPP_CPP_VERSION
53127     auto
53128 #else
53129     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
53130 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC53131       reflect() const VULKAN_HPP_NOEXCEPT
53132     {
53133       return std::tie( sType, pNext, amigoProfiling );
53134     }
53135 #endif
53136 
53137 
53138 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53139 auto operator<=>( PhysicalDeviceAmigoProfilingFeaturesSEC const & ) const = default;
53140 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC53141     bool operator==( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
53142     {
53143 #if defined( VULKAN_HPP_USE_REFLECT )
53144       return this->reflect() == rhs.reflect();
53145 #else
53146       return ( sType == rhs.sType )
53147           && ( pNext == rhs.pNext )
53148           && ( amigoProfiling == rhs.amigoProfiling );
53149 #endif
53150     }
53151 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC53152     bool operator!=( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
53153     {
53154       return !operator==( rhs );
53155     }
53156 #endif
53157 
53158     public:
53159     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAmigoProfilingFeaturesSEC;
53160     void * pNext = {};
53161     VULKAN_HPP_NAMESPACE::Bool32 amigoProfiling = {};
53162 
53163   };
53164 
53165   template <>
53166   struct CppType<StructureType, StructureType::ePhysicalDeviceAmigoProfilingFeaturesSEC>
53167   {
53168     using Type = PhysicalDeviceAmigoProfilingFeaturesSEC;
53169   };
53170 
53171   struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
53172   {
53173     using NativeType = VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
53174 
53175     static const bool allowDuplicate = false;
53176     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
53177 
53178 
53179 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT53180 VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
53181     : pNext( pNext_ ), attachmentFeedbackLoopDynamicState( attachmentFeedbackLoopDynamicState_ )
53182     {}
53183 
53184     VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53185 
PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT53186     PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53187       : PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( *reinterpret_cast<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const *>( &rhs ) )
53188     {}
53189 
53190 
53191     PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT & operator=( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53192 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
53193 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT53194     PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53195     {
53196       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const *>( &rhs );
53197       return *this;
53198     }
53199 
53200 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT53201     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
53202     {
53203       pNext = pNext_;
53204       return *this;
53205     }
53206 
setAttachmentFeedbackLoopDynamicStateVULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT53207     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT & setAttachmentFeedbackLoopDynamicState( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState_ ) VULKAN_HPP_NOEXCEPT
53208     {
53209       attachmentFeedbackLoopDynamicState = attachmentFeedbackLoopDynamicState_;
53210       return *this;
53211     }
53212 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
53213 
53214 
operator VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT53215     operator VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
53216     {
53217       return *reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT*>( this );
53218     }
53219 
operator VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT53220     operator VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
53221     {
53222       return *reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT*>( this );
53223     }
53224 
53225 #if defined( VULKAN_HPP_USE_REFLECT )
53226 #if 14 <= VULKAN_HPP_CPP_VERSION
53227     auto
53228 #else
53229     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
53230 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT53231       reflect() const VULKAN_HPP_NOEXCEPT
53232     {
53233       return std::tie( sType, pNext, attachmentFeedbackLoopDynamicState );
53234     }
53235 #endif
53236 
53237 
53238 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53239 auto operator<=>( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & ) const = default;
53240 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT53241     bool operator==( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53242     {
53243 #if defined( VULKAN_HPP_USE_REFLECT )
53244       return this->reflect() == rhs.reflect();
53245 #else
53246       return ( sType == rhs.sType )
53247           && ( pNext == rhs.pNext )
53248           && ( attachmentFeedbackLoopDynamicState == rhs.attachmentFeedbackLoopDynamicState );
53249 #endif
53250     }
53251 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT53252     bool operator!=( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53253     {
53254       return !operator==( rhs );
53255     }
53256 #endif
53257 
53258     public:
53259     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
53260     void * pNext = {};
53261     VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState = {};
53262 
53263   };
53264 
53265   template <>
53266   struct CppType<StructureType, StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>
53267   {
53268     using Type = PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
53269   };
53270 
53271   struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
53272   {
53273     using NativeType = VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
53274 
53275     static const bool allowDuplicate = false;
53276     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
53277 
53278 
53279 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT53280 VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
53281     : pNext( pNext_ ), attachmentFeedbackLoopLayout( attachmentFeedbackLoopLayout_ )
53282     {}
53283 
53284     VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53285 
PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT53286     PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53287       : PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( *reinterpret_cast<PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const *>( &rhs ) )
53288     {}
53289 
53290 
53291     PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT & operator=( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53292 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
53293 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT53294     PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT & operator=( VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53295     {
53296       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const *>( &rhs );
53297       return *this;
53298     }
53299 
53300 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT53301     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
53302     {
53303       pNext = pNext_;
53304       return *this;
53305     }
53306 
setAttachmentFeedbackLoopLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT53307     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT & setAttachmentFeedbackLoopLayout( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout_ ) VULKAN_HPP_NOEXCEPT
53308     {
53309       attachmentFeedbackLoopLayout = attachmentFeedbackLoopLayout_;
53310       return *this;
53311     }
53312 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
53313 
53314 
operator VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT53315     operator VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
53316     {
53317       return *reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT*>( this );
53318     }
53319 
operator VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT53320     operator VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT &() VULKAN_HPP_NOEXCEPT
53321     {
53322       return *reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT*>( this );
53323     }
53324 
53325 #if defined( VULKAN_HPP_USE_REFLECT )
53326 #if 14 <= VULKAN_HPP_CPP_VERSION
53327     auto
53328 #else
53329     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
53330 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT53331       reflect() const VULKAN_HPP_NOEXCEPT
53332     {
53333       return std::tie( sType, pNext, attachmentFeedbackLoopLayout );
53334     }
53335 #endif
53336 
53337 
53338 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53339 auto operator<=>( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & ) const = default;
53340 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT53341     bool operator==( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53342     {
53343 #if defined( VULKAN_HPP_USE_REFLECT )
53344       return this->reflect() == rhs.reflect();
53345 #else
53346       return ( sType == rhs.sType )
53347           && ( pNext == rhs.pNext )
53348           && ( attachmentFeedbackLoopLayout == rhs.attachmentFeedbackLoopLayout );
53349 #endif
53350     }
53351 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT53352     bool operator!=( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53353     {
53354       return !operator==( rhs );
53355     }
53356 #endif
53357 
53358     public:
53359     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
53360     void * pNext = {};
53361     VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout = {};
53362 
53363   };
53364 
53365   template <>
53366   struct CppType<StructureType, StructureType::ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT>
53367   {
53368     using Type = PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
53369   };
53370 
53371   struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
53372   {
53373     using NativeType = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
53374 
53375     static const bool allowDuplicate = false;
53376     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
53377 
53378 
53379 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT53380 VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
53381     : pNext( pNext_ ), advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
53382     {}
53383 
53384     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53385 
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT53386     PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53387       : PhysicalDeviceBlendOperationAdvancedFeaturesEXT( *reinterpret_cast<PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs ) )
53388     {}
53389 
53390 
53391     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53392 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
53393 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT53394     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53395     {
53396       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs );
53397       return *this;
53398     }
53399 
53400 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT53401     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
53402     {
53403       pNext = pNext_;
53404       return *this;
53405     }
53406 
setAdvancedBlendCoherentOperationsVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT53407     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT
53408     {
53409       advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
53410       return *this;
53411     }
53412 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
53413 
53414 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT53415     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
53416     {
53417       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
53418     }
53419 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT53420     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT
53421     {
53422       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
53423     }
53424 
53425 #if defined( VULKAN_HPP_USE_REFLECT )
53426 #if 14 <= VULKAN_HPP_CPP_VERSION
53427     auto
53428 #else
53429     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
53430 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT53431       reflect() const VULKAN_HPP_NOEXCEPT
53432     {
53433       return std::tie( sType, pNext, advancedBlendCoherentOperations );
53434     }
53435 #endif
53436 
53437 
53438 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53439 auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & ) const = default;
53440 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT53441     bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53442     {
53443 #if defined( VULKAN_HPP_USE_REFLECT )
53444       return this->reflect() == rhs.reflect();
53445 #else
53446       return ( sType == rhs.sType )
53447           && ( pNext == rhs.pNext )
53448           && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations );
53449 #endif
53450     }
53451 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT53452     bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53453     {
53454       return !operator==( rhs );
53455     }
53456 #endif
53457 
53458     public:
53459     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
53460     void * pNext = {};
53461     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {};
53462 
53463   };
53464 
53465   template <>
53466   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT>
53467   {
53468     using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
53469   };
53470 
53471   struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT
53472   {
53473     using NativeType = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
53474 
53475     static const bool allowDuplicate = false;
53476     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
53477 
53478 
53479 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT53480 VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT(uint32_t advancedBlendMaxColorAttachments_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
53481     : pNext( pNext_ ), advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ ), advancedBlendIndependentBlend( advancedBlendIndependentBlend_ ), advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ ), advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ ), advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ ), advancedBlendAllOperations( advancedBlendAllOperations_ )
53482     {}
53483 
53484     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53485 
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT53486     PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53487       : PhysicalDeviceBlendOperationAdvancedPropertiesEXT( *reinterpret_cast<PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs ) )
53488     {}
53489 
53490 
53491     PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53492 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
53493 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT53494     PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53495     {
53496       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs );
53497       return *this;
53498     }
53499 
53500 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT53501     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
53502     {
53503       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
53504     }
53505 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT53506     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT
53507     {
53508       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
53509     }
53510 
53511 #if defined( VULKAN_HPP_USE_REFLECT )
53512 #if 14 <= VULKAN_HPP_CPP_VERSION
53513     auto
53514 #else
53515     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
53516 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT53517       reflect() const VULKAN_HPP_NOEXCEPT
53518     {
53519       return std::tie( sType, pNext, advancedBlendMaxColorAttachments, advancedBlendIndependentBlend, advancedBlendNonPremultipliedSrcColor, advancedBlendNonPremultipliedDstColor, advancedBlendCorrelatedOverlap, advancedBlendAllOperations );
53520     }
53521 #endif
53522 
53523 
53524 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53525 auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & ) const = default;
53526 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT53527     bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53528     {
53529 #if defined( VULKAN_HPP_USE_REFLECT )
53530       return this->reflect() == rhs.reflect();
53531 #else
53532       return ( sType == rhs.sType )
53533           && ( pNext == rhs.pNext )
53534           && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments )
53535           && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend )
53536           && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor )
53537           && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor )
53538           && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap )
53539           && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations );
53540 #endif
53541     }
53542 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT53543     bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53544     {
53545       return !operator==( rhs );
53546     }
53547 #endif
53548 
53549     public:
53550     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
53551     void * pNext = {};
53552     uint32_t advancedBlendMaxColorAttachments = {};
53553     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {};
53554     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {};
53555     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {};
53556     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {};
53557     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {};
53558 
53559   };
53560 
53561   template <>
53562   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT>
53563   {
53564     using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
53565   };
53566 
53567   struct PhysicalDeviceBorderColorSwizzleFeaturesEXT
53568   {
53569     using NativeType = VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
53570 
53571     static const bool allowDuplicate = false;
53572     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT;
53573 
53574 
53575 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBorderColorSwizzleFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53576 VULKAN_HPP_CONSTEXPR PhysicalDeviceBorderColorSwizzleFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle_ = {}, VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
53577     : pNext( pNext_ ), borderColorSwizzle( borderColorSwizzle_ ), borderColorSwizzleFromImage( borderColorSwizzleFromImage_ )
53578     {}
53579 
53580     VULKAN_HPP_CONSTEXPR PhysicalDeviceBorderColorSwizzleFeaturesEXT( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53581 
PhysicalDeviceBorderColorSwizzleFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53582     PhysicalDeviceBorderColorSwizzleFeaturesEXT( VkPhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53583       : PhysicalDeviceBorderColorSwizzleFeaturesEXT( *reinterpret_cast<PhysicalDeviceBorderColorSwizzleFeaturesEXT const *>( &rhs ) )
53584     {}
53585 
53586 
53587     PhysicalDeviceBorderColorSwizzleFeaturesEXT & operator=( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53588 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
53589 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53590     PhysicalDeviceBorderColorSwizzleFeaturesEXT & operator=( VkPhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53591     {
53592       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT const *>( &rhs );
53593       return *this;
53594     }
53595 
53596 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53597     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
53598     {
53599       pNext = pNext_;
53600       return *this;
53601     }
53602 
setBorderColorSwizzleVULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53603     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT & setBorderColorSwizzle( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle_ ) VULKAN_HPP_NOEXCEPT
53604     {
53605       borderColorSwizzle = borderColorSwizzle_;
53606       return *this;
53607     }
53608 
setBorderColorSwizzleFromImageVULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53609     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT & setBorderColorSwizzleFromImage( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage_ ) VULKAN_HPP_NOEXCEPT
53610     {
53611       borderColorSwizzleFromImage = borderColorSwizzleFromImage_;
53612       return *this;
53613     }
53614 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
53615 
53616 
operator VkPhysicalDeviceBorderColorSwizzleFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53617     operator VkPhysicalDeviceBorderColorSwizzleFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
53618     {
53619       return *reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>( this );
53620     }
53621 
operator VkPhysicalDeviceBorderColorSwizzleFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53622     operator VkPhysicalDeviceBorderColorSwizzleFeaturesEXT &() VULKAN_HPP_NOEXCEPT
53623     {
53624       return *reinterpret_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>( this );
53625     }
53626 
53627 #if defined( VULKAN_HPP_USE_REFLECT )
53628 #if 14 <= VULKAN_HPP_CPP_VERSION
53629     auto
53630 #else
53631     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
53632 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53633       reflect() const VULKAN_HPP_NOEXCEPT
53634     {
53635       return std::tie( sType, pNext, borderColorSwizzle, borderColorSwizzleFromImage );
53636     }
53637 #endif
53638 
53639 
53640 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53641 auto operator<=>( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & ) const = default;
53642 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53643     bool operator==( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53644     {
53645 #if defined( VULKAN_HPP_USE_REFLECT )
53646       return this->reflect() == rhs.reflect();
53647 #else
53648       return ( sType == rhs.sType )
53649           && ( pNext == rhs.pNext )
53650           && ( borderColorSwizzle == rhs.borderColorSwizzle )
53651           && ( borderColorSwizzleFromImage == rhs.borderColorSwizzleFromImage );
53652 #endif
53653     }
53654 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT53655     bool operator!=( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53656     {
53657       return !operator==( rhs );
53658     }
53659 #endif
53660 
53661     public:
53662     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT;
53663     void * pNext = {};
53664     VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle = {};
53665     VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage = {};
53666 
53667   };
53668 
53669   template <>
53670   struct CppType<StructureType, StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT>
53671   {
53672     using Type = PhysicalDeviceBorderColorSwizzleFeaturesEXT;
53673   };
53674 
53675   struct PhysicalDeviceBufferDeviceAddressFeatures
53676   {
53677     using NativeType = VkPhysicalDeviceBufferDeviceAddressFeatures;
53678 
53679     static const bool allowDuplicate = false;
53680     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
53681 
53682 
53683 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53684 VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
53685     : pNext( pNext_ ), bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
53686     {}
53687 
53688     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53689 
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53690     PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
53691       : PhysicalDeviceBufferDeviceAddressFeatures( *reinterpret_cast<PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs ) )
53692     {}
53693 
53694 
53695     PhysicalDeviceBufferDeviceAddressFeatures & operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53696 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
53697 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53698     PhysicalDeviceBufferDeviceAddressFeatures & operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
53699     {
53700       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs );
53701       return *this;
53702     }
53703 
53704 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53705     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
53706     {
53707       pNext = pNext_;
53708       return *this;
53709     }
53710 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53711     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
53712     {
53713       bufferDeviceAddress = bufferDeviceAddress_;
53714       return *this;
53715     }
53716 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53717     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
53718     {
53719       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
53720       return *this;
53721     }
53722 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53723     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
53724     {
53725       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
53726       return *this;
53727     }
53728 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
53729 
53730 
operator VkPhysicalDeviceBufferDeviceAddressFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53731     operator VkPhysicalDeviceBufferDeviceAddressFeatures const &() const VULKAN_HPP_NOEXCEPT
53732     {
53733       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
53734     }
53735 
operator VkPhysicalDeviceBufferDeviceAddressFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53736     operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT
53737     {
53738       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
53739     }
53740 
53741 #if defined( VULKAN_HPP_USE_REFLECT )
53742 #if 14 <= VULKAN_HPP_CPP_VERSION
53743     auto
53744 #else
53745     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
53746 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53747       reflect() const VULKAN_HPP_NOEXCEPT
53748     {
53749       return std::tie( sType, pNext, bufferDeviceAddress, bufferDeviceAddressCaptureReplay, bufferDeviceAddressMultiDevice );
53750     }
53751 #endif
53752 
53753 
53754 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53755 auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const & ) const = default;
53756 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53757     bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
53758     {
53759 #if defined( VULKAN_HPP_USE_REFLECT )
53760       return this->reflect() == rhs.reflect();
53761 #else
53762       return ( sType == rhs.sType )
53763           && ( pNext == rhs.pNext )
53764           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
53765           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
53766           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
53767 #endif
53768     }
53769 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures53770     bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
53771     {
53772       return !operator==( rhs );
53773     }
53774 #endif
53775 
53776     public:
53777     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
53778     void * pNext = {};
53779     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
53780     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
53781     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
53782 
53783   };
53784 
53785   template <>
53786   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeatures>
53787   {
53788     using Type = PhysicalDeviceBufferDeviceAddressFeatures;
53789   };
53790   using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
53791 
53792   struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
53793   {
53794     using NativeType = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
53795 
53796     static const bool allowDuplicate = false;
53797     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
53798 
53799 
53800 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53801 VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
53802     : pNext( pNext_ ), bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
53803     {}
53804 
53805     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53806 
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53807     PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53808       : PhysicalDeviceBufferDeviceAddressFeaturesEXT( *reinterpret_cast<PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs ) )
53809     {}
53810 
53811 
53812     PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53813 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
53814 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53815     PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
53816     {
53817       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs );
53818       return *this;
53819     }
53820 
53821 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53822     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
53823     {
53824       pNext = pNext_;
53825       return *this;
53826     }
53827 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53828     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
53829     {
53830       bufferDeviceAddress = bufferDeviceAddress_;
53831       return *this;
53832     }
53833 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53834     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
53835     {
53836       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
53837       return *this;
53838     }
53839 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53840     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
53841     {
53842       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
53843       return *this;
53844     }
53845 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
53846 
53847 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53848     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
53849     {
53850       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
53851     }
53852 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53853     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT
53854     {
53855       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
53856     }
53857 
53858 #if defined( VULKAN_HPP_USE_REFLECT )
53859 #if 14 <= VULKAN_HPP_CPP_VERSION
53860     auto
53861 #else
53862     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
53863 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53864       reflect() const VULKAN_HPP_NOEXCEPT
53865     {
53866       return std::tie( sType, pNext, bufferDeviceAddress, bufferDeviceAddressCaptureReplay, bufferDeviceAddressMultiDevice );
53867     }
53868 #endif
53869 
53870 
53871 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53872 auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & ) const = default;
53873 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53874     bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53875     {
53876 #if defined( VULKAN_HPP_USE_REFLECT )
53877       return this->reflect() == rhs.reflect();
53878 #else
53879       return ( sType == rhs.sType )
53880           && ( pNext == rhs.pNext )
53881           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
53882           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
53883           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
53884 #endif
53885     }
53886 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT53887     bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
53888     {
53889       return !operator==( rhs );
53890     }
53891 #endif
53892 
53893     public:
53894     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
53895     void * pNext = {};
53896     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
53897     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
53898     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
53899 
53900   };
53901 
53902   template <>
53903   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT>
53904   {
53905     using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
53906   };
53907   using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
53908 
53909   struct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
53910   {
53911     using NativeType = VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
53912 
53913     static const bool allowDuplicate = false;
53914     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
53915 
53916 
53917 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceClusterCullingShaderFeaturesHUAWEIVULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53918 VULKAN_HPP_CONSTEXPR PhysicalDeviceClusterCullingShaderFeaturesHUAWEI(VULKAN_HPP_NAMESPACE::Bool32 clustercullingShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewClusterCullingShader_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
53919     : pNext( pNext_ ), clustercullingShader( clustercullingShader_ ), multiviewClusterCullingShader( multiviewClusterCullingShader_ )
53920     {}
53921 
53922     VULKAN_HPP_CONSTEXPR PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53923 
PhysicalDeviceClusterCullingShaderFeaturesHUAWEIVULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53924     PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
53925       : PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( *reinterpret_cast<PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const *>( &rhs ) )
53926     {}
53927 
53928 
53929     PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & operator=( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53930 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
53931 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53932     PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & operator=( VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
53933     {
53934       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const *>( &rhs );
53935       return *this;
53936     }
53937 
53938 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53939     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
53940     {
53941       pNext = pNext_;
53942       return *this;
53943     }
53944 
setClustercullingShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53945     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & setClustercullingShader( VULKAN_HPP_NAMESPACE::Bool32 clustercullingShader_ ) VULKAN_HPP_NOEXCEPT
53946     {
53947       clustercullingShader = clustercullingShader_;
53948       return *this;
53949     }
53950 
setMultiviewClusterCullingShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53951     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & setMultiviewClusterCullingShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewClusterCullingShader_ ) VULKAN_HPP_NOEXCEPT
53952     {
53953       multiviewClusterCullingShader = multiviewClusterCullingShader_;
53954       return *this;
53955     }
53956 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
53957 
53958 
operator VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI const&VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53959     operator VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
53960     {
53961       return *reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI*>( this );
53962     }
53963 
operator VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI&VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53964     operator VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
53965     {
53966       return *reinterpret_cast<VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI*>( this );
53967     }
53968 
53969 #if defined( VULKAN_HPP_USE_REFLECT )
53970 #if 14 <= VULKAN_HPP_CPP_VERSION
53971     auto
53972 #else
53973     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
53974 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53975       reflect() const VULKAN_HPP_NOEXCEPT
53976     {
53977       return std::tie( sType, pNext, clustercullingShader, multiviewClusterCullingShader );
53978     }
53979 #endif
53980 
53981 
53982 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53983 auto operator<=>( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & ) const = default;
53984 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53985     bool operator==( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
53986     {
53987 #if defined( VULKAN_HPP_USE_REFLECT )
53988       return this->reflect() == rhs.reflect();
53989 #else
53990       return ( sType == rhs.sType )
53991           && ( pNext == rhs.pNext )
53992           && ( clustercullingShader == rhs.clustercullingShader )
53993           && ( multiviewClusterCullingShader == rhs.multiviewClusterCullingShader );
53994 #endif
53995     }
53996 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI53997     bool operator!=( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
53998     {
53999       return !operator==( rhs );
54000     }
54001 #endif
54002 
54003     public:
54004     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
54005     void * pNext = {};
54006     VULKAN_HPP_NAMESPACE::Bool32 clustercullingShader = {};
54007     VULKAN_HPP_NAMESPACE::Bool32 multiviewClusterCullingShader = {};
54008 
54009   };
54010 
54011   template <>
54012   struct CppType<StructureType, StructureType::ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI>
54013   {
54014     using Type = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
54015   };
54016 
54017   struct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
54018   {
54019     using NativeType = VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
54020 
54021     static const bool allowDuplicate = false;
54022     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
54023 
54024 
54025 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceClusterCullingShaderPropertiesHUAWEIVULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI54026 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderPropertiesHUAWEI(std::array<uint32_t,3> const & maxWorkGroupCount_ = {}, std::array<uint32_t,3> const & maxWorkGroupSize_ = {}, uint32_t maxOutputClusterCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize indirectBufferOffsetAlignment_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
54027     : pNext( pNext_ ), maxWorkGroupCount( maxWorkGroupCount_ ), maxWorkGroupSize( maxWorkGroupSize_ ), maxOutputClusterCount( maxOutputClusterCount_ ), indirectBufferOffsetAlignment( indirectBufferOffsetAlignment_ )
54028     {}
54029 
54030     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54031 
PhysicalDeviceClusterCullingShaderPropertiesHUAWEIVULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI54032     PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
54033       : PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( *reinterpret_cast<PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const *>( &rhs ) )
54034     {}
54035 
54036 
54037     PhysicalDeviceClusterCullingShaderPropertiesHUAWEI & operator=( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54038 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
54039 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI54040     PhysicalDeviceClusterCullingShaderPropertiesHUAWEI & operator=( VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
54041     {
54042       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const *>( &rhs );
54043       return *this;
54044     }
54045 
54046 
operator VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI const&VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI54047     operator VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
54048     {
54049       return *reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI*>( this );
54050     }
54051 
operator VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI&VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI54052     operator VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI &() VULKAN_HPP_NOEXCEPT
54053     {
54054       return *reinterpret_cast<VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI*>( this );
54055     }
54056 
54057 #if defined( VULKAN_HPP_USE_REFLECT )
54058 #if 14 <= VULKAN_HPP_CPP_VERSION
54059     auto
54060 #else
54061     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
54062 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI54063       reflect() const VULKAN_HPP_NOEXCEPT
54064     {
54065       return std::tie( sType, pNext, maxWorkGroupCount, maxWorkGroupSize, maxOutputClusterCount, indirectBufferOffsetAlignment );
54066     }
54067 #endif
54068 
54069 
54070 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54071 auto operator<=>( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & ) const = default;
54072 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI54073     bool operator==( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
54074     {
54075 #if defined( VULKAN_HPP_USE_REFLECT )
54076       return this->reflect() == rhs.reflect();
54077 #else
54078       return ( sType == rhs.sType )
54079           && ( pNext == rhs.pNext )
54080           && ( maxWorkGroupCount == rhs.maxWorkGroupCount )
54081           && ( maxWorkGroupSize == rhs.maxWorkGroupSize )
54082           && ( maxOutputClusterCount == rhs.maxOutputClusterCount )
54083           && ( indirectBufferOffsetAlignment == rhs.indirectBufferOffsetAlignment );
54084 #endif
54085     }
54086 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI54087     bool operator!=( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
54088     {
54089       return !operator==( rhs );
54090     }
54091 #endif
54092 
54093     public:
54094     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
54095     void * pNext = {};
54096     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxWorkGroupCount = {};
54097     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxWorkGroupSize = {};
54098     uint32_t maxOutputClusterCount = {};
54099     VULKAN_HPP_NAMESPACE::DeviceSize indirectBufferOffsetAlignment = {};
54100 
54101   };
54102 
54103   template <>
54104   struct CppType<StructureType, StructureType::ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI>
54105   {
54106     using Type = PhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
54107   };
54108 
54109   struct PhysicalDeviceCoherentMemoryFeaturesAMD
54110   {
54111     using NativeType = VkPhysicalDeviceCoherentMemoryFeaturesAMD;
54112 
54113     static const bool allowDuplicate = false;
54114     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
54115 
54116 
54117 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD54118 VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD(VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
54119     : pNext( pNext_ ), deviceCoherentMemory( deviceCoherentMemory_ )
54120     {}
54121 
54122     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54123 
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD54124     PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
54125       : PhysicalDeviceCoherentMemoryFeaturesAMD( *reinterpret_cast<PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs ) )
54126     {}
54127 
54128 
54129     PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54130 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
54131 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD54132     PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
54133     {
54134       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs );
54135       return *this;
54136     }
54137 
54138 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD54139     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
54140     {
54141       pNext = pNext_;
54142       return *this;
54143     }
54144 
setDeviceCoherentMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD54145     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoherentMemoryFeaturesAMD & setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT
54146     {
54147       deviceCoherentMemory = deviceCoherentMemory_;
54148       return *this;
54149     }
54150 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
54151 
54152 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD54153     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const &() const VULKAN_HPP_NOEXCEPT
54154     {
54155       return *reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
54156     }
54157 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD54158     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT
54159     {
54160       return *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
54161     }
54162 
54163 #if defined( VULKAN_HPP_USE_REFLECT )
54164 #if 14 <= VULKAN_HPP_CPP_VERSION
54165     auto
54166 #else
54167     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
54168 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD54169       reflect() const VULKAN_HPP_NOEXCEPT
54170     {
54171       return std::tie( sType, pNext, deviceCoherentMemory );
54172     }
54173 #endif
54174 
54175 
54176 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54177 auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const & ) const = default;
54178 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD54179     bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
54180     {
54181 #if defined( VULKAN_HPP_USE_REFLECT )
54182       return this->reflect() == rhs.reflect();
54183 #else
54184       return ( sType == rhs.sType )
54185           && ( pNext == rhs.pNext )
54186           && ( deviceCoherentMemory == rhs.deviceCoherentMemory );
54187 #endif
54188     }
54189 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD54190     bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
54191     {
54192       return !operator==( rhs );
54193     }
54194 #endif
54195 
54196     public:
54197     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
54198     void * pNext = {};
54199     VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {};
54200 
54201   };
54202 
54203   template <>
54204   struct CppType<StructureType, StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD>
54205   {
54206     using Type = PhysicalDeviceCoherentMemoryFeaturesAMD;
54207   };
54208 
54209   struct PhysicalDeviceColorWriteEnableFeaturesEXT
54210   {
54211     using NativeType = VkPhysicalDeviceColorWriteEnableFeaturesEXT;
54212 
54213     static const bool allowDuplicate = false;
54214     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT;
54215 
54216 
54217 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceColorWriteEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT54218 VULKAN_HPP_CONSTEXPR PhysicalDeviceColorWriteEnableFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
54219     : pNext( pNext_ ), colorWriteEnable( colorWriteEnable_ )
54220     {}
54221 
54222     VULKAN_HPP_CONSTEXPR PhysicalDeviceColorWriteEnableFeaturesEXT( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54223 
PhysicalDeviceColorWriteEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT54224     PhysicalDeviceColorWriteEnableFeaturesEXT( VkPhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54225       : PhysicalDeviceColorWriteEnableFeaturesEXT( *reinterpret_cast<PhysicalDeviceColorWriteEnableFeaturesEXT const *>( &rhs ) )
54226     {}
54227 
54228 
54229     PhysicalDeviceColorWriteEnableFeaturesEXT & operator=( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54230 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
54231 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT54232     PhysicalDeviceColorWriteEnableFeaturesEXT & operator=( VkPhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54233     {
54234       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT const *>( &rhs );
54235       return *this;
54236     }
54237 
54238 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT54239     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceColorWriteEnableFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
54240     {
54241       pNext = pNext_;
54242       return *this;
54243     }
54244 
setColorWriteEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT54245     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceColorWriteEnableFeaturesEXT & setColorWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ ) VULKAN_HPP_NOEXCEPT
54246     {
54247       colorWriteEnable = colorWriteEnable_;
54248       return *this;
54249     }
54250 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
54251 
54252 
operator VkPhysicalDeviceColorWriteEnableFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT54253     operator VkPhysicalDeviceColorWriteEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
54254     {
54255       return *reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>( this );
54256     }
54257 
operator VkPhysicalDeviceColorWriteEnableFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT54258     operator VkPhysicalDeviceColorWriteEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
54259     {
54260       return *reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>( this );
54261     }
54262 
54263 #if defined( VULKAN_HPP_USE_REFLECT )
54264 #if 14 <= VULKAN_HPP_CPP_VERSION
54265     auto
54266 #else
54267     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
54268 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT54269       reflect() const VULKAN_HPP_NOEXCEPT
54270     {
54271       return std::tie( sType, pNext, colorWriteEnable );
54272     }
54273 #endif
54274 
54275 
54276 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54277 auto operator<=>( PhysicalDeviceColorWriteEnableFeaturesEXT const & ) const = default;
54278 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT54279     bool operator==( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
54280     {
54281 #if defined( VULKAN_HPP_USE_REFLECT )
54282       return this->reflect() == rhs.reflect();
54283 #else
54284       return ( sType == rhs.sType )
54285           && ( pNext == rhs.pNext )
54286           && ( colorWriteEnable == rhs.colorWriteEnable );
54287 #endif
54288     }
54289 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT54290     bool operator!=( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
54291     {
54292       return !operator==( rhs );
54293     }
54294 #endif
54295 
54296     public:
54297     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT;
54298     void * pNext = {};
54299     VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable = {};
54300 
54301   };
54302 
54303   template <>
54304   struct CppType<StructureType, StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT>
54305   {
54306     using Type = PhysicalDeviceColorWriteEnableFeaturesEXT;
54307   };
54308 
54309   struct PhysicalDeviceComputeShaderDerivativesFeaturesNV
54310   {
54311     using NativeType = VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
54312 
54313     static const bool allowDuplicate = false;
54314     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
54315 
54316 
54317 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54318 VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
54319     : pNext( pNext_ ), computeDerivativeGroupQuads( computeDerivativeGroupQuads_ ), computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
54320     {}
54321 
54322     VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54323 
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54324     PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
54325       : PhysicalDeviceComputeShaderDerivativesFeaturesNV( *reinterpret_cast<PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs ) )
54326     {}
54327 
54328 
54329     PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54330 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
54331 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54332     PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
54333     {
54334       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs );
54335       return *this;
54336     }
54337 
54338 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54339     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
54340     {
54341       pNext = pNext_;
54342       return *this;
54343     }
54344 
setComputeDerivativeGroupQuadsVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54345     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT
54346     {
54347       computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
54348       return *this;
54349     }
54350 
setComputeDerivativeGroupLinearVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54351     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT
54352     {
54353       computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
54354       return *this;
54355     }
54356 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
54357 
54358 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54359     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
54360     {
54361       return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
54362     }
54363 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54364     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT
54365     {
54366       return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
54367     }
54368 
54369 #if defined( VULKAN_HPP_USE_REFLECT )
54370 #if 14 <= VULKAN_HPP_CPP_VERSION
54371     auto
54372 #else
54373     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
54374 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54375       reflect() const VULKAN_HPP_NOEXCEPT
54376     {
54377       return std::tie( sType, pNext, computeDerivativeGroupQuads, computeDerivativeGroupLinear );
54378     }
54379 #endif
54380 
54381 
54382 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54383 auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & ) const = default;
54384 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54385     bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
54386     {
54387 #if defined( VULKAN_HPP_USE_REFLECT )
54388       return this->reflect() == rhs.reflect();
54389 #else
54390       return ( sType == rhs.sType )
54391           && ( pNext == rhs.pNext )
54392           && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads )
54393           && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear );
54394 #endif
54395     }
54396 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV54397     bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
54398     {
54399       return !operator==( rhs );
54400     }
54401 #endif
54402 
54403     public:
54404     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
54405     void * pNext = {};
54406     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {};
54407     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {};
54408 
54409   };
54410 
54411   template <>
54412   struct CppType<StructureType, StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV>
54413   {
54414     using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV;
54415   };
54416 
54417   struct PhysicalDeviceConditionalRenderingFeaturesEXT
54418   {
54419     using NativeType = VkPhysicalDeviceConditionalRenderingFeaturesEXT;
54420 
54421     static const bool allowDuplicate = false;
54422     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
54423 
54424 
54425 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54426 VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
54427     : pNext( pNext_ ), conditionalRendering( conditionalRendering_ ), inheritedConditionalRendering( inheritedConditionalRendering_ )
54428     {}
54429 
54430     VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54431 
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54432     PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54433       : PhysicalDeviceConditionalRenderingFeaturesEXT( *reinterpret_cast<PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs ) )
54434     {}
54435 
54436 
54437     PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54438 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
54439 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54440     PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54441     {
54442       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs );
54443       return *this;
54444     }
54445 
54446 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54447     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
54448     {
54449       pNext = pNext_;
54450       return *this;
54451     }
54452 
setConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54453     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT
54454     {
54455       conditionalRendering = conditionalRendering_;
54456       return *this;
54457     }
54458 
setInheritedConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54459     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT
54460     {
54461       inheritedConditionalRendering = inheritedConditionalRendering_;
54462       return *this;
54463     }
54464 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
54465 
54466 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54467     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
54468     {
54469       return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
54470     }
54471 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54472     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT
54473     {
54474       return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
54475     }
54476 
54477 #if defined( VULKAN_HPP_USE_REFLECT )
54478 #if 14 <= VULKAN_HPP_CPP_VERSION
54479     auto
54480 #else
54481     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
54482 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54483       reflect() const VULKAN_HPP_NOEXCEPT
54484     {
54485       return std::tie( sType, pNext, conditionalRendering, inheritedConditionalRendering );
54486     }
54487 #endif
54488 
54489 
54490 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54491 auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const & ) const = default;
54492 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54493     bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
54494     {
54495 #if defined( VULKAN_HPP_USE_REFLECT )
54496       return this->reflect() == rhs.reflect();
54497 #else
54498       return ( sType == rhs.sType )
54499           && ( pNext == rhs.pNext )
54500           && ( conditionalRendering == rhs.conditionalRendering )
54501           && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering );
54502 #endif
54503     }
54504 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT54505     bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
54506     {
54507       return !operator==( rhs );
54508     }
54509 #endif
54510 
54511     public:
54512     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
54513     void * pNext = {};
54514     VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {};
54515     VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {};
54516 
54517   };
54518 
54519   template <>
54520   struct CppType<StructureType, StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT>
54521   {
54522     using Type = PhysicalDeviceConditionalRenderingFeaturesEXT;
54523   };
54524 
54525   struct PhysicalDeviceConservativeRasterizationPropertiesEXT
54526   {
54527     using NativeType = VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
54528 
54529     static const bool allowDuplicate = false;
54530     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
54531 
54532 
54533 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT54534 VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT(float primitiveOverestimationSize_ = {}, float maxExtraPrimitiveOverestimationSize_ = {}, float extraPrimitiveOverestimationSizeGranularity_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization_ = {}, VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized_ = {}, VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
54535     : pNext( pNext_ ), primitiveOverestimationSize( primitiveOverestimationSize_ ), maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ ), extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ ), primitiveUnderestimation( primitiveUnderestimation_ ), conservativePointAndLineRasterization( conservativePointAndLineRasterization_ ), degenerateTrianglesRasterized( degenerateTrianglesRasterized_ ), degenerateLinesRasterized( degenerateLinesRasterized_ ), fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ ), conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ )
54536     {}
54537 
54538     VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54539 
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT54540     PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54541       : PhysicalDeviceConservativeRasterizationPropertiesEXT( *reinterpret_cast<PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs ) )
54542     {}
54543 
54544 
54545     PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54546 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
54547 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT54548     PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54549     {
54550       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs );
54551       return *this;
54552     }
54553 
54554 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT54555     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
54556     {
54557       return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
54558     }
54559 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT54560     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
54561     {
54562       return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
54563     }
54564 
54565 #if defined( VULKAN_HPP_USE_REFLECT )
54566 #if 14 <= VULKAN_HPP_CPP_VERSION
54567     auto
54568 #else
54569     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, float const &, float const &, float const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
54570 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT54571       reflect() const VULKAN_HPP_NOEXCEPT
54572     {
54573       return std::tie( sType, pNext, primitiveOverestimationSize, maxExtraPrimitiveOverestimationSize, extraPrimitiveOverestimationSizeGranularity, primitiveUnderestimation, conservativePointAndLineRasterization, degenerateTrianglesRasterized, degenerateLinesRasterized, fullyCoveredFragmentShaderInputVariable, conservativeRasterizationPostDepthCoverage );
54574     }
54575 #endif
54576 
54577 
54578 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54579 auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const & ) const = default;
54580 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT54581     bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
54582     {
54583 #if defined( VULKAN_HPP_USE_REFLECT )
54584       return this->reflect() == rhs.reflect();
54585 #else
54586       return ( sType == rhs.sType )
54587           && ( pNext == rhs.pNext )
54588           && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize )
54589           && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize )
54590           && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity )
54591           && ( primitiveUnderestimation == rhs.primitiveUnderestimation )
54592           && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization )
54593           && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized )
54594           && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized )
54595           && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable )
54596           && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage );
54597 #endif
54598     }
54599 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT54600     bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
54601     {
54602       return !operator==( rhs );
54603     }
54604 #endif
54605 
54606     public:
54607     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
54608     void * pNext = {};
54609     float primitiveOverestimationSize = {};
54610     float maxExtraPrimitiveOverestimationSize = {};
54611     float extraPrimitiveOverestimationSizeGranularity = {};
54612     VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {};
54613     VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {};
54614     VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {};
54615     VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {};
54616     VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {};
54617     VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {};
54618 
54619   };
54620 
54621   template <>
54622   struct CppType<StructureType, StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT>
54623   {
54624     using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT;
54625   };
54626 
54627   struct PhysicalDeviceCooperativeMatrixFeaturesKHR
54628   {
54629     using NativeType = VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
54630 
54631     static const bool allowDuplicate = false;
54632     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR;
54633 
54634 
54635 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54636 VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {}, VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
54637     : pNext( pNext_ ), cooperativeMatrix( cooperativeMatrix_ ), cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
54638     {}
54639 
54640     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesKHR( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54641 
PhysicalDeviceCooperativeMatrixFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54642     PhysicalDeviceCooperativeMatrixFeaturesKHR( VkPhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54643       : PhysicalDeviceCooperativeMatrixFeaturesKHR( *reinterpret_cast<PhysicalDeviceCooperativeMatrixFeaturesKHR const *>( &rhs ) )
54644     {}
54645 
54646 
54647     PhysicalDeviceCooperativeMatrixFeaturesKHR & operator=( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54648 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
54649 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54650     PhysicalDeviceCooperativeMatrixFeaturesKHR & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54651     {
54652       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR const *>( &rhs );
54653       return *this;
54654     }
54655 
54656 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54657     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
54658     {
54659       pNext = pNext_;
54660       return *this;
54661     }
54662 
setCooperativeMatrixVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54663     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesKHR & setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
54664     {
54665       cooperativeMatrix = cooperativeMatrix_;
54666       return *this;
54667     }
54668 
setCooperativeMatrixRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54669     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesKHR & setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
54670     {
54671       cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
54672       return *this;
54673     }
54674 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
54675 
54676 
operator VkPhysicalDeviceCooperativeMatrixFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54677     operator VkPhysicalDeviceCooperativeMatrixFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
54678     {
54679       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesKHR*>( this );
54680     }
54681 
operator VkPhysicalDeviceCooperativeMatrixFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54682     operator VkPhysicalDeviceCooperativeMatrixFeaturesKHR &() VULKAN_HPP_NOEXCEPT
54683     {
54684       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesKHR*>( this );
54685     }
54686 
54687 #if defined( VULKAN_HPP_USE_REFLECT )
54688 #if 14 <= VULKAN_HPP_CPP_VERSION
54689     auto
54690 #else
54691     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
54692 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54693       reflect() const VULKAN_HPP_NOEXCEPT
54694     {
54695       return std::tie( sType, pNext, cooperativeMatrix, cooperativeMatrixRobustBufferAccess );
54696     }
54697 #endif
54698 
54699 
54700 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54701 auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesKHR const & ) const = default;
54702 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54703     bool operator==( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
54704     {
54705 #if defined( VULKAN_HPP_USE_REFLECT )
54706       return this->reflect() == rhs.reflect();
54707 #else
54708       return ( sType == rhs.sType )
54709           && ( pNext == rhs.pNext )
54710           && ( cooperativeMatrix == rhs.cooperativeMatrix )
54711           && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
54712 #endif
54713     }
54714 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR54715     bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
54716     {
54717       return !operator==( rhs );
54718     }
54719 #endif
54720 
54721     public:
54722     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR;
54723     void * pNext = {};
54724     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {};
54725     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {};
54726 
54727   };
54728 
54729   template <>
54730   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR>
54731   {
54732     using Type = PhysicalDeviceCooperativeMatrixFeaturesKHR;
54733   };
54734 
54735   struct PhysicalDeviceCooperativeMatrixFeaturesNV
54736   {
54737     using NativeType = VkPhysicalDeviceCooperativeMatrixFeaturesNV;
54738 
54739     static const bool allowDuplicate = false;
54740     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
54741 
54742 
54743 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54744 VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {}, VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
54745     : pNext( pNext_ ), cooperativeMatrix( cooperativeMatrix_ ), cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
54746     {}
54747 
54748     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54749 
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54750     PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
54751       : PhysicalDeviceCooperativeMatrixFeaturesNV( *reinterpret_cast<PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs ) )
54752     {}
54753 
54754 
54755     PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54756 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
54757 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54758     PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
54759     {
54760       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs );
54761       return *this;
54762     }
54763 
54764 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54765     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
54766     {
54767       pNext = pNext_;
54768       return *this;
54769     }
54770 
setCooperativeMatrixVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54771     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
54772     {
54773       cooperativeMatrix = cooperativeMatrix_;
54774       return *this;
54775     }
54776 
setCooperativeMatrixRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54777     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
54778     {
54779       cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
54780       return *this;
54781     }
54782 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
54783 
54784 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54785     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
54786     {
54787       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
54788     }
54789 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54790     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT
54791     {
54792       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
54793     }
54794 
54795 #if defined( VULKAN_HPP_USE_REFLECT )
54796 #if 14 <= VULKAN_HPP_CPP_VERSION
54797     auto
54798 #else
54799     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
54800 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54801       reflect() const VULKAN_HPP_NOEXCEPT
54802     {
54803       return std::tie( sType, pNext, cooperativeMatrix, cooperativeMatrixRobustBufferAccess );
54804     }
54805 #endif
54806 
54807 
54808 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54809 auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const & ) const = default;
54810 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54811     bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
54812     {
54813 #if defined( VULKAN_HPP_USE_REFLECT )
54814       return this->reflect() == rhs.reflect();
54815 #else
54816       return ( sType == rhs.sType )
54817           && ( pNext == rhs.pNext )
54818           && ( cooperativeMatrix == rhs.cooperativeMatrix )
54819           && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
54820 #endif
54821     }
54822 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV54823     bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
54824     {
54825       return !operator==( rhs );
54826     }
54827 #endif
54828 
54829     public:
54830     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
54831     void * pNext = {};
54832     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {};
54833     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {};
54834 
54835   };
54836 
54837   template <>
54838   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV>
54839   {
54840     using Type = PhysicalDeviceCooperativeMatrixFeaturesNV;
54841   };
54842 
54843   struct PhysicalDeviceCooperativeMatrixPropertiesKHR
54844   {
54845     using NativeType = VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
54846 
54847     static const bool allowDuplicate = false;
54848     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR;
54849 
54850 
54851 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR54852 VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesKHR(VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
54853     : pNext( pNext_ ), cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
54854     {}
54855 
54856     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesKHR( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54857 
PhysicalDeviceCooperativeMatrixPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR54858     PhysicalDeviceCooperativeMatrixPropertiesKHR( VkPhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54859       : PhysicalDeviceCooperativeMatrixPropertiesKHR( *reinterpret_cast<PhysicalDeviceCooperativeMatrixPropertiesKHR const *>( &rhs ) )
54860     {}
54861 
54862 
54863     PhysicalDeviceCooperativeMatrixPropertiesKHR & operator=( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54864 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
54865 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR54866     PhysicalDeviceCooperativeMatrixPropertiesKHR & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54867     {
54868       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR const *>( &rhs );
54869       return *this;
54870     }
54871 
54872 
operator VkPhysicalDeviceCooperativeMatrixPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR54873     operator VkPhysicalDeviceCooperativeMatrixPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
54874     {
54875       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesKHR*>( this );
54876     }
54877 
operator VkPhysicalDeviceCooperativeMatrixPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR54878     operator VkPhysicalDeviceCooperativeMatrixPropertiesKHR &() VULKAN_HPP_NOEXCEPT
54879     {
54880       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesKHR*>( this );
54881     }
54882 
54883 #if defined( VULKAN_HPP_USE_REFLECT )
54884 #if 14 <= VULKAN_HPP_CPP_VERSION
54885     auto
54886 #else
54887     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &>
54888 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR54889       reflect() const VULKAN_HPP_NOEXCEPT
54890     {
54891       return std::tie( sType, pNext, cooperativeMatrixSupportedStages );
54892     }
54893 #endif
54894 
54895 
54896 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54897 auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesKHR const & ) const = default;
54898 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR54899     bool operator==( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
54900     {
54901 #if defined( VULKAN_HPP_USE_REFLECT )
54902       return this->reflect() == rhs.reflect();
54903 #else
54904       return ( sType == rhs.sType )
54905           && ( pNext == rhs.pNext )
54906           && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
54907 #endif
54908     }
54909 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR54910     bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
54911     {
54912       return !operator==( rhs );
54913     }
54914 #endif
54915 
54916     public:
54917     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR;
54918     void * pNext = {};
54919     VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
54920 
54921   };
54922 
54923   template <>
54924   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR>
54925   {
54926     using Type = PhysicalDeviceCooperativeMatrixPropertiesKHR;
54927   };
54928 
54929   struct PhysicalDeviceCooperativeMatrixPropertiesNV
54930   {
54931     using NativeType = VkPhysicalDeviceCooperativeMatrixPropertiesNV;
54932 
54933     static const bool allowDuplicate = false;
54934     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
54935 
54936 
54937 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV54938 VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV(VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
54939     : pNext( pNext_ ), cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
54940     {}
54941 
54942     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54943 
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV54944     PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
54945       : PhysicalDeviceCooperativeMatrixPropertiesNV( *reinterpret_cast<PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs ) )
54946     {}
54947 
54948 
54949     PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54950 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
54951 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV54952     PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
54953     {
54954       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs );
54955       return *this;
54956     }
54957 
54958 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV54959     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
54960     {
54961       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
54962     }
54963 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV54964     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
54965     {
54966       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
54967     }
54968 
54969 #if defined( VULKAN_HPP_USE_REFLECT )
54970 #if 14 <= VULKAN_HPP_CPP_VERSION
54971     auto
54972 #else
54973     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &>
54974 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV54975       reflect() const VULKAN_HPP_NOEXCEPT
54976     {
54977       return std::tie( sType, pNext, cooperativeMatrixSupportedStages );
54978     }
54979 #endif
54980 
54981 
54982 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54983 auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const & ) const = default;
54984 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV54985     bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
54986     {
54987 #if defined( VULKAN_HPP_USE_REFLECT )
54988       return this->reflect() == rhs.reflect();
54989 #else
54990       return ( sType == rhs.sType )
54991           && ( pNext == rhs.pNext )
54992           && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
54993 #endif
54994     }
54995 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV54996     bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
54997     {
54998       return !operator==( rhs );
54999     }
55000 #endif
55001 
55002     public:
55003     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
55004     void * pNext = {};
55005     VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
55006 
55007   };
55008 
55009   template <>
55010   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV>
55011   {
55012     using Type = PhysicalDeviceCooperativeMatrixPropertiesNV;
55013   };
55014 
55015   struct PhysicalDeviceCopyMemoryIndirectFeaturesNV
55016   {
55017     using NativeType = VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
55018 
55019     static const bool allowDuplicate = false;
55020     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCopyMemoryIndirectFeaturesNV;
55021 
55022 
55023 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCopyMemoryIndirectFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV55024 VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 indirectCopy_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
55025     : pNext( pNext_ ), indirectCopy( indirectCopy_ )
55026     {}
55027 
55028     VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectFeaturesNV( PhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55029 
PhysicalDeviceCopyMemoryIndirectFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV55030     PhysicalDeviceCopyMemoryIndirectFeaturesNV( VkPhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55031       : PhysicalDeviceCopyMemoryIndirectFeaturesNV( *reinterpret_cast<PhysicalDeviceCopyMemoryIndirectFeaturesNV const *>( &rhs ) )
55032     {}
55033 
55034 
55035     PhysicalDeviceCopyMemoryIndirectFeaturesNV & operator=( PhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55036 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
55037 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV55038     PhysicalDeviceCopyMemoryIndirectFeaturesNV & operator=( VkPhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55039     {
55040       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV const *>( &rhs );
55041       return *this;
55042     }
55043 
55044 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV55045     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCopyMemoryIndirectFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
55046     {
55047       pNext = pNext_;
55048       return *this;
55049     }
55050 
setIndirectCopyVULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV55051     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCopyMemoryIndirectFeaturesNV & setIndirectCopy( VULKAN_HPP_NAMESPACE::Bool32 indirectCopy_ ) VULKAN_HPP_NOEXCEPT
55052     {
55053       indirectCopy = indirectCopy_;
55054       return *this;
55055     }
55056 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
55057 
55058 
operator VkPhysicalDeviceCopyMemoryIndirectFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV55059     operator VkPhysicalDeviceCopyMemoryIndirectFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
55060     {
55061       return *reinterpret_cast<const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV*>( this );
55062     }
55063 
operator VkPhysicalDeviceCopyMemoryIndirectFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV55064     operator VkPhysicalDeviceCopyMemoryIndirectFeaturesNV &() VULKAN_HPP_NOEXCEPT
55065     {
55066       return *reinterpret_cast<VkPhysicalDeviceCopyMemoryIndirectFeaturesNV*>( this );
55067     }
55068 
55069 #if defined( VULKAN_HPP_USE_REFLECT )
55070 #if 14 <= VULKAN_HPP_CPP_VERSION
55071     auto
55072 #else
55073     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
55074 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV55075       reflect() const VULKAN_HPP_NOEXCEPT
55076     {
55077       return std::tie( sType, pNext, indirectCopy );
55078     }
55079 #endif
55080 
55081 
55082 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55083 auto operator<=>( PhysicalDeviceCopyMemoryIndirectFeaturesNV const & ) const = default;
55084 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV55085     bool operator==( PhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
55086     {
55087 #if defined( VULKAN_HPP_USE_REFLECT )
55088       return this->reflect() == rhs.reflect();
55089 #else
55090       return ( sType == rhs.sType )
55091           && ( pNext == rhs.pNext )
55092           && ( indirectCopy == rhs.indirectCopy );
55093 #endif
55094     }
55095 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV55096     bool operator!=( PhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
55097     {
55098       return !operator==( rhs );
55099     }
55100 #endif
55101 
55102     public:
55103     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCopyMemoryIndirectFeaturesNV;
55104     void * pNext = {};
55105     VULKAN_HPP_NAMESPACE::Bool32 indirectCopy = {};
55106 
55107   };
55108 
55109   template <>
55110   struct CppType<StructureType, StructureType::ePhysicalDeviceCopyMemoryIndirectFeaturesNV>
55111   {
55112     using Type = PhysicalDeviceCopyMemoryIndirectFeaturesNV;
55113   };
55114 
55115   struct PhysicalDeviceCopyMemoryIndirectPropertiesNV
55116   {
55117     using NativeType = VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
55118 
55119     static const bool allowDuplicate = false;
55120     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesNV;
55121 
55122 
55123 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCopyMemoryIndirectPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV55124 VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectPropertiesNV(VULKAN_HPP_NAMESPACE::QueueFlags supportedQueues_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
55125     : pNext( pNext_ ), supportedQueues( supportedQueues_ )
55126     {}
55127 
55128     VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectPropertiesNV( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55129 
PhysicalDeviceCopyMemoryIndirectPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV55130     PhysicalDeviceCopyMemoryIndirectPropertiesNV( VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55131       : PhysicalDeviceCopyMemoryIndirectPropertiesNV( *reinterpret_cast<PhysicalDeviceCopyMemoryIndirectPropertiesNV const *>( &rhs ) )
55132     {}
55133 
55134 
55135     PhysicalDeviceCopyMemoryIndirectPropertiesNV & operator=( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55136 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
55137 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV55138     PhysicalDeviceCopyMemoryIndirectPropertiesNV & operator=( VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55139     {
55140       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV const *>( &rhs );
55141       return *this;
55142     }
55143 
55144 
operator VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV55145     operator VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
55146     {
55147       return *reinterpret_cast<const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV*>( this );
55148     }
55149 
operator VkPhysicalDeviceCopyMemoryIndirectPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV55150     operator VkPhysicalDeviceCopyMemoryIndirectPropertiesNV &() VULKAN_HPP_NOEXCEPT
55151     {
55152       return *reinterpret_cast<VkPhysicalDeviceCopyMemoryIndirectPropertiesNV*>( this );
55153     }
55154 
55155 #if defined( VULKAN_HPP_USE_REFLECT )
55156 #if 14 <= VULKAN_HPP_CPP_VERSION
55157     auto
55158 #else
55159     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::QueueFlags const &>
55160 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV55161       reflect() const VULKAN_HPP_NOEXCEPT
55162     {
55163       return std::tie( sType, pNext, supportedQueues );
55164     }
55165 #endif
55166 
55167 
55168 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55169 auto operator<=>( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & ) const = default;
55170 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV55171     bool operator==( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
55172     {
55173 #if defined( VULKAN_HPP_USE_REFLECT )
55174       return this->reflect() == rhs.reflect();
55175 #else
55176       return ( sType == rhs.sType )
55177           && ( pNext == rhs.pNext )
55178           && ( supportedQueues == rhs.supportedQueues );
55179 #endif
55180     }
55181 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV55182     bool operator!=( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
55183     {
55184       return !operator==( rhs );
55185     }
55186 #endif
55187 
55188     public:
55189     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesNV;
55190     void * pNext = {};
55191     VULKAN_HPP_NAMESPACE::QueueFlags supportedQueues = {};
55192 
55193   };
55194 
55195   template <>
55196   struct CppType<StructureType, StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesNV>
55197   {
55198     using Type = PhysicalDeviceCopyMemoryIndirectPropertiesNV;
55199   };
55200 
55201   struct PhysicalDeviceCornerSampledImageFeaturesNV
55202   {
55203     using NativeType = VkPhysicalDeviceCornerSampledImageFeaturesNV;
55204 
55205     static const bool allowDuplicate = false;
55206     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
55207 
55208 
55209 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV55210 VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
55211     : pNext( pNext_ ), cornerSampledImage( cornerSampledImage_ )
55212     {}
55213 
55214     VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55215 
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV55216     PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55217       : PhysicalDeviceCornerSampledImageFeaturesNV( *reinterpret_cast<PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs ) )
55218     {}
55219 
55220 
55221     PhysicalDeviceCornerSampledImageFeaturesNV & operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55222 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
55223 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV55224     PhysicalDeviceCornerSampledImageFeaturesNV & operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55225     {
55226       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs );
55227       return *this;
55228     }
55229 
55230 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV55231     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
55232     {
55233       pNext = pNext_;
55234       return *this;
55235     }
55236 
setCornerSampledImageVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV55237     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT
55238     {
55239       cornerSampledImage = cornerSampledImage_;
55240       return *this;
55241     }
55242 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
55243 
55244 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV55245     operator VkPhysicalDeviceCornerSampledImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
55246     {
55247       return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
55248     }
55249 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV55250     operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
55251     {
55252       return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
55253     }
55254 
55255 #if defined( VULKAN_HPP_USE_REFLECT )
55256 #if 14 <= VULKAN_HPP_CPP_VERSION
55257     auto
55258 #else
55259     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
55260 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV55261       reflect() const VULKAN_HPP_NOEXCEPT
55262     {
55263       return std::tie( sType, pNext, cornerSampledImage );
55264     }
55265 #endif
55266 
55267 
55268 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55269 auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const & ) const = default;
55270 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV55271     bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
55272     {
55273 #if defined( VULKAN_HPP_USE_REFLECT )
55274       return this->reflect() == rhs.reflect();
55275 #else
55276       return ( sType == rhs.sType )
55277           && ( pNext == rhs.pNext )
55278           && ( cornerSampledImage == rhs.cornerSampledImage );
55279 #endif
55280     }
55281 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV55282     bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
55283     {
55284       return !operator==( rhs );
55285     }
55286 #endif
55287 
55288     public:
55289     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
55290     void * pNext = {};
55291     VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {};
55292 
55293   };
55294 
55295   template <>
55296   struct CppType<StructureType, StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV>
55297   {
55298     using Type = PhysicalDeviceCornerSampledImageFeaturesNV;
55299   };
55300 
55301   struct PhysicalDeviceCoverageReductionModeFeaturesNV
55302   {
55303     using NativeType = VkPhysicalDeviceCoverageReductionModeFeaturesNV;
55304 
55305     static const bool allowDuplicate = false;
55306     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
55307 
55308 
55309 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV55310 VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
55311     : pNext( pNext_ ), coverageReductionMode( coverageReductionMode_ )
55312     {}
55313 
55314     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55315 
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV55316     PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55317       : PhysicalDeviceCoverageReductionModeFeaturesNV( *reinterpret_cast<PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs ) )
55318     {}
55319 
55320 
55321     PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55322 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
55323 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV55324     PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55325     {
55326       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs );
55327       return *this;
55328     }
55329 
55330 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV55331     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
55332     {
55333       pNext = pNext_;
55334       return *this;
55335     }
55336 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV55337     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
55338     {
55339       coverageReductionMode = coverageReductionMode_;
55340       return *this;
55341     }
55342 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
55343 
55344 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV55345     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
55346     {
55347       return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
55348     }
55349 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV55350     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT
55351     {
55352       return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
55353     }
55354 
55355 #if defined( VULKAN_HPP_USE_REFLECT )
55356 #if 14 <= VULKAN_HPP_CPP_VERSION
55357     auto
55358 #else
55359     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
55360 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV55361       reflect() const VULKAN_HPP_NOEXCEPT
55362     {
55363       return std::tie( sType, pNext, coverageReductionMode );
55364     }
55365 #endif
55366 
55367 
55368 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55369 auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const & ) const = default;
55370 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV55371     bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
55372     {
55373 #if defined( VULKAN_HPP_USE_REFLECT )
55374       return this->reflect() == rhs.reflect();
55375 #else
55376       return ( sType == rhs.sType )
55377           && ( pNext == rhs.pNext )
55378           && ( coverageReductionMode == rhs.coverageReductionMode );
55379 #endif
55380     }
55381 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV55382     bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
55383     {
55384       return !operator==( rhs );
55385     }
55386 #endif
55387 
55388     public:
55389     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
55390     void * pNext = {};
55391     VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {};
55392 
55393   };
55394 
55395   template <>
55396   struct CppType<StructureType, StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV>
55397   {
55398     using Type = PhysicalDeviceCoverageReductionModeFeaturesNV;
55399   };
55400 
55401   struct PhysicalDeviceCubicClampFeaturesQCOM
55402   {
55403     using NativeType = VkPhysicalDeviceCubicClampFeaturesQCOM;
55404 
55405     static const bool allowDuplicate = false;
55406     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCubicClampFeaturesQCOM;
55407 
55408 
55409 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCubicClampFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM55410 VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicClampFeaturesQCOM(VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
55411     : pNext( pNext_ ), cubicRangeClamp( cubicRangeClamp_ )
55412     {}
55413 
55414     VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicClampFeaturesQCOM( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55415 
PhysicalDeviceCubicClampFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM55416     PhysicalDeviceCubicClampFeaturesQCOM( VkPhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
55417       : PhysicalDeviceCubicClampFeaturesQCOM( *reinterpret_cast<PhysicalDeviceCubicClampFeaturesQCOM const *>( &rhs ) )
55418     {}
55419 
55420 
55421     PhysicalDeviceCubicClampFeaturesQCOM & operator=( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55422 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
55423 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM55424     PhysicalDeviceCubicClampFeaturesQCOM & operator=( VkPhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
55425     {
55426       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM const *>( &rhs );
55427       return *this;
55428     }
55429 
55430 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM55431     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicClampFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
55432     {
55433       pNext = pNext_;
55434       return *this;
55435     }
55436 
setCubicRangeClampVULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM55437     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicClampFeaturesQCOM & setCubicRangeClamp( VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp_ ) VULKAN_HPP_NOEXCEPT
55438     {
55439       cubicRangeClamp = cubicRangeClamp_;
55440       return *this;
55441     }
55442 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
55443 
55444 
operator VkPhysicalDeviceCubicClampFeaturesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM55445     operator VkPhysicalDeviceCubicClampFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
55446     {
55447       return *reinterpret_cast<const VkPhysicalDeviceCubicClampFeaturesQCOM*>( this );
55448     }
55449 
operator VkPhysicalDeviceCubicClampFeaturesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM55450     operator VkPhysicalDeviceCubicClampFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
55451     {
55452       return *reinterpret_cast<VkPhysicalDeviceCubicClampFeaturesQCOM*>( this );
55453     }
55454 
55455 #if defined( VULKAN_HPP_USE_REFLECT )
55456 #if 14 <= VULKAN_HPP_CPP_VERSION
55457     auto
55458 #else
55459     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
55460 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM55461       reflect() const VULKAN_HPP_NOEXCEPT
55462     {
55463       return std::tie( sType, pNext, cubicRangeClamp );
55464     }
55465 #endif
55466 
55467 
55468 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55469 auto operator<=>( PhysicalDeviceCubicClampFeaturesQCOM const & ) const = default;
55470 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM55471     bool operator==( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
55472     {
55473 #if defined( VULKAN_HPP_USE_REFLECT )
55474       return this->reflect() == rhs.reflect();
55475 #else
55476       return ( sType == rhs.sType )
55477           && ( pNext == rhs.pNext )
55478           && ( cubicRangeClamp == rhs.cubicRangeClamp );
55479 #endif
55480     }
55481 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM55482     bool operator!=( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
55483     {
55484       return !operator==( rhs );
55485     }
55486 #endif
55487 
55488     public:
55489     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCubicClampFeaturesQCOM;
55490     void * pNext = {};
55491     VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp = {};
55492 
55493   };
55494 
55495   template <>
55496   struct CppType<StructureType, StructureType::ePhysicalDeviceCubicClampFeaturesQCOM>
55497   {
55498     using Type = PhysicalDeviceCubicClampFeaturesQCOM;
55499   };
55500 
55501   struct PhysicalDeviceCubicWeightsFeaturesQCOM
55502   {
55503     using NativeType = VkPhysicalDeviceCubicWeightsFeaturesQCOM;
55504 
55505     static const bool allowDuplicate = false;
55506     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM;
55507 
55508 
55509 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCubicWeightsFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM55510 VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicWeightsFeaturesQCOM(VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
55511     : pNext( pNext_ ), selectableCubicWeights( selectableCubicWeights_ )
55512     {}
55513 
55514     VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicWeightsFeaturesQCOM( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55515 
PhysicalDeviceCubicWeightsFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM55516     PhysicalDeviceCubicWeightsFeaturesQCOM( VkPhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
55517       : PhysicalDeviceCubicWeightsFeaturesQCOM( *reinterpret_cast<PhysicalDeviceCubicWeightsFeaturesQCOM const *>( &rhs ) )
55518     {}
55519 
55520 
55521     PhysicalDeviceCubicWeightsFeaturesQCOM & operator=( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55522 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
55523 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM55524     PhysicalDeviceCubicWeightsFeaturesQCOM & operator=( VkPhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
55525     {
55526       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM const *>( &rhs );
55527       return *this;
55528     }
55529 
55530 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM55531     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicWeightsFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
55532     {
55533       pNext = pNext_;
55534       return *this;
55535     }
55536 
setSelectableCubicWeightsVULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM55537     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicWeightsFeaturesQCOM & setSelectableCubicWeights( VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights_ ) VULKAN_HPP_NOEXCEPT
55538     {
55539       selectableCubicWeights = selectableCubicWeights_;
55540       return *this;
55541     }
55542 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
55543 
55544 
operator VkPhysicalDeviceCubicWeightsFeaturesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM55545     operator VkPhysicalDeviceCubicWeightsFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
55546     {
55547       return *reinterpret_cast<const VkPhysicalDeviceCubicWeightsFeaturesQCOM*>( this );
55548     }
55549 
operator VkPhysicalDeviceCubicWeightsFeaturesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM55550     operator VkPhysicalDeviceCubicWeightsFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
55551     {
55552       return *reinterpret_cast<VkPhysicalDeviceCubicWeightsFeaturesQCOM*>( this );
55553     }
55554 
55555 #if defined( VULKAN_HPP_USE_REFLECT )
55556 #if 14 <= VULKAN_HPP_CPP_VERSION
55557     auto
55558 #else
55559     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
55560 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM55561       reflect() const VULKAN_HPP_NOEXCEPT
55562     {
55563       return std::tie( sType, pNext, selectableCubicWeights );
55564     }
55565 #endif
55566 
55567 
55568 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55569 auto operator<=>( PhysicalDeviceCubicWeightsFeaturesQCOM const & ) const = default;
55570 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM55571     bool operator==( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
55572     {
55573 #if defined( VULKAN_HPP_USE_REFLECT )
55574       return this->reflect() == rhs.reflect();
55575 #else
55576       return ( sType == rhs.sType )
55577           && ( pNext == rhs.pNext )
55578           && ( selectableCubicWeights == rhs.selectableCubicWeights );
55579 #endif
55580     }
55581 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM55582     bool operator!=( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
55583     {
55584       return !operator==( rhs );
55585     }
55586 #endif
55587 
55588     public:
55589     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM;
55590     void * pNext = {};
55591     VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights = {};
55592 
55593   };
55594 
55595   template <>
55596   struct CppType<StructureType, StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM>
55597   {
55598     using Type = PhysicalDeviceCubicWeightsFeaturesQCOM;
55599   };
55600 
55601   struct PhysicalDeviceCustomBorderColorFeaturesEXT
55602   {
55603     using NativeType = VkPhysicalDeviceCustomBorderColorFeaturesEXT;
55604 
55605     static const bool allowDuplicate = false;
55606     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
55607 
55608 
55609 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55610 VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
55611     : pNext( pNext_ ), customBorderColors( customBorderColors_ ), customBorderColorWithoutFormat( customBorderColorWithoutFormat_ )
55612     {}
55613 
55614     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55615 
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55616     PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55617       : PhysicalDeviceCustomBorderColorFeaturesEXT( *reinterpret_cast<PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs ) )
55618     {}
55619 
55620 
55621     PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55622 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
55623 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55624     PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55625     {
55626       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs );
55627       return *this;
55628     }
55629 
55630 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55631     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
55632     {
55633       pNext = pNext_;
55634       return *this;
55635     }
55636 
setCustomBorderColorsVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55637     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT
55638     {
55639       customBorderColors = customBorderColors_;
55640       return *this;
55641     }
55642 
setCustomBorderColorWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55643     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
55644     {
55645       customBorderColorWithoutFormat = customBorderColorWithoutFormat_;
55646       return *this;
55647     }
55648 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
55649 
55650 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55651     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
55652     {
55653       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
55654     }
55655 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55656     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
55657     {
55658       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
55659     }
55660 
55661 #if defined( VULKAN_HPP_USE_REFLECT )
55662 #if 14 <= VULKAN_HPP_CPP_VERSION
55663     auto
55664 #else
55665     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
55666 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55667       reflect() const VULKAN_HPP_NOEXCEPT
55668     {
55669       return std::tie( sType, pNext, customBorderColors, customBorderColorWithoutFormat );
55670     }
55671 #endif
55672 
55673 
55674 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55675 auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const & ) const = default;
55676 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55677     bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
55678     {
55679 #if defined( VULKAN_HPP_USE_REFLECT )
55680       return this->reflect() == rhs.reflect();
55681 #else
55682       return ( sType == rhs.sType )
55683           && ( pNext == rhs.pNext )
55684           && ( customBorderColors == rhs.customBorderColors )
55685           && ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat );
55686 #endif
55687     }
55688 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT55689     bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
55690     {
55691       return !operator==( rhs );
55692     }
55693 #endif
55694 
55695     public:
55696     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
55697     void * pNext = {};
55698     VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {};
55699     VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {};
55700 
55701   };
55702 
55703   template <>
55704   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT>
55705   {
55706     using Type = PhysicalDeviceCustomBorderColorFeaturesEXT;
55707   };
55708 
55709   struct PhysicalDeviceCustomBorderColorPropertiesEXT
55710   {
55711     using NativeType = VkPhysicalDeviceCustomBorderColorPropertiesEXT;
55712 
55713     static const bool allowDuplicate = false;
55714     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
55715 
55716 
55717 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT55718 VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT(uint32_t maxCustomBorderColorSamplers_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
55719     : pNext( pNext_ ), maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ )
55720     {}
55721 
55722     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55723 
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT55724     PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55725       : PhysicalDeviceCustomBorderColorPropertiesEXT( *reinterpret_cast<PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs ) )
55726     {}
55727 
55728 
55729     PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55730 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
55731 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT55732     PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55733     {
55734       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs );
55735       return *this;
55736     }
55737 
55738 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT55739     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
55740     {
55741       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
55742     }
55743 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT55744     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
55745     {
55746       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
55747     }
55748 
55749 #if defined( VULKAN_HPP_USE_REFLECT )
55750 #if 14 <= VULKAN_HPP_CPP_VERSION
55751     auto
55752 #else
55753     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
55754 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT55755       reflect() const VULKAN_HPP_NOEXCEPT
55756     {
55757       return std::tie( sType, pNext, maxCustomBorderColorSamplers );
55758     }
55759 #endif
55760 
55761 
55762 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55763 auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const & ) const = default;
55764 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT55765     bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
55766     {
55767 #if defined( VULKAN_HPP_USE_REFLECT )
55768       return this->reflect() == rhs.reflect();
55769 #else
55770       return ( sType == rhs.sType )
55771           && ( pNext == rhs.pNext )
55772           && ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers );
55773 #endif
55774     }
55775 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT55776     bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
55777     {
55778       return !operator==( rhs );
55779     }
55780 #endif
55781 
55782     public:
55783     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
55784     void * pNext = {};
55785     uint32_t maxCustomBorderColorSamplers = {};
55786 
55787   };
55788 
55789   template <>
55790   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT>
55791   {
55792     using Type = PhysicalDeviceCustomBorderColorPropertiesEXT;
55793   };
55794 
55795   struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
55796   {
55797     using NativeType = VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
55798 
55799     static const bool allowDuplicate = false;
55800     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
55801 
55802 
55803 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV55804 VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
55805     : pNext( pNext_ ), dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
55806     {}
55807 
55808     VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55809 
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV55810     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55811       : PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( *reinterpret_cast<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs ) )
55812     {}
55813 
55814 
55815     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55816 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
55817 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV55818     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
55819     {
55820       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs );
55821       return *this;
55822     }
55823 
55824 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV55825     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
55826     {
55827       pNext = pNext_;
55828       return *this;
55829     }
55830 
setDedicatedAllocationImageAliasingVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV55831     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT
55832     {
55833       dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
55834       return *this;
55835     }
55836 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
55837 
55838 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV55839     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
55840     {
55841       return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
55842     }
55843 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV55844     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT
55845     {
55846       return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
55847     }
55848 
55849 #if defined( VULKAN_HPP_USE_REFLECT )
55850 #if 14 <= VULKAN_HPP_CPP_VERSION
55851     auto
55852 #else
55853     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
55854 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV55855       reflect() const VULKAN_HPP_NOEXCEPT
55856     {
55857       return std::tie( sType, pNext, dedicatedAllocationImageAliasing );
55858     }
55859 #endif
55860 
55861 
55862 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55863 auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & ) const = default;
55864 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV55865     bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
55866     {
55867 #if defined( VULKAN_HPP_USE_REFLECT )
55868       return this->reflect() == rhs.reflect();
55869 #else
55870       return ( sType == rhs.sType )
55871           && ( pNext == rhs.pNext )
55872           && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing );
55873 #endif
55874     }
55875 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV55876     bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
55877     {
55878       return !operator==( rhs );
55879     }
55880 #endif
55881 
55882     public:
55883     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
55884     void * pNext = {};
55885     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {};
55886 
55887   };
55888 
55889   template <>
55890   struct CppType<StructureType, StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>
55891   {
55892     using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
55893   };
55894 
55895   struct PhysicalDeviceDepthBiasControlFeaturesEXT
55896   {
55897     using NativeType = VkPhysicalDeviceDepthBiasControlFeaturesEXT;
55898 
55899     static const bool allowDuplicate = false;
55900     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthBiasControlFeaturesEXT;
55901 
55902 
55903 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthBiasControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55904 VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthBiasControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBiasControl_ = {}, VULKAN_HPP_NAMESPACE::Bool32 leastRepresentableValueForceUnormRepresentation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 floatRepresentation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
55905     : pNext( pNext_ ), depthBiasControl( depthBiasControl_ ), leastRepresentableValueForceUnormRepresentation( leastRepresentableValueForceUnormRepresentation_ ), floatRepresentation( floatRepresentation_ ), depthBiasExact( depthBiasExact_ )
55906     {}
55907 
55908     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthBiasControlFeaturesEXT( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55909 
PhysicalDeviceDepthBiasControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55910     PhysicalDeviceDepthBiasControlFeaturesEXT( VkPhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55911       : PhysicalDeviceDepthBiasControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthBiasControlFeaturesEXT const *>( &rhs ) )
55912     {}
55913 
55914 
55915     PhysicalDeviceDepthBiasControlFeaturesEXT & operator=( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55916 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
55917 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55918     PhysicalDeviceDepthBiasControlFeaturesEXT & operator=( VkPhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55919     {
55920       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT const *>( &rhs );
55921       return *this;
55922     }
55923 
55924 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55925     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
55926     {
55927       pNext = pNext_;
55928       return *this;
55929     }
55930 
setDepthBiasControlVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55931     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT & setDepthBiasControl( VULKAN_HPP_NAMESPACE::Bool32 depthBiasControl_ ) VULKAN_HPP_NOEXCEPT
55932     {
55933       depthBiasControl = depthBiasControl_;
55934       return *this;
55935     }
55936 
setLeastRepresentableValueForceUnormRepresentationVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55937     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT & setLeastRepresentableValueForceUnormRepresentation( VULKAN_HPP_NAMESPACE::Bool32 leastRepresentableValueForceUnormRepresentation_ ) VULKAN_HPP_NOEXCEPT
55938     {
55939       leastRepresentableValueForceUnormRepresentation = leastRepresentableValueForceUnormRepresentation_;
55940       return *this;
55941     }
55942 
setFloatRepresentationVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55943     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT & setFloatRepresentation( VULKAN_HPP_NAMESPACE::Bool32 floatRepresentation_ ) VULKAN_HPP_NOEXCEPT
55944     {
55945       floatRepresentation = floatRepresentation_;
55946       return *this;
55947     }
55948 
setDepthBiasExactVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55949     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT & setDepthBiasExact( VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ ) VULKAN_HPP_NOEXCEPT
55950     {
55951       depthBiasExact = depthBiasExact_;
55952       return *this;
55953     }
55954 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
55955 
55956 
operator VkPhysicalDeviceDepthBiasControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55957     operator VkPhysicalDeviceDepthBiasControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
55958     {
55959       return *reinterpret_cast<const VkPhysicalDeviceDepthBiasControlFeaturesEXT*>( this );
55960     }
55961 
operator VkPhysicalDeviceDepthBiasControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55962     operator VkPhysicalDeviceDepthBiasControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
55963     {
55964       return *reinterpret_cast<VkPhysicalDeviceDepthBiasControlFeaturesEXT*>( this );
55965     }
55966 
55967 #if defined( VULKAN_HPP_USE_REFLECT )
55968 #if 14 <= VULKAN_HPP_CPP_VERSION
55969     auto
55970 #else
55971     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
55972 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55973       reflect() const VULKAN_HPP_NOEXCEPT
55974     {
55975       return std::tie( sType, pNext, depthBiasControl, leastRepresentableValueForceUnormRepresentation, floatRepresentation, depthBiasExact );
55976     }
55977 #endif
55978 
55979 
55980 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55981 auto operator<=>( PhysicalDeviceDepthBiasControlFeaturesEXT const & ) const = default;
55982 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55983     bool operator==( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
55984     {
55985 #if defined( VULKAN_HPP_USE_REFLECT )
55986       return this->reflect() == rhs.reflect();
55987 #else
55988       return ( sType == rhs.sType )
55989           && ( pNext == rhs.pNext )
55990           && ( depthBiasControl == rhs.depthBiasControl )
55991           && ( leastRepresentableValueForceUnormRepresentation == rhs.leastRepresentableValueForceUnormRepresentation )
55992           && ( floatRepresentation == rhs.floatRepresentation )
55993           && ( depthBiasExact == rhs.depthBiasExact );
55994 #endif
55995     }
55996 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT55997     bool operator!=( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
55998     {
55999       return !operator==( rhs );
56000     }
56001 #endif
56002 
56003     public:
56004     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthBiasControlFeaturesEXT;
56005     void * pNext = {};
56006     VULKAN_HPP_NAMESPACE::Bool32 depthBiasControl = {};
56007     VULKAN_HPP_NAMESPACE::Bool32 leastRepresentableValueForceUnormRepresentation = {};
56008     VULKAN_HPP_NAMESPACE::Bool32 floatRepresentation = {};
56009     VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact = {};
56010 
56011   };
56012 
56013   template <>
56014   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthBiasControlFeaturesEXT>
56015   {
56016     using Type = PhysicalDeviceDepthBiasControlFeaturesEXT;
56017   };
56018 
56019   struct PhysicalDeviceDepthClampZeroOneFeaturesEXT
56020   {
56021     using NativeType = VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
56022 
56023     static const bool allowDuplicate = false;
56024     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClampZeroOneFeaturesEXT;
56025 
56026 
56027 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthClampZeroOneFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT56028 VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClampZeroOneFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
56029     : pNext( pNext_ ), depthClampZeroOne( depthClampZeroOne_ )
56030     {}
56031 
56032     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClampZeroOneFeaturesEXT( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56033 
PhysicalDeviceDepthClampZeroOneFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT56034     PhysicalDeviceDepthClampZeroOneFeaturesEXT( VkPhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56035       : PhysicalDeviceDepthClampZeroOneFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClampZeroOneFeaturesEXT const *>( &rhs ) )
56036     {}
56037 
56038 
56039     PhysicalDeviceDepthClampZeroOneFeaturesEXT & operator=( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56040 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
56041 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT56042     PhysicalDeviceDepthClampZeroOneFeaturesEXT & operator=( VkPhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56043     {
56044       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT const *>( &rhs );
56045       return *this;
56046     }
56047 
56048 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT56049     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClampZeroOneFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
56050     {
56051       pNext = pNext_;
56052       return *this;
56053     }
56054 
setDepthClampZeroOneVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT56055     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClampZeroOneFeaturesEXT & setDepthClampZeroOne( VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne_ ) VULKAN_HPP_NOEXCEPT
56056     {
56057       depthClampZeroOne = depthClampZeroOne_;
56058       return *this;
56059     }
56060 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
56061 
56062 
operator VkPhysicalDeviceDepthClampZeroOneFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT56063     operator VkPhysicalDeviceDepthClampZeroOneFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
56064     {
56065       return *reinterpret_cast<const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT*>( this );
56066     }
56067 
operator VkPhysicalDeviceDepthClampZeroOneFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT56068     operator VkPhysicalDeviceDepthClampZeroOneFeaturesEXT &() VULKAN_HPP_NOEXCEPT
56069     {
56070       return *reinterpret_cast<VkPhysicalDeviceDepthClampZeroOneFeaturesEXT*>( this );
56071     }
56072 
56073 #if defined( VULKAN_HPP_USE_REFLECT )
56074 #if 14 <= VULKAN_HPP_CPP_VERSION
56075     auto
56076 #else
56077     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
56078 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT56079       reflect() const VULKAN_HPP_NOEXCEPT
56080     {
56081       return std::tie( sType, pNext, depthClampZeroOne );
56082     }
56083 #endif
56084 
56085 
56086 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56087 auto operator<=>( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & ) const = default;
56088 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT56089     bool operator==( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56090     {
56091 #if defined( VULKAN_HPP_USE_REFLECT )
56092       return this->reflect() == rhs.reflect();
56093 #else
56094       return ( sType == rhs.sType )
56095           && ( pNext == rhs.pNext )
56096           && ( depthClampZeroOne == rhs.depthClampZeroOne );
56097 #endif
56098     }
56099 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT56100     bool operator!=( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56101     {
56102       return !operator==( rhs );
56103     }
56104 #endif
56105 
56106     public:
56107     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClampZeroOneFeaturesEXT;
56108     void * pNext = {};
56109     VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne = {};
56110 
56111   };
56112 
56113   template <>
56114   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClampZeroOneFeaturesEXT>
56115   {
56116     using Type = PhysicalDeviceDepthClampZeroOneFeaturesEXT;
56117   };
56118 
56119   struct PhysicalDeviceDepthClipControlFeaturesEXT
56120   {
56121     using NativeType = VkPhysicalDeviceDepthClipControlFeaturesEXT;
56122 
56123     static const bool allowDuplicate = false;
56124     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipControlFeaturesEXT;
56125 
56126 
56127 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthClipControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT56128 VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClipControl_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
56129     : pNext( pNext_ ), depthClipControl( depthClipControl_ )
56130     {}
56131 
56132     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipControlFeaturesEXT( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56133 
PhysicalDeviceDepthClipControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT56134     PhysicalDeviceDepthClipControlFeaturesEXT( VkPhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56135       : PhysicalDeviceDepthClipControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClipControlFeaturesEXT const *>( &rhs ) )
56136     {}
56137 
56138 
56139     PhysicalDeviceDepthClipControlFeaturesEXT & operator=( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56140 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
56141 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT56142     PhysicalDeviceDepthClipControlFeaturesEXT & operator=( VkPhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56143     {
56144       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT const *>( &rhs );
56145       return *this;
56146     }
56147 
56148 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT56149     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
56150     {
56151       pNext = pNext_;
56152       return *this;
56153     }
56154 
setDepthClipControlVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT56155     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipControlFeaturesEXT & setDepthClipControl( VULKAN_HPP_NAMESPACE::Bool32 depthClipControl_ ) VULKAN_HPP_NOEXCEPT
56156     {
56157       depthClipControl = depthClipControl_;
56158       return *this;
56159     }
56160 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
56161 
56162 
operator VkPhysicalDeviceDepthClipControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT56163     operator VkPhysicalDeviceDepthClipControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
56164     {
56165       return *reinterpret_cast<const VkPhysicalDeviceDepthClipControlFeaturesEXT*>( this );
56166     }
56167 
operator VkPhysicalDeviceDepthClipControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT56168     operator VkPhysicalDeviceDepthClipControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
56169     {
56170       return *reinterpret_cast<VkPhysicalDeviceDepthClipControlFeaturesEXT*>( this );
56171     }
56172 
56173 #if defined( VULKAN_HPP_USE_REFLECT )
56174 #if 14 <= VULKAN_HPP_CPP_VERSION
56175     auto
56176 #else
56177     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
56178 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT56179       reflect() const VULKAN_HPP_NOEXCEPT
56180     {
56181       return std::tie( sType, pNext, depthClipControl );
56182     }
56183 #endif
56184 
56185 
56186 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56187 auto operator<=>( PhysicalDeviceDepthClipControlFeaturesEXT const & ) const = default;
56188 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT56189     bool operator==( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56190     {
56191 #if defined( VULKAN_HPP_USE_REFLECT )
56192       return this->reflect() == rhs.reflect();
56193 #else
56194       return ( sType == rhs.sType )
56195           && ( pNext == rhs.pNext )
56196           && ( depthClipControl == rhs.depthClipControl );
56197 #endif
56198     }
56199 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT56200     bool operator!=( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56201     {
56202       return !operator==( rhs );
56203     }
56204 #endif
56205 
56206     public:
56207     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipControlFeaturesEXT;
56208     void * pNext = {};
56209     VULKAN_HPP_NAMESPACE::Bool32 depthClipControl = {};
56210 
56211   };
56212 
56213   template <>
56214   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipControlFeaturesEXT>
56215   {
56216     using Type = PhysicalDeviceDepthClipControlFeaturesEXT;
56217   };
56218 
56219   struct PhysicalDeviceDepthClipEnableFeaturesEXT
56220   {
56221     using NativeType = VkPhysicalDeviceDepthClipEnableFeaturesEXT;
56222 
56223     static const bool allowDuplicate = false;
56224     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
56225 
56226 
56227 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT56228 VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
56229     : pNext( pNext_ ), depthClipEnable( depthClipEnable_ )
56230     {}
56231 
56232     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56233 
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT56234     PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56235       : PhysicalDeviceDepthClipEnableFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs ) )
56236     {}
56237 
56238 
56239     PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56240 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
56241 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT56242     PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56243     {
56244       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs );
56245       return *this;
56246     }
56247 
56248 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT56249     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
56250     {
56251       pNext = pNext_;
56252       return *this;
56253     }
56254 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT56255     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
56256     {
56257       depthClipEnable = depthClipEnable_;
56258       return *this;
56259     }
56260 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
56261 
56262 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT56263     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
56264     {
56265       return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
56266     }
56267 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT56268     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
56269     {
56270       return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
56271     }
56272 
56273 #if defined( VULKAN_HPP_USE_REFLECT )
56274 #if 14 <= VULKAN_HPP_CPP_VERSION
56275     auto
56276 #else
56277     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
56278 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT56279       reflect() const VULKAN_HPP_NOEXCEPT
56280     {
56281       return std::tie( sType, pNext, depthClipEnable );
56282     }
56283 #endif
56284 
56285 
56286 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56287 auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const & ) const = default;
56288 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT56289     bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56290     {
56291 #if defined( VULKAN_HPP_USE_REFLECT )
56292       return this->reflect() == rhs.reflect();
56293 #else
56294       return ( sType == rhs.sType )
56295           && ( pNext == rhs.pNext )
56296           && ( depthClipEnable == rhs.depthClipEnable );
56297 #endif
56298     }
56299 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT56300     bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56301     {
56302       return !operator==( rhs );
56303     }
56304 #endif
56305 
56306     public:
56307     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
56308     void * pNext = {};
56309     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
56310 
56311   };
56312 
56313   template <>
56314   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT>
56315   {
56316     using Type = PhysicalDeviceDepthClipEnableFeaturesEXT;
56317   };
56318 
56319   struct PhysicalDeviceDepthStencilResolveProperties
56320   {
56321     using NativeType = VkPhysicalDeviceDepthStencilResolveProperties;
56322 
56323     static const bool allowDuplicate = false;
56324     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
56325 
56326 
56327 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties56328 VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties(VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
56329     : pNext( pNext_ ), supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ )
56330     {}
56331 
56332     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56333 
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties56334     PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56335       : PhysicalDeviceDepthStencilResolveProperties( *reinterpret_cast<PhysicalDeviceDepthStencilResolveProperties const *>( &rhs ) )
56336     {}
56337 
56338 
56339     PhysicalDeviceDepthStencilResolveProperties & operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56340 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
56341 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties56342     PhysicalDeviceDepthStencilResolveProperties & operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
56343     {
56344       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const *>( &rhs );
56345       return *this;
56346     }
56347 
56348 
operator VkPhysicalDeviceDepthStencilResolveProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties56349     operator VkPhysicalDeviceDepthStencilResolveProperties const &() const VULKAN_HPP_NOEXCEPT
56350     {
56351       return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>( this );
56352     }
56353 
operator VkPhysicalDeviceDepthStencilResolveProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties56354     operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT
56355     {
56356       return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>( this );
56357     }
56358 
56359 #if defined( VULKAN_HPP_USE_REFLECT )
56360 #if 14 <= VULKAN_HPP_CPP_VERSION
56361     auto
56362 #else
56363     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ResolveModeFlags const &, VULKAN_HPP_NAMESPACE::ResolveModeFlags const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
56364 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties56365       reflect() const VULKAN_HPP_NOEXCEPT
56366     {
56367       return std::tie( sType, pNext, supportedDepthResolveModes, supportedStencilResolveModes, independentResolveNone, independentResolve );
56368     }
56369 #endif
56370 
56371 
56372 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56373 auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const & ) const = default;
56374 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties56375     bool operator==( PhysicalDeviceDepthStencilResolveProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
56376     {
56377 #if defined( VULKAN_HPP_USE_REFLECT )
56378       return this->reflect() == rhs.reflect();
56379 #else
56380       return ( sType == rhs.sType )
56381           && ( pNext == rhs.pNext )
56382           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
56383           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
56384           && ( independentResolveNone == rhs.independentResolveNone )
56385           && ( independentResolve == rhs.independentResolve );
56386 #endif
56387     }
56388 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties56389     bool operator!=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
56390     {
56391       return !operator==( rhs );
56392     }
56393 #endif
56394 
56395     public:
56396     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
56397     void * pNext = {};
56398     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
56399     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
56400     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
56401     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
56402 
56403   };
56404 
56405   template <>
56406   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthStencilResolveProperties>
56407   {
56408     using Type = PhysicalDeviceDepthStencilResolveProperties;
56409   };
56410   using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
56411 
56412   struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
56413   {
56414     using NativeType = VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
56415 
56416     static const bool allowDuplicate = false;
56417     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
56418 
56419 
56420 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorBufferDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT56421 VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(size_t combinedImageSamplerDensityMapDescriptorSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
56422     : pNext( pNext_ ), combinedImageSamplerDensityMapDescriptorSize( combinedImageSamplerDensityMapDescriptorSize_ )
56423     {}
56424 
56425     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT( PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56426 
PhysicalDeviceDescriptorBufferDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT56427     PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT( VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56428       : PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT( *reinterpret_cast<PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const *>( &rhs ) )
56429     {}
56430 
56431 
56432     PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT & operator=( PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56433 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
56434 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT56435     PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT & operator=( VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56436     {
56437       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const *>( &rhs );
56438       return *this;
56439     }
56440 
56441 
operator VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT56442     operator VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
56443     {
56444       return *reinterpret_cast<const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT*>( this );
56445     }
56446 
operator VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT56447     operator VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
56448     {
56449       return *reinterpret_cast<VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT*>( this );
56450     }
56451 
56452 #if defined( VULKAN_HPP_USE_REFLECT )
56453 #if 14 <= VULKAN_HPP_CPP_VERSION
56454     auto
56455 #else
56456     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, size_t const &>
56457 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT56458       reflect() const VULKAN_HPP_NOEXCEPT
56459     {
56460       return std::tie( sType, pNext, combinedImageSamplerDensityMapDescriptorSize );
56461     }
56462 #endif
56463 
56464 
56465 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56466 auto operator<=>( PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & ) const = default;
56467 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT56468     bool operator==( PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56469     {
56470 #if defined( VULKAN_HPP_USE_REFLECT )
56471       return this->reflect() == rhs.reflect();
56472 #else
56473       return ( sType == rhs.sType )
56474           && ( pNext == rhs.pNext )
56475           && ( combinedImageSamplerDensityMapDescriptorSize == rhs.combinedImageSamplerDensityMapDescriptorSize );
56476 #endif
56477     }
56478 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT56479     bool operator!=( PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56480     {
56481       return !operator==( rhs );
56482     }
56483 #endif
56484 
56485     public:
56486     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
56487     void * pNext = {};
56488     size_t combinedImageSamplerDensityMapDescriptorSize = {};
56489 
56490   };
56491 
56492   template <>
56493   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorBufferDensityMapPropertiesEXT>
56494   {
56495     using Type = PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
56496   };
56497 
56498   struct PhysicalDeviceDescriptorBufferFeaturesEXT
56499   {
56500     using NativeType = VkPhysicalDeviceDescriptorBufferFeaturesEXT;
56501 
56502     static const bool allowDuplicate = false;
56503     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorBufferFeaturesEXT;
56504 
56505 
56506 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorBufferFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56507 VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 descriptorBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferImageLayoutIgnored_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferPushDescriptors_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
56508     : pNext( pNext_ ), descriptorBuffer( descriptorBuffer_ ), descriptorBufferCaptureReplay( descriptorBufferCaptureReplay_ ), descriptorBufferImageLayoutIgnored( descriptorBufferImageLayoutIgnored_ ), descriptorBufferPushDescriptors( descriptorBufferPushDescriptors_ )
56509     {}
56510 
56511     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferFeaturesEXT( PhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56512 
PhysicalDeviceDescriptorBufferFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56513     PhysicalDeviceDescriptorBufferFeaturesEXT( VkPhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56514       : PhysicalDeviceDescriptorBufferFeaturesEXT( *reinterpret_cast<PhysicalDeviceDescriptorBufferFeaturesEXT const *>( &rhs ) )
56515     {}
56516 
56517 
56518     PhysicalDeviceDescriptorBufferFeaturesEXT & operator=( PhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56519 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
56520 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56521     PhysicalDeviceDescriptorBufferFeaturesEXT & operator=( VkPhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56522     {
56523       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT const *>( &rhs );
56524       return *this;
56525     }
56526 
56527 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56528     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
56529     {
56530       pNext = pNext_;
56531       return *this;
56532     }
56533 
setDescriptorBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56534     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT & setDescriptorBuffer( VULKAN_HPP_NAMESPACE::Bool32 descriptorBuffer_ ) VULKAN_HPP_NOEXCEPT
56535     {
56536       descriptorBuffer = descriptorBuffer_;
56537       return *this;
56538     }
56539 
setDescriptorBufferCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56540     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT & setDescriptorBufferCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
56541     {
56542       descriptorBufferCaptureReplay = descriptorBufferCaptureReplay_;
56543       return *this;
56544     }
56545 
setDescriptorBufferImageLayoutIgnoredVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56546     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT & setDescriptorBufferImageLayoutIgnored( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferImageLayoutIgnored_ ) VULKAN_HPP_NOEXCEPT
56547     {
56548       descriptorBufferImageLayoutIgnored = descriptorBufferImageLayoutIgnored_;
56549       return *this;
56550     }
56551 
setDescriptorBufferPushDescriptorsVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56552     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT & setDescriptorBufferPushDescriptors( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferPushDescriptors_ ) VULKAN_HPP_NOEXCEPT
56553     {
56554       descriptorBufferPushDescriptors = descriptorBufferPushDescriptors_;
56555       return *this;
56556     }
56557 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
56558 
56559 
operator VkPhysicalDeviceDescriptorBufferFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56560     operator VkPhysicalDeviceDescriptorBufferFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
56561     {
56562       return *reinterpret_cast<const VkPhysicalDeviceDescriptorBufferFeaturesEXT*>( this );
56563     }
56564 
operator VkPhysicalDeviceDescriptorBufferFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56565     operator VkPhysicalDeviceDescriptorBufferFeaturesEXT &() VULKAN_HPP_NOEXCEPT
56566     {
56567       return *reinterpret_cast<VkPhysicalDeviceDescriptorBufferFeaturesEXT*>( this );
56568     }
56569 
56570 #if defined( VULKAN_HPP_USE_REFLECT )
56571 #if 14 <= VULKAN_HPP_CPP_VERSION
56572     auto
56573 #else
56574     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
56575 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56576       reflect() const VULKAN_HPP_NOEXCEPT
56577     {
56578       return std::tie( sType, pNext, descriptorBuffer, descriptorBufferCaptureReplay, descriptorBufferImageLayoutIgnored, descriptorBufferPushDescriptors );
56579     }
56580 #endif
56581 
56582 
56583 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56584 auto operator<=>( PhysicalDeviceDescriptorBufferFeaturesEXT const & ) const = default;
56585 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56586     bool operator==( PhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56587     {
56588 #if defined( VULKAN_HPP_USE_REFLECT )
56589       return this->reflect() == rhs.reflect();
56590 #else
56591       return ( sType == rhs.sType )
56592           && ( pNext == rhs.pNext )
56593           && ( descriptorBuffer == rhs.descriptorBuffer )
56594           && ( descriptorBufferCaptureReplay == rhs.descriptorBufferCaptureReplay )
56595           && ( descriptorBufferImageLayoutIgnored == rhs.descriptorBufferImageLayoutIgnored )
56596           && ( descriptorBufferPushDescriptors == rhs.descriptorBufferPushDescriptors );
56597 #endif
56598     }
56599 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT56600     bool operator!=( PhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56601     {
56602       return !operator==( rhs );
56603     }
56604 #endif
56605 
56606     public:
56607     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorBufferFeaturesEXT;
56608     void * pNext = {};
56609     VULKAN_HPP_NAMESPACE::Bool32 descriptorBuffer = {};
56610     VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferCaptureReplay = {};
56611     VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferImageLayoutIgnored = {};
56612     VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferPushDescriptors = {};
56613 
56614   };
56615 
56616   template <>
56617   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorBufferFeaturesEXT>
56618   {
56619     using Type = PhysicalDeviceDescriptorBufferFeaturesEXT;
56620   };
56621 
56622   struct PhysicalDeviceDescriptorBufferPropertiesEXT
56623   {
56624     using NativeType = VkPhysicalDeviceDescriptorBufferPropertiesEXT;
56625 
56626     static const bool allowDuplicate = false;
56627     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorBufferPropertiesEXT;
56628 
56629 
56630 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorBufferPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT56631 VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 combinedImageSamplerDescriptorSingleArray_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferlessPushDescriptors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 allowSamplerImageViewPostSubmitCreation_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize descriptorBufferOffsetAlignment_ = {}, uint32_t maxDescriptorBufferBindings_ = {}, uint32_t maxResourceDescriptorBufferBindings_ = {}, uint32_t maxSamplerDescriptorBufferBindings_ = {}, uint32_t maxEmbeddedImmutableSamplerBindings_ = {}, uint32_t maxEmbeddedImmutableSamplers_ = {}, size_t bufferCaptureReplayDescriptorDataSize_ = {}, size_t imageCaptureReplayDescriptorDataSize_ = {}, size_t imageViewCaptureReplayDescriptorDataSize_ = {}, size_t samplerCaptureReplayDescriptorDataSize_ = {}, size_t accelerationStructureCaptureReplayDescriptorDataSize_ = {}, size_t samplerDescriptorSize_ = {}, size_t combinedImageSamplerDescriptorSize_ = {}, size_t sampledImageDescriptorSize_ = {}, size_t storageImageDescriptorSize_ = {}, size_t uniformTexelBufferDescriptorSize_ = {}, size_t robustUniformTexelBufferDescriptorSize_ = {}, size_t storageTexelBufferDescriptorSize_ = {}, size_t robustStorageTexelBufferDescriptorSize_ = {}, size_t uniformBufferDescriptorSize_ = {}, size_t robustUniformBufferDescriptorSize_ = {}, size_t storageBufferDescriptorSize_ = {}, size_t robustStorageBufferDescriptorSize_ = {}, size_t inputAttachmentDescriptorSize_ = {}, size_t accelerationStructureDescriptorSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxSamplerDescriptorBufferRange_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxResourceDescriptorBufferRange_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize samplerDescriptorBufferAddressSpaceSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize resourceDescriptorBufferAddressSpaceSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize descriptorBufferAddressSpaceSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
56632     : pNext( pNext_ ), combinedImageSamplerDescriptorSingleArray( combinedImageSamplerDescriptorSingleArray_ ), bufferlessPushDescriptors( bufferlessPushDescriptors_ ), allowSamplerImageViewPostSubmitCreation( allowSamplerImageViewPostSubmitCreation_ ), descriptorBufferOffsetAlignment( descriptorBufferOffsetAlignment_ ), maxDescriptorBufferBindings( maxDescriptorBufferBindings_ ), maxResourceDescriptorBufferBindings( maxResourceDescriptorBufferBindings_ ), maxSamplerDescriptorBufferBindings( maxSamplerDescriptorBufferBindings_ ), maxEmbeddedImmutableSamplerBindings( maxEmbeddedImmutableSamplerBindings_ ), maxEmbeddedImmutableSamplers( maxEmbeddedImmutableSamplers_ ), bufferCaptureReplayDescriptorDataSize( bufferCaptureReplayDescriptorDataSize_ ), imageCaptureReplayDescriptorDataSize( imageCaptureReplayDescriptorDataSize_ ), imageViewCaptureReplayDescriptorDataSize( imageViewCaptureReplayDescriptorDataSize_ ), samplerCaptureReplayDescriptorDataSize( samplerCaptureReplayDescriptorDataSize_ ), accelerationStructureCaptureReplayDescriptorDataSize( accelerationStructureCaptureReplayDescriptorDataSize_ ), samplerDescriptorSize( samplerDescriptorSize_ ), combinedImageSamplerDescriptorSize( combinedImageSamplerDescriptorSize_ ), sampledImageDescriptorSize( sampledImageDescriptorSize_ ), storageImageDescriptorSize( storageImageDescriptorSize_ ), uniformTexelBufferDescriptorSize( uniformTexelBufferDescriptorSize_ ), robustUniformTexelBufferDescriptorSize( robustUniformTexelBufferDescriptorSize_ ), storageTexelBufferDescriptorSize( storageTexelBufferDescriptorSize_ ), robustStorageTexelBufferDescriptorSize( robustStorageTexelBufferDescriptorSize_ ), uniformBufferDescriptorSize( uniformBufferDescriptorSize_ ), robustUniformBufferDescriptorSize( robustUniformBufferDescriptorSize_ ), storageBufferDescriptorSize( storageBufferDescriptorSize_ ), robustStorageBufferDescriptorSize( robustStorageBufferDescriptorSize_ ), inputAttachmentDescriptorSize( inputAttachmentDescriptorSize_ ), accelerationStructureDescriptorSize( accelerationStructureDescriptorSize_ ), maxSamplerDescriptorBufferRange( maxSamplerDescriptorBufferRange_ ), maxResourceDescriptorBufferRange( maxResourceDescriptorBufferRange_ ), samplerDescriptorBufferAddressSpaceSize( samplerDescriptorBufferAddressSpaceSize_ ), resourceDescriptorBufferAddressSpaceSize( resourceDescriptorBufferAddressSpaceSize_ ), descriptorBufferAddressSpaceSize( descriptorBufferAddressSpaceSize_ )
56633     {}
56634 
56635     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferPropertiesEXT( PhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56636 
PhysicalDeviceDescriptorBufferPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT56637     PhysicalDeviceDescriptorBufferPropertiesEXT( VkPhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56638       : PhysicalDeviceDescriptorBufferPropertiesEXT( *reinterpret_cast<PhysicalDeviceDescriptorBufferPropertiesEXT const *>( &rhs ) )
56639     {}
56640 
56641 
56642     PhysicalDeviceDescriptorBufferPropertiesEXT & operator=( PhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56643 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
56644 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT56645     PhysicalDeviceDescriptorBufferPropertiesEXT & operator=( VkPhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56646     {
56647       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT const *>( &rhs );
56648       return *this;
56649     }
56650 
56651 
operator VkPhysicalDeviceDescriptorBufferPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT56652     operator VkPhysicalDeviceDescriptorBufferPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
56653     {
56654       return *reinterpret_cast<const VkPhysicalDeviceDescriptorBufferPropertiesEXT*>( this );
56655     }
56656 
operator VkPhysicalDeviceDescriptorBufferPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT56657     operator VkPhysicalDeviceDescriptorBufferPropertiesEXT &() VULKAN_HPP_NOEXCEPT
56658     {
56659       return *reinterpret_cast<VkPhysicalDeviceDescriptorBufferPropertiesEXT*>( this );
56660     }
56661 
56662 #if defined( VULKAN_HPP_USE_REFLECT )
56663 #if 14 <= VULKAN_HPP_CPP_VERSION
56664     auto
56665 #else
56666     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, size_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
56667 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT56668       reflect() const VULKAN_HPP_NOEXCEPT
56669     {
56670       return std::tie( sType, pNext, combinedImageSamplerDescriptorSingleArray, bufferlessPushDescriptors, allowSamplerImageViewPostSubmitCreation, descriptorBufferOffsetAlignment, maxDescriptorBufferBindings, maxResourceDescriptorBufferBindings, maxSamplerDescriptorBufferBindings, maxEmbeddedImmutableSamplerBindings, maxEmbeddedImmutableSamplers, bufferCaptureReplayDescriptorDataSize, imageCaptureReplayDescriptorDataSize, imageViewCaptureReplayDescriptorDataSize, samplerCaptureReplayDescriptorDataSize, accelerationStructureCaptureReplayDescriptorDataSize, samplerDescriptorSize, combinedImageSamplerDescriptorSize, sampledImageDescriptorSize, storageImageDescriptorSize, uniformTexelBufferDescriptorSize, robustUniformTexelBufferDescriptorSize, storageTexelBufferDescriptorSize, robustStorageTexelBufferDescriptorSize, uniformBufferDescriptorSize, robustUniformBufferDescriptorSize, storageBufferDescriptorSize, robustStorageBufferDescriptorSize, inputAttachmentDescriptorSize, accelerationStructureDescriptorSize, maxSamplerDescriptorBufferRange, maxResourceDescriptorBufferRange, samplerDescriptorBufferAddressSpaceSize, resourceDescriptorBufferAddressSpaceSize, descriptorBufferAddressSpaceSize );
56671     }
56672 #endif
56673 
56674 
56675 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56676 auto operator<=>( PhysicalDeviceDescriptorBufferPropertiesEXT const & ) const = default;
56677 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT56678     bool operator==( PhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56679     {
56680 #if defined( VULKAN_HPP_USE_REFLECT )
56681       return this->reflect() == rhs.reflect();
56682 #else
56683       return ( sType == rhs.sType )
56684           && ( pNext == rhs.pNext )
56685           && ( combinedImageSamplerDescriptorSingleArray == rhs.combinedImageSamplerDescriptorSingleArray )
56686           && ( bufferlessPushDescriptors == rhs.bufferlessPushDescriptors )
56687           && ( allowSamplerImageViewPostSubmitCreation == rhs.allowSamplerImageViewPostSubmitCreation )
56688           && ( descriptorBufferOffsetAlignment == rhs.descriptorBufferOffsetAlignment )
56689           && ( maxDescriptorBufferBindings == rhs.maxDescriptorBufferBindings )
56690           && ( maxResourceDescriptorBufferBindings == rhs.maxResourceDescriptorBufferBindings )
56691           && ( maxSamplerDescriptorBufferBindings == rhs.maxSamplerDescriptorBufferBindings )
56692           && ( maxEmbeddedImmutableSamplerBindings == rhs.maxEmbeddedImmutableSamplerBindings )
56693           && ( maxEmbeddedImmutableSamplers == rhs.maxEmbeddedImmutableSamplers )
56694           && ( bufferCaptureReplayDescriptorDataSize == rhs.bufferCaptureReplayDescriptorDataSize )
56695           && ( imageCaptureReplayDescriptorDataSize == rhs.imageCaptureReplayDescriptorDataSize )
56696           && ( imageViewCaptureReplayDescriptorDataSize == rhs.imageViewCaptureReplayDescriptorDataSize )
56697           && ( samplerCaptureReplayDescriptorDataSize == rhs.samplerCaptureReplayDescriptorDataSize )
56698           && ( accelerationStructureCaptureReplayDescriptorDataSize == rhs.accelerationStructureCaptureReplayDescriptorDataSize )
56699           && ( samplerDescriptorSize == rhs.samplerDescriptorSize )
56700           && ( combinedImageSamplerDescriptorSize == rhs.combinedImageSamplerDescriptorSize )
56701           && ( sampledImageDescriptorSize == rhs.sampledImageDescriptorSize )
56702           && ( storageImageDescriptorSize == rhs.storageImageDescriptorSize )
56703           && ( uniformTexelBufferDescriptorSize == rhs.uniformTexelBufferDescriptorSize )
56704           && ( robustUniformTexelBufferDescriptorSize == rhs.robustUniformTexelBufferDescriptorSize )
56705           && ( storageTexelBufferDescriptorSize == rhs.storageTexelBufferDescriptorSize )
56706           && ( robustStorageTexelBufferDescriptorSize == rhs.robustStorageTexelBufferDescriptorSize )
56707           && ( uniformBufferDescriptorSize == rhs.uniformBufferDescriptorSize )
56708           && ( robustUniformBufferDescriptorSize == rhs.robustUniformBufferDescriptorSize )
56709           && ( storageBufferDescriptorSize == rhs.storageBufferDescriptorSize )
56710           && ( robustStorageBufferDescriptorSize == rhs.robustStorageBufferDescriptorSize )
56711           && ( inputAttachmentDescriptorSize == rhs.inputAttachmentDescriptorSize )
56712           && ( accelerationStructureDescriptorSize == rhs.accelerationStructureDescriptorSize )
56713           && ( maxSamplerDescriptorBufferRange == rhs.maxSamplerDescriptorBufferRange )
56714           && ( maxResourceDescriptorBufferRange == rhs.maxResourceDescriptorBufferRange )
56715           && ( samplerDescriptorBufferAddressSpaceSize == rhs.samplerDescriptorBufferAddressSpaceSize )
56716           && ( resourceDescriptorBufferAddressSpaceSize == rhs.resourceDescriptorBufferAddressSpaceSize )
56717           && ( descriptorBufferAddressSpaceSize == rhs.descriptorBufferAddressSpaceSize );
56718 #endif
56719     }
56720 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT56721     bool operator!=( PhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
56722     {
56723       return !operator==( rhs );
56724     }
56725 #endif
56726 
56727     public:
56728     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorBufferPropertiesEXT;
56729     void * pNext = {};
56730     VULKAN_HPP_NAMESPACE::Bool32 combinedImageSamplerDescriptorSingleArray = {};
56731     VULKAN_HPP_NAMESPACE::Bool32 bufferlessPushDescriptors = {};
56732     VULKAN_HPP_NAMESPACE::Bool32 allowSamplerImageViewPostSubmitCreation = {};
56733     VULKAN_HPP_NAMESPACE::DeviceSize descriptorBufferOffsetAlignment = {};
56734     uint32_t maxDescriptorBufferBindings = {};
56735     uint32_t maxResourceDescriptorBufferBindings = {};
56736     uint32_t maxSamplerDescriptorBufferBindings = {};
56737     uint32_t maxEmbeddedImmutableSamplerBindings = {};
56738     uint32_t maxEmbeddedImmutableSamplers = {};
56739     size_t bufferCaptureReplayDescriptorDataSize = {};
56740     size_t imageCaptureReplayDescriptorDataSize = {};
56741     size_t imageViewCaptureReplayDescriptorDataSize = {};
56742     size_t samplerCaptureReplayDescriptorDataSize = {};
56743     size_t accelerationStructureCaptureReplayDescriptorDataSize = {};
56744     size_t samplerDescriptorSize = {};
56745     size_t combinedImageSamplerDescriptorSize = {};
56746     size_t sampledImageDescriptorSize = {};
56747     size_t storageImageDescriptorSize = {};
56748     size_t uniformTexelBufferDescriptorSize = {};
56749     size_t robustUniformTexelBufferDescriptorSize = {};
56750     size_t storageTexelBufferDescriptorSize = {};
56751     size_t robustStorageTexelBufferDescriptorSize = {};
56752     size_t uniformBufferDescriptorSize = {};
56753     size_t robustUniformBufferDescriptorSize = {};
56754     size_t storageBufferDescriptorSize = {};
56755     size_t robustStorageBufferDescriptorSize = {};
56756     size_t inputAttachmentDescriptorSize = {};
56757     size_t accelerationStructureDescriptorSize = {};
56758     VULKAN_HPP_NAMESPACE::DeviceSize maxSamplerDescriptorBufferRange = {};
56759     VULKAN_HPP_NAMESPACE::DeviceSize maxResourceDescriptorBufferRange = {};
56760     VULKAN_HPP_NAMESPACE::DeviceSize samplerDescriptorBufferAddressSpaceSize = {};
56761     VULKAN_HPP_NAMESPACE::DeviceSize resourceDescriptorBufferAddressSpaceSize = {};
56762     VULKAN_HPP_NAMESPACE::DeviceSize descriptorBufferAddressSpaceSize = {};
56763 
56764   };
56765 
56766   template <>
56767   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorBufferPropertiesEXT>
56768   {
56769     using Type = PhysicalDeviceDescriptorBufferPropertiesEXT;
56770   };
56771 
56772   struct PhysicalDeviceDescriptorIndexingFeatures
56773   {
56774     using NativeType = VkPhysicalDeviceDescriptorIndexingFeatures;
56775 
56776     static const bool allowDuplicate = false;
56777     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
56778 
56779 
56780 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56781 VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
56782     : pNext( pNext_ ), shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ), shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ), shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ), shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ), shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ), shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ), shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ), shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ), shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ), shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ), descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ), descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ), descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ), descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ), descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ), descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ), descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ), descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ), descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ), runtimeDescriptorArray( runtimeDescriptorArray_ )
56783     {}
56784 
56785     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56786 
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56787     PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
56788       : PhysicalDeviceDescriptorIndexingFeatures( *reinterpret_cast<PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs ) )
56789     {}
56790 
56791 
56792     PhysicalDeviceDescriptorIndexingFeatures & operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56793 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
56794 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56795     PhysicalDeviceDescriptorIndexingFeatures & operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
56796     {
56797       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs );
56798       return *this;
56799     }
56800 
56801 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56802     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
56803     {
56804       pNext = pNext_;
56805       return *this;
56806     }
56807 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56808     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
56809     {
56810       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
56811       return *this;
56812     }
56813 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56814     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
56815     {
56816       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
56817       return *this;
56818     }
56819 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56820     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
56821     {
56822       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
56823       return *this;
56824     }
56825 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56826     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
56827     {
56828       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
56829       return *this;
56830     }
56831 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56832     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
56833     {
56834       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
56835       return *this;
56836     }
56837 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56838     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
56839     {
56840       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
56841       return *this;
56842     }
56843 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56844     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
56845     {
56846       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
56847       return *this;
56848     }
56849 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56850     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
56851     {
56852       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
56853       return *this;
56854     }
56855 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56856     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
56857     {
56858       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
56859       return *this;
56860     }
56861 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56862     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
56863     {
56864       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
56865       return *this;
56866     }
56867 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56868     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
56869     {
56870       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
56871       return *this;
56872     }
56873 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56874     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
56875     {
56876       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
56877       return *this;
56878     }
56879 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56880     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
56881     {
56882       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
56883       return *this;
56884     }
56885 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56886     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
56887     {
56888       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
56889       return *this;
56890     }
56891 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56892     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
56893     {
56894       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
56895       return *this;
56896     }
56897 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56898     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
56899     {
56900       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
56901       return *this;
56902     }
56903 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56904     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
56905     {
56906       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
56907       return *this;
56908     }
56909 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56910     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
56911     {
56912       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
56913       return *this;
56914     }
56915 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56916     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
56917     {
56918       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
56919       return *this;
56920     }
56921 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56922     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
56923     {
56924       runtimeDescriptorArray = runtimeDescriptorArray_;
56925       return *this;
56926     }
56927 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
56928 
56929 
operator VkPhysicalDeviceDescriptorIndexingFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56930     operator VkPhysicalDeviceDescriptorIndexingFeatures const &() const VULKAN_HPP_NOEXCEPT
56931     {
56932       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
56933     }
56934 
operator VkPhysicalDeviceDescriptorIndexingFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56935     operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT
56936     {
56937       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
56938     }
56939 
56940 #if defined( VULKAN_HPP_USE_REFLECT )
56941 #if 14 <= VULKAN_HPP_CPP_VERSION
56942     auto
56943 #else
56944     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
56945 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56946       reflect() const VULKAN_HPP_NOEXCEPT
56947     {
56948       return std::tie( sType, pNext, shaderInputAttachmentArrayDynamicIndexing, shaderUniformTexelBufferArrayDynamicIndexing, shaderStorageTexelBufferArrayDynamicIndexing, shaderUniformBufferArrayNonUniformIndexing, shaderSampledImageArrayNonUniformIndexing, shaderStorageBufferArrayNonUniformIndexing, shaderStorageImageArrayNonUniformIndexing, shaderInputAttachmentArrayNonUniformIndexing, shaderUniformTexelBufferArrayNonUniformIndexing, shaderStorageTexelBufferArrayNonUniformIndexing, descriptorBindingUniformBufferUpdateAfterBind, descriptorBindingSampledImageUpdateAfterBind, descriptorBindingStorageImageUpdateAfterBind, descriptorBindingStorageBufferUpdateAfterBind, descriptorBindingUniformTexelBufferUpdateAfterBind, descriptorBindingStorageTexelBufferUpdateAfterBind, descriptorBindingUpdateUnusedWhilePending, descriptorBindingPartiallyBound, descriptorBindingVariableDescriptorCount, runtimeDescriptorArray );
56949     }
56950 #endif
56951 
56952 
56953 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56954 auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const & ) const = default;
56955 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56956     bool operator==( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
56957     {
56958 #if defined( VULKAN_HPP_USE_REFLECT )
56959       return this->reflect() == rhs.reflect();
56960 #else
56961       return ( sType == rhs.sType )
56962           && ( pNext == rhs.pNext )
56963           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
56964           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
56965           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
56966           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
56967           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
56968           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
56969           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
56970           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
56971           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
56972           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
56973           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
56974           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
56975           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
56976           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
56977           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
56978           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
56979           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
56980           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
56981           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
56982           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray );
56983 #endif
56984     }
56985 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures56986     bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
56987     {
56988       return !operator==( rhs );
56989     }
56990 #endif
56991 
56992     public:
56993     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
56994     void * pNext = {};
56995     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
56996     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
56997     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
56998     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
56999     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
57000     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
57001     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
57002     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
57003     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
57004     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
57005     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
57006     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
57007     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
57008     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
57009     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
57010     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
57011     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
57012     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
57013     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
57014     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
57015 
57016   };
57017 
57018   template <>
57019   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingFeatures>
57020   {
57021     using Type = PhysicalDeviceDescriptorIndexingFeatures;
57022   };
57023   using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
57024 
57025   struct PhysicalDeviceDescriptorIndexingProperties
57026   {
57027     using NativeType = VkPhysicalDeviceDescriptorIndexingProperties;
57028 
57029     static const bool allowDuplicate = false;
57030     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
57031 
57032 
57033 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties57034 VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties(uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, uint32_t maxPerStageUpdateAfterBindResources_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
57035     : pNext( pNext_ ), maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ), shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ), shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ), shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ), shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ), shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ), robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ), quadDivergentImplicitLod( quadDivergentImplicitLod_ ), maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ), maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ), maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ), maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ), maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ), maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ), maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ), maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ), maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ), maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ), maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ), maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ), maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
57036     {}
57037 
57038     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57039 
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties57040     PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57041       : PhysicalDeviceDescriptorIndexingProperties( *reinterpret_cast<PhysicalDeviceDescriptorIndexingProperties const *>( &rhs ) )
57042     {}
57043 
57044 
57045     PhysicalDeviceDescriptorIndexingProperties & operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57046 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
57047 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties57048     PhysicalDeviceDescriptorIndexingProperties & operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57049     {
57050       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const *>( &rhs );
57051       return *this;
57052     }
57053 
57054 
operator VkPhysicalDeviceDescriptorIndexingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties57055     operator VkPhysicalDeviceDescriptorIndexingProperties const &() const VULKAN_HPP_NOEXCEPT
57056     {
57057       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>( this );
57058     }
57059 
operator VkPhysicalDeviceDescriptorIndexingProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties57060     operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT
57061     {
57062       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>( this );
57063     }
57064 
57065 #if defined( VULKAN_HPP_USE_REFLECT )
57066 #if 14 <= VULKAN_HPP_CPP_VERSION
57067     auto
57068 #else
57069     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
57070 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties57071       reflect() const VULKAN_HPP_NOEXCEPT
57072     {
57073       return std::tie( sType, pNext, maxUpdateAfterBindDescriptorsInAllPools, shaderUniformBufferArrayNonUniformIndexingNative, shaderSampledImageArrayNonUniformIndexingNative, shaderStorageBufferArrayNonUniformIndexingNative, shaderStorageImageArrayNonUniformIndexingNative, shaderInputAttachmentArrayNonUniformIndexingNative, robustBufferAccessUpdateAfterBind, quadDivergentImplicitLod, maxPerStageDescriptorUpdateAfterBindSamplers, maxPerStageDescriptorUpdateAfterBindUniformBuffers, maxPerStageDescriptorUpdateAfterBindStorageBuffers, maxPerStageDescriptorUpdateAfterBindSampledImages, maxPerStageDescriptorUpdateAfterBindStorageImages, maxPerStageDescriptorUpdateAfterBindInputAttachments, maxPerStageUpdateAfterBindResources, maxDescriptorSetUpdateAfterBindSamplers, maxDescriptorSetUpdateAfterBindUniformBuffers, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, maxDescriptorSetUpdateAfterBindStorageBuffers, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, maxDescriptorSetUpdateAfterBindSampledImages, maxDescriptorSetUpdateAfterBindStorageImages, maxDescriptorSetUpdateAfterBindInputAttachments );
57074     }
57075 #endif
57076 
57077 
57078 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57079 auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const & ) const = default;
57080 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties57081     bool operator==( PhysicalDeviceDescriptorIndexingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
57082     {
57083 #if defined( VULKAN_HPP_USE_REFLECT )
57084       return this->reflect() == rhs.reflect();
57085 #else
57086       return ( sType == rhs.sType )
57087           && ( pNext == rhs.pNext )
57088           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
57089           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
57090           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
57091           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
57092           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
57093           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
57094           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
57095           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
57096           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
57097           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
57098           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
57099           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
57100           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
57101           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
57102           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
57103           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
57104           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
57105           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
57106           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
57107           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
57108           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
57109           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
57110           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments );
57111 #endif
57112     }
57113 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties57114     bool operator!=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
57115     {
57116       return !operator==( rhs );
57117     }
57118 #endif
57119 
57120     public:
57121     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
57122     void * pNext = {};
57123     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
57124     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
57125     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
57126     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
57127     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
57128     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
57129     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
57130     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
57131     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
57132     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
57133     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
57134     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
57135     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
57136     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
57137     uint32_t maxPerStageUpdateAfterBindResources = {};
57138     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
57139     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
57140     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
57141     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
57142     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
57143     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
57144     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
57145     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
57146 
57147   };
57148 
57149   template <>
57150   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingProperties>
57151   {
57152     using Type = PhysicalDeviceDescriptorIndexingProperties;
57153   };
57154   using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
57155 
57156   struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
57157   {
57158     using NativeType = VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
57159 
57160     static const bool allowDuplicate = false;
57161     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
57162 
57163 
57164 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorPoolOverallocationFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV57165 VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorPoolOverallocationFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
57166     : pNext( pNext_ ), descriptorPoolOverallocation( descriptorPoolOverallocation_ )
57167     {}
57168 
57169     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57170 
PhysicalDeviceDescriptorPoolOverallocationFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV57171     PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57172       : PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( *reinterpret_cast<PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const *>( &rhs ) )
57173     {}
57174 
57175 
57176     PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & operator=( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57177 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
57178 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV57179     PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & operator=( VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57180     {
57181       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const *>( &rhs );
57182       return *this;
57183     }
57184 
57185 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV57186     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
57187     {
57188       pNext = pNext_;
57189       return *this;
57190     }
57191 
setDescriptorPoolOverallocationVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV57192     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & setDescriptorPoolOverallocation( VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation_ ) VULKAN_HPP_NOEXCEPT
57193     {
57194       descriptorPoolOverallocation = descriptorPoolOverallocation_;
57195       return *this;
57196     }
57197 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
57198 
57199 
operator VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV57200     operator VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
57201     {
57202       return *reinterpret_cast<const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV*>( this );
57203     }
57204 
operator VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV57205     operator VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV &() VULKAN_HPP_NOEXCEPT
57206     {
57207       return *reinterpret_cast<VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV*>( this );
57208     }
57209 
57210 #if defined( VULKAN_HPP_USE_REFLECT )
57211 #if 14 <= VULKAN_HPP_CPP_VERSION
57212     auto
57213 #else
57214     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
57215 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV57216       reflect() const VULKAN_HPP_NOEXCEPT
57217     {
57218       return std::tie( sType, pNext, descriptorPoolOverallocation );
57219     }
57220 #endif
57221 
57222 
57223 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57224 auto operator<=>( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & ) const = default;
57225 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV57226     bool operator==( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
57227     {
57228 #if defined( VULKAN_HPP_USE_REFLECT )
57229       return this->reflect() == rhs.reflect();
57230 #else
57231       return ( sType == rhs.sType )
57232           && ( pNext == rhs.pNext )
57233           && ( descriptorPoolOverallocation == rhs.descriptorPoolOverallocation );
57234 #endif
57235     }
57236 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV57237     bool operator!=( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
57238     {
57239       return !operator==( rhs );
57240     }
57241 #endif
57242 
57243     public:
57244     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
57245     void * pNext = {};
57246     VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation = {};
57247 
57248   };
57249 
57250   template <>
57251   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV>
57252   {
57253     using Type = PhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
57254   };
57255 
57256   struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE
57257   {
57258     using NativeType = VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
57259 
57260     static const bool allowDuplicate = false;
57261     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
57262 
57263 
57264 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorSetHostMappingFeaturesVALVEVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE57265 VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
57266     : pNext( pNext_ ), descriptorSetHostMapping( descriptorSetHostMapping_ )
57267     {}
57268 
57269     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57270 
PhysicalDeviceDescriptorSetHostMappingFeaturesVALVEVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE57271     PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
57272       : PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( *reinterpret_cast<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const *>( &rhs ) )
57273     {}
57274 
57275 
57276     PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE & operator=( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57277 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
57278 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE57279     PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE & operator=( VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
57280     {
57281       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const *>( &rhs );
57282       return *this;
57283     }
57284 
57285 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE57286     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
57287     {
57288       pNext = pNext_;
57289       return *this;
57290     }
57291 
setDescriptorSetHostMappingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE57292     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE & setDescriptorSetHostMapping( VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping_ ) VULKAN_HPP_NOEXCEPT
57293     {
57294       descriptorSetHostMapping = descriptorSetHostMapping_;
57295       return *this;
57296     }
57297 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
57298 
57299 
operator VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE57300     operator VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const &() const VULKAN_HPP_NOEXCEPT
57301     {
57302       return *reinterpret_cast<const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE*>( this );
57303     }
57304 
operator VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE57305     operator VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE &() VULKAN_HPP_NOEXCEPT
57306     {
57307       return *reinterpret_cast<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE*>( this );
57308     }
57309 
57310 #if defined( VULKAN_HPP_USE_REFLECT )
57311 #if 14 <= VULKAN_HPP_CPP_VERSION
57312     auto
57313 #else
57314     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
57315 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE57316       reflect() const VULKAN_HPP_NOEXCEPT
57317     {
57318       return std::tie( sType, pNext, descriptorSetHostMapping );
57319     }
57320 #endif
57321 
57322 
57323 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57324 auto operator<=>( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & ) const = default;
57325 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE57326     bool operator==( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
57327     {
57328 #if defined( VULKAN_HPP_USE_REFLECT )
57329       return this->reflect() == rhs.reflect();
57330 #else
57331       return ( sType == rhs.sType )
57332           && ( pNext == rhs.pNext )
57333           && ( descriptorSetHostMapping == rhs.descriptorSetHostMapping );
57334 #endif
57335     }
57336 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE57337     bool operator!=( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
57338     {
57339       return !operator==( rhs );
57340     }
57341 #endif
57342 
57343     public:
57344     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
57345     void * pNext = {};
57346     VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping = {};
57347 
57348   };
57349 
57350   template <>
57351   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>
57352   {
57353     using Type = PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
57354   };
57355 
57356   struct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
57357   {
57358     using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
57359 
57360     static const bool allowDuplicate = false;
57361     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
57362 
57363 
57364 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57365 VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCompute_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputePipelines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputeCaptureReplay_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
57366     : pNext( pNext_ ), deviceGeneratedCompute( deviceGeneratedCompute_ ), deviceGeneratedComputePipelines( deviceGeneratedComputePipelines_ ), deviceGeneratedComputeCaptureReplay( deviceGeneratedComputeCaptureReplay_ )
57367     {}
57368 
57369     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57370 
PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57371     PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57372       : PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const *>( &rhs ) )
57373     {}
57374 
57375 
57376     PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57377 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
57378 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57379     PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57380     {
57381       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const *>( &rhs );
57382       return *this;
57383     }
57384 
57385 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57386     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
57387     {
57388       pNext = pNext_;
57389       return *this;
57390     }
57391 
setDeviceGeneratedComputeVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57392     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV & setDeviceGeneratedCompute( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCompute_ ) VULKAN_HPP_NOEXCEPT
57393     {
57394       deviceGeneratedCompute = deviceGeneratedCompute_;
57395       return *this;
57396     }
57397 
setDeviceGeneratedComputePipelinesVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57398     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV & setDeviceGeneratedComputePipelines( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputePipelines_ ) VULKAN_HPP_NOEXCEPT
57399     {
57400       deviceGeneratedComputePipelines = deviceGeneratedComputePipelines_;
57401       return *this;
57402     }
57403 
setDeviceGeneratedComputeCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57404     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV & setDeviceGeneratedComputeCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputeCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
57405     {
57406       deviceGeneratedComputeCaptureReplay = deviceGeneratedComputeCaptureReplay_;
57407       return *this;
57408     }
57409 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
57410 
57411 
operator VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57412     operator VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
57413     {
57414       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV*>( this );
57415     }
57416 
operator VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57417     operator VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &() VULKAN_HPP_NOEXCEPT
57418     {
57419       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV*>( this );
57420     }
57421 
57422 #if defined( VULKAN_HPP_USE_REFLECT )
57423 #if 14 <= VULKAN_HPP_CPP_VERSION
57424     auto
57425 #else
57426     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
57427 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57428       reflect() const VULKAN_HPP_NOEXCEPT
57429     {
57430       return std::tie( sType, pNext, deviceGeneratedCompute, deviceGeneratedComputePipelines, deviceGeneratedComputeCaptureReplay );
57431     }
57432 #endif
57433 
57434 
57435 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57436 auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & ) const = default;
57437 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57438     bool operator==( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
57439     {
57440 #if defined( VULKAN_HPP_USE_REFLECT )
57441       return this->reflect() == rhs.reflect();
57442 #else
57443       return ( sType == rhs.sType )
57444           && ( pNext == rhs.pNext )
57445           && ( deviceGeneratedCompute == rhs.deviceGeneratedCompute )
57446           && ( deviceGeneratedComputePipelines == rhs.deviceGeneratedComputePipelines )
57447           && ( deviceGeneratedComputeCaptureReplay == rhs.deviceGeneratedComputeCaptureReplay );
57448 #endif
57449     }
57450 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV57451     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
57452     {
57453       return !operator==( rhs );
57454     }
57455 #endif
57456 
57457     public:
57458     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
57459     void * pNext = {};
57460     VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCompute = {};
57461     VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputePipelines = {};
57462     VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputeCaptureReplay = {};
57463 
57464   };
57465 
57466   template <>
57467   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>
57468   {
57469     using Type = PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
57470   };
57471 
57472   struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
57473   {
57474     using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
57475 
57476     static const bool allowDuplicate = false;
57477     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
57478 
57479 
57480 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV57481 VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
57482     : pNext( pNext_ ), deviceGeneratedCommands( deviceGeneratedCommands_ )
57483     {}
57484 
57485     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57486 
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV57487     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57488       : PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs ) )
57489     {}
57490 
57491 
57492     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57493 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
57494 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV57495     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57496     {
57497       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs );
57498       return *this;
57499     }
57500 
57501 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV57502     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
57503     {
57504       pNext = pNext_;
57505       return *this;
57506     }
57507 
setDeviceGeneratedCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV57508     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
57509     {
57510       deviceGeneratedCommands = deviceGeneratedCommands_;
57511       return *this;
57512     }
57513 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
57514 
57515 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV57516     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
57517     {
57518       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
57519     }
57520 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV57521     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT
57522     {
57523       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
57524     }
57525 
57526 #if defined( VULKAN_HPP_USE_REFLECT )
57527 #if 14 <= VULKAN_HPP_CPP_VERSION
57528     auto
57529 #else
57530     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
57531 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV57532       reflect() const VULKAN_HPP_NOEXCEPT
57533     {
57534       return std::tie( sType, pNext, deviceGeneratedCommands );
57535     }
57536 #endif
57537 
57538 
57539 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57540 auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & ) const = default;
57541 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV57542     bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
57543     {
57544 #if defined( VULKAN_HPP_USE_REFLECT )
57545       return this->reflect() == rhs.reflect();
57546 #else
57547       return ( sType == rhs.sType )
57548           && ( pNext == rhs.pNext )
57549           && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands );
57550 #endif
57551     }
57552 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV57553     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
57554     {
57555       return !operator==( rhs );
57556     }
57557 #endif
57558 
57559     public:
57560     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
57561     void * pNext = {};
57562     VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {};
57563 
57564   };
57565 
57566   template <>
57567   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
57568   {
57569     using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
57570   };
57571 
57572   struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
57573   {
57574     using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
57575 
57576     static const bool allowDuplicate = false;
57577     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
57578 
57579 
57580 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV57581 VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV(uint32_t maxGraphicsShaderGroupCount_ = {}, uint32_t maxIndirectSequenceCount_ = {}, uint32_t maxIndirectCommandsTokenCount_ = {}, uint32_t maxIndirectCommandsStreamCount_ = {}, uint32_t maxIndirectCommandsTokenOffset_ = {}, uint32_t maxIndirectCommandsStreamStride_ = {}, uint32_t minSequencesCountBufferOffsetAlignment_ = {}, uint32_t minSequencesIndexBufferOffsetAlignment_ = {}, uint32_t minIndirectCommandsBufferOffsetAlignment_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
57582     : pNext( pNext_ ), maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ ), maxIndirectSequenceCount( maxIndirectSequenceCount_ ), maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ ), maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ ), maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ ), maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ ), minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ ), minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ ), minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ )
57583     {}
57584 
57585     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57586 
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV57587     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57588       : PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs ) )
57589     {}
57590 
57591 
57592     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57593 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
57594 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV57595     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57596     {
57597       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs );
57598       return *this;
57599     }
57600 
57601 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV57602     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
57603     {
57604       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
57605     }
57606 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV57607     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT
57608     {
57609       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
57610     }
57611 
57612 #if defined( VULKAN_HPP_USE_REFLECT )
57613 #if 14 <= VULKAN_HPP_CPP_VERSION
57614     auto
57615 #else
57616     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
57617 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV57618       reflect() const VULKAN_HPP_NOEXCEPT
57619     {
57620       return std::tie( sType, pNext, maxGraphicsShaderGroupCount, maxIndirectSequenceCount, maxIndirectCommandsTokenCount, maxIndirectCommandsStreamCount, maxIndirectCommandsTokenOffset, maxIndirectCommandsStreamStride, minSequencesCountBufferOffsetAlignment, minSequencesIndexBufferOffsetAlignment, minIndirectCommandsBufferOffsetAlignment );
57621     }
57622 #endif
57623 
57624 
57625 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57626 auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & ) const = default;
57627 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV57628     bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
57629     {
57630 #if defined( VULKAN_HPP_USE_REFLECT )
57631       return this->reflect() == rhs.reflect();
57632 #else
57633       return ( sType == rhs.sType )
57634           && ( pNext == rhs.pNext )
57635           && ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount )
57636           && ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount )
57637           && ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount )
57638           && ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount )
57639           && ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset )
57640           && ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride )
57641           && ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment )
57642           && ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment )
57643           && ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment );
57644 #endif
57645     }
57646 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV57647     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
57648     {
57649       return !operator==( rhs );
57650     }
57651 #endif
57652 
57653     public:
57654     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
57655     void * pNext = {};
57656     uint32_t maxGraphicsShaderGroupCount = {};
57657     uint32_t maxIndirectSequenceCount = {};
57658     uint32_t maxIndirectCommandsTokenCount = {};
57659     uint32_t maxIndirectCommandsStreamCount = {};
57660     uint32_t maxIndirectCommandsTokenOffset = {};
57661     uint32_t maxIndirectCommandsStreamStride = {};
57662     uint32_t minSequencesCountBufferOffsetAlignment = {};
57663     uint32_t minSequencesIndexBufferOffsetAlignment = {};
57664     uint32_t minIndirectCommandsBufferOffsetAlignment = {};
57665 
57666   };
57667 
57668   template <>
57669   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
57670   {
57671     using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
57672   };
57673 
57674   struct PhysicalDeviceDeviceMemoryReportFeaturesEXT
57675   {
57676     using NativeType = VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
57677 
57678     static const bool allowDuplicate = false;
57679     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
57680 
57681 
57682 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceMemoryReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT57683 VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
57684     : pNext( pNext_ ), deviceMemoryReport( deviceMemoryReport_ )
57685     {}
57686 
57687     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57688 
PhysicalDeviceDeviceMemoryReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT57689     PhysicalDeviceDeviceMemoryReportFeaturesEXT( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57690       : PhysicalDeviceDeviceMemoryReportFeaturesEXT( *reinterpret_cast<PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs ) )
57691     {}
57692 
57693 
57694     PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57695 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
57696 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT57697     PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57698     {
57699       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs );
57700       return *this;
57701     }
57702 
57703 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT57704     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
57705     {
57706       pNext = pNext_;
57707       return *this;
57708     }
57709 
setDeviceMemoryReportVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT57710     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceMemoryReportFeaturesEXT & setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT
57711     {
57712       deviceMemoryReport = deviceMemoryReport_;
57713       return *this;
57714     }
57715 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
57716 
57717 
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT57718     operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
57719     {
57720       return *reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>( this );
57721     }
57722 
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT57723     operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
57724     {
57725       return *reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>( this );
57726     }
57727 
57728 #if defined( VULKAN_HPP_USE_REFLECT )
57729 #if 14 <= VULKAN_HPP_CPP_VERSION
57730     auto
57731 #else
57732     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
57733 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT57734       reflect() const VULKAN_HPP_NOEXCEPT
57735     {
57736       return std::tie( sType, pNext, deviceMemoryReport );
57737     }
57738 #endif
57739 
57740 
57741 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57742 auto operator<=>( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & ) const = default;
57743 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT57744     bool operator==( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
57745     {
57746 #if defined( VULKAN_HPP_USE_REFLECT )
57747       return this->reflect() == rhs.reflect();
57748 #else
57749       return ( sType == rhs.sType )
57750           && ( pNext == rhs.pNext )
57751           && ( deviceMemoryReport == rhs.deviceMemoryReport );
57752 #endif
57753     }
57754 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT57755     bool operator!=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
57756     {
57757       return !operator==( rhs );
57758     }
57759 #endif
57760 
57761     public:
57762     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
57763     void * pNext = {};
57764     VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport = {};
57765 
57766   };
57767 
57768   template <>
57769   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT>
57770   {
57771     using Type = PhysicalDeviceDeviceMemoryReportFeaturesEXT;
57772   };
57773 
57774   struct PhysicalDeviceDiagnosticsConfigFeaturesNV
57775   {
57776     using NativeType = VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
57777 
57778     static const bool allowDuplicate = false;
57779     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
57780 
57781 
57782 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV57783 VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
57784     : pNext( pNext_ ), diagnosticsConfig( diagnosticsConfig_ )
57785     {}
57786 
57787     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57788 
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV57789     PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57790       : PhysicalDeviceDiagnosticsConfigFeaturesNV( *reinterpret_cast<PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs ) )
57791     {}
57792 
57793 
57794     PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57795 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
57796 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV57797     PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57798     {
57799       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs );
57800       return *this;
57801     }
57802 
57803 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV57804     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
57805     {
57806       pNext = pNext_;
57807       return *this;
57808     }
57809 
setDiagnosticsConfigVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV57810     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiagnosticsConfigFeaturesNV & setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT
57811     {
57812       diagnosticsConfig = diagnosticsConfig_;
57813       return *this;
57814     }
57815 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
57816 
57817 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV57818     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
57819     {
57820       return *reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
57821     }
57822 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV57823     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT
57824     {
57825       return *reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
57826     }
57827 
57828 #if defined( VULKAN_HPP_USE_REFLECT )
57829 #if 14 <= VULKAN_HPP_CPP_VERSION
57830     auto
57831 #else
57832     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
57833 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV57834       reflect() const VULKAN_HPP_NOEXCEPT
57835     {
57836       return std::tie( sType, pNext, diagnosticsConfig );
57837     }
57838 #endif
57839 
57840 
57841 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57842 auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const & ) const = default;
57843 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV57844     bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
57845     {
57846 #if defined( VULKAN_HPP_USE_REFLECT )
57847       return this->reflect() == rhs.reflect();
57848 #else
57849       return ( sType == rhs.sType )
57850           && ( pNext == rhs.pNext )
57851           && ( diagnosticsConfig == rhs.diagnosticsConfig );
57852 #endif
57853     }
57854 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV57855     bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
57856     {
57857       return !operator==( rhs );
57858     }
57859 #endif
57860 
57861     public:
57862     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
57863     void * pNext = {};
57864     VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {};
57865 
57866   };
57867 
57868   template <>
57869   struct CppType<StructureType, StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV>
57870   {
57871     using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV;
57872   };
57873 
57874   struct PhysicalDeviceDiscardRectanglePropertiesEXT
57875   {
57876     using NativeType = VkPhysicalDeviceDiscardRectanglePropertiesEXT;
57877 
57878     static const bool allowDuplicate = false;
57879     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
57880 
57881 
57882 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT57883 VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT(uint32_t maxDiscardRectangles_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
57884     : pNext( pNext_ ), maxDiscardRectangles( maxDiscardRectangles_ )
57885     {}
57886 
57887     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57888 
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT57889     PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57890       : PhysicalDeviceDiscardRectanglePropertiesEXT( *reinterpret_cast<PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs ) )
57891     {}
57892 
57893 
57894     PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57895 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
57896 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT57897     PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
57898     {
57899       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs );
57900       return *this;
57901     }
57902 
57903 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT57904     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
57905     {
57906       return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
57907     }
57908 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT57909     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT
57910     {
57911       return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
57912     }
57913 
57914 #if defined( VULKAN_HPP_USE_REFLECT )
57915 #if 14 <= VULKAN_HPP_CPP_VERSION
57916     auto
57917 #else
57918     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
57919 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT57920       reflect() const VULKAN_HPP_NOEXCEPT
57921     {
57922       return std::tie( sType, pNext, maxDiscardRectangles );
57923     }
57924 #endif
57925 
57926 
57927 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57928 auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const & ) const = default;
57929 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT57930     bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
57931     {
57932 #if defined( VULKAN_HPP_USE_REFLECT )
57933       return this->reflect() == rhs.reflect();
57934 #else
57935       return ( sType == rhs.sType )
57936           && ( pNext == rhs.pNext )
57937           && ( maxDiscardRectangles == rhs.maxDiscardRectangles );
57938 #endif
57939     }
57940 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT57941     bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
57942     {
57943       return !operator==( rhs );
57944     }
57945 #endif
57946 
57947     public:
57948     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
57949     void * pNext = {};
57950     uint32_t maxDiscardRectangles = {};
57951 
57952   };
57953 
57954   template <>
57955   struct CppType<StructureType, StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT>
57956   {
57957     using Type = PhysicalDeviceDiscardRectanglePropertiesEXT;
57958   };
57959 
57960 #if defined( VK_ENABLE_BETA_EXTENSIONS )
57961   struct PhysicalDeviceDisplacementMicromapFeaturesNV
57962   {
57963     using NativeType = VkPhysicalDeviceDisplacementMicromapFeaturesNV;
57964 
57965     static const bool allowDuplicate = false;
57966     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDisplacementMicromapFeaturesNV;
57967 
57968 
57969 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDisplacementMicromapFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV57970 VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 displacementMicromap_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
57971     : pNext( pNext_ ), displacementMicromap( displacementMicromap_ )
57972     {}
57973 
57974     VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapFeaturesNV( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57975 
PhysicalDeviceDisplacementMicromapFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV57976     PhysicalDeviceDisplacementMicromapFeaturesNV( VkPhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57977       : PhysicalDeviceDisplacementMicromapFeaturesNV( *reinterpret_cast<PhysicalDeviceDisplacementMicromapFeaturesNV const *>( &rhs ) )
57978     {}
57979 
57980 
57981     PhysicalDeviceDisplacementMicromapFeaturesNV & operator=( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57982 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
57983 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV57984     PhysicalDeviceDisplacementMicromapFeaturesNV & operator=( VkPhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
57985     {
57986       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV const *>( &rhs );
57987       return *this;
57988     }
57989 
57990 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV57991     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDisplacementMicromapFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
57992     {
57993       pNext = pNext_;
57994       return *this;
57995     }
57996 
setDisplacementMicromapVULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV57997     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDisplacementMicromapFeaturesNV & setDisplacementMicromap( VULKAN_HPP_NAMESPACE::Bool32 displacementMicromap_ ) VULKAN_HPP_NOEXCEPT
57998     {
57999       displacementMicromap = displacementMicromap_;
58000       return *this;
58001     }
58002 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
58003 
58004 
operator VkPhysicalDeviceDisplacementMicromapFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV58005     operator VkPhysicalDeviceDisplacementMicromapFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
58006     {
58007       return *reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapFeaturesNV*>( this );
58008     }
58009 
operator VkPhysicalDeviceDisplacementMicromapFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV58010     operator VkPhysicalDeviceDisplacementMicromapFeaturesNV &() VULKAN_HPP_NOEXCEPT
58011     {
58012       return *reinterpret_cast<VkPhysicalDeviceDisplacementMicromapFeaturesNV*>( this );
58013     }
58014 
58015 #if defined( VULKAN_HPP_USE_REFLECT )
58016 #if 14 <= VULKAN_HPP_CPP_VERSION
58017     auto
58018 #else
58019     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
58020 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV58021       reflect() const VULKAN_HPP_NOEXCEPT
58022     {
58023       return std::tie( sType, pNext, displacementMicromap );
58024     }
58025 #endif
58026 
58027 
58028 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58029 auto operator<=>( PhysicalDeviceDisplacementMicromapFeaturesNV const & ) const = default;
58030 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV58031     bool operator==( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
58032     {
58033 #if defined( VULKAN_HPP_USE_REFLECT )
58034       return this->reflect() == rhs.reflect();
58035 #else
58036       return ( sType == rhs.sType )
58037           && ( pNext == rhs.pNext )
58038           && ( displacementMicromap == rhs.displacementMicromap );
58039 #endif
58040     }
58041 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV58042     bool operator!=( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
58043     {
58044       return !operator==( rhs );
58045     }
58046 #endif
58047 
58048     public:
58049     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDisplacementMicromapFeaturesNV;
58050     void * pNext = {};
58051     VULKAN_HPP_NAMESPACE::Bool32 displacementMicromap = {};
58052 
58053   };
58054 
58055   template <>
58056   struct CppType<StructureType, StructureType::ePhysicalDeviceDisplacementMicromapFeaturesNV>
58057   {
58058     using Type = PhysicalDeviceDisplacementMicromapFeaturesNV;
58059   };
58060 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
58061 
58062 #if defined( VK_ENABLE_BETA_EXTENSIONS )
58063   struct PhysicalDeviceDisplacementMicromapPropertiesNV
58064   {
58065     using NativeType = VkPhysicalDeviceDisplacementMicromapPropertiesNV;
58066 
58067     static const bool allowDuplicate = false;
58068     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDisplacementMicromapPropertiesNV;
58069 
58070 
58071 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDisplacementMicromapPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV58072 VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapPropertiesNV(uint32_t maxDisplacementMicromapSubdivisionLevel_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
58073     : pNext( pNext_ ), maxDisplacementMicromapSubdivisionLevel( maxDisplacementMicromapSubdivisionLevel_ )
58074     {}
58075 
58076     VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapPropertiesNV( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58077 
PhysicalDeviceDisplacementMicromapPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV58078     PhysicalDeviceDisplacementMicromapPropertiesNV( VkPhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58079       : PhysicalDeviceDisplacementMicromapPropertiesNV( *reinterpret_cast<PhysicalDeviceDisplacementMicromapPropertiesNV const *>( &rhs ) )
58080     {}
58081 
58082 
58083     PhysicalDeviceDisplacementMicromapPropertiesNV & operator=( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58084 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
58085 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV58086     PhysicalDeviceDisplacementMicromapPropertiesNV & operator=( VkPhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58087     {
58088       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV const *>( &rhs );
58089       return *this;
58090     }
58091 
58092 
operator VkPhysicalDeviceDisplacementMicromapPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV58093     operator VkPhysicalDeviceDisplacementMicromapPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
58094     {
58095       return *reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapPropertiesNV*>( this );
58096     }
58097 
operator VkPhysicalDeviceDisplacementMicromapPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV58098     operator VkPhysicalDeviceDisplacementMicromapPropertiesNV &() VULKAN_HPP_NOEXCEPT
58099     {
58100       return *reinterpret_cast<VkPhysicalDeviceDisplacementMicromapPropertiesNV*>( this );
58101     }
58102 
58103 #if defined( VULKAN_HPP_USE_REFLECT )
58104 #if 14 <= VULKAN_HPP_CPP_VERSION
58105     auto
58106 #else
58107     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
58108 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV58109       reflect() const VULKAN_HPP_NOEXCEPT
58110     {
58111       return std::tie( sType, pNext, maxDisplacementMicromapSubdivisionLevel );
58112     }
58113 #endif
58114 
58115 
58116 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58117 auto operator<=>( PhysicalDeviceDisplacementMicromapPropertiesNV const & ) const = default;
58118 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV58119     bool operator==( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
58120     {
58121 #if defined( VULKAN_HPP_USE_REFLECT )
58122       return this->reflect() == rhs.reflect();
58123 #else
58124       return ( sType == rhs.sType )
58125           && ( pNext == rhs.pNext )
58126           && ( maxDisplacementMicromapSubdivisionLevel == rhs.maxDisplacementMicromapSubdivisionLevel );
58127 #endif
58128     }
58129 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV58130     bool operator!=( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
58131     {
58132       return !operator==( rhs );
58133     }
58134 #endif
58135 
58136     public:
58137     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDisplacementMicromapPropertiesNV;
58138     void * pNext = {};
58139     uint32_t maxDisplacementMicromapSubdivisionLevel = {};
58140 
58141   };
58142 
58143   template <>
58144   struct CppType<StructureType, StructureType::ePhysicalDeviceDisplacementMicromapPropertiesNV>
58145   {
58146     using Type = PhysicalDeviceDisplacementMicromapPropertiesNV;
58147   };
58148 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
58149 
58150   struct PhysicalDeviceDriverProperties
58151   {
58152     using NativeType = VkPhysicalDeviceDriverProperties;
58153 
58154     static const bool allowDuplicate = false;
58155     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties;
58156 
58157 
58158 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties58159 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties(VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, std::array<char,VK_MAX_DRIVER_NAME_SIZE> const & driverName_ = {}, std::array<char,VK_MAX_DRIVER_INFO_SIZE> const & driverInfo_ = {}, VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
58160     : pNext( pNext_ ), driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ )
58161     {}
58162 
58163     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58164 
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties58165     PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
58166       : PhysicalDeviceDriverProperties( *reinterpret_cast<PhysicalDeviceDriverProperties const *>( &rhs ) )
58167     {}
58168 
58169 
58170     PhysicalDeviceDriverProperties & operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58171 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
58172 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties58173     PhysicalDeviceDriverProperties & operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
58174     {
58175       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const *>( &rhs );
58176       return *this;
58177     }
58178 
58179 
operator VkPhysicalDeviceDriverProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties58180     operator VkPhysicalDeviceDriverProperties const &() const VULKAN_HPP_NOEXCEPT
58181     {
58182       return *reinterpret_cast<const VkPhysicalDeviceDriverProperties*>( this );
58183     }
58184 
operator VkPhysicalDeviceDriverProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties58185     operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT
58186     {
58187       return *reinterpret_cast<VkPhysicalDeviceDriverProperties*>( this );
58188     }
58189 
58190 #if defined( VULKAN_HPP_USE_REFLECT )
58191 #if 14 <= VULKAN_HPP_CPP_VERSION
58192     auto
58193 #else
58194     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DriverId const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> const &, VULKAN_HPP_NAMESPACE::ConformanceVersion const &>
58195 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties58196       reflect() const VULKAN_HPP_NOEXCEPT
58197     {
58198       return std::tie( sType, pNext, driverID, driverName, driverInfo, conformanceVersion );
58199     }
58200 #endif
58201 
58202 
58203 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58204 auto operator<=>( PhysicalDeviceDriverProperties const & ) const = default;
58205 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties58206     bool operator==( PhysicalDeviceDriverProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
58207     {
58208 #if defined( VULKAN_HPP_USE_REFLECT )
58209       return this->reflect() == rhs.reflect();
58210 #else
58211       return ( sType == rhs.sType )
58212           && ( pNext == rhs.pNext )
58213           && ( driverID == rhs.driverID )
58214           && ( driverName == rhs.driverName )
58215           && ( driverInfo == rhs.driverInfo )
58216           && ( conformanceVersion == rhs.conformanceVersion );
58217 #endif
58218     }
58219 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties58220     bool operator!=( PhysicalDeviceDriverProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
58221     {
58222       return !operator==( rhs );
58223     }
58224 #endif
58225 
58226     public:
58227     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties;
58228     void * pNext = {};
58229     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
58230     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
58231     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
58232     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
58233 
58234   };
58235 
58236   template <>
58237   struct CppType<StructureType, StructureType::ePhysicalDeviceDriverProperties>
58238   {
58239     using Type = PhysicalDeviceDriverProperties;
58240   };
58241   using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
58242 
58243   struct PhysicalDeviceDrmPropertiesEXT
58244   {
58245     using NativeType = VkPhysicalDeviceDrmPropertiesEXT;
58246 
58247     static const bool allowDuplicate = false;
58248     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDrmPropertiesEXT;
58249 
58250 
58251 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDrmPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT58252 VULKAN_HPP_CONSTEXPR PhysicalDeviceDrmPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 hasPrimary_ = {}, VULKAN_HPP_NAMESPACE::Bool32 hasRender_ = {}, int64_t primaryMajor_ = {}, int64_t primaryMinor_ = {}, int64_t renderMajor_ = {}, int64_t renderMinor_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
58253     : pNext( pNext_ ), hasPrimary( hasPrimary_ ), hasRender( hasRender_ ), primaryMajor( primaryMajor_ ), primaryMinor( primaryMinor_ ), renderMajor( renderMajor_ ), renderMinor( renderMinor_ )
58254     {}
58255 
58256     VULKAN_HPP_CONSTEXPR PhysicalDeviceDrmPropertiesEXT( PhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58257 
PhysicalDeviceDrmPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT58258     PhysicalDeviceDrmPropertiesEXT( VkPhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58259       : PhysicalDeviceDrmPropertiesEXT( *reinterpret_cast<PhysicalDeviceDrmPropertiesEXT const *>( &rhs ) )
58260     {}
58261 
58262 
58263     PhysicalDeviceDrmPropertiesEXT & operator=( PhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58264 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
58265 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT58266     PhysicalDeviceDrmPropertiesEXT & operator=( VkPhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58267     {
58268       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT const *>( &rhs );
58269       return *this;
58270     }
58271 
58272 
operator VkPhysicalDeviceDrmPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT58273     operator VkPhysicalDeviceDrmPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
58274     {
58275       return *reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT*>( this );
58276     }
58277 
operator VkPhysicalDeviceDrmPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT58278     operator VkPhysicalDeviceDrmPropertiesEXT &() VULKAN_HPP_NOEXCEPT
58279     {
58280       return *reinterpret_cast<VkPhysicalDeviceDrmPropertiesEXT*>( this );
58281     }
58282 
58283 #if defined( VULKAN_HPP_USE_REFLECT )
58284 #if 14 <= VULKAN_HPP_CPP_VERSION
58285     auto
58286 #else
58287     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, int64_t const &, int64_t const &, int64_t const &, int64_t const &>
58288 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT58289       reflect() const VULKAN_HPP_NOEXCEPT
58290     {
58291       return std::tie( sType, pNext, hasPrimary, hasRender, primaryMajor, primaryMinor, renderMajor, renderMinor );
58292     }
58293 #endif
58294 
58295 
58296 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58297 auto operator<=>( PhysicalDeviceDrmPropertiesEXT const & ) const = default;
58298 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT58299     bool operator==( PhysicalDeviceDrmPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
58300     {
58301 #if defined( VULKAN_HPP_USE_REFLECT )
58302       return this->reflect() == rhs.reflect();
58303 #else
58304       return ( sType == rhs.sType )
58305           && ( pNext == rhs.pNext )
58306           && ( hasPrimary == rhs.hasPrimary )
58307           && ( hasRender == rhs.hasRender )
58308           && ( primaryMajor == rhs.primaryMajor )
58309           && ( primaryMinor == rhs.primaryMinor )
58310           && ( renderMajor == rhs.renderMajor )
58311           && ( renderMinor == rhs.renderMinor );
58312 #endif
58313     }
58314 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT58315     bool operator!=( PhysicalDeviceDrmPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
58316     {
58317       return !operator==( rhs );
58318     }
58319 #endif
58320 
58321     public:
58322     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDrmPropertiesEXT;
58323     void * pNext = {};
58324     VULKAN_HPP_NAMESPACE::Bool32 hasPrimary = {};
58325     VULKAN_HPP_NAMESPACE::Bool32 hasRender = {};
58326     int64_t primaryMajor = {};
58327     int64_t primaryMinor = {};
58328     int64_t renderMajor = {};
58329     int64_t renderMinor = {};
58330 
58331   };
58332 
58333   template <>
58334   struct CppType<StructureType, StructureType::ePhysicalDeviceDrmPropertiesEXT>
58335   {
58336     using Type = PhysicalDeviceDrmPropertiesEXT;
58337   };
58338 
58339   struct PhysicalDeviceDynamicRenderingFeatures
58340   {
58341     using NativeType = VkPhysicalDeviceDynamicRenderingFeatures;
58342 
58343     static const bool allowDuplicate = false;
58344     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDynamicRenderingFeatures;
58345 
58346 
58347 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDynamicRenderingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures58348 VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingFeatures(VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
58349     : pNext( pNext_ ), dynamicRendering( dynamicRendering_ )
58350     {}
58351 
58352     VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingFeatures( PhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58353 
PhysicalDeviceDynamicRenderingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures58354     PhysicalDeviceDynamicRenderingFeatures( VkPhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
58355       : PhysicalDeviceDynamicRenderingFeatures( *reinterpret_cast<PhysicalDeviceDynamicRenderingFeatures const *>( &rhs ) )
58356     {}
58357 
58358 
58359     PhysicalDeviceDynamicRenderingFeatures & operator=( PhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58360 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
58361 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures58362     PhysicalDeviceDynamicRenderingFeatures & operator=( VkPhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
58363     {
58364       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures const *>( &rhs );
58365       return *this;
58366     }
58367 
58368 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures58369     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
58370     {
58371       pNext = pNext_;
58372       return *this;
58373     }
58374 
setDynamicRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures58375     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingFeatures & setDynamicRendering( VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ ) VULKAN_HPP_NOEXCEPT
58376     {
58377       dynamicRendering = dynamicRendering_;
58378       return *this;
58379     }
58380 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
58381 
58382 
operator VkPhysicalDeviceDynamicRenderingFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures58383     operator VkPhysicalDeviceDynamicRenderingFeatures const &() const VULKAN_HPP_NOEXCEPT
58384     {
58385       return *reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>( this );
58386     }
58387 
operator VkPhysicalDeviceDynamicRenderingFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures58388     operator VkPhysicalDeviceDynamicRenderingFeatures &() VULKAN_HPP_NOEXCEPT
58389     {
58390       return *reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeatures*>( this );
58391     }
58392 
58393 #if defined( VULKAN_HPP_USE_REFLECT )
58394 #if 14 <= VULKAN_HPP_CPP_VERSION
58395     auto
58396 #else
58397     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
58398 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures58399       reflect() const VULKAN_HPP_NOEXCEPT
58400     {
58401       return std::tie( sType, pNext, dynamicRendering );
58402     }
58403 #endif
58404 
58405 
58406 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58407 auto operator<=>( PhysicalDeviceDynamicRenderingFeatures const & ) const = default;
58408 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures58409     bool operator==( PhysicalDeviceDynamicRenderingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
58410     {
58411 #if defined( VULKAN_HPP_USE_REFLECT )
58412       return this->reflect() == rhs.reflect();
58413 #else
58414       return ( sType == rhs.sType )
58415           && ( pNext == rhs.pNext )
58416           && ( dynamicRendering == rhs.dynamicRendering );
58417 #endif
58418     }
58419 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures58420     bool operator!=( PhysicalDeviceDynamicRenderingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
58421     {
58422       return !operator==( rhs );
58423     }
58424 #endif
58425 
58426     public:
58427     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDynamicRenderingFeatures;
58428     void * pNext = {};
58429     VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering = {};
58430 
58431   };
58432 
58433   template <>
58434   struct CppType<StructureType, StructureType::ePhysicalDeviceDynamicRenderingFeatures>
58435   {
58436     using Type = PhysicalDeviceDynamicRenderingFeatures;
58437   };
58438   using PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures;
58439 
58440   struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
58441   {
58442     using NativeType = VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
58443 
58444     static const bool allowDuplicate = false;
58445     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
58446 
58447 
58448 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT58449 VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 dynamicRenderingUnusedAttachments_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
58450     : pNext( pNext_ ), dynamicRenderingUnusedAttachments( dynamicRenderingUnusedAttachments_ )
58451     {}
58452 
58453     VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58454 
PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT58455     PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT( VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58456       : PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT( *reinterpret_cast<PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const *>( &rhs ) )
58457     {}
58458 
58459 
58460     PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT & operator=( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58461 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
58462 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT58463     PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT & operator=( VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58464     {
58465       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const *>( &rhs );
58466       return *this;
58467     }
58468 
58469 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT58470     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
58471     {
58472       pNext = pNext_;
58473       return *this;
58474     }
58475 
setDynamicRenderingUnusedAttachmentsVULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT58476     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT & setDynamicRenderingUnusedAttachments( VULKAN_HPP_NAMESPACE::Bool32 dynamicRenderingUnusedAttachments_ ) VULKAN_HPP_NOEXCEPT
58477     {
58478       dynamicRenderingUnusedAttachments = dynamicRenderingUnusedAttachments_;
58479       return *this;
58480     }
58481 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
58482 
58483 
operator VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT58484     operator VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
58485     {
58486       return *reinterpret_cast<const VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT*>( this );
58487     }
58488 
operator VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT58489     operator VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
58490     {
58491       return *reinterpret_cast<VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT*>( this );
58492     }
58493 
58494 #if defined( VULKAN_HPP_USE_REFLECT )
58495 #if 14 <= VULKAN_HPP_CPP_VERSION
58496     auto
58497 #else
58498     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
58499 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT58500       reflect() const VULKAN_HPP_NOEXCEPT
58501     {
58502       return std::tie( sType, pNext, dynamicRenderingUnusedAttachments );
58503     }
58504 #endif
58505 
58506 
58507 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58508 auto operator<=>( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & ) const = default;
58509 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT58510     bool operator==( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
58511     {
58512 #if defined( VULKAN_HPP_USE_REFLECT )
58513       return this->reflect() == rhs.reflect();
58514 #else
58515       return ( sType == rhs.sType )
58516           && ( pNext == rhs.pNext )
58517           && ( dynamicRenderingUnusedAttachments == rhs.dynamicRenderingUnusedAttachments );
58518 #endif
58519     }
58520 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT58521     bool operator!=( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
58522     {
58523       return !operator==( rhs );
58524     }
58525 #endif
58526 
58527     public:
58528     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
58529     void * pNext = {};
58530     VULKAN_HPP_NAMESPACE::Bool32 dynamicRenderingUnusedAttachments = {};
58531 
58532   };
58533 
58534   template <>
58535   struct CppType<StructureType, StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT>
58536   {
58537     using Type = PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
58538   };
58539 
58540   struct PhysicalDeviceExclusiveScissorFeaturesNV
58541   {
58542     using NativeType = VkPhysicalDeviceExclusiveScissorFeaturesNV;
58543 
58544     static const bool allowDuplicate = false;
58545     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
58546 
58547 
58548 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV58549 VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
58550     : pNext( pNext_ ), exclusiveScissor( exclusiveScissor_ )
58551     {}
58552 
58553     VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58554 
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV58555     PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58556       : PhysicalDeviceExclusiveScissorFeaturesNV( *reinterpret_cast<PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs ) )
58557     {}
58558 
58559 
58560     PhysicalDeviceExclusiveScissorFeaturesNV & operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58561 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
58562 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV58563     PhysicalDeviceExclusiveScissorFeaturesNV & operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
58564     {
58565       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs );
58566       return *this;
58567     }
58568 
58569 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV58570     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
58571     {
58572       pNext = pNext_;
58573       return *this;
58574     }
58575 
setExclusiveScissorVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV58576     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT
58577     {
58578       exclusiveScissor = exclusiveScissor_;
58579       return *this;
58580     }
58581 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
58582 
58583 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV58584     operator VkPhysicalDeviceExclusiveScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
58585     {
58586       return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
58587     }
58588 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV58589     operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
58590     {
58591       return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
58592     }
58593 
58594 #if defined( VULKAN_HPP_USE_REFLECT )
58595 #if 14 <= VULKAN_HPP_CPP_VERSION
58596     auto
58597 #else
58598     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
58599 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV58600       reflect() const VULKAN_HPP_NOEXCEPT
58601     {
58602       return std::tie( sType, pNext, exclusiveScissor );
58603     }
58604 #endif
58605 
58606 
58607 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58608 auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const & ) const = default;
58609 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV58610     bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
58611     {
58612 #if defined( VULKAN_HPP_USE_REFLECT )
58613       return this->reflect() == rhs.reflect();
58614 #else
58615       return ( sType == rhs.sType )
58616           && ( pNext == rhs.pNext )
58617           && ( exclusiveScissor == rhs.exclusiveScissor );
58618 #endif
58619     }
58620 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV58621     bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
58622     {
58623       return !operator==( rhs );
58624     }
58625 #endif
58626 
58627     public:
58628     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
58629     void * pNext = {};
58630     VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {};
58631 
58632   };
58633 
58634   template <>
58635   struct CppType<StructureType, StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV>
58636   {
58637     using Type = PhysicalDeviceExclusiveScissorFeaturesNV;
58638   };
58639 
58640   struct PhysicalDeviceExtendedDynamicState2FeaturesEXT
58641   {
58642     using NativeType = VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
58643 
58644     static const bool allowDuplicate = false;
58645     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT;
58646 
58647 
58648 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExtendedDynamicState2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58649 VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
58650     : pNext( pNext_ ), extendedDynamicState2( extendedDynamicState2_ ), extendedDynamicState2LogicOp( extendedDynamicState2LogicOp_ ), extendedDynamicState2PatchControlPoints( extendedDynamicState2PatchControlPoints_ )
58651     {}
58652 
58653     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState2FeaturesEXT( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58654 
PhysicalDeviceExtendedDynamicState2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58655     PhysicalDeviceExtendedDynamicState2FeaturesEXT( VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58656       : PhysicalDeviceExtendedDynamicState2FeaturesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicState2FeaturesEXT const *>( &rhs ) )
58657     {}
58658 
58659 
58660     PhysicalDeviceExtendedDynamicState2FeaturesEXT & operator=( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58661 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
58662 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58663     PhysicalDeviceExtendedDynamicState2FeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58664     {
58665       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT const *>( &rhs );
58666       return *this;
58667     }
58668 
58669 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58670     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
58671     {
58672       pNext = pNext_;
58673       return *this;
58674     }
58675 
setExtendedDynamicState2VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58676     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT & setExtendedDynamicState2( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2_ ) VULKAN_HPP_NOEXCEPT
58677     {
58678       extendedDynamicState2 = extendedDynamicState2_;
58679       return *this;
58680     }
58681 
setExtendedDynamicState2LogicOpVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58682     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT & setExtendedDynamicState2LogicOp( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ ) VULKAN_HPP_NOEXCEPT
58683     {
58684       extendedDynamicState2LogicOp = extendedDynamicState2LogicOp_;
58685       return *this;
58686     }
58687 
setExtendedDynamicState2PatchControlPointsVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58688     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT & setExtendedDynamicState2PatchControlPoints( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints_ ) VULKAN_HPP_NOEXCEPT
58689     {
58690       extendedDynamicState2PatchControlPoints = extendedDynamicState2PatchControlPoints_;
58691       return *this;
58692     }
58693 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
58694 
58695 
operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58696     operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
58697     {
58698       return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>( this );
58699     }
58700 
operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58701     operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
58702     {
58703       return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>( this );
58704     }
58705 
58706 #if defined( VULKAN_HPP_USE_REFLECT )
58707 #if 14 <= VULKAN_HPP_CPP_VERSION
58708     auto
58709 #else
58710     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
58711 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58712       reflect() const VULKAN_HPP_NOEXCEPT
58713     {
58714       return std::tie( sType, pNext, extendedDynamicState2, extendedDynamicState2LogicOp, extendedDynamicState2PatchControlPoints );
58715     }
58716 #endif
58717 
58718 
58719 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58720 auto operator<=>( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & ) const = default;
58721 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58722     bool operator==( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
58723     {
58724 #if defined( VULKAN_HPP_USE_REFLECT )
58725       return this->reflect() == rhs.reflect();
58726 #else
58727       return ( sType == rhs.sType )
58728           && ( pNext == rhs.pNext )
58729           && ( extendedDynamicState2 == rhs.extendedDynamicState2 )
58730           && ( extendedDynamicState2LogicOp == rhs.extendedDynamicState2LogicOp )
58731           && ( extendedDynamicState2PatchControlPoints == rhs.extendedDynamicState2PatchControlPoints );
58732 #endif
58733     }
58734 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT58735     bool operator!=( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
58736     {
58737       return !operator==( rhs );
58738     }
58739 #endif
58740 
58741     public:
58742     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT;
58743     void * pNext = {};
58744     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2 = {};
58745     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp = {};
58746     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints = {};
58747 
58748   };
58749 
58750   template <>
58751   struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT>
58752   {
58753     using Type = PhysicalDeviceExtendedDynamicState2FeaturesEXT;
58754   };
58755 
58756   struct PhysicalDeviceExtendedDynamicState3FeaturesEXT
58757   {
58758     using NativeType = VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
58759 
58760     static const bool allowDuplicate = false;
58761     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicState3FeaturesEXT;
58762 
58763 
58764 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExtendedDynamicState3FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58765 VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState3FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3TessellationDomainOrigin_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClampEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3PolygonMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationSamples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToCoverageEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToOneEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LogicOpEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEquation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorWriteMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationStream_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ConservativeRasterizationMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ExtraPrimitiveOverestimationSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleLocationsEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendAdvanced_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ProvokingVertexMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineRasterizationMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineStippleEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipNegativeOneToOne_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportWScalingEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportSwizzle_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorLocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTableEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageReductionMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RepresentativeFragmentTestEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ShadingRateImageEnable_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
58766     : pNext( pNext_ ), extendedDynamicState3TessellationDomainOrigin( extendedDynamicState3TessellationDomainOrigin_ ), extendedDynamicState3DepthClampEnable( extendedDynamicState3DepthClampEnable_ ), extendedDynamicState3PolygonMode( extendedDynamicState3PolygonMode_ ), extendedDynamicState3RasterizationSamples( extendedDynamicState3RasterizationSamples_ ), extendedDynamicState3SampleMask( extendedDynamicState3SampleMask_ ), extendedDynamicState3AlphaToCoverageEnable( extendedDynamicState3AlphaToCoverageEnable_ ), extendedDynamicState3AlphaToOneEnable( extendedDynamicState3AlphaToOneEnable_ ), extendedDynamicState3LogicOpEnable( extendedDynamicState3LogicOpEnable_ ), extendedDynamicState3ColorBlendEnable( extendedDynamicState3ColorBlendEnable_ ), extendedDynamicState3ColorBlendEquation( extendedDynamicState3ColorBlendEquation_ ), extendedDynamicState3ColorWriteMask( extendedDynamicState3ColorWriteMask_ ), extendedDynamicState3RasterizationStream( extendedDynamicState3RasterizationStream_ ), extendedDynamicState3ConservativeRasterizationMode( extendedDynamicState3ConservativeRasterizationMode_ ), extendedDynamicState3ExtraPrimitiveOverestimationSize( extendedDynamicState3ExtraPrimitiveOverestimationSize_ ), extendedDynamicState3DepthClipEnable( extendedDynamicState3DepthClipEnable_ ), extendedDynamicState3SampleLocationsEnable( extendedDynamicState3SampleLocationsEnable_ ), extendedDynamicState3ColorBlendAdvanced( extendedDynamicState3ColorBlendAdvanced_ ), extendedDynamicState3ProvokingVertexMode( extendedDynamicState3ProvokingVertexMode_ ), extendedDynamicState3LineRasterizationMode( extendedDynamicState3LineRasterizationMode_ ), extendedDynamicState3LineStippleEnable( extendedDynamicState3LineStippleEnable_ ), extendedDynamicState3DepthClipNegativeOneToOne( extendedDynamicState3DepthClipNegativeOneToOne_ ), extendedDynamicState3ViewportWScalingEnable( extendedDynamicState3ViewportWScalingEnable_ ), extendedDynamicState3ViewportSwizzle( extendedDynamicState3ViewportSwizzle_ ), extendedDynamicState3CoverageToColorEnable( extendedDynamicState3CoverageToColorEnable_ ), extendedDynamicState3CoverageToColorLocation( extendedDynamicState3CoverageToColorLocation_ ), extendedDynamicState3CoverageModulationMode( extendedDynamicState3CoverageModulationMode_ ), extendedDynamicState3CoverageModulationTableEnable( extendedDynamicState3CoverageModulationTableEnable_ ), extendedDynamicState3CoverageModulationTable( extendedDynamicState3CoverageModulationTable_ ), extendedDynamicState3CoverageReductionMode( extendedDynamicState3CoverageReductionMode_ ), extendedDynamicState3RepresentativeFragmentTestEnable( extendedDynamicState3RepresentativeFragmentTestEnable_ ), extendedDynamicState3ShadingRateImageEnable( extendedDynamicState3ShadingRateImageEnable_ )
58767     {}
58768 
58769     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState3FeaturesEXT( PhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58770 
PhysicalDeviceExtendedDynamicState3FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58771     PhysicalDeviceExtendedDynamicState3FeaturesEXT( VkPhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58772       : PhysicalDeviceExtendedDynamicState3FeaturesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicState3FeaturesEXT const *>( &rhs ) )
58773     {}
58774 
58775 
58776     PhysicalDeviceExtendedDynamicState3FeaturesEXT & operator=( PhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58777 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
58778 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58779     PhysicalDeviceExtendedDynamicState3FeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58780     {
58781       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT const *>( &rhs );
58782       return *this;
58783     }
58784 
58785 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58786     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
58787     {
58788       pNext = pNext_;
58789       return *this;
58790     }
58791 
setExtendedDynamicState3TessellationDomainOriginVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58792     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3TessellationDomainOrigin( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3TessellationDomainOrigin_ ) VULKAN_HPP_NOEXCEPT
58793     {
58794       extendedDynamicState3TessellationDomainOrigin = extendedDynamicState3TessellationDomainOrigin_;
58795       return *this;
58796     }
58797 
setExtendedDynamicState3DepthClampEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58798     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3DepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClampEnable_ ) VULKAN_HPP_NOEXCEPT
58799     {
58800       extendedDynamicState3DepthClampEnable = extendedDynamicState3DepthClampEnable_;
58801       return *this;
58802     }
58803 
setExtendedDynamicState3PolygonModeVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58804     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3PolygonMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3PolygonMode_ ) VULKAN_HPP_NOEXCEPT
58805     {
58806       extendedDynamicState3PolygonMode = extendedDynamicState3PolygonMode_;
58807       return *this;
58808     }
58809 
setExtendedDynamicState3RasterizationSamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58810     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3RasterizationSamples( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
58811     {
58812       extendedDynamicState3RasterizationSamples = extendedDynamicState3RasterizationSamples_;
58813       return *this;
58814     }
58815 
setExtendedDynamicState3SampleMaskVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58816     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3SampleMask( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleMask_ ) VULKAN_HPP_NOEXCEPT
58817     {
58818       extendedDynamicState3SampleMask = extendedDynamicState3SampleMask_;
58819       return *this;
58820     }
58821 
setExtendedDynamicState3AlphaToCoverageEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58822     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3AlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
58823     {
58824       extendedDynamicState3AlphaToCoverageEnable = extendedDynamicState3AlphaToCoverageEnable_;
58825       return *this;
58826     }
58827 
setExtendedDynamicState3AlphaToOneEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58828     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3AlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
58829     {
58830       extendedDynamicState3AlphaToOneEnable = extendedDynamicState3AlphaToOneEnable_;
58831       return *this;
58832     }
58833 
setExtendedDynamicState3LogicOpEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58834     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3LogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LogicOpEnable_ ) VULKAN_HPP_NOEXCEPT
58835     {
58836       extendedDynamicState3LogicOpEnable = extendedDynamicState3LogicOpEnable_;
58837       return *this;
58838     }
58839 
setExtendedDynamicState3ColorBlendEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58840     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ColorBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEnable_ ) VULKAN_HPP_NOEXCEPT
58841     {
58842       extendedDynamicState3ColorBlendEnable = extendedDynamicState3ColorBlendEnable_;
58843       return *this;
58844     }
58845 
setExtendedDynamicState3ColorBlendEquationVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58846     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ColorBlendEquation( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEquation_ ) VULKAN_HPP_NOEXCEPT
58847     {
58848       extendedDynamicState3ColorBlendEquation = extendedDynamicState3ColorBlendEquation_;
58849       return *this;
58850     }
58851 
setExtendedDynamicState3ColorWriteMaskVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58852     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ColorWriteMask( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorWriteMask_ ) VULKAN_HPP_NOEXCEPT
58853     {
58854       extendedDynamicState3ColorWriteMask = extendedDynamicState3ColorWriteMask_;
58855       return *this;
58856     }
58857 
setExtendedDynamicState3RasterizationStreamVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58858     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3RasterizationStream( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationStream_ ) VULKAN_HPP_NOEXCEPT
58859     {
58860       extendedDynamicState3RasterizationStream = extendedDynamicState3RasterizationStream_;
58861       return *this;
58862     }
58863 
setExtendedDynamicState3ConservativeRasterizationModeVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58864     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ConservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
58865     {
58866       extendedDynamicState3ConservativeRasterizationMode = extendedDynamicState3ConservativeRasterizationMode_;
58867       return *this;
58868     }
58869 
setExtendedDynamicState3ExtraPrimitiveOverestimationSizeVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58870     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ExtraPrimitiveOverestimationSize( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ExtraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
58871     {
58872       extendedDynamicState3ExtraPrimitiveOverestimationSize = extendedDynamicState3ExtraPrimitiveOverestimationSize_;
58873       return *this;
58874     }
58875 
setExtendedDynamicState3DepthClipEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58876     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3DepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipEnable_ ) VULKAN_HPP_NOEXCEPT
58877     {
58878       extendedDynamicState3DepthClipEnable = extendedDynamicState3DepthClipEnable_;
58879       return *this;
58880     }
58881 
setExtendedDynamicState3SampleLocationsEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58882     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3SampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
58883     {
58884       extendedDynamicState3SampleLocationsEnable = extendedDynamicState3SampleLocationsEnable_;
58885       return *this;
58886     }
58887 
setExtendedDynamicState3ColorBlendAdvancedVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58888     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ColorBlendAdvanced( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendAdvanced_ ) VULKAN_HPP_NOEXCEPT
58889     {
58890       extendedDynamicState3ColorBlendAdvanced = extendedDynamicState3ColorBlendAdvanced_;
58891       return *this;
58892     }
58893 
setExtendedDynamicState3ProvokingVertexModeVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58894     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ProvokingVertexMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ProvokingVertexMode_ ) VULKAN_HPP_NOEXCEPT
58895     {
58896       extendedDynamicState3ProvokingVertexMode = extendedDynamicState3ProvokingVertexMode_;
58897       return *this;
58898     }
58899 
setExtendedDynamicState3LineRasterizationModeVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58900     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3LineRasterizationMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
58901     {
58902       extendedDynamicState3LineRasterizationMode = extendedDynamicState3LineRasterizationMode_;
58903       return *this;
58904     }
58905 
setExtendedDynamicState3LineStippleEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58906     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3LineStippleEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineStippleEnable_ ) VULKAN_HPP_NOEXCEPT
58907     {
58908       extendedDynamicState3LineStippleEnable = extendedDynamicState3LineStippleEnable_;
58909       return *this;
58910     }
58911 
setExtendedDynamicState3DepthClipNegativeOneToOneVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58912     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3DepthClipNegativeOneToOne( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipNegativeOneToOne_ ) VULKAN_HPP_NOEXCEPT
58913     {
58914       extendedDynamicState3DepthClipNegativeOneToOne = extendedDynamicState3DepthClipNegativeOneToOne_;
58915       return *this;
58916     }
58917 
setExtendedDynamicState3ViewportWScalingEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58918     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
58919     {
58920       extendedDynamicState3ViewportWScalingEnable = extendedDynamicState3ViewportWScalingEnable_;
58921       return *this;
58922     }
58923 
setExtendedDynamicState3ViewportSwizzleVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58924     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ViewportSwizzle( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportSwizzle_ ) VULKAN_HPP_NOEXCEPT
58925     {
58926       extendedDynamicState3ViewportSwizzle = extendedDynamicState3ViewportSwizzle_;
58927       return *this;
58928     }
58929 
setExtendedDynamicState3CoverageToColorEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58930     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3CoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
58931     {
58932       extendedDynamicState3CoverageToColorEnable = extendedDynamicState3CoverageToColorEnable_;
58933       return *this;
58934     }
58935 
setExtendedDynamicState3CoverageToColorLocationVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58936     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3CoverageToColorLocation( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT
58937     {
58938       extendedDynamicState3CoverageToColorLocation = extendedDynamicState3CoverageToColorLocation_;
58939       return *this;
58940     }
58941 
setExtendedDynamicState3CoverageModulationModeVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58942     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3CoverageModulationMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
58943     {
58944       extendedDynamicState3CoverageModulationMode = extendedDynamicState3CoverageModulationMode_;
58945       return *this;
58946     }
58947 
setExtendedDynamicState3CoverageModulationTableEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58948     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3CoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
58949     {
58950       extendedDynamicState3CoverageModulationTableEnable = extendedDynamicState3CoverageModulationTableEnable_;
58951       return *this;
58952     }
58953 
setExtendedDynamicState3CoverageModulationTableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58954     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3CoverageModulationTable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
58955     {
58956       extendedDynamicState3CoverageModulationTable = extendedDynamicState3CoverageModulationTable_;
58957       return *this;
58958     }
58959 
setExtendedDynamicState3CoverageReductionModeVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58960     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3CoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
58961     {
58962       extendedDynamicState3CoverageReductionMode = extendedDynamicState3CoverageReductionMode_;
58963       return *this;
58964     }
58965 
setExtendedDynamicState3RepresentativeFragmentTestEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58966     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3RepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RepresentativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
58967     {
58968       extendedDynamicState3RepresentativeFragmentTestEnable = extendedDynamicState3RepresentativeFragmentTestEnable_;
58969       return *this;
58970     }
58971 
setExtendedDynamicState3ShadingRateImageEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58972     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ShadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
58973     {
58974       extendedDynamicState3ShadingRateImageEnable = extendedDynamicState3ShadingRateImageEnable_;
58975       return *this;
58976     }
58977 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
58978 
58979 
operator VkPhysicalDeviceExtendedDynamicState3FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58980     operator VkPhysicalDeviceExtendedDynamicState3FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
58981     {
58982       return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT*>( this );
58983     }
58984 
operator VkPhysicalDeviceExtendedDynamicState3FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58985     operator VkPhysicalDeviceExtendedDynamicState3FeaturesEXT &() VULKAN_HPP_NOEXCEPT
58986     {
58987       return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT*>( this );
58988     }
58989 
58990 #if defined( VULKAN_HPP_USE_REFLECT )
58991 #if 14 <= VULKAN_HPP_CPP_VERSION
58992     auto
58993 #else
58994     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
58995 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT58996       reflect() const VULKAN_HPP_NOEXCEPT
58997     {
58998       return std::tie( sType, pNext, extendedDynamicState3TessellationDomainOrigin, extendedDynamicState3DepthClampEnable, extendedDynamicState3PolygonMode, extendedDynamicState3RasterizationSamples, extendedDynamicState3SampleMask, extendedDynamicState3AlphaToCoverageEnable, extendedDynamicState3AlphaToOneEnable, extendedDynamicState3LogicOpEnable, extendedDynamicState3ColorBlendEnable, extendedDynamicState3ColorBlendEquation, extendedDynamicState3ColorWriteMask, extendedDynamicState3RasterizationStream, extendedDynamicState3ConservativeRasterizationMode, extendedDynamicState3ExtraPrimitiveOverestimationSize, extendedDynamicState3DepthClipEnable, extendedDynamicState3SampleLocationsEnable, extendedDynamicState3ColorBlendAdvanced, extendedDynamicState3ProvokingVertexMode, extendedDynamicState3LineRasterizationMode, extendedDynamicState3LineStippleEnable, extendedDynamicState3DepthClipNegativeOneToOne, extendedDynamicState3ViewportWScalingEnable, extendedDynamicState3ViewportSwizzle, extendedDynamicState3CoverageToColorEnable, extendedDynamicState3CoverageToColorLocation, extendedDynamicState3CoverageModulationMode, extendedDynamicState3CoverageModulationTableEnable, extendedDynamicState3CoverageModulationTable, extendedDynamicState3CoverageReductionMode, extendedDynamicState3RepresentativeFragmentTestEnable, extendedDynamicState3ShadingRateImageEnable );
58999     }
59000 #endif
59001 
59002 
59003 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59004 auto operator<=>( PhysicalDeviceExtendedDynamicState3FeaturesEXT const & ) const = default;
59005 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT59006     bool operator==( PhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
59007     {
59008 #if defined( VULKAN_HPP_USE_REFLECT )
59009       return this->reflect() == rhs.reflect();
59010 #else
59011       return ( sType == rhs.sType )
59012           && ( pNext == rhs.pNext )
59013           && ( extendedDynamicState3TessellationDomainOrigin == rhs.extendedDynamicState3TessellationDomainOrigin )
59014           && ( extendedDynamicState3DepthClampEnable == rhs.extendedDynamicState3DepthClampEnable )
59015           && ( extendedDynamicState3PolygonMode == rhs.extendedDynamicState3PolygonMode )
59016           && ( extendedDynamicState3RasterizationSamples == rhs.extendedDynamicState3RasterizationSamples )
59017           && ( extendedDynamicState3SampleMask == rhs.extendedDynamicState3SampleMask )
59018           && ( extendedDynamicState3AlphaToCoverageEnable == rhs.extendedDynamicState3AlphaToCoverageEnable )
59019           && ( extendedDynamicState3AlphaToOneEnable == rhs.extendedDynamicState3AlphaToOneEnable )
59020           && ( extendedDynamicState3LogicOpEnable == rhs.extendedDynamicState3LogicOpEnable )
59021           && ( extendedDynamicState3ColorBlendEnable == rhs.extendedDynamicState3ColorBlendEnable )
59022           && ( extendedDynamicState3ColorBlendEquation == rhs.extendedDynamicState3ColorBlendEquation )
59023           && ( extendedDynamicState3ColorWriteMask == rhs.extendedDynamicState3ColorWriteMask )
59024           && ( extendedDynamicState3RasterizationStream == rhs.extendedDynamicState3RasterizationStream )
59025           && ( extendedDynamicState3ConservativeRasterizationMode == rhs.extendedDynamicState3ConservativeRasterizationMode )
59026           && ( extendedDynamicState3ExtraPrimitiveOverestimationSize == rhs.extendedDynamicState3ExtraPrimitiveOverestimationSize )
59027           && ( extendedDynamicState3DepthClipEnable == rhs.extendedDynamicState3DepthClipEnable )
59028           && ( extendedDynamicState3SampleLocationsEnable == rhs.extendedDynamicState3SampleLocationsEnable )
59029           && ( extendedDynamicState3ColorBlendAdvanced == rhs.extendedDynamicState3ColorBlendAdvanced )
59030           && ( extendedDynamicState3ProvokingVertexMode == rhs.extendedDynamicState3ProvokingVertexMode )
59031           && ( extendedDynamicState3LineRasterizationMode == rhs.extendedDynamicState3LineRasterizationMode )
59032           && ( extendedDynamicState3LineStippleEnable == rhs.extendedDynamicState3LineStippleEnable )
59033           && ( extendedDynamicState3DepthClipNegativeOneToOne == rhs.extendedDynamicState3DepthClipNegativeOneToOne )
59034           && ( extendedDynamicState3ViewportWScalingEnable == rhs.extendedDynamicState3ViewportWScalingEnable )
59035           && ( extendedDynamicState3ViewportSwizzle == rhs.extendedDynamicState3ViewportSwizzle )
59036           && ( extendedDynamicState3CoverageToColorEnable == rhs.extendedDynamicState3CoverageToColorEnable )
59037           && ( extendedDynamicState3CoverageToColorLocation == rhs.extendedDynamicState3CoverageToColorLocation )
59038           && ( extendedDynamicState3CoverageModulationMode == rhs.extendedDynamicState3CoverageModulationMode )
59039           && ( extendedDynamicState3CoverageModulationTableEnable == rhs.extendedDynamicState3CoverageModulationTableEnable )
59040           && ( extendedDynamicState3CoverageModulationTable == rhs.extendedDynamicState3CoverageModulationTable )
59041           && ( extendedDynamicState3CoverageReductionMode == rhs.extendedDynamicState3CoverageReductionMode )
59042           && ( extendedDynamicState3RepresentativeFragmentTestEnable == rhs.extendedDynamicState3RepresentativeFragmentTestEnable )
59043           && ( extendedDynamicState3ShadingRateImageEnable == rhs.extendedDynamicState3ShadingRateImageEnable );
59044 #endif
59045     }
59046 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT59047     bool operator!=( PhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
59048     {
59049       return !operator==( rhs );
59050     }
59051 #endif
59052 
59053     public:
59054     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicState3FeaturesEXT;
59055     void * pNext = {};
59056     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3TessellationDomainOrigin = {};
59057     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClampEnable = {};
59058     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3PolygonMode = {};
59059     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationSamples = {};
59060     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleMask = {};
59061     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToCoverageEnable = {};
59062     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToOneEnable = {};
59063     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LogicOpEnable = {};
59064     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEnable = {};
59065     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEquation = {};
59066     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorWriteMask = {};
59067     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationStream = {};
59068     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ConservativeRasterizationMode = {};
59069     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ExtraPrimitiveOverestimationSize = {};
59070     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipEnable = {};
59071     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleLocationsEnable = {};
59072     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendAdvanced = {};
59073     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ProvokingVertexMode = {};
59074     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineRasterizationMode = {};
59075     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineStippleEnable = {};
59076     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipNegativeOneToOne = {};
59077     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportWScalingEnable = {};
59078     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportSwizzle = {};
59079     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorEnable = {};
59080     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorLocation = {};
59081     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationMode = {};
59082     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTableEnable = {};
59083     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTable = {};
59084     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageReductionMode = {};
59085     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RepresentativeFragmentTestEnable = {};
59086     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ShadingRateImageEnable = {};
59087 
59088   };
59089 
59090   template <>
59091   struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicState3FeaturesEXT>
59092   {
59093     using Type = PhysicalDeviceExtendedDynamicState3FeaturesEXT;
59094   };
59095 
59096   struct PhysicalDeviceExtendedDynamicState3PropertiesEXT
59097   {
59098     using NativeType = VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
59099 
59100     static const bool allowDuplicate = false;
59101     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicState3PropertiesEXT;
59102 
59103 
59104 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExtendedDynamicState3PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT59105 VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState3PropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 dynamicPrimitiveTopologyUnrestricted_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
59106     : pNext( pNext_ ), dynamicPrimitiveTopologyUnrestricted( dynamicPrimitiveTopologyUnrestricted_ )
59107     {}
59108 
59109     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState3PropertiesEXT( PhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59110 
PhysicalDeviceExtendedDynamicState3PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT59111     PhysicalDeviceExtendedDynamicState3PropertiesEXT( VkPhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59112       : PhysicalDeviceExtendedDynamicState3PropertiesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicState3PropertiesEXT const *>( &rhs ) )
59113     {}
59114 
59115 
59116     PhysicalDeviceExtendedDynamicState3PropertiesEXT & operator=( PhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59117 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
59118 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT59119     PhysicalDeviceExtendedDynamicState3PropertiesEXT & operator=( VkPhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59120     {
59121       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT const *>( &rhs );
59122       return *this;
59123     }
59124 
59125 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT59126     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3PropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
59127     {
59128       pNext = pNext_;
59129       return *this;
59130     }
59131 
setDynamicPrimitiveTopologyUnrestrictedVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT59132     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3PropertiesEXT & setDynamicPrimitiveTopologyUnrestricted( VULKAN_HPP_NAMESPACE::Bool32 dynamicPrimitiveTopologyUnrestricted_ ) VULKAN_HPP_NOEXCEPT
59133     {
59134       dynamicPrimitiveTopologyUnrestricted = dynamicPrimitiveTopologyUnrestricted_;
59135       return *this;
59136     }
59137 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
59138 
59139 
operator VkPhysicalDeviceExtendedDynamicState3PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT59140     operator VkPhysicalDeviceExtendedDynamicState3PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
59141     {
59142       return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT*>( this );
59143     }
59144 
operator VkPhysicalDeviceExtendedDynamicState3PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT59145     operator VkPhysicalDeviceExtendedDynamicState3PropertiesEXT &() VULKAN_HPP_NOEXCEPT
59146     {
59147       return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicState3PropertiesEXT*>( this );
59148     }
59149 
59150 #if defined( VULKAN_HPP_USE_REFLECT )
59151 #if 14 <= VULKAN_HPP_CPP_VERSION
59152     auto
59153 #else
59154     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
59155 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT59156       reflect() const VULKAN_HPP_NOEXCEPT
59157     {
59158       return std::tie( sType, pNext, dynamicPrimitiveTopologyUnrestricted );
59159     }
59160 #endif
59161 
59162 
59163 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59164 auto operator<=>( PhysicalDeviceExtendedDynamicState3PropertiesEXT const & ) const = default;
59165 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT59166     bool operator==( PhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
59167     {
59168 #if defined( VULKAN_HPP_USE_REFLECT )
59169       return this->reflect() == rhs.reflect();
59170 #else
59171       return ( sType == rhs.sType )
59172           && ( pNext == rhs.pNext )
59173           && ( dynamicPrimitiveTopologyUnrestricted == rhs.dynamicPrimitiveTopologyUnrestricted );
59174 #endif
59175     }
59176 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT59177     bool operator!=( PhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
59178     {
59179       return !operator==( rhs );
59180     }
59181 #endif
59182 
59183     public:
59184     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicState3PropertiesEXT;
59185     void * pNext = {};
59186     VULKAN_HPP_NAMESPACE::Bool32 dynamicPrimitiveTopologyUnrestricted = {};
59187 
59188   };
59189 
59190   template <>
59191   struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicState3PropertiesEXT>
59192   {
59193     using Type = PhysicalDeviceExtendedDynamicState3PropertiesEXT;
59194   };
59195 
59196   struct PhysicalDeviceExtendedDynamicStateFeaturesEXT
59197   {
59198     using NativeType = VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
59199 
59200     static const bool allowDuplicate = false;
59201     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
59202 
59203 
59204 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExtendedDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT59205 VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
59206     : pNext( pNext_ ), extendedDynamicState( extendedDynamicState_ )
59207     {}
59208 
59209     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59210 
PhysicalDeviceExtendedDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT59211     PhysicalDeviceExtendedDynamicStateFeaturesEXT( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59212       : PhysicalDeviceExtendedDynamicStateFeaturesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs ) )
59213     {}
59214 
59215 
59216     PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59217 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
59218 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT59219     PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59220     {
59221       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs );
59222       return *this;
59223     }
59224 
59225 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT59226     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
59227     {
59228       pNext = pNext_;
59229       return *this;
59230     }
59231 
setExtendedDynamicStateVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT59232     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicStateFeaturesEXT & setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT
59233     {
59234       extendedDynamicState = extendedDynamicState_;
59235       return *this;
59236     }
59237 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
59238 
59239 
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT59240     operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
59241     {
59242       return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>( this );
59243     }
59244 
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT59245     operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
59246     {
59247       return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>( this );
59248     }
59249 
59250 #if defined( VULKAN_HPP_USE_REFLECT )
59251 #if 14 <= VULKAN_HPP_CPP_VERSION
59252     auto
59253 #else
59254     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
59255 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT59256       reflect() const VULKAN_HPP_NOEXCEPT
59257     {
59258       return std::tie( sType, pNext, extendedDynamicState );
59259     }
59260 #endif
59261 
59262 
59263 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59264 auto operator<=>( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & ) const = default;
59265 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT59266     bool operator==( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
59267     {
59268 #if defined( VULKAN_HPP_USE_REFLECT )
59269       return this->reflect() == rhs.reflect();
59270 #else
59271       return ( sType == rhs.sType )
59272           && ( pNext == rhs.pNext )
59273           && ( extendedDynamicState == rhs.extendedDynamicState );
59274 #endif
59275     }
59276 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT59277     bool operator!=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
59278     {
59279       return !operator==( rhs );
59280     }
59281 #endif
59282 
59283     public:
59284     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
59285     void * pNext = {};
59286     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState = {};
59287 
59288   };
59289 
59290   template <>
59291   struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT>
59292   {
59293     using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT;
59294   };
59295 
59296   struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
59297   {
59298     using NativeType = VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
59299 
59300     static const bool allowDuplicate = false;
59301     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
59302 
59303 
59304 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExtendedSparseAddressSpaceFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV59305 VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
59306     : pNext( pNext_ ), extendedSparseAddressSpace( extendedSparseAddressSpace_ )
59307     {}
59308 
59309     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59310 
PhysicalDeviceExtendedSparseAddressSpaceFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV59311     PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
59312       : PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( *reinterpret_cast<PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const *>( &rhs ) )
59313     {}
59314 
59315 
59316     PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & operator=( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59317 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
59318 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV59319     PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & operator=( VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
59320     {
59321       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const *>( &rhs );
59322       return *this;
59323     }
59324 
59325 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV59326     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
59327     {
59328       pNext = pNext_;
59329       return *this;
59330     }
59331 
setExtendedSparseAddressSpaceVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV59332     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & setExtendedSparseAddressSpace( VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace_ ) VULKAN_HPP_NOEXCEPT
59333     {
59334       extendedSparseAddressSpace = extendedSparseAddressSpace_;
59335       return *this;
59336     }
59337 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
59338 
59339 
operator VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV59340     operator VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
59341     {
59342       return *reinterpret_cast<const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV*>( this );
59343     }
59344 
operator VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV59345     operator VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV &() VULKAN_HPP_NOEXCEPT
59346     {
59347       return *reinterpret_cast<VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV*>( this );
59348     }
59349 
59350 #if defined( VULKAN_HPP_USE_REFLECT )
59351 #if 14 <= VULKAN_HPP_CPP_VERSION
59352     auto
59353 #else
59354     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
59355 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV59356       reflect() const VULKAN_HPP_NOEXCEPT
59357     {
59358       return std::tie( sType, pNext, extendedSparseAddressSpace );
59359     }
59360 #endif
59361 
59362 
59363 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59364 auto operator<=>( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & ) const = default;
59365 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV59366     bool operator==( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
59367     {
59368 #if defined( VULKAN_HPP_USE_REFLECT )
59369       return this->reflect() == rhs.reflect();
59370 #else
59371       return ( sType == rhs.sType )
59372           && ( pNext == rhs.pNext )
59373           && ( extendedSparseAddressSpace == rhs.extendedSparseAddressSpace );
59374 #endif
59375     }
59376 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV59377     bool operator!=( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
59378     {
59379       return !operator==( rhs );
59380     }
59381 #endif
59382 
59383     public:
59384     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
59385     void * pNext = {};
59386     VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace = {};
59387 
59388   };
59389 
59390   template <>
59391   struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV>
59392   {
59393     using Type = PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
59394   };
59395 
59396   struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
59397   {
59398     using NativeType = VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
59399 
59400     static const bool allowDuplicate = false;
59401     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
59402 
59403 
59404 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExtendedSparseAddressSpacePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV59405 VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpacePropertiesNV(VULKAN_HPP_NAMESPACE::DeviceSize extendedSparseAddressSpaceSize_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags extendedSparseImageUsageFlags_ = {}, VULKAN_HPP_NAMESPACE::BufferUsageFlags extendedSparseBufferUsageFlags_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
59406     : pNext( pNext_ ), extendedSparseAddressSpaceSize( extendedSparseAddressSpaceSize_ ), extendedSparseImageUsageFlags( extendedSparseImageUsageFlags_ ), extendedSparseBufferUsageFlags( extendedSparseBufferUsageFlags_ )
59407     {}
59408 
59409     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59410 
PhysicalDeviceExtendedSparseAddressSpacePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV59411     PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
59412       : PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( *reinterpret_cast<PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const *>( &rhs ) )
59413     {}
59414 
59415 
59416     PhysicalDeviceExtendedSparseAddressSpacePropertiesNV & operator=( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59417 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
59418 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV59419     PhysicalDeviceExtendedSparseAddressSpacePropertiesNV & operator=( VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
59420     {
59421       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const *>( &rhs );
59422       return *this;
59423     }
59424 
59425 
operator VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV59426     operator VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const &() const VULKAN_HPP_NOEXCEPT
59427     {
59428       return *reinterpret_cast<const VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV*>( this );
59429     }
59430 
operator VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV59431     operator VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV &() VULKAN_HPP_NOEXCEPT
59432     {
59433       return *reinterpret_cast<VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV*>( this );
59434     }
59435 
59436 #if defined( VULKAN_HPP_USE_REFLECT )
59437 #if 14 <= VULKAN_HPP_CPP_VERSION
59438     auto
59439 #else
59440     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &, VULKAN_HPP_NAMESPACE::BufferUsageFlags const &>
59441 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV59442       reflect() const VULKAN_HPP_NOEXCEPT
59443     {
59444       return std::tie( sType, pNext, extendedSparseAddressSpaceSize, extendedSparseImageUsageFlags, extendedSparseBufferUsageFlags );
59445     }
59446 #endif
59447 
59448 
59449 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59450 auto operator<=>( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & ) const = default;
59451 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV59452     bool operator==( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
59453     {
59454 #if defined( VULKAN_HPP_USE_REFLECT )
59455       return this->reflect() == rhs.reflect();
59456 #else
59457       return ( sType == rhs.sType )
59458           && ( pNext == rhs.pNext )
59459           && ( extendedSparseAddressSpaceSize == rhs.extendedSparseAddressSpaceSize )
59460           && ( extendedSparseImageUsageFlags == rhs.extendedSparseImageUsageFlags )
59461           && ( extendedSparseBufferUsageFlags == rhs.extendedSparseBufferUsageFlags );
59462 #endif
59463     }
59464 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV59465     bool operator!=( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
59466     {
59467       return !operator==( rhs );
59468     }
59469 #endif
59470 
59471     public:
59472     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
59473     void * pNext = {};
59474     VULKAN_HPP_NAMESPACE::DeviceSize extendedSparseAddressSpaceSize = {};
59475     VULKAN_HPP_NAMESPACE::ImageUsageFlags extendedSparseImageUsageFlags = {};
59476     VULKAN_HPP_NAMESPACE::BufferUsageFlags extendedSparseBufferUsageFlags = {};
59477 
59478   };
59479 
59480   template <>
59481   struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV>
59482   {
59483     using Type = PhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
59484   };
59485 
59486   struct PhysicalDeviceExternalBufferInfo
59487   {
59488     using NativeType = VkPhysicalDeviceExternalBufferInfo;
59489 
59490     static const bool allowDuplicate = false;
59491     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo;
59492 
59493 
59494 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59495 VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo(VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
59496     : pNext( pNext_ ), flags( flags_ ), usage( usage_ ), handleType( handleType_ )
59497     {}
59498 
59499     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59500 
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59501     PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59502       : PhysicalDeviceExternalBufferInfo( *reinterpret_cast<PhysicalDeviceExternalBufferInfo const *>( &rhs ) )
59503     {}
59504 
59505 
59506     PhysicalDeviceExternalBufferInfo & operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59507 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
59508 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59509     PhysicalDeviceExternalBufferInfo & operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59510     {
59511       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const *>( &rhs );
59512       return *this;
59513     }
59514 
59515 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59516     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
59517     {
59518       pNext = pNext_;
59519       return *this;
59520     }
59521 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59522     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
59523     {
59524       flags = flags_;
59525       return *this;
59526     }
59527 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59528     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
59529     {
59530       usage = usage_;
59531       return *this;
59532     }
59533 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59534     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
59535     {
59536       handleType = handleType_;
59537       return *this;
59538     }
59539 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
59540 
59541 
operator VkPhysicalDeviceExternalBufferInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59542     operator VkPhysicalDeviceExternalBufferInfo const &() const VULKAN_HPP_NOEXCEPT
59543     {
59544       return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( this );
59545     }
59546 
operator VkPhysicalDeviceExternalBufferInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59547     operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT
59548     {
59549       return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>( this );
59550     }
59551 
59552 #if defined( VULKAN_HPP_USE_REFLECT )
59553 #if 14 <= VULKAN_HPP_CPP_VERSION
59554     auto
59555 #else
59556     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCreateFlags const &, VULKAN_HPP_NAMESPACE::BufferUsageFlags const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
59557 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59558       reflect() const VULKAN_HPP_NOEXCEPT
59559     {
59560       return std::tie( sType, pNext, flags, usage, handleType );
59561     }
59562 #endif
59563 
59564 
59565 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59566 auto operator<=>( PhysicalDeviceExternalBufferInfo const & ) const = default;
59567 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59568     bool operator==( PhysicalDeviceExternalBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
59569     {
59570 #if defined( VULKAN_HPP_USE_REFLECT )
59571       return this->reflect() == rhs.reflect();
59572 #else
59573       return ( sType == rhs.sType )
59574           && ( pNext == rhs.pNext )
59575           && ( flags == rhs.flags )
59576           && ( usage == rhs.usage )
59577           && ( handleType == rhs.handleType );
59578 #endif
59579     }
59580 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo59581     bool operator!=( PhysicalDeviceExternalBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
59582     {
59583       return !operator==( rhs );
59584     }
59585 #endif
59586 
59587     public:
59588     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo;
59589     const void * pNext = {};
59590     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
59591     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
59592     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
59593 
59594   };
59595 
59596   template <>
59597   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalBufferInfo>
59598   {
59599     using Type = PhysicalDeviceExternalBufferInfo;
59600   };
59601   using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
59602 
59603   struct PhysicalDeviceExternalFenceInfo
59604   {
59605     using NativeType = VkPhysicalDeviceExternalFenceInfo;
59606 
59607     static const bool allowDuplicate = false;
59608     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo;
59609 
59610 
59611 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo59612 VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
59613     : pNext( pNext_ ), handleType( handleType_ )
59614     {}
59615 
59616     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59617 
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo59618     PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59619       : PhysicalDeviceExternalFenceInfo( *reinterpret_cast<PhysicalDeviceExternalFenceInfo const *>( &rhs ) )
59620     {}
59621 
59622 
59623     PhysicalDeviceExternalFenceInfo & operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59624 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
59625 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo59626     PhysicalDeviceExternalFenceInfo & operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59627     {
59628       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const *>( &rhs );
59629       return *this;
59630     }
59631 
59632 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo59633     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFenceInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
59634     {
59635       pNext = pNext_;
59636       return *this;
59637     }
59638 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo59639     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFenceInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
59640     {
59641       handleType = handleType_;
59642       return *this;
59643     }
59644 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
59645 
59646 
operator VkPhysicalDeviceExternalFenceInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo59647     operator VkPhysicalDeviceExternalFenceInfo const &() const VULKAN_HPP_NOEXCEPT
59648     {
59649       return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( this );
59650     }
59651 
operator VkPhysicalDeviceExternalFenceInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo59652     operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT
59653     {
59654       return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>( this );
59655     }
59656 
59657 #if defined( VULKAN_HPP_USE_REFLECT )
59658 #if 14 <= VULKAN_HPP_CPP_VERSION
59659     auto
59660 #else
59661     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &>
59662 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo59663       reflect() const VULKAN_HPP_NOEXCEPT
59664     {
59665       return std::tie( sType, pNext, handleType );
59666     }
59667 #endif
59668 
59669 
59670 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59671 auto operator<=>( PhysicalDeviceExternalFenceInfo const & ) const = default;
59672 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo59673     bool operator==( PhysicalDeviceExternalFenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
59674     {
59675 #if defined( VULKAN_HPP_USE_REFLECT )
59676       return this->reflect() == rhs.reflect();
59677 #else
59678       return ( sType == rhs.sType )
59679           && ( pNext == rhs.pNext )
59680           && ( handleType == rhs.handleType );
59681 #endif
59682     }
59683 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo59684     bool operator!=( PhysicalDeviceExternalFenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
59685     {
59686       return !operator==( rhs );
59687     }
59688 #endif
59689 
59690     public:
59691     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo;
59692     const void * pNext = {};
59693     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
59694 
59695   };
59696 
59697   template <>
59698   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFenceInfo>
59699   {
59700     using Type = PhysicalDeviceExternalFenceInfo;
59701   };
59702   using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
59703 
59704 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
59705   struct PhysicalDeviceExternalFormatResolveFeaturesANDROID
59706   {
59707     using NativeType = VkPhysicalDeviceExternalFormatResolveFeaturesANDROID;
59708 
59709     static const bool allowDuplicate = false;
59710     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID;
59711 
59712 
59713 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalFormatResolveFeaturesANDROIDVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID59714 VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolveFeaturesANDROID(VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
59715     : pNext( pNext_ ), externalFormatResolve( externalFormatResolve_ )
59716     {}
59717 
59718     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolveFeaturesANDROID( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59719 
PhysicalDeviceExternalFormatResolveFeaturesANDROIDVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID59720     PhysicalDeviceExternalFormatResolveFeaturesANDROID( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59721       : PhysicalDeviceExternalFormatResolveFeaturesANDROID( *reinterpret_cast<PhysicalDeviceExternalFormatResolveFeaturesANDROID const *>( &rhs ) )
59722     {}
59723 
59724 
59725     PhysicalDeviceExternalFormatResolveFeaturesANDROID & operator=( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59726 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
59727 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID59728     PhysicalDeviceExternalFormatResolveFeaturesANDROID & operator=( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59729     {
59730       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID const *>( &rhs );
59731       return *this;
59732     }
59733 
59734 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID59735     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFormatResolveFeaturesANDROID & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
59736     {
59737       pNext = pNext_;
59738       return *this;
59739     }
59740 
setExternalFormatResolveVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID59741     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFormatResolveFeaturesANDROID & setExternalFormatResolve( VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ ) VULKAN_HPP_NOEXCEPT
59742     {
59743       externalFormatResolve = externalFormatResolve_;
59744       return *this;
59745     }
59746 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
59747 
59748 
operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID59749     operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const &() const VULKAN_HPP_NOEXCEPT
59750     {
59751       return *reinterpret_cast<const VkPhysicalDeviceExternalFormatResolveFeaturesANDROID*>( this );
59752     }
59753 
operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID59754     operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID &() VULKAN_HPP_NOEXCEPT
59755     {
59756       return *reinterpret_cast<VkPhysicalDeviceExternalFormatResolveFeaturesANDROID*>( this );
59757     }
59758 
59759 #if defined( VULKAN_HPP_USE_REFLECT )
59760 #if 14 <= VULKAN_HPP_CPP_VERSION
59761     auto
59762 #else
59763     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
59764 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID59765       reflect() const VULKAN_HPP_NOEXCEPT
59766     {
59767       return std::tie( sType, pNext, externalFormatResolve );
59768     }
59769 #endif
59770 
59771 
59772 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59773 auto operator<=>( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & ) const = default;
59774 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID59775     bool operator==( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
59776     {
59777 #if defined( VULKAN_HPP_USE_REFLECT )
59778       return this->reflect() == rhs.reflect();
59779 #else
59780       return ( sType == rhs.sType )
59781           && ( pNext == rhs.pNext )
59782           && ( externalFormatResolve == rhs.externalFormatResolve );
59783 #endif
59784     }
59785 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID59786     bool operator!=( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
59787     {
59788       return !operator==( rhs );
59789     }
59790 #endif
59791 
59792     public:
59793     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID;
59794     void * pNext = {};
59795     VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve = {};
59796 
59797   };
59798 
59799   template <>
59800   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID>
59801   {
59802     using Type = PhysicalDeviceExternalFormatResolveFeaturesANDROID;
59803   };
59804 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
59805 
59806 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
59807   struct PhysicalDeviceExternalFormatResolvePropertiesANDROID
59808   {
59809     using NativeType = VkPhysicalDeviceExternalFormatResolvePropertiesANDROID;
59810 
59811     static const bool allowDuplicate = false;
59812     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID;
59813 
59814 
59815 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalFormatResolvePropertiesANDROIDVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID59816 VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolvePropertiesANDROID(VULKAN_HPP_NAMESPACE::Bool32 nullColorAttachmentWithExternalFormatResolve_ = {}, VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
59817     : pNext( pNext_ ), nullColorAttachmentWithExternalFormatResolve( nullColorAttachmentWithExternalFormatResolve_ ), externalFormatResolveChromaOffsetX( externalFormatResolveChromaOffsetX_ ), externalFormatResolveChromaOffsetY( externalFormatResolveChromaOffsetY_ )
59818     {}
59819 
59820     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolvePropertiesANDROID( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59821 
PhysicalDeviceExternalFormatResolvePropertiesANDROIDVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID59822     PhysicalDeviceExternalFormatResolvePropertiesANDROID( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59823       : PhysicalDeviceExternalFormatResolvePropertiesANDROID( *reinterpret_cast<PhysicalDeviceExternalFormatResolvePropertiesANDROID const *>( &rhs ) )
59824     {}
59825 
59826 
59827     PhysicalDeviceExternalFormatResolvePropertiesANDROID & operator=( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59828 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
59829 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID59830     PhysicalDeviceExternalFormatResolvePropertiesANDROID & operator=( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59831     {
59832       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID const *>( &rhs );
59833       return *this;
59834     }
59835 
59836 
operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID59837     operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
59838     {
59839       return *reinterpret_cast<const VkPhysicalDeviceExternalFormatResolvePropertiesANDROID*>( this );
59840     }
59841 
operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID59842     operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID &() VULKAN_HPP_NOEXCEPT
59843     {
59844       return *reinterpret_cast<VkPhysicalDeviceExternalFormatResolvePropertiesANDROID*>( this );
59845     }
59846 
59847 #if defined( VULKAN_HPP_USE_REFLECT )
59848 #if 14 <= VULKAN_HPP_CPP_VERSION
59849     auto
59850 #else
59851     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &>
59852 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID59853       reflect() const VULKAN_HPP_NOEXCEPT
59854     {
59855       return std::tie( sType, pNext, nullColorAttachmentWithExternalFormatResolve, externalFormatResolveChromaOffsetX, externalFormatResolveChromaOffsetY );
59856     }
59857 #endif
59858 
59859 
59860 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59861 auto operator<=>( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & ) const = default;
59862 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID59863     bool operator==( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
59864     {
59865 #if defined( VULKAN_HPP_USE_REFLECT )
59866       return this->reflect() == rhs.reflect();
59867 #else
59868       return ( sType == rhs.sType )
59869           && ( pNext == rhs.pNext )
59870           && ( nullColorAttachmentWithExternalFormatResolve == rhs.nullColorAttachmentWithExternalFormatResolve )
59871           && ( externalFormatResolveChromaOffsetX == rhs.externalFormatResolveChromaOffsetX )
59872           && ( externalFormatResolveChromaOffsetY == rhs.externalFormatResolveChromaOffsetY );
59873 #endif
59874     }
59875 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID59876     bool operator!=( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
59877     {
59878       return !operator==( rhs );
59879     }
59880 #endif
59881 
59882     public:
59883     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID;
59884     void * pNext = {};
59885     VULKAN_HPP_NAMESPACE::Bool32 nullColorAttachmentWithExternalFormatResolve = {};
59886     VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
59887     VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
59888 
59889   };
59890 
59891   template <>
59892   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID>
59893   {
59894     using Type = PhysicalDeviceExternalFormatResolvePropertiesANDROID;
59895   };
59896 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
59897 
59898   struct PhysicalDeviceExternalImageFormatInfo
59899   {
59900     using NativeType = VkPhysicalDeviceExternalImageFormatInfo;
59901 
59902     static const bool allowDuplicate = false;
59903     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
59904 
59905 
59906 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo59907 VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
59908     : pNext( pNext_ ), handleType( handleType_ )
59909     {}
59910 
59911     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59912 
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo59913     PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59914       : PhysicalDeviceExternalImageFormatInfo( *reinterpret_cast<PhysicalDeviceExternalImageFormatInfo const *>( &rhs ) )
59915     {}
59916 
59917 
59918     PhysicalDeviceExternalImageFormatInfo & operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59919 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
59920 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo59921     PhysicalDeviceExternalImageFormatInfo & operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59922     {
59923       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const *>( &rhs );
59924       return *this;
59925     }
59926 
59927 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo59928     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalImageFormatInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
59929     {
59930       pNext = pNext_;
59931       return *this;
59932     }
59933 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo59934     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalImageFormatInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
59935     {
59936       handleType = handleType_;
59937       return *this;
59938     }
59939 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
59940 
59941 
operator VkPhysicalDeviceExternalImageFormatInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo59942     operator VkPhysicalDeviceExternalImageFormatInfo const &() const VULKAN_HPP_NOEXCEPT
59943     {
59944       return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>( this );
59945     }
59946 
operator VkPhysicalDeviceExternalImageFormatInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo59947     operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT
59948     {
59949       return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>( this );
59950     }
59951 
59952 #if defined( VULKAN_HPP_USE_REFLECT )
59953 #if 14 <= VULKAN_HPP_CPP_VERSION
59954     auto
59955 #else
59956     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
59957 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo59958       reflect() const VULKAN_HPP_NOEXCEPT
59959     {
59960       return std::tie( sType, pNext, handleType );
59961     }
59962 #endif
59963 
59964 
59965 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59966 auto operator<=>( PhysicalDeviceExternalImageFormatInfo const & ) const = default;
59967 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo59968     bool operator==( PhysicalDeviceExternalImageFormatInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
59969     {
59970 #if defined( VULKAN_HPP_USE_REFLECT )
59971       return this->reflect() == rhs.reflect();
59972 #else
59973       return ( sType == rhs.sType )
59974           && ( pNext == rhs.pNext )
59975           && ( handleType == rhs.handleType );
59976 #endif
59977     }
59978 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo59979     bool operator!=( PhysicalDeviceExternalImageFormatInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
59980     {
59981       return !operator==( rhs );
59982     }
59983 #endif
59984 
59985     public:
59986     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
59987     const void * pNext = {};
59988     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
59989 
59990   };
59991 
59992   template <>
59993   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalImageFormatInfo>
59994   {
59995     using Type = PhysicalDeviceExternalImageFormatInfo;
59996   };
59997   using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
59998 
59999   struct PhysicalDeviceExternalMemoryHostPropertiesEXT
60000   {
60001     using NativeType = VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
60002 
60003     static const bool allowDuplicate = false;
60004     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
60005 
60006 
60007 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT60008 VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
60009     : pNext( pNext_ ), minImportedHostPointerAlignment( minImportedHostPointerAlignment_ )
60010     {}
60011 
60012     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60013 
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT60014     PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60015       : PhysicalDeviceExternalMemoryHostPropertiesEXT( *reinterpret_cast<PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs ) )
60016     {}
60017 
60018 
60019     PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60020 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
60021 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT60022     PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60023     {
60024       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs );
60025       return *this;
60026     }
60027 
60028 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT60029     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
60030     {
60031       return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
60032     }
60033 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT60034     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT
60035     {
60036       return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
60037     }
60038 
60039 #if defined( VULKAN_HPP_USE_REFLECT )
60040 #if 14 <= VULKAN_HPP_CPP_VERSION
60041     auto
60042 #else
60043     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
60044 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT60045       reflect() const VULKAN_HPP_NOEXCEPT
60046     {
60047       return std::tie( sType, pNext, minImportedHostPointerAlignment );
60048     }
60049 #endif
60050 
60051 
60052 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60053 auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const & ) const = default;
60054 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT60055     bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
60056     {
60057 #if defined( VULKAN_HPP_USE_REFLECT )
60058       return this->reflect() == rhs.reflect();
60059 #else
60060       return ( sType == rhs.sType )
60061           && ( pNext == rhs.pNext )
60062           && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment );
60063 #endif
60064     }
60065 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT60066     bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
60067     {
60068       return !operator==( rhs );
60069     }
60070 #endif
60071 
60072     public:
60073     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
60074     void * pNext = {};
60075     VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {};
60076 
60077   };
60078 
60079   template <>
60080   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT>
60081   {
60082     using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT;
60083   };
60084 
60085   struct PhysicalDeviceExternalMemoryRDMAFeaturesNV
60086   {
60087     using NativeType = VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
60088 
60089     static const bool allowDuplicate = false;
60090     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV;
60091 
60092 
60093 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalMemoryRDMAFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV60094 VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryRDMAFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
60095     : pNext( pNext_ ), externalMemoryRDMA( externalMemoryRDMA_ )
60096     {}
60097 
60098     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryRDMAFeaturesNV( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60099 
PhysicalDeviceExternalMemoryRDMAFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV60100     PhysicalDeviceExternalMemoryRDMAFeaturesNV( VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
60101       : PhysicalDeviceExternalMemoryRDMAFeaturesNV( *reinterpret_cast<PhysicalDeviceExternalMemoryRDMAFeaturesNV const *>( &rhs ) )
60102     {}
60103 
60104 
60105     PhysicalDeviceExternalMemoryRDMAFeaturesNV & operator=( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60106 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
60107 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV60108     PhysicalDeviceExternalMemoryRDMAFeaturesNV & operator=( VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
60109     {
60110       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV const *>( &rhs );
60111       return *this;
60112     }
60113 
60114 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV60115     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryRDMAFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
60116     {
60117       pNext = pNext_;
60118       return *this;
60119     }
60120 
setExternalMemoryRDMAVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV60121     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryRDMAFeaturesNV & setExternalMemoryRDMA( VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ ) VULKAN_HPP_NOEXCEPT
60122     {
60123       externalMemoryRDMA = externalMemoryRDMA_;
60124       return *this;
60125     }
60126 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
60127 
60128 
operator VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV60129     operator VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
60130     {
60131       return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>( this );
60132     }
60133 
operator VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV60134     operator VkPhysicalDeviceExternalMemoryRDMAFeaturesNV &() VULKAN_HPP_NOEXCEPT
60135     {
60136       return *reinterpret_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>( this );
60137     }
60138 
60139 #if defined( VULKAN_HPP_USE_REFLECT )
60140 #if 14 <= VULKAN_HPP_CPP_VERSION
60141     auto
60142 #else
60143     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
60144 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV60145       reflect() const VULKAN_HPP_NOEXCEPT
60146     {
60147       return std::tie( sType, pNext, externalMemoryRDMA );
60148     }
60149 #endif
60150 
60151 
60152 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60153 auto operator<=>( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & ) const = default;
60154 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV60155     bool operator==( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
60156     {
60157 #if defined( VULKAN_HPP_USE_REFLECT )
60158       return this->reflect() == rhs.reflect();
60159 #else
60160       return ( sType == rhs.sType )
60161           && ( pNext == rhs.pNext )
60162           && ( externalMemoryRDMA == rhs.externalMemoryRDMA );
60163 #endif
60164     }
60165 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV60166     bool operator!=( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
60167     {
60168       return !operator==( rhs );
60169     }
60170 #endif
60171 
60172     public:
60173     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV;
60174     void * pNext = {};
60175     VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA = {};
60176 
60177   };
60178 
60179   template <>
60180   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV>
60181   {
60182     using Type = PhysicalDeviceExternalMemoryRDMAFeaturesNV;
60183   };
60184 
60185 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
60186   struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
60187   {
60188     using NativeType = VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
60189 
60190     static const bool allowDuplicate = false;
60191     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
60192 
60193 
60194 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalMemoryScreenBufferFeaturesQNXVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX60195 VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX(VULKAN_HPP_NAMESPACE::Bool32 screenBufferImport_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
60196     : pNext( pNext_ ), screenBufferImport( screenBufferImport_ )
60197     {}
60198 
60199     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60200 
PhysicalDeviceExternalMemoryScreenBufferFeaturesQNXVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX60201     PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
60202       : PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( *reinterpret_cast<PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const *>( &rhs ) )
60203     {}
60204 
60205 
60206     PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX & operator=( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60207 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
60208 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX60209     PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX & operator=( VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
60210     {
60211       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const *>( &rhs );
60212       return *this;
60213     }
60214 
60215 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX60216     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
60217     {
60218       pNext = pNext_;
60219       return *this;
60220     }
60221 
setScreenBufferImportVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX60222     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX & setScreenBufferImport( VULKAN_HPP_NAMESPACE::Bool32 screenBufferImport_ ) VULKAN_HPP_NOEXCEPT
60223     {
60224       screenBufferImport = screenBufferImport_;
60225       return *this;
60226     }
60227 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
60228 
60229 
operator VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX60230     operator VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const &() const VULKAN_HPP_NOEXCEPT
60231     {
60232       return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX*>( this );
60233     }
60234 
operator VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX60235     operator VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX &() VULKAN_HPP_NOEXCEPT
60236     {
60237       return *reinterpret_cast<VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX*>( this );
60238     }
60239 
60240 #if defined( VULKAN_HPP_USE_REFLECT )
60241 #if 14 <= VULKAN_HPP_CPP_VERSION
60242     auto
60243 #else
60244     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
60245 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX60246       reflect() const VULKAN_HPP_NOEXCEPT
60247     {
60248       return std::tie( sType, pNext, screenBufferImport );
60249     }
60250 #endif
60251 
60252 
60253 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60254 auto operator<=>( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & ) const = default;
60255 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX60256     bool operator==( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
60257     {
60258 #if defined( VULKAN_HPP_USE_REFLECT )
60259       return this->reflect() == rhs.reflect();
60260 #else
60261       return ( sType == rhs.sType )
60262           && ( pNext == rhs.pNext )
60263           && ( screenBufferImport == rhs.screenBufferImport );
60264 #endif
60265     }
60266 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX60267     bool operator!=( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
60268     {
60269       return !operator==( rhs );
60270     }
60271 #endif
60272 
60273     public:
60274     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
60275     void * pNext = {};
60276     VULKAN_HPP_NAMESPACE::Bool32 screenBufferImport = {};
60277 
60278   };
60279 
60280   template <>
60281   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX>
60282   {
60283     using Type = PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
60284   };
60285 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
60286 
60287   struct PhysicalDeviceExternalSemaphoreInfo
60288   {
60289     using NativeType = VkPhysicalDeviceExternalSemaphoreInfo;
60290 
60291     static const bool allowDuplicate = false;
60292     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
60293 
60294 
60295 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo60296 VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
60297     : pNext( pNext_ ), handleType( handleType_ )
60298     {}
60299 
60300     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60301 
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo60302     PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60303       : PhysicalDeviceExternalSemaphoreInfo( *reinterpret_cast<PhysicalDeviceExternalSemaphoreInfo const *>( &rhs ) )
60304     {}
60305 
60306 
60307     PhysicalDeviceExternalSemaphoreInfo & operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60308 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
60309 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo60310     PhysicalDeviceExternalSemaphoreInfo & operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60311     {
60312       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const *>( &rhs );
60313       return *this;
60314     }
60315 
60316 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo60317     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalSemaphoreInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
60318     {
60319       pNext = pNext_;
60320       return *this;
60321     }
60322 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo60323     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalSemaphoreInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
60324     {
60325       handleType = handleType_;
60326       return *this;
60327     }
60328 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
60329 
60330 
operator VkPhysicalDeviceExternalSemaphoreInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo60331     operator VkPhysicalDeviceExternalSemaphoreInfo const &() const VULKAN_HPP_NOEXCEPT
60332     {
60333       return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( this );
60334     }
60335 
operator VkPhysicalDeviceExternalSemaphoreInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo60336     operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT
60337     {
60338       return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>( this );
60339     }
60340 
60341 #if defined( VULKAN_HPP_USE_REFLECT )
60342 #if 14 <= VULKAN_HPP_CPP_VERSION
60343     auto
60344 #else
60345     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
60346 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo60347       reflect() const VULKAN_HPP_NOEXCEPT
60348     {
60349       return std::tie( sType, pNext, handleType );
60350     }
60351 #endif
60352 
60353 
60354 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60355 auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const & ) const = default;
60356 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo60357     bool operator==( PhysicalDeviceExternalSemaphoreInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
60358     {
60359 #if defined( VULKAN_HPP_USE_REFLECT )
60360       return this->reflect() == rhs.reflect();
60361 #else
60362       return ( sType == rhs.sType )
60363           && ( pNext == rhs.pNext )
60364           && ( handleType == rhs.handleType );
60365 #endif
60366     }
60367 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo60368     bool operator!=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
60369     {
60370       return !operator==( rhs );
60371     }
60372 #endif
60373 
60374     public:
60375     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
60376     const void * pNext = {};
60377     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
60378 
60379   };
60380 
60381   template <>
60382   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalSemaphoreInfo>
60383   {
60384     using Type = PhysicalDeviceExternalSemaphoreInfo;
60385   };
60386   using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
60387 
60388   struct PhysicalDeviceFaultFeaturesEXT
60389   {
60390     using NativeType = VkPhysicalDeviceFaultFeaturesEXT;
60391 
60392     static const bool allowDuplicate = false;
60393     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFaultFeaturesEXT;
60394 
60395 
60396 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFaultFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60397 VULKAN_HPP_CONSTEXPR PhysicalDeviceFaultFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 deviceFault_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceFaultVendorBinary_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
60398     : pNext( pNext_ ), deviceFault( deviceFault_ ), deviceFaultVendorBinary( deviceFaultVendorBinary_ )
60399     {}
60400 
60401     VULKAN_HPP_CONSTEXPR PhysicalDeviceFaultFeaturesEXT( PhysicalDeviceFaultFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60402 
PhysicalDeviceFaultFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60403     PhysicalDeviceFaultFeaturesEXT( VkPhysicalDeviceFaultFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60404       : PhysicalDeviceFaultFeaturesEXT( *reinterpret_cast<PhysicalDeviceFaultFeaturesEXT const *>( &rhs ) )
60405     {}
60406 
60407 
60408     PhysicalDeviceFaultFeaturesEXT & operator=( PhysicalDeviceFaultFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60409 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
60410 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60411     PhysicalDeviceFaultFeaturesEXT & operator=( VkPhysicalDeviceFaultFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60412     {
60413       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT const *>( &rhs );
60414       return *this;
60415     }
60416 
60417 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60418     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFaultFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
60419     {
60420       pNext = pNext_;
60421       return *this;
60422     }
60423 
setDeviceFaultVULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60424     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFaultFeaturesEXT & setDeviceFault( VULKAN_HPP_NAMESPACE::Bool32 deviceFault_ ) VULKAN_HPP_NOEXCEPT
60425     {
60426       deviceFault = deviceFault_;
60427       return *this;
60428     }
60429 
setDeviceFaultVendorBinaryVULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60430     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFaultFeaturesEXT & setDeviceFaultVendorBinary( VULKAN_HPP_NAMESPACE::Bool32 deviceFaultVendorBinary_ ) VULKAN_HPP_NOEXCEPT
60431     {
60432       deviceFaultVendorBinary = deviceFaultVendorBinary_;
60433       return *this;
60434     }
60435 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
60436 
60437 
operator VkPhysicalDeviceFaultFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60438     operator VkPhysicalDeviceFaultFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
60439     {
60440       return *reinterpret_cast<const VkPhysicalDeviceFaultFeaturesEXT*>( this );
60441     }
60442 
operator VkPhysicalDeviceFaultFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60443     operator VkPhysicalDeviceFaultFeaturesEXT &() VULKAN_HPP_NOEXCEPT
60444     {
60445       return *reinterpret_cast<VkPhysicalDeviceFaultFeaturesEXT*>( this );
60446     }
60447 
60448 #if defined( VULKAN_HPP_USE_REFLECT )
60449 #if 14 <= VULKAN_HPP_CPP_VERSION
60450     auto
60451 #else
60452     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
60453 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60454       reflect() const VULKAN_HPP_NOEXCEPT
60455     {
60456       return std::tie( sType, pNext, deviceFault, deviceFaultVendorBinary );
60457     }
60458 #endif
60459 
60460 
60461 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60462 auto operator<=>( PhysicalDeviceFaultFeaturesEXT const & ) const = default;
60463 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60464     bool operator==( PhysicalDeviceFaultFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
60465     {
60466 #if defined( VULKAN_HPP_USE_REFLECT )
60467       return this->reflect() == rhs.reflect();
60468 #else
60469       return ( sType == rhs.sType )
60470           && ( pNext == rhs.pNext )
60471           && ( deviceFault == rhs.deviceFault )
60472           && ( deviceFaultVendorBinary == rhs.deviceFaultVendorBinary );
60473 #endif
60474     }
60475 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT60476     bool operator!=( PhysicalDeviceFaultFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
60477     {
60478       return !operator==( rhs );
60479     }
60480 #endif
60481 
60482     public:
60483     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFaultFeaturesEXT;
60484     void * pNext = {};
60485     VULKAN_HPP_NAMESPACE::Bool32 deviceFault = {};
60486     VULKAN_HPP_NAMESPACE::Bool32 deviceFaultVendorBinary = {};
60487 
60488   };
60489 
60490   template <>
60491   struct CppType<StructureType, StructureType::ePhysicalDeviceFaultFeaturesEXT>
60492   {
60493     using Type = PhysicalDeviceFaultFeaturesEXT;
60494   };
60495 
60496   struct PhysicalDeviceFeatures2
60497   {
60498     using NativeType = VkPhysicalDeviceFeatures2;
60499 
60500     static const bool allowDuplicate = false;
60501     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2;
60502 
60503 
60504 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures260505 VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
60506     : pNext( pNext_ ), features( features_ )
60507     {}
60508 
60509     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60510 
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures260511     PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
60512       : PhysicalDeviceFeatures2( *reinterpret_cast<PhysicalDeviceFeatures2 const *>( &rhs ) )
60513     {}
60514 
60515 
60516     PhysicalDeviceFeatures2 & operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60517 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
60518 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures260519     PhysicalDeviceFeatures2 & operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
60520     {
60521       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const *>( &rhs );
60522       return *this;
60523     }
60524 
60525 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures260526     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures2 & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
60527     {
60528       pNext = pNext_;
60529       return *this;
60530     }
60531 
setFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures260532     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT
60533     {
60534       features = features_;
60535       return *this;
60536     }
60537 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
60538 
60539 
operator VkPhysicalDeviceFeatures2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures260540     operator VkPhysicalDeviceFeatures2 const &() const VULKAN_HPP_NOEXCEPT
60541     {
60542       return *reinterpret_cast<const VkPhysicalDeviceFeatures2*>( this );
60543     }
60544 
operator VkPhysicalDeviceFeatures2&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures260545     operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT
60546     {
60547       return *reinterpret_cast<VkPhysicalDeviceFeatures2*>( this );
60548     }
60549 
60550 #if defined( VULKAN_HPP_USE_REFLECT )
60551 #if 14 <= VULKAN_HPP_CPP_VERSION
60552     auto
60553 #else
60554     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const &>
60555 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures260556       reflect() const VULKAN_HPP_NOEXCEPT
60557     {
60558       return std::tie( sType, pNext, features );
60559     }
60560 #endif
60561 
60562 
60563 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60564 auto operator<=>( PhysicalDeviceFeatures2 const & ) const = default;
60565 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures260566     bool operator==( PhysicalDeviceFeatures2 const & rhs ) const VULKAN_HPP_NOEXCEPT
60567     {
60568 #if defined( VULKAN_HPP_USE_REFLECT )
60569       return this->reflect() == rhs.reflect();
60570 #else
60571       return ( sType == rhs.sType )
60572           && ( pNext == rhs.pNext )
60573           && ( features == rhs.features );
60574 #endif
60575     }
60576 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures260577     bool operator!=( PhysicalDeviceFeatures2 const & rhs ) const VULKAN_HPP_NOEXCEPT
60578     {
60579       return !operator==( rhs );
60580     }
60581 #endif
60582 
60583     public:
60584     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2;
60585     void * pNext = {};
60586     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {};
60587 
60588   };
60589 
60590   template <>
60591   struct CppType<StructureType, StructureType::ePhysicalDeviceFeatures2>
60592   {
60593     using Type = PhysicalDeviceFeatures2;
60594   };
60595   using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
60596 
60597   struct PhysicalDeviceFloatControlsProperties
60598   {
60599     using NativeType = VkPhysicalDeviceFloatControlsProperties;
60600 
60601     static const bool allowDuplicate = false;
60602     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFloatControlsProperties;
60603 
60604 
60605 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties60606 VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties(VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
60607     : pNext( pNext_ ), denormBehaviorIndependence( denormBehaviorIndependence_ ), roundingModeIndependence( roundingModeIndependence_ ), shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ), shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ), shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ), shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ), shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ), shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ), shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ), shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ), shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ), shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ), shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ), shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ), shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ), shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ), shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
60608     {}
60609 
60610     VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60611 
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties60612     PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
60613       : PhysicalDeviceFloatControlsProperties( *reinterpret_cast<PhysicalDeviceFloatControlsProperties const *>( &rhs ) )
60614     {}
60615 
60616 
60617     PhysicalDeviceFloatControlsProperties & operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60618 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
60619 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties60620     PhysicalDeviceFloatControlsProperties & operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
60621     {
60622       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const *>( &rhs );
60623       return *this;
60624     }
60625 
60626 
operator VkPhysicalDeviceFloatControlsProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties60627     operator VkPhysicalDeviceFloatControlsProperties const &() const VULKAN_HPP_NOEXCEPT
60628     {
60629       return *reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>( this );
60630     }
60631 
operator VkPhysicalDeviceFloatControlsProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties60632     operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT
60633     {
60634       return *reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>( this );
60635     }
60636 
60637 #if defined( VULKAN_HPP_USE_REFLECT )
60638 #if 14 <= VULKAN_HPP_CPP_VERSION
60639     auto
60640 #else
60641     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
60642 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties60643       reflect() const VULKAN_HPP_NOEXCEPT
60644     {
60645       return std::tie( sType, pNext, denormBehaviorIndependence, roundingModeIndependence, shaderSignedZeroInfNanPreserveFloat16, shaderSignedZeroInfNanPreserveFloat32, shaderSignedZeroInfNanPreserveFloat64, shaderDenormPreserveFloat16, shaderDenormPreserveFloat32, shaderDenormPreserveFloat64, shaderDenormFlushToZeroFloat16, shaderDenormFlushToZeroFloat32, shaderDenormFlushToZeroFloat64, shaderRoundingModeRTEFloat16, shaderRoundingModeRTEFloat32, shaderRoundingModeRTEFloat64, shaderRoundingModeRTZFloat16, shaderRoundingModeRTZFloat32, shaderRoundingModeRTZFloat64 );
60646     }
60647 #endif
60648 
60649 
60650 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60651 auto operator<=>( PhysicalDeviceFloatControlsProperties const & ) const = default;
60652 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties60653     bool operator==( PhysicalDeviceFloatControlsProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
60654     {
60655 #if defined( VULKAN_HPP_USE_REFLECT )
60656       return this->reflect() == rhs.reflect();
60657 #else
60658       return ( sType == rhs.sType )
60659           && ( pNext == rhs.pNext )
60660           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
60661           && ( roundingModeIndependence == rhs.roundingModeIndependence )
60662           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
60663           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
60664           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
60665           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
60666           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
60667           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
60668           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
60669           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
60670           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
60671           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
60672           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
60673           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
60674           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
60675           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
60676           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 );
60677 #endif
60678     }
60679 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties60680     bool operator!=( PhysicalDeviceFloatControlsProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
60681     {
60682       return !operator==( rhs );
60683     }
60684 #endif
60685 
60686     public:
60687     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties;
60688     void * pNext = {};
60689     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
60690     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
60691     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
60692     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
60693     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
60694     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
60695     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
60696     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
60697     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
60698     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
60699     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
60700     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
60701     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
60702     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
60703     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
60704     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
60705     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
60706 
60707   };
60708 
60709   template <>
60710   struct CppType<StructureType, StructureType::ePhysicalDeviceFloatControlsProperties>
60711   {
60712     using Type = PhysicalDeviceFloatControlsProperties;
60713   };
60714   using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
60715 
60716   struct PhysicalDeviceFragmentDensityMap2FeaturesEXT
60717   {
60718     using NativeType = VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
60719 
60720     static const bool allowDuplicate = false;
60721     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
60722 
60723 
60724 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMap2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT60725 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
60726     : pNext( pNext_ ), fragmentDensityMapDeferred( fragmentDensityMapDeferred_ )
60727     {}
60728 
60729     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60730 
PhysicalDeviceFragmentDensityMap2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT60731     PhysicalDeviceFragmentDensityMap2FeaturesEXT( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60732       : PhysicalDeviceFragmentDensityMap2FeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs ) )
60733     {}
60734 
60735 
60736     PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60737 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
60738 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT60739     PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60740     {
60741       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs );
60742       return *this;
60743     }
60744 
60745 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT60746     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
60747     {
60748       pNext = pNext_;
60749       return *this;
60750     }
60751 
setFragmentDensityMapDeferredVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT60752     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2FeaturesEXT & setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT
60753     {
60754       fragmentDensityMapDeferred = fragmentDensityMapDeferred_;
60755       return *this;
60756     }
60757 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
60758 
60759 
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT60760     operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
60761     {
60762       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>( this );
60763     }
60764 
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT60765     operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
60766     {
60767       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>( this );
60768     }
60769 
60770 #if defined( VULKAN_HPP_USE_REFLECT )
60771 #if 14 <= VULKAN_HPP_CPP_VERSION
60772     auto
60773 #else
60774     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
60775 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT60776       reflect() const VULKAN_HPP_NOEXCEPT
60777     {
60778       return std::tie( sType, pNext, fragmentDensityMapDeferred );
60779     }
60780 #endif
60781 
60782 
60783 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60784 auto operator<=>( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & ) const = default;
60785 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT60786     bool operator==( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
60787     {
60788 #if defined( VULKAN_HPP_USE_REFLECT )
60789       return this->reflect() == rhs.reflect();
60790 #else
60791       return ( sType == rhs.sType )
60792           && ( pNext == rhs.pNext )
60793           && ( fragmentDensityMapDeferred == rhs.fragmentDensityMapDeferred );
60794 #endif
60795     }
60796 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT60797     bool operator!=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
60798     {
60799       return !operator==( rhs );
60800     }
60801 #endif
60802 
60803     public:
60804     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
60805     void * pNext = {};
60806     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred = {};
60807 
60808   };
60809 
60810   template <>
60811   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT>
60812   {
60813     using Type = PhysicalDeviceFragmentDensityMap2FeaturesEXT;
60814   };
60815 
60816   struct PhysicalDeviceFragmentDensityMap2PropertiesEXT
60817   {
60818     using NativeType = VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
60819 
60820     static const bool allowDuplicate = false;
60821     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
60822 
60823 
60824 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMap2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT60825 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess_ = {}, uint32_t maxSubsampledArrayLayers_ = {}, uint32_t maxDescriptorSetSubsampledSamplers_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
60826     : pNext( pNext_ ), subsampledLoads( subsampledLoads_ ), subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ ), maxSubsampledArrayLayers( maxSubsampledArrayLayers_ ), maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ )
60827     {}
60828 
60829     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60830 
PhysicalDeviceFragmentDensityMap2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT60831     PhysicalDeviceFragmentDensityMap2PropertiesEXT( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60832       : PhysicalDeviceFragmentDensityMap2PropertiesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs ) )
60833     {}
60834 
60835 
60836     PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60837 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
60838 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT60839     PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60840     {
60841       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs );
60842       return *this;
60843     }
60844 
60845 
operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT60846     operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
60847     {
60848       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>( this );
60849     }
60850 
operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT60851     operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
60852     {
60853       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>( this );
60854     }
60855 
60856 #if defined( VULKAN_HPP_USE_REFLECT )
60857 #if 14 <= VULKAN_HPP_CPP_VERSION
60858     auto
60859 #else
60860     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, uint32_t const &>
60861 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT60862       reflect() const VULKAN_HPP_NOEXCEPT
60863     {
60864       return std::tie( sType, pNext, subsampledLoads, subsampledCoarseReconstructionEarlyAccess, maxSubsampledArrayLayers, maxDescriptorSetSubsampledSamplers );
60865     }
60866 #endif
60867 
60868 
60869 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60870 auto operator<=>( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & ) const = default;
60871 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT60872     bool operator==( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
60873     {
60874 #if defined( VULKAN_HPP_USE_REFLECT )
60875       return this->reflect() == rhs.reflect();
60876 #else
60877       return ( sType == rhs.sType )
60878           && ( pNext == rhs.pNext )
60879           && ( subsampledLoads == rhs.subsampledLoads )
60880           && ( subsampledCoarseReconstructionEarlyAccess == rhs.subsampledCoarseReconstructionEarlyAccess )
60881           && ( maxSubsampledArrayLayers == rhs.maxSubsampledArrayLayers )
60882           && ( maxDescriptorSetSubsampledSamplers == rhs.maxDescriptorSetSubsampledSamplers );
60883 #endif
60884     }
60885 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT60886     bool operator!=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
60887     {
60888       return !operator==( rhs );
60889     }
60890 #endif
60891 
60892     public:
60893     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
60894     void * pNext = {};
60895     VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads = {};
60896     VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess = {};
60897     uint32_t maxSubsampledArrayLayers = {};
60898     uint32_t maxDescriptorSetSubsampledSamplers = {};
60899 
60900   };
60901 
60902   template <>
60903   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT>
60904   {
60905     using Type = PhysicalDeviceFragmentDensityMap2PropertiesEXT;
60906   };
60907 
60908   struct PhysicalDeviceFragmentDensityMapFeaturesEXT
60909   {
60910     using NativeType = VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
60911 
60912     static const bool allowDuplicate = false;
60913     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
60914 
60915 
60916 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60917 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
60918     : pNext( pNext_ ), fragmentDensityMap( fragmentDensityMap_ ), fragmentDensityMapDynamic( fragmentDensityMapDynamic_ ), fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ )
60919     {}
60920 
60921     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60922 
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60923     PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60924       : PhysicalDeviceFragmentDensityMapFeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs ) )
60925     {}
60926 
60927 
60928     PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60929 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
60930 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60931     PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60932     {
60933       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs );
60934       return *this;
60935     }
60936 
60937 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60938     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
60939     {
60940       pNext = pNext_;
60941       return *this;
60942     }
60943 
setFragmentDensityMapVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60944     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT
60945     {
60946       fragmentDensityMap = fragmentDensityMap_;
60947       return *this;
60948     }
60949 
setFragmentDensityMapDynamicVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60950     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT
60951     {
60952       fragmentDensityMapDynamic = fragmentDensityMapDynamic_;
60953       return *this;
60954     }
60955 
setFragmentDensityMapNonSubsampledImagesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60956     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT
60957     {
60958       fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_;
60959       return *this;
60960     }
60961 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
60962 
60963 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60964     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
60965     {
60966       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
60967     }
60968 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60969     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
60970     {
60971       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
60972     }
60973 
60974 #if defined( VULKAN_HPP_USE_REFLECT )
60975 #if 14 <= VULKAN_HPP_CPP_VERSION
60976     auto
60977 #else
60978     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
60979 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60980       reflect() const VULKAN_HPP_NOEXCEPT
60981     {
60982       return std::tie( sType, pNext, fragmentDensityMap, fragmentDensityMapDynamic, fragmentDensityMapNonSubsampledImages );
60983     }
60984 #endif
60985 
60986 
60987 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60988 auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const & ) const = default;
60989 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT60990     bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
60991     {
60992 #if defined( VULKAN_HPP_USE_REFLECT )
60993       return this->reflect() == rhs.reflect();
60994 #else
60995       return ( sType == rhs.sType )
60996           && ( pNext == rhs.pNext )
60997           && ( fragmentDensityMap == rhs.fragmentDensityMap )
60998           && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic )
60999           && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages );
61000 #endif
61001     }
61002 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT61003     bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
61004     {
61005       return !operator==( rhs );
61006     }
61007 #endif
61008 
61009     public:
61010     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
61011     void * pNext = {};
61012     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {};
61013     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {};
61014     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {};
61015 
61016   };
61017 
61018   template <>
61019   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT>
61020   {
61021     using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT;
61022   };
61023 
61024   struct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
61025   {
61026     using NativeType = VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
61027 
61028     static const bool allowDuplicate = false;
61029     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
61030 
61031 
61032 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM61033 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
61034     : pNext( pNext_ ), fragmentDensityMapOffset( fragmentDensityMapOffset_ )
61035     {}
61036 
61037     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61038 
PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM61039     PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
61040       : PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( *reinterpret_cast<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const *>( &rhs ) )
61041     {}
61042 
61043 
61044     PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM & operator=( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61045 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
61046 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM61047     PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM & operator=( VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
61048     {
61049       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const *>( &rhs );
61050       return *this;
61051     }
61052 
61053 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM61054     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
61055     {
61056       pNext = pNext_;
61057       return *this;
61058     }
61059 
setFragmentDensityMapOffsetVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM61060     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM & setFragmentDensityMapOffset( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset_ ) VULKAN_HPP_NOEXCEPT
61061     {
61062       fragmentDensityMapOffset = fragmentDensityMapOffset_;
61063       return *this;
61064     }
61065 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
61066 
61067 
operator VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM61068     operator VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
61069     {
61070       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM*>( this );
61071     }
61072 
operator VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM61073     operator VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
61074     {
61075       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM*>( this );
61076     }
61077 
61078 #if defined( VULKAN_HPP_USE_REFLECT )
61079 #if 14 <= VULKAN_HPP_CPP_VERSION
61080     auto
61081 #else
61082     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
61083 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM61084       reflect() const VULKAN_HPP_NOEXCEPT
61085     {
61086       return std::tie( sType, pNext, fragmentDensityMapOffset );
61087     }
61088 #endif
61089 
61090 
61091 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61092 auto operator<=>( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & ) const = default;
61093 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM61094     bool operator==( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
61095     {
61096 #if defined( VULKAN_HPP_USE_REFLECT )
61097       return this->reflect() == rhs.reflect();
61098 #else
61099       return ( sType == rhs.sType )
61100           && ( pNext == rhs.pNext )
61101           && ( fragmentDensityMapOffset == rhs.fragmentDensityMapOffset );
61102 #endif
61103     }
61104 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM61105     bool operator!=( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
61106     {
61107       return !operator==( rhs );
61108     }
61109 #endif
61110 
61111     public:
61112     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
61113     void * pNext = {};
61114     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset = {};
61115 
61116   };
61117 
61118   template <>
61119   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>
61120   {
61121     using Type = PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
61122   };
61123 
61124   struct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
61125   {
61126     using NativeType = VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
61127 
61128     static const bool allowDuplicate = false;
61129     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
61130 
61131 
61132 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM61133 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(VULKAN_HPP_NAMESPACE::Extent2D fragmentDensityOffsetGranularity_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
61134     : pNext( pNext_ ), fragmentDensityOffsetGranularity( fragmentDensityOffsetGranularity_ )
61135     {}
61136 
61137     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61138 
PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM61139     PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
61140       : PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( *reinterpret_cast<PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const *>( &rhs ) )
61141     {}
61142 
61143 
61144     PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM & operator=( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61145 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
61146 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM61147     PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM & operator=( VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
61148     {
61149       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const *>( &rhs );
61150       return *this;
61151     }
61152 
61153 
operator VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM61154     operator VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
61155     {
61156       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM*>( this );
61157     }
61158 
operator VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM61159     operator VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM &() VULKAN_HPP_NOEXCEPT
61160     {
61161       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM*>( this );
61162     }
61163 
61164 #if defined( VULKAN_HPP_USE_REFLECT )
61165 #if 14 <= VULKAN_HPP_CPP_VERSION
61166     auto
61167 #else
61168     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
61169 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM61170       reflect() const VULKAN_HPP_NOEXCEPT
61171     {
61172       return std::tie( sType, pNext, fragmentDensityOffsetGranularity );
61173     }
61174 #endif
61175 
61176 
61177 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61178 auto operator<=>( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & ) const = default;
61179 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM61180     bool operator==( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
61181     {
61182 #if defined( VULKAN_HPP_USE_REFLECT )
61183       return this->reflect() == rhs.reflect();
61184 #else
61185       return ( sType == rhs.sType )
61186           && ( pNext == rhs.pNext )
61187           && ( fragmentDensityOffsetGranularity == rhs.fragmentDensityOffsetGranularity );
61188 #endif
61189     }
61190 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM61191     bool operator!=( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
61192     {
61193       return !operator==( rhs );
61194     }
61195 #endif
61196 
61197     public:
61198     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
61199     void * pNext = {};
61200     VULKAN_HPP_NAMESPACE::Extent2D fragmentDensityOffsetGranularity = {};
61201 
61202   };
61203 
61204   template <>
61205   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>
61206   {
61207     using Type = PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
61208   };
61209 
61210   struct PhysicalDeviceFragmentDensityMapPropertiesEXT
61211   {
61212     using NativeType = VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
61213 
61214     static const bool allowDuplicate = false;
61215     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
61216 
61217 
61218 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT61219 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
61220     : pNext( pNext_ ), minFragmentDensityTexelSize( minFragmentDensityTexelSize_ ), maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ ), fragmentDensityInvocations( fragmentDensityInvocations_ )
61221     {}
61222 
61223     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61224 
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT61225     PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61226       : PhysicalDeviceFragmentDensityMapPropertiesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs ) )
61227     {}
61228 
61229 
61230     PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61231 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
61232 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT61233     PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61234     {
61235       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs );
61236       return *this;
61237     }
61238 
61239 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT61240     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
61241     {
61242       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
61243     }
61244 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT61245     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
61246     {
61247       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
61248     }
61249 
61250 #if defined( VULKAN_HPP_USE_REFLECT )
61251 #if 14 <= VULKAN_HPP_CPP_VERSION
61252     auto
61253 #else
61254     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
61255 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT61256       reflect() const VULKAN_HPP_NOEXCEPT
61257     {
61258       return std::tie( sType, pNext, minFragmentDensityTexelSize, maxFragmentDensityTexelSize, fragmentDensityInvocations );
61259     }
61260 #endif
61261 
61262 
61263 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61264 auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const & ) const = default;
61265 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT61266     bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
61267     {
61268 #if defined( VULKAN_HPP_USE_REFLECT )
61269       return this->reflect() == rhs.reflect();
61270 #else
61271       return ( sType == rhs.sType )
61272           && ( pNext == rhs.pNext )
61273           && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize )
61274           && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize )
61275           && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations );
61276 #endif
61277     }
61278 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT61279     bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
61280     {
61281       return !operator==( rhs );
61282     }
61283 #endif
61284 
61285     public:
61286     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
61287     void * pNext = {};
61288     VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {};
61289     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {};
61290     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {};
61291 
61292   };
61293 
61294   template <>
61295   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT>
61296   {
61297     using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT;
61298   };
61299 
61300   struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
61301   {
61302     using NativeType = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
61303 
61304     static const bool allowDuplicate = false;
61305     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
61306 
61307 
61308 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderBarycentricFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR61309 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
61310     : pNext( pNext_ ), fragmentShaderBarycentric( fragmentShaderBarycentric_ )
61311     {}
61312 
61313     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61314 
PhysicalDeviceFragmentShaderBarycentricFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR61315     PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61316       : PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( *reinterpret_cast<PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const *>( &rhs ) )
61317     {}
61318 
61319 
61320     PhysicalDeviceFragmentShaderBarycentricFeaturesKHR & operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61321 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
61322 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR61323     PhysicalDeviceFragmentShaderBarycentricFeaturesKHR & operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61324     {
61325       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const *>( &rhs );
61326       return *this;
61327     }
61328 
61329 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR61330     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
61331     {
61332       pNext = pNext_;
61333       return *this;
61334     }
61335 
setFragmentShaderBarycentricVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR61336     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR & setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT
61337     {
61338       fragmentShaderBarycentric = fragmentShaderBarycentric_;
61339       return *this;
61340     }
61341 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
61342 
61343 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR61344     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
61345     {
61346       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR*>( this );
61347     }
61348 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR61349     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR &() VULKAN_HPP_NOEXCEPT
61350     {
61351       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR*>( this );
61352     }
61353 
61354 #if defined( VULKAN_HPP_USE_REFLECT )
61355 #if 14 <= VULKAN_HPP_CPP_VERSION
61356     auto
61357 #else
61358     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
61359 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR61360       reflect() const VULKAN_HPP_NOEXCEPT
61361     {
61362       return std::tie( sType, pNext, fragmentShaderBarycentric );
61363     }
61364 #endif
61365 
61366 
61367 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61368 auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & ) const = default;
61369 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR61370     bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
61371     {
61372 #if defined( VULKAN_HPP_USE_REFLECT )
61373       return this->reflect() == rhs.reflect();
61374 #else
61375       return ( sType == rhs.sType )
61376           && ( pNext == rhs.pNext )
61377           && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric );
61378 #endif
61379     }
61380 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR61381     bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
61382     {
61383       return !operator==( rhs );
61384     }
61385 #endif
61386 
61387     public:
61388     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
61389     void * pNext = {};
61390     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {};
61391 
61392   };
61393 
61394   template <>
61395   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR>
61396   {
61397     using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
61398   };
61399   using PhysicalDeviceFragmentShaderBarycentricFeaturesNV = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
61400 
61401   struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
61402   {
61403     using NativeType = VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
61404 
61405     static const bool allowDuplicate = false;
61406     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
61407 
61408 
61409 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderBarycentricPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR61410 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricPropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 triStripVertexOrderIndependentOfProvokingVertex_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
61411     : pNext( pNext_ ), triStripVertexOrderIndependentOfProvokingVertex( triStripVertexOrderIndependentOfProvokingVertex_ )
61412     {}
61413 
61414     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61415 
PhysicalDeviceFragmentShaderBarycentricPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR61416     PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61417       : PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( *reinterpret_cast<PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const *>( &rhs ) )
61418     {}
61419 
61420 
61421     PhysicalDeviceFragmentShaderBarycentricPropertiesKHR & operator=( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61422 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
61423 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR61424     PhysicalDeviceFragmentShaderBarycentricPropertiesKHR & operator=( VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61425     {
61426       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const *>( &rhs );
61427       return *this;
61428     }
61429 
61430 
operator VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR61431     operator VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
61432     {
61433       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR*>( this );
61434     }
61435 
operator VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR61436     operator VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR &() VULKAN_HPP_NOEXCEPT
61437     {
61438       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR*>( this );
61439     }
61440 
61441 #if defined( VULKAN_HPP_USE_REFLECT )
61442 #if 14 <= VULKAN_HPP_CPP_VERSION
61443     auto
61444 #else
61445     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
61446 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR61447       reflect() const VULKAN_HPP_NOEXCEPT
61448     {
61449       return std::tie( sType, pNext, triStripVertexOrderIndependentOfProvokingVertex );
61450     }
61451 #endif
61452 
61453 
61454 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61455 auto operator<=>( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & ) const = default;
61456 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR61457     bool operator==( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
61458     {
61459 #if defined( VULKAN_HPP_USE_REFLECT )
61460       return this->reflect() == rhs.reflect();
61461 #else
61462       return ( sType == rhs.sType )
61463           && ( pNext == rhs.pNext )
61464           && ( triStripVertexOrderIndependentOfProvokingVertex == rhs.triStripVertexOrderIndependentOfProvokingVertex );
61465 #endif
61466     }
61467 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR61468     bool operator!=( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
61469     {
61470       return !operator==( rhs );
61471     }
61472 #endif
61473 
61474     public:
61475     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
61476     void * pNext = {};
61477     VULKAN_HPP_NAMESPACE::Bool32 triStripVertexOrderIndependentOfProvokingVertex = {};
61478 
61479   };
61480 
61481   template <>
61482   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR>
61483   {
61484     using Type = PhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
61485   };
61486 
61487   struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
61488   {
61489     using NativeType = VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
61490 
61491     static const bool allowDuplicate = false;
61492     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
61493 
61494 
61495 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61496 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
61497     : pNext( pNext_ ), fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ ), fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ ), fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
61498     {}
61499 
61500     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61501 
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61502     PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61503       : PhysicalDeviceFragmentShaderInterlockFeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs ) )
61504     {}
61505 
61506 
61507     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61508 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
61509 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61510     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61511     {
61512       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs );
61513       return *this;
61514     }
61515 
61516 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61517     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
61518     {
61519       pNext = pNext_;
61520       return *this;
61521     }
61522 
setFragmentShaderSampleInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61523     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT
61524     {
61525       fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
61526       return *this;
61527     }
61528 
setFragmentShaderPixelInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61529     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT
61530     {
61531       fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
61532       return *this;
61533     }
61534 
setFragmentShaderShadingRateInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61535     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT
61536     {
61537       fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
61538       return *this;
61539     }
61540 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
61541 
61542 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61543     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
61544     {
61545       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
61546     }
61547 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61548     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61549     {
61550       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
61551     }
61552 
61553 #if defined( VULKAN_HPP_USE_REFLECT )
61554 #if 14 <= VULKAN_HPP_CPP_VERSION
61555     auto
61556 #else
61557     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
61558 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61559       reflect() const VULKAN_HPP_NOEXCEPT
61560     {
61561       return std::tie( sType, pNext, fragmentShaderSampleInterlock, fragmentShaderPixelInterlock, fragmentShaderShadingRateInterlock );
61562     }
61563 #endif
61564 
61565 
61566 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61567 auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & ) const = default;
61568 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61569     bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
61570     {
61571 #if defined( VULKAN_HPP_USE_REFLECT )
61572       return this->reflect() == rhs.reflect();
61573 #else
61574       return ( sType == rhs.sType )
61575           && ( pNext == rhs.pNext )
61576           && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock )
61577           && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock )
61578           && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock );
61579 #endif
61580     }
61581 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT61582     bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
61583     {
61584       return !operator==( rhs );
61585     }
61586 #endif
61587 
61588     public:
61589     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
61590     void * pNext = {};
61591     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {};
61592     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {};
61593     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {};
61594 
61595   };
61596 
61597   template <>
61598   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT>
61599   {
61600     using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
61601   };
61602 
61603   struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
61604   {
61605     using NativeType = VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
61606 
61607     static const bool allowDuplicate = false;
61608     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
61609 
61610 
61611 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateEnumsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61612 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ = {}, VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ = {}, VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
61613     : pNext( pNext_ ), fragmentShadingRateEnums( fragmentShadingRateEnums_ ), supersampleFragmentShadingRates( supersampleFragmentShadingRates_ ), noInvocationFragmentShadingRates( noInvocationFragmentShadingRates_ )
61614     {}
61615 
61616     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61617 
PhysicalDeviceFragmentShadingRateEnumsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61618     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
61619       : PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( *reinterpret_cast<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const *>( &rhs ) )
61620     {}
61621 
61622 
61623     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61624 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
61625 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61626     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
61627     {
61628       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const *>( &rhs );
61629       return *this;
61630     }
61631 
61632 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61633     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
61634     {
61635       pNext = pNext_;
61636       return *this;
61637     }
61638 
setFragmentShadingRateEnumsVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61639     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setFragmentShadingRateEnums( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ ) VULKAN_HPP_NOEXCEPT
61640     {
61641       fragmentShadingRateEnums = fragmentShadingRateEnums_;
61642       return *this;
61643     }
61644 
setSupersampleFragmentShadingRatesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61645     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setSupersampleFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
61646     {
61647       supersampleFragmentShadingRates = supersampleFragmentShadingRates_;
61648       return *this;
61649     }
61650 
setNoInvocationFragmentShadingRatesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61651     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setNoInvocationFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
61652     {
61653       noInvocationFragmentShadingRates = noInvocationFragmentShadingRates_;
61654       return *this;
61655     }
61656 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
61657 
61658 
operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61659     operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
61660     {
61661       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>( this );
61662     }
61663 
operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61664     operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV &() VULKAN_HPP_NOEXCEPT
61665     {
61666       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>( this );
61667     }
61668 
61669 #if defined( VULKAN_HPP_USE_REFLECT )
61670 #if 14 <= VULKAN_HPP_CPP_VERSION
61671     auto
61672 #else
61673     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
61674 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61675       reflect() const VULKAN_HPP_NOEXCEPT
61676     {
61677       return std::tie( sType, pNext, fragmentShadingRateEnums, supersampleFragmentShadingRates, noInvocationFragmentShadingRates );
61678     }
61679 #endif
61680 
61681 
61682 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61683 auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & ) const = default;
61684 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61685     bool operator==( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
61686     {
61687 #if defined( VULKAN_HPP_USE_REFLECT )
61688       return this->reflect() == rhs.reflect();
61689 #else
61690       return ( sType == rhs.sType )
61691           && ( pNext == rhs.pNext )
61692           && ( fragmentShadingRateEnums == rhs.fragmentShadingRateEnums )
61693           && ( supersampleFragmentShadingRates == rhs.supersampleFragmentShadingRates )
61694           && ( noInvocationFragmentShadingRates == rhs.noInvocationFragmentShadingRates );
61695 #endif
61696     }
61697 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV61698     bool operator!=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
61699     {
61700       return !operator==( rhs );
61701     }
61702 #endif
61703 
61704     public:
61705     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
61706     void * pNext = {};
61707     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums = {};
61708     VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates = {};
61709     VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates = {};
61710 
61711   };
61712 
61713   template <>
61714   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV>
61715   {
61716     using Type = PhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
61717   };
61718 
61719   struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
61720   {
61721     using NativeType = VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
61722 
61723     static const bool allowDuplicate = false;
61724     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
61725 
61726 
61727 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateEnumsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV61728 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV(VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
61729     : pNext( pNext_ ), maxFragmentShadingRateInvocationCount( maxFragmentShadingRateInvocationCount_ )
61730     {}
61731 
61732     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61733 
PhysicalDeviceFragmentShadingRateEnumsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV61734     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
61735       : PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( *reinterpret_cast<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const *>( &rhs ) )
61736     {}
61737 
61738 
61739     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61740 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
61741 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV61742     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
61743     {
61744       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const *>( &rhs );
61745       return *this;
61746     }
61747 
61748 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV61749     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
61750     {
61751       pNext = pNext_;
61752       return *this;
61753     }
61754 
setMaxFragmentShadingRateInvocationCountVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV61755     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setMaxFragmentShadingRateInvocationCount( VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ ) VULKAN_HPP_NOEXCEPT
61756     {
61757       maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount_;
61758       return *this;
61759     }
61760 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
61761 
61762 
operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV61763     operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
61764     {
61765       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>( this );
61766     }
61767 
operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV61768     operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV &() VULKAN_HPP_NOEXCEPT
61769     {
61770       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>( this );
61771     }
61772 
61773 #if defined( VULKAN_HPP_USE_REFLECT )
61774 #if 14 <= VULKAN_HPP_CPP_VERSION
61775     auto
61776 #else
61777     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
61778 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV61779       reflect() const VULKAN_HPP_NOEXCEPT
61780     {
61781       return std::tie( sType, pNext, maxFragmentShadingRateInvocationCount );
61782     }
61783 #endif
61784 
61785 
61786 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61787 auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & ) const = default;
61788 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV61789     bool operator==( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
61790     {
61791 #if defined( VULKAN_HPP_USE_REFLECT )
61792       return this->reflect() == rhs.reflect();
61793 #else
61794       return ( sType == rhs.sType )
61795           && ( pNext == rhs.pNext )
61796           && ( maxFragmentShadingRateInvocationCount == rhs.maxFragmentShadingRateInvocationCount );
61797 #endif
61798     }
61799 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV61800     bool operator!=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
61801     {
61802       return !operator==( rhs );
61803     }
61804 #endif
61805 
61806     public:
61807     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
61808     void * pNext = {};
61809     VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
61810 
61811   };
61812 
61813   template <>
61814   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV>
61815   {
61816     using Type = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
61817   };
61818 
61819   struct PhysicalDeviceFragmentShadingRateFeaturesKHR
61820   {
61821     using NativeType = VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
61822 
61823     static const bool allowDuplicate = false;
61824     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
61825 
61826 
61827 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61828 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
61829     : pNext( pNext_ ), pipelineFragmentShadingRate( pipelineFragmentShadingRate_ ), primitiveFragmentShadingRate( primitiveFragmentShadingRate_ ), attachmentFragmentShadingRate( attachmentFragmentShadingRate_ )
61830     {}
61831 
61832     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61833 
PhysicalDeviceFragmentShadingRateFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61834     PhysicalDeviceFragmentShadingRateFeaturesKHR( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61835       : PhysicalDeviceFragmentShadingRateFeaturesKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRateFeaturesKHR const *>( &rhs ) )
61836     {}
61837 
61838 
61839     PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61840 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
61841 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61842     PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61843     {
61844       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR const *>( &rhs );
61845       return *this;
61846     }
61847 
61848 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61849     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
61850     {
61851       pNext = pNext_;
61852       return *this;
61853     }
61854 
setPipelineFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61855     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR & setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
61856     {
61857       pipelineFragmentShadingRate = pipelineFragmentShadingRate_;
61858       return *this;
61859     }
61860 
setPrimitiveFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61861     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR & setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
61862     {
61863       primitiveFragmentShadingRate = primitiveFragmentShadingRate_;
61864       return *this;
61865     }
61866 
setAttachmentFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61867     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR & setAttachmentFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
61868     {
61869       attachmentFragmentShadingRate = attachmentFragmentShadingRate_;
61870       return *this;
61871     }
61872 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
61873 
61874 
operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61875     operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
61876     {
61877       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>( this );
61878     }
61879 
operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61880     operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT
61881     {
61882       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>( this );
61883     }
61884 
61885 #if defined( VULKAN_HPP_USE_REFLECT )
61886 #if 14 <= VULKAN_HPP_CPP_VERSION
61887     auto
61888 #else
61889     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
61890 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61891       reflect() const VULKAN_HPP_NOEXCEPT
61892     {
61893       return std::tie( sType, pNext, pipelineFragmentShadingRate, primitiveFragmentShadingRate, attachmentFragmentShadingRate );
61894     }
61895 #endif
61896 
61897 
61898 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61899 auto operator<=>( PhysicalDeviceFragmentShadingRateFeaturesKHR const & ) const = default;
61900 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61901     bool operator==( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
61902     {
61903 #if defined( VULKAN_HPP_USE_REFLECT )
61904       return this->reflect() == rhs.reflect();
61905 #else
61906       return ( sType == rhs.sType )
61907           && ( pNext == rhs.pNext )
61908           && ( pipelineFragmentShadingRate == rhs.pipelineFragmentShadingRate )
61909           && ( primitiveFragmentShadingRate == rhs.primitiveFragmentShadingRate )
61910           && ( attachmentFragmentShadingRate == rhs.attachmentFragmentShadingRate );
61911 #endif
61912     }
61913 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR61914     bool operator!=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
61915     {
61916       return !operator==( rhs );
61917     }
61918 #endif
61919 
61920     public:
61921     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
61922     void * pNext = {};
61923     VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate = {};
61924     VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate = {};
61925     VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate = {};
61926 
61927   };
61928 
61929   template <>
61930   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR>
61931   {
61932     using Type = PhysicalDeviceFragmentShadingRateFeaturesKHR;
61933   };
61934 
61935   struct PhysicalDeviceFragmentShadingRateKHR
61936   {
61937     using NativeType = VkPhysicalDeviceFragmentShadingRateKHR;
61938 
61939     static const bool allowDuplicate = false;
61940     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
61941 
61942 
61943 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR61944 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR(VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
61945     : pNext( pNext_ ), sampleCounts( sampleCounts_ ), fragmentSize( fragmentSize_ )
61946     {}
61947 
61948     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61949 
PhysicalDeviceFragmentShadingRateKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR61950     PhysicalDeviceFragmentShadingRateKHR( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61951       : PhysicalDeviceFragmentShadingRateKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRateKHR const *>( &rhs ) )
61952     {}
61953 
61954 
61955     PhysicalDeviceFragmentShadingRateKHR & operator=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61956 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
61957 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR61958     PhysicalDeviceFragmentShadingRateKHR & operator=( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61959     {
61960       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR const *>( &rhs );
61961       return *this;
61962     }
61963 
61964 
operator VkPhysicalDeviceFragmentShadingRateKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR61965     operator VkPhysicalDeviceFragmentShadingRateKHR const &() const VULKAN_HPP_NOEXCEPT
61966     {
61967       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateKHR*>( this );
61968     }
61969 
operator VkPhysicalDeviceFragmentShadingRateKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR61970     operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT
61971     {
61972       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR*>( this );
61973     }
61974 
61975 #if defined( VULKAN_HPP_USE_REFLECT )
61976 #if 14 <= VULKAN_HPP_CPP_VERSION
61977     auto
61978 #else
61979     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
61980 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR61981       reflect() const VULKAN_HPP_NOEXCEPT
61982     {
61983       return std::tie( sType, pNext, sampleCounts, fragmentSize );
61984     }
61985 #endif
61986 
61987 
61988 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61989 auto operator<=>( PhysicalDeviceFragmentShadingRateKHR const & ) const = default;
61990 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR61991     bool operator==( PhysicalDeviceFragmentShadingRateKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
61992     {
61993 #if defined( VULKAN_HPP_USE_REFLECT )
61994       return this->reflect() == rhs.reflect();
61995 #else
61996       return ( sType == rhs.sType )
61997           && ( pNext == rhs.pNext )
61998           && ( sampleCounts == rhs.sampleCounts )
61999           && ( fragmentSize == rhs.fragmentSize );
62000 #endif
62001     }
62002 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR62003     bool operator!=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
62004     {
62005       return !operator==( rhs );
62006     }
62007 #endif
62008 
62009     public:
62010     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
62011     void * pNext = {};
62012     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
62013     VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
62014 
62015   };
62016 
62017   template <>
62018   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateKHR>
62019   {
62020     using Type = PhysicalDeviceFragmentShadingRateKHR;
62021   };
62022 
62023   struct PhysicalDeviceFragmentShadingRatePropertiesKHR
62024   {
62025     using NativeType = VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
62026 
62027     static const bool allowDuplicate = false;
62028     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
62029 
62030 
62031 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRatePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR62032 VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR(VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize_ = {}, uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports_ = {}, VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize_ = {}, uint32_t maxFragmentSizeAspectRatio_ = {}, uint32_t maxFragmentShadingRateCoverageSamples_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
62033     : pNext( pNext_ ), minFragmentShadingRateAttachmentTexelSize( minFragmentShadingRateAttachmentTexelSize_ ), maxFragmentShadingRateAttachmentTexelSize( maxFragmentShadingRateAttachmentTexelSize_ ), maxFragmentShadingRateAttachmentTexelSizeAspectRatio( maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ ), primitiveFragmentShadingRateWithMultipleViewports( primitiveFragmentShadingRateWithMultipleViewports_ ), layeredShadingRateAttachments( layeredShadingRateAttachments_ ), fragmentShadingRateNonTrivialCombinerOps( fragmentShadingRateNonTrivialCombinerOps_ ), maxFragmentSize( maxFragmentSize_ ), maxFragmentSizeAspectRatio( maxFragmentSizeAspectRatio_ ), maxFragmentShadingRateCoverageSamples( maxFragmentShadingRateCoverageSamples_ ), maxFragmentShadingRateRasterizationSamples( maxFragmentShadingRateRasterizationSamples_ ), fragmentShadingRateWithShaderDepthStencilWrites( fragmentShadingRateWithShaderDepthStencilWrites_ ), fragmentShadingRateWithSampleMask( fragmentShadingRateWithSampleMask_ ), fragmentShadingRateWithShaderSampleMask( fragmentShadingRateWithShaderSampleMask_ ), fragmentShadingRateWithConservativeRasterization( fragmentShadingRateWithConservativeRasterization_ ), fragmentShadingRateWithFragmentShaderInterlock( fragmentShadingRateWithFragmentShaderInterlock_ ), fragmentShadingRateWithCustomSampleLocations( fragmentShadingRateWithCustomSampleLocations_ ), fragmentShadingRateStrictMultiplyCombiner( fragmentShadingRateStrictMultiplyCombiner_ )
62034     {}
62035 
62036     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62037 
PhysicalDeviceFragmentShadingRatePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR62038     PhysicalDeviceFragmentShadingRatePropertiesKHR( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62039       : PhysicalDeviceFragmentShadingRatePropertiesKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRatePropertiesKHR const *>( &rhs ) )
62040     {}
62041 
62042 
62043     PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62044 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
62045 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR62046     PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62047     {
62048       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR const *>( &rhs );
62049       return *this;
62050     }
62051 
62052 
operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR62053     operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
62054     {
62055       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>( this );
62056     }
62057 
operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR62058     operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT
62059     {
62060       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>( this );
62061     }
62062 
62063 #if defined( VULKAN_HPP_USE_REFLECT )
62064 #if 14 <= VULKAN_HPP_CPP_VERSION
62065     auto
62066 #else
62067     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
62068 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR62069       reflect() const VULKAN_HPP_NOEXCEPT
62070     {
62071       return std::tie( sType, pNext, minFragmentShadingRateAttachmentTexelSize, maxFragmentShadingRateAttachmentTexelSize, maxFragmentShadingRateAttachmentTexelSizeAspectRatio, primitiveFragmentShadingRateWithMultipleViewports, layeredShadingRateAttachments, fragmentShadingRateNonTrivialCombinerOps, maxFragmentSize, maxFragmentSizeAspectRatio, maxFragmentShadingRateCoverageSamples, maxFragmentShadingRateRasterizationSamples, fragmentShadingRateWithShaderDepthStencilWrites, fragmentShadingRateWithSampleMask, fragmentShadingRateWithShaderSampleMask, fragmentShadingRateWithConservativeRasterization, fragmentShadingRateWithFragmentShaderInterlock, fragmentShadingRateWithCustomSampleLocations, fragmentShadingRateStrictMultiplyCombiner );
62072     }
62073 #endif
62074 
62075 
62076 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62077 auto operator<=>( PhysicalDeviceFragmentShadingRatePropertiesKHR const & ) const = default;
62078 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR62079     bool operator==( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
62080     {
62081 #if defined( VULKAN_HPP_USE_REFLECT )
62082       return this->reflect() == rhs.reflect();
62083 #else
62084       return ( sType == rhs.sType )
62085           && ( pNext == rhs.pNext )
62086           && ( minFragmentShadingRateAttachmentTexelSize == rhs.minFragmentShadingRateAttachmentTexelSize )
62087           && ( maxFragmentShadingRateAttachmentTexelSize == rhs.maxFragmentShadingRateAttachmentTexelSize )
62088           && ( maxFragmentShadingRateAttachmentTexelSizeAspectRatio == rhs.maxFragmentShadingRateAttachmentTexelSizeAspectRatio )
62089           && ( primitiveFragmentShadingRateWithMultipleViewports == rhs.primitiveFragmentShadingRateWithMultipleViewports )
62090           && ( layeredShadingRateAttachments == rhs.layeredShadingRateAttachments )
62091           && ( fragmentShadingRateNonTrivialCombinerOps == rhs.fragmentShadingRateNonTrivialCombinerOps )
62092           && ( maxFragmentSize == rhs.maxFragmentSize )
62093           && ( maxFragmentSizeAspectRatio == rhs.maxFragmentSizeAspectRatio )
62094           && ( maxFragmentShadingRateCoverageSamples == rhs.maxFragmentShadingRateCoverageSamples )
62095           && ( maxFragmentShadingRateRasterizationSamples == rhs.maxFragmentShadingRateRasterizationSamples )
62096           && ( fragmentShadingRateWithShaderDepthStencilWrites == rhs.fragmentShadingRateWithShaderDepthStencilWrites )
62097           && ( fragmentShadingRateWithSampleMask == rhs.fragmentShadingRateWithSampleMask )
62098           && ( fragmentShadingRateWithShaderSampleMask == rhs.fragmentShadingRateWithShaderSampleMask )
62099           && ( fragmentShadingRateWithConservativeRasterization == rhs.fragmentShadingRateWithConservativeRasterization )
62100           && ( fragmentShadingRateWithFragmentShaderInterlock == rhs.fragmentShadingRateWithFragmentShaderInterlock )
62101           && ( fragmentShadingRateWithCustomSampleLocations == rhs.fragmentShadingRateWithCustomSampleLocations )
62102           && ( fragmentShadingRateStrictMultiplyCombiner == rhs.fragmentShadingRateStrictMultiplyCombiner );
62103 #endif
62104     }
62105 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR62106     bool operator!=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
62107     {
62108       return !operator==( rhs );
62109     }
62110 #endif
62111 
62112     public:
62113     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
62114     void * pNext = {};
62115     VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize = {};
62116     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize = {};
62117     uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio = {};
62118     VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports = {};
62119     VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments = {};
62120     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps = {};
62121     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize = {};
62122     uint32_t maxFragmentSizeAspectRatio = {};
62123     uint32_t maxFragmentShadingRateCoverageSamples = {};
62124     VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
62125     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites = {};
62126     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask = {};
62127     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask = {};
62128     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization = {};
62129     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock = {};
62130     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations = {};
62131     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner = {};
62132 
62133   };
62134 
62135   template <>
62136   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR>
62137   {
62138     using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR;
62139   };
62140 
62141   struct PhysicalDeviceFrameBoundaryFeaturesEXT
62142   {
62143     using NativeType = VkPhysicalDeviceFrameBoundaryFeaturesEXT;
62144 
62145     static const bool allowDuplicate = false;
62146     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT;
62147 
62148 
62149 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFrameBoundaryFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT62150 VULKAN_HPP_CONSTEXPR PhysicalDeviceFrameBoundaryFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 frameBoundary_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
62151     : pNext( pNext_ ), frameBoundary( frameBoundary_ )
62152     {}
62153 
62154     VULKAN_HPP_CONSTEXPR PhysicalDeviceFrameBoundaryFeaturesEXT( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62155 
PhysicalDeviceFrameBoundaryFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT62156     PhysicalDeviceFrameBoundaryFeaturesEXT( VkPhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62157       : PhysicalDeviceFrameBoundaryFeaturesEXT( *reinterpret_cast<PhysicalDeviceFrameBoundaryFeaturesEXT const *>( &rhs ) )
62158     {}
62159 
62160 
62161     PhysicalDeviceFrameBoundaryFeaturesEXT & operator=( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62162 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
62163 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT62164     PhysicalDeviceFrameBoundaryFeaturesEXT & operator=( VkPhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62165     {
62166       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT const *>( &rhs );
62167       return *this;
62168     }
62169 
62170 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT62171     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFrameBoundaryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
62172     {
62173       pNext = pNext_;
62174       return *this;
62175     }
62176 
setFrameBoundaryVULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT62177     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFrameBoundaryFeaturesEXT & setFrameBoundary( VULKAN_HPP_NAMESPACE::Bool32 frameBoundary_ ) VULKAN_HPP_NOEXCEPT
62178     {
62179       frameBoundary = frameBoundary_;
62180       return *this;
62181     }
62182 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
62183 
62184 
operator VkPhysicalDeviceFrameBoundaryFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT62185     operator VkPhysicalDeviceFrameBoundaryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
62186     {
62187       return *reinterpret_cast<const VkPhysicalDeviceFrameBoundaryFeaturesEXT*>( this );
62188     }
62189 
operator VkPhysicalDeviceFrameBoundaryFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT62190     operator VkPhysicalDeviceFrameBoundaryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62191     {
62192       return *reinterpret_cast<VkPhysicalDeviceFrameBoundaryFeaturesEXT*>( this );
62193     }
62194 
62195 #if defined( VULKAN_HPP_USE_REFLECT )
62196 #if 14 <= VULKAN_HPP_CPP_VERSION
62197     auto
62198 #else
62199     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
62200 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT62201       reflect() const VULKAN_HPP_NOEXCEPT
62202     {
62203       return std::tie( sType, pNext, frameBoundary );
62204     }
62205 #endif
62206 
62207 
62208 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62209 auto operator<=>( PhysicalDeviceFrameBoundaryFeaturesEXT const & ) const = default;
62210 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT62211     bool operator==( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
62212     {
62213 #if defined( VULKAN_HPP_USE_REFLECT )
62214       return this->reflect() == rhs.reflect();
62215 #else
62216       return ( sType == rhs.sType )
62217           && ( pNext == rhs.pNext )
62218           && ( frameBoundary == rhs.frameBoundary );
62219 #endif
62220     }
62221 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT62222     bool operator!=( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
62223     {
62224       return !operator==( rhs );
62225     }
62226 #endif
62227 
62228     public:
62229     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT;
62230     void * pNext = {};
62231     VULKAN_HPP_NAMESPACE::Bool32 frameBoundary = {};
62232 
62233   };
62234 
62235   template <>
62236   struct CppType<StructureType, StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT>
62237   {
62238     using Type = PhysicalDeviceFrameBoundaryFeaturesEXT;
62239   };
62240 
62241   struct PhysicalDeviceGlobalPriorityQueryFeaturesKHR
62242   {
62243     using NativeType = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
62244 
62245     static const bool allowDuplicate = false;
62246     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesKHR;
62247 
62248 
62249 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceGlobalPriorityQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR62250 VULKAN_HPP_CONSTEXPR PhysicalDeviceGlobalPriorityQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
62251     : pNext( pNext_ ), globalPriorityQuery( globalPriorityQuery_ )
62252     {}
62253 
62254     VULKAN_HPP_CONSTEXPR PhysicalDeviceGlobalPriorityQueryFeaturesKHR( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62255 
PhysicalDeviceGlobalPriorityQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR62256     PhysicalDeviceGlobalPriorityQueryFeaturesKHR( VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62257       : PhysicalDeviceGlobalPriorityQueryFeaturesKHR( *reinterpret_cast<PhysicalDeviceGlobalPriorityQueryFeaturesKHR const *>( &rhs ) )
62258     {}
62259 
62260 
62261     PhysicalDeviceGlobalPriorityQueryFeaturesKHR & operator=( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62262 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
62263 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR62264     PhysicalDeviceGlobalPriorityQueryFeaturesKHR & operator=( VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
62265     {
62266       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR const *>( &rhs );
62267       return *this;
62268     }
62269 
62270 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR62271     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGlobalPriorityQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
62272     {
62273       pNext = pNext_;
62274       return *this;
62275     }
62276 
setGlobalPriorityQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR62277     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGlobalPriorityQueryFeaturesKHR & setGlobalPriorityQuery( VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery_ ) VULKAN_HPP_NOEXCEPT
62278     {
62279       globalPriorityQuery = globalPriorityQuery_;
62280       return *this;
62281     }
62282 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
62283 
62284 
operator VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR62285     operator VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
62286     {
62287       return *reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR*>( this );
62288     }
62289 
operator VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR62290     operator VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
62291     {
62292       return *reinterpret_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR*>( this );
62293     }
62294 
62295 #if defined( VULKAN_HPP_USE_REFLECT )
62296 #if 14 <= VULKAN_HPP_CPP_VERSION
62297     auto
62298 #else
62299     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
62300 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR62301       reflect() const VULKAN_HPP_NOEXCEPT
62302     {
62303       return std::tie( sType, pNext, globalPriorityQuery );
62304     }
62305 #endif
62306 
62307 
62308 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62309 auto operator<=>( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & ) const = default;
62310 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR62311     bool operator==( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
62312     {
62313 #if defined( VULKAN_HPP_USE_REFLECT )
62314       return this->reflect() == rhs.reflect();
62315 #else
62316       return ( sType == rhs.sType )
62317           && ( pNext == rhs.pNext )
62318           && ( globalPriorityQuery == rhs.globalPriorityQuery );
62319 #endif
62320     }
62321 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR62322     bool operator!=( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
62323     {
62324       return !operator==( rhs );
62325     }
62326 #endif
62327 
62328     public:
62329     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesKHR;
62330     void * pNext = {};
62331     VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery = {};
62332 
62333   };
62334 
62335   template <>
62336   struct CppType<StructureType, StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesKHR>
62337   {
62338     using Type = PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
62339   };
62340   using PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
62341 
62342   struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
62343   {
62344     using NativeType = VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
62345 
62346     static const bool allowDuplicate = false;
62347     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
62348 
62349 
62350 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceGraphicsPipelineLibraryFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT62351 VULKAN_HPP_CONSTEXPR PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
62352     : pNext( pNext_ ), graphicsPipelineLibrary( graphicsPipelineLibrary_ )
62353     {}
62354 
62355     VULKAN_HPP_CONSTEXPR PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62356 
PhysicalDeviceGraphicsPipelineLibraryFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT62357     PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62358       : PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( *reinterpret_cast<PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const *>( &rhs ) )
62359     {}
62360 
62361 
62362     PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT & operator=( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62363 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
62364 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT62365     PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT & operator=( VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62366     {
62367       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const *>( &rhs );
62368       return *this;
62369     }
62370 
62371 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT62372     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
62373     {
62374       pNext = pNext_;
62375       return *this;
62376     }
62377 
setGraphicsPipelineLibraryVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT62378     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT & setGraphicsPipelineLibrary( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary_ ) VULKAN_HPP_NOEXCEPT
62379     {
62380       graphicsPipelineLibrary = graphicsPipelineLibrary_;
62381       return *this;
62382     }
62383 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
62384 
62385 
operator VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT62386     operator VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
62387     {
62388       return *reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>( this );
62389     }
62390 
operator VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT62391     operator VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62392     {
62393       return *reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>( this );
62394     }
62395 
62396 #if defined( VULKAN_HPP_USE_REFLECT )
62397 #if 14 <= VULKAN_HPP_CPP_VERSION
62398     auto
62399 #else
62400     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
62401 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT62402       reflect() const VULKAN_HPP_NOEXCEPT
62403     {
62404       return std::tie( sType, pNext, graphicsPipelineLibrary );
62405     }
62406 #endif
62407 
62408 
62409 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62410 auto operator<=>( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & ) const = default;
62411 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT62412     bool operator==( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
62413     {
62414 #if defined( VULKAN_HPP_USE_REFLECT )
62415       return this->reflect() == rhs.reflect();
62416 #else
62417       return ( sType == rhs.sType )
62418           && ( pNext == rhs.pNext )
62419           && ( graphicsPipelineLibrary == rhs.graphicsPipelineLibrary );
62420 #endif
62421     }
62422 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT62423     bool operator!=( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
62424     {
62425       return !operator==( rhs );
62426     }
62427 #endif
62428 
62429     public:
62430     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
62431     void * pNext = {};
62432     VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary = {};
62433 
62434   };
62435 
62436   template <>
62437   struct CppType<StructureType, StructureType::ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>
62438   {
62439     using Type = PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
62440   };
62441 
62442   struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
62443   {
62444     using NativeType = VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
62445 
62446     static const bool allowDuplicate = false;
62447     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
62448 
62449 
62450 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceGraphicsPipelineLibraryPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62451 VULKAN_HPP_CONSTEXPR PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking_ = {}, VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryIndependentInterpolationDecoration_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
62452     : pNext( pNext_ ), graphicsPipelineLibraryFastLinking( graphicsPipelineLibraryFastLinking_ ), graphicsPipelineLibraryIndependentInterpolationDecoration( graphicsPipelineLibraryIndependentInterpolationDecoration_ )
62453     {}
62454 
62455     VULKAN_HPP_CONSTEXPR PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62456 
PhysicalDeviceGraphicsPipelineLibraryPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62457     PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62458       : PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( *reinterpret_cast<PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const *>( &rhs ) )
62459     {}
62460 
62461 
62462     PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & operator=( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62463 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
62464 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62465     PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & operator=( VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62466     {
62467       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const *>( &rhs );
62468       return *this;
62469     }
62470 
62471 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62472     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
62473     {
62474       pNext = pNext_;
62475       return *this;
62476     }
62477 
setGraphicsPipelineLibraryFastLinkingVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62478     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & setGraphicsPipelineLibraryFastLinking( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking_ ) VULKAN_HPP_NOEXCEPT
62479     {
62480       graphicsPipelineLibraryFastLinking = graphicsPipelineLibraryFastLinking_;
62481       return *this;
62482     }
62483 
setGraphicsPipelineLibraryIndependentInterpolationDecorationVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62484     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & setGraphicsPipelineLibraryIndependentInterpolationDecoration( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryIndependentInterpolationDecoration_ ) VULKAN_HPP_NOEXCEPT
62485     {
62486       graphicsPipelineLibraryIndependentInterpolationDecoration = graphicsPipelineLibraryIndependentInterpolationDecoration_;
62487       return *this;
62488     }
62489 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
62490 
62491 
operator VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62492     operator VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
62493     {
62494       return *reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>( this );
62495     }
62496 
operator VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62497     operator VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT &() VULKAN_HPP_NOEXCEPT
62498     {
62499       return *reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>( this );
62500     }
62501 
62502 #if defined( VULKAN_HPP_USE_REFLECT )
62503 #if 14 <= VULKAN_HPP_CPP_VERSION
62504     auto
62505 #else
62506     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
62507 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62508       reflect() const VULKAN_HPP_NOEXCEPT
62509     {
62510       return std::tie( sType, pNext, graphicsPipelineLibraryFastLinking, graphicsPipelineLibraryIndependentInterpolationDecoration );
62511     }
62512 #endif
62513 
62514 
62515 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62516 auto operator<=>( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & ) const = default;
62517 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62518     bool operator==( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
62519     {
62520 #if defined( VULKAN_HPP_USE_REFLECT )
62521       return this->reflect() == rhs.reflect();
62522 #else
62523       return ( sType == rhs.sType )
62524           && ( pNext == rhs.pNext )
62525           && ( graphicsPipelineLibraryFastLinking == rhs.graphicsPipelineLibraryFastLinking )
62526           && ( graphicsPipelineLibraryIndependentInterpolationDecoration == rhs.graphicsPipelineLibraryIndependentInterpolationDecoration );
62527 #endif
62528     }
62529 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT62530     bool operator!=( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
62531     {
62532       return !operator==( rhs );
62533     }
62534 #endif
62535 
62536     public:
62537     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
62538     void * pNext = {};
62539     VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking = {};
62540     VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryIndependentInterpolationDecoration = {};
62541 
62542   };
62543 
62544   template <>
62545   struct CppType<StructureType, StructureType::ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>
62546   {
62547     using Type = PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
62548   };
62549 
62550   struct PhysicalDeviceGroupProperties
62551   {
62552     using NativeType = VkPhysicalDeviceGroupProperties;
62553 
62554     static const bool allowDuplicate = false;
62555     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties;
62556 
62557 
62558 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties62559 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties(uint32_t physicalDeviceCount_ = {}, std::array<VULKAN_HPP_NAMESPACE::PhysicalDevice,VK_MAX_DEVICE_GROUP_SIZE> const & physicalDevices_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
62560     : pNext( pNext_ ), physicalDeviceCount( physicalDeviceCount_ ), physicalDevices( physicalDevices_ ), subsetAllocation( subsetAllocation_ )
62561     {}
62562 
62563     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62564 
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties62565     PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
62566       : PhysicalDeviceGroupProperties( *reinterpret_cast<PhysicalDeviceGroupProperties const *>( &rhs ) )
62567     {}
62568 
62569 
62570     PhysicalDeviceGroupProperties & operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62571 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
62572 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties62573     PhysicalDeviceGroupProperties & operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
62574     {
62575       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const *>( &rhs );
62576       return *this;
62577     }
62578 
62579 
operator VkPhysicalDeviceGroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties62580     operator VkPhysicalDeviceGroupProperties const &() const VULKAN_HPP_NOEXCEPT
62581     {
62582       return *reinterpret_cast<const VkPhysicalDeviceGroupProperties*>( this );
62583     }
62584 
operator VkPhysicalDeviceGroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties62585     operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT
62586     {
62587       return *reinterpret_cast<VkPhysicalDeviceGroupProperties*>( this );
62588     }
62589 
62590 #if defined( VULKAN_HPP_USE_REFLECT )
62591 #if 14 <= VULKAN_HPP_CPP_VERSION
62592     auto
62593 #else
62594     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
62595 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties62596       reflect() const VULKAN_HPP_NOEXCEPT
62597     {
62598       return std::tie( sType, pNext, physicalDeviceCount, physicalDevices, subsetAllocation );
62599     }
62600 #endif
62601 
62602 
62603 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62604 auto operator<=>( PhysicalDeviceGroupProperties const & ) const = default;
62605 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties62606     bool operator==( PhysicalDeviceGroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
62607     {
62608 #if defined( VULKAN_HPP_USE_REFLECT )
62609       return this->reflect() == rhs.reflect();
62610 #else
62611       return ( sType == rhs.sType )
62612           && ( pNext == rhs.pNext )
62613           && ( physicalDeviceCount == rhs.physicalDeviceCount )
62614           && ( physicalDevices == rhs.physicalDevices )
62615           && ( subsetAllocation == rhs.subsetAllocation );
62616 #endif
62617     }
62618 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties62619     bool operator!=( PhysicalDeviceGroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
62620     {
62621       return !operator==( rhs );
62622     }
62623 #endif
62624 
62625     public:
62626     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties;
62627     void * pNext = {};
62628     uint32_t physicalDeviceCount = {};
62629     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> physicalDevices = {};
62630     VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {};
62631 
62632   };
62633 
62634   template <>
62635   struct CppType<StructureType, StructureType::ePhysicalDeviceGroupProperties>
62636   {
62637     using Type = PhysicalDeviceGroupProperties;
62638   };
62639   using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
62640 
62641   struct PhysicalDeviceHostImageCopyFeaturesEXT
62642   {
62643     using NativeType = VkPhysicalDeviceHostImageCopyFeaturesEXT;
62644 
62645     static const bool allowDuplicate = false;
62646     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostImageCopyFeaturesEXT;
62647 
62648 
62649 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceHostImageCopyFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT62650 VULKAN_HPP_CONSTEXPR PhysicalDeviceHostImageCopyFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 hostImageCopy_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
62651     : pNext( pNext_ ), hostImageCopy( hostImageCopy_ )
62652     {}
62653 
62654     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostImageCopyFeaturesEXT( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62655 
PhysicalDeviceHostImageCopyFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT62656     PhysicalDeviceHostImageCopyFeaturesEXT( VkPhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62657       : PhysicalDeviceHostImageCopyFeaturesEXT( *reinterpret_cast<PhysicalDeviceHostImageCopyFeaturesEXT const *>( &rhs ) )
62658     {}
62659 
62660 
62661     PhysicalDeviceHostImageCopyFeaturesEXT & operator=( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62662 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
62663 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT62664     PhysicalDeviceHostImageCopyFeaturesEXT & operator=( VkPhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62665     {
62666       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT const *>( &rhs );
62667       return *this;
62668     }
62669 
62670 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT62671     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
62672     {
62673       pNext = pNext_;
62674       return *this;
62675     }
62676 
setHostImageCopyVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT62677     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyFeaturesEXT & setHostImageCopy( VULKAN_HPP_NAMESPACE::Bool32 hostImageCopy_ ) VULKAN_HPP_NOEXCEPT
62678     {
62679       hostImageCopy = hostImageCopy_;
62680       return *this;
62681     }
62682 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
62683 
62684 
operator VkPhysicalDeviceHostImageCopyFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT62685     operator VkPhysicalDeviceHostImageCopyFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
62686     {
62687       return *reinterpret_cast<const VkPhysicalDeviceHostImageCopyFeaturesEXT*>( this );
62688     }
62689 
operator VkPhysicalDeviceHostImageCopyFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT62690     operator VkPhysicalDeviceHostImageCopyFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62691     {
62692       return *reinterpret_cast<VkPhysicalDeviceHostImageCopyFeaturesEXT*>( this );
62693     }
62694 
62695 #if defined( VULKAN_HPP_USE_REFLECT )
62696 #if 14 <= VULKAN_HPP_CPP_VERSION
62697     auto
62698 #else
62699     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
62700 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT62701       reflect() const VULKAN_HPP_NOEXCEPT
62702     {
62703       return std::tie( sType, pNext, hostImageCopy );
62704     }
62705 #endif
62706 
62707 
62708 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62709 auto operator<=>( PhysicalDeviceHostImageCopyFeaturesEXT const & ) const = default;
62710 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT62711     bool operator==( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
62712     {
62713 #if defined( VULKAN_HPP_USE_REFLECT )
62714       return this->reflect() == rhs.reflect();
62715 #else
62716       return ( sType == rhs.sType )
62717           && ( pNext == rhs.pNext )
62718           && ( hostImageCopy == rhs.hostImageCopy );
62719 #endif
62720     }
62721 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT62722     bool operator!=( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
62723     {
62724       return !operator==( rhs );
62725     }
62726 #endif
62727 
62728     public:
62729     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostImageCopyFeaturesEXT;
62730     void * pNext = {};
62731     VULKAN_HPP_NAMESPACE::Bool32 hostImageCopy = {};
62732 
62733   };
62734 
62735   template <>
62736   struct CppType<StructureType, StructureType::ePhysicalDeviceHostImageCopyFeaturesEXT>
62737   {
62738     using Type = PhysicalDeviceHostImageCopyFeaturesEXT;
62739   };
62740 
62741   struct PhysicalDeviceHostImageCopyPropertiesEXT
62742   {
62743     using NativeType = VkPhysicalDeviceHostImageCopyPropertiesEXT;
62744 
62745     static const bool allowDuplicate = false;
62746     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostImageCopyPropertiesEXT;
62747 
62748 
62749 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceHostImageCopyPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62750 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT(uint32_t copySrcLayoutCount_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout * pCopySrcLayouts_ = {}, uint32_t copyDstLayoutCount_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout * pCopyDstLayouts_ = {}, std::array<uint8_t,VK_UUID_SIZE> const & optimalTilingLayoutUUID_ = {}, VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryTypeRequirements_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
62751     : pNext( pNext_ ), copySrcLayoutCount( copySrcLayoutCount_ ), pCopySrcLayouts( pCopySrcLayouts_ ), copyDstLayoutCount( copyDstLayoutCount_ ), pCopyDstLayouts( pCopyDstLayouts_ ), optimalTilingLayoutUUID( optimalTilingLayoutUUID_ ), identicalMemoryTypeRequirements( identicalMemoryTypeRequirements_ )
62752     {}
62753 
62754     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62755 
PhysicalDeviceHostImageCopyPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62756     PhysicalDeviceHostImageCopyPropertiesEXT( VkPhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62757       : PhysicalDeviceHostImageCopyPropertiesEXT( *reinterpret_cast<PhysicalDeviceHostImageCopyPropertiesEXT const *>( &rhs ) )
62758     {}
62759 
62760 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PhysicalDeviceHostImageCopyPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62761     PhysicalDeviceHostImageCopyPropertiesEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copySrcLayouts_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copyDstLayouts_ = {}, std::array<uint8_t,VK_UUID_SIZE> const & optimalTilingLayoutUUID_ = {}, VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryTypeRequirements_ = {}, void * pNext_ = nullptr )
62762     : pNext( pNext_ ), copySrcLayoutCount( static_cast<uint32_t>( copySrcLayouts_.size() ) ), pCopySrcLayouts( copySrcLayouts_.data() ), copyDstLayoutCount( static_cast<uint32_t>( copyDstLayouts_.size() ) ), pCopyDstLayouts( copyDstLayouts_.data() ), optimalTilingLayoutUUID( optimalTilingLayoutUUID_ ), identicalMemoryTypeRequirements( identicalMemoryTypeRequirements_ )
62763     {}
62764 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62765 
62766 
62767     PhysicalDeviceHostImageCopyPropertiesEXT & operator=( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62768 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
62769 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62770     PhysicalDeviceHostImageCopyPropertiesEXT & operator=( VkPhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62771     {
62772       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT const *>( &rhs );
62773       return *this;
62774     }
62775 
62776 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62777     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
62778     {
62779       pNext = pNext_;
62780       return *this;
62781     }
62782 
setCopySrcLayoutCountVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62783     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setCopySrcLayoutCount( uint32_t copySrcLayoutCount_ ) VULKAN_HPP_NOEXCEPT
62784     {
62785       copySrcLayoutCount = copySrcLayoutCount_;
62786       return *this;
62787     }
62788 
setPCopySrcLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62789     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setPCopySrcLayouts( VULKAN_HPP_NAMESPACE::ImageLayout * pCopySrcLayouts_ ) VULKAN_HPP_NOEXCEPT
62790     {
62791       pCopySrcLayouts = pCopySrcLayouts_;
62792       return *this;
62793     }
62794 
62795 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCopySrcLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62796     PhysicalDeviceHostImageCopyPropertiesEXT & setCopySrcLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copySrcLayouts_ ) VULKAN_HPP_NOEXCEPT
62797     {
62798       copySrcLayoutCount = static_cast<uint32_t>( copySrcLayouts_.size() );
62799       pCopySrcLayouts = copySrcLayouts_.data();
62800       return *this;
62801     }
62802 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62803 
setCopyDstLayoutCountVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62804     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setCopyDstLayoutCount( uint32_t copyDstLayoutCount_ ) VULKAN_HPP_NOEXCEPT
62805     {
62806       copyDstLayoutCount = copyDstLayoutCount_;
62807       return *this;
62808     }
62809 
setPCopyDstLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62810     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setPCopyDstLayouts( VULKAN_HPP_NAMESPACE::ImageLayout * pCopyDstLayouts_ ) VULKAN_HPP_NOEXCEPT
62811     {
62812       pCopyDstLayouts = pCopyDstLayouts_;
62813       return *this;
62814     }
62815 
62816 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCopyDstLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62817     PhysicalDeviceHostImageCopyPropertiesEXT & setCopyDstLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copyDstLayouts_ ) VULKAN_HPP_NOEXCEPT
62818     {
62819       copyDstLayoutCount = static_cast<uint32_t>( copyDstLayouts_.size() );
62820       pCopyDstLayouts = copyDstLayouts_.data();
62821       return *this;
62822     }
62823 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62824 
setOptimalTilingLayoutUUIDVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62825     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setOptimalTilingLayoutUUID( std::array<uint8_t,VK_UUID_SIZE> optimalTilingLayoutUUID_ ) VULKAN_HPP_NOEXCEPT
62826     {
62827       optimalTilingLayoutUUID = optimalTilingLayoutUUID_;
62828       return *this;
62829     }
62830 
setIdenticalMemoryTypeRequirementsVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62831     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setIdenticalMemoryTypeRequirements( VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryTypeRequirements_ ) VULKAN_HPP_NOEXCEPT
62832     {
62833       identicalMemoryTypeRequirements = identicalMemoryTypeRequirements_;
62834       return *this;
62835     }
62836 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
62837 
62838 
operator VkPhysicalDeviceHostImageCopyPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62839     operator VkPhysicalDeviceHostImageCopyPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
62840     {
62841       return *reinterpret_cast<const VkPhysicalDeviceHostImageCopyPropertiesEXT*>( this );
62842     }
62843 
operator VkPhysicalDeviceHostImageCopyPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62844     operator VkPhysicalDeviceHostImageCopyPropertiesEXT &() VULKAN_HPP_NOEXCEPT
62845     {
62846       return *reinterpret_cast<VkPhysicalDeviceHostImageCopyPropertiesEXT*>( this );
62847     }
62848 
62849 #if defined( VULKAN_HPP_USE_REFLECT )
62850 #if 14 <= VULKAN_HPP_CPP_VERSION
62851     auto
62852 #else
62853     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageLayout * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageLayout * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
62854 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62855       reflect() const VULKAN_HPP_NOEXCEPT
62856     {
62857       return std::tie( sType, pNext, copySrcLayoutCount, pCopySrcLayouts, copyDstLayoutCount, pCopyDstLayouts, optimalTilingLayoutUUID, identicalMemoryTypeRequirements );
62858     }
62859 #endif
62860 
62861 
62862 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62863 auto operator<=>( PhysicalDeviceHostImageCopyPropertiesEXT const & ) const = default;
62864 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62865     bool operator==( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
62866     {
62867 #if defined( VULKAN_HPP_USE_REFLECT )
62868       return this->reflect() == rhs.reflect();
62869 #else
62870       return ( sType == rhs.sType )
62871           && ( pNext == rhs.pNext )
62872           && ( copySrcLayoutCount == rhs.copySrcLayoutCount )
62873           && ( pCopySrcLayouts == rhs.pCopySrcLayouts )
62874           && ( copyDstLayoutCount == rhs.copyDstLayoutCount )
62875           && ( pCopyDstLayouts == rhs.pCopyDstLayouts )
62876           && ( optimalTilingLayoutUUID == rhs.optimalTilingLayoutUUID )
62877           && ( identicalMemoryTypeRequirements == rhs.identicalMemoryTypeRequirements );
62878 #endif
62879     }
62880 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT62881     bool operator!=( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
62882     {
62883       return !operator==( rhs );
62884     }
62885 #endif
62886 
62887     public:
62888     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostImageCopyPropertiesEXT;
62889     void * pNext = {};
62890     uint32_t copySrcLayoutCount = {};
62891     VULKAN_HPP_NAMESPACE::ImageLayout * pCopySrcLayouts = {};
62892     uint32_t copyDstLayoutCount = {};
62893     VULKAN_HPP_NAMESPACE::ImageLayout * pCopyDstLayouts = {};
62894     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> optimalTilingLayoutUUID = {};
62895     VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryTypeRequirements = {};
62896 
62897   };
62898 
62899   template <>
62900   struct CppType<StructureType, StructureType::ePhysicalDeviceHostImageCopyPropertiesEXT>
62901   {
62902     using Type = PhysicalDeviceHostImageCopyPropertiesEXT;
62903   };
62904 
62905   struct PhysicalDeviceHostQueryResetFeatures
62906   {
62907     using NativeType = VkPhysicalDeviceHostQueryResetFeatures;
62908 
62909     static const bool allowDuplicate = false;
62910     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
62911 
62912 
62913 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures62914 VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures(VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
62915     : pNext( pNext_ ), hostQueryReset( hostQueryReset_ )
62916     {}
62917 
62918     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62919 
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures62920     PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62921       : PhysicalDeviceHostQueryResetFeatures( *reinterpret_cast<PhysicalDeviceHostQueryResetFeatures const *>( &rhs ) )
62922     {}
62923 
62924 
62925     PhysicalDeviceHostQueryResetFeatures & operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62926 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
62927 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures62928     PhysicalDeviceHostQueryResetFeatures & operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62929     {
62930       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const *>( &rhs );
62931       return *this;
62932     }
62933 
62934 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures62935     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostQueryResetFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
62936     {
62937       pNext = pNext_;
62938       return *this;
62939     }
62940 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures62941     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
62942     {
62943       hostQueryReset = hostQueryReset_;
62944       return *this;
62945     }
62946 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
62947 
62948 
operator VkPhysicalDeviceHostQueryResetFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures62949     operator VkPhysicalDeviceHostQueryResetFeatures const &() const VULKAN_HPP_NOEXCEPT
62950     {
62951       return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>( this );
62952     }
62953 
operator VkPhysicalDeviceHostQueryResetFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures62954     operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT
62955     {
62956       return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>( this );
62957     }
62958 
62959 #if defined( VULKAN_HPP_USE_REFLECT )
62960 #if 14 <= VULKAN_HPP_CPP_VERSION
62961     auto
62962 #else
62963     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
62964 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures62965       reflect() const VULKAN_HPP_NOEXCEPT
62966     {
62967       return std::tie( sType, pNext, hostQueryReset );
62968     }
62969 #endif
62970 
62971 
62972 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62973 auto operator<=>( PhysicalDeviceHostQueryResetFeatures const & ) const = default;
62974 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures62975     bool operator==( PhysicalDeviceHostQueryResetFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
62976     {
62977 #if defined( VULKAN_HPP_USE_REFLECT )
62978       return this->reflect() == rhs.reflect();
62979 #else
62980       return ( sType == rhs.sType )
62981           && ( pNext == rhs.pNext )
62982           && ( hostQueryReset == rhs.hostQueryReset );
62983 #endif
62984     }
62985 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures62986     bool operator!=( PhysicalDeviceHostQueryResetFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
62987     {
62988       return !operator==( rhs );
62989     }
62990 #endif
62991 
62992     public:
62993     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
62994     void * pNext = {};
62995     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
62996 
62997   };
62998 
62999   template <>
63000   struct CppType<StructureType, StructureType::ePhysicalDeviceHostQueryResetFeatures>
63001   {
63002     using Type = PhysicalDeviceHostQueryResetFeatures;
63003   };
63004   using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
63005 
63006   struct PhysicalDeviceIDProperties
63007   {
63008     using NativeType = VkPhysicalDeviceIDProperties;
63009 
63010     static const bool allowDuplicate = false;
63011     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties;
63012 
63013 
63014 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties63015 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties(std::array<uint8_t,VK_UUID_SIZE> const & deviceUUID_ = {}, std::array<uint8_t,VK_UUID_SIZE> const & driverUUID_ = {}, std::array<uint8_t,VK_LUID_SIZE> const & deviceLUID_ = {}, uint32_t deviceNodeMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
63016     : pNext( pNext_ ), deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ )
63017     {}
63018 
63019     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63020 
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties63021     PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63022       : PhysicalDeviceIDProperties( *reinterpret_cast<PhysicalDeviceIDProperties const *>( &rhs ) )
63023     {}
63024 
63025 
63026     PhysicalDeviceIDProperties & operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63027 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
63028 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties63029     PhysicalDeviceIDProperties & operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63030     {
63031       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const *>( &rhs );
63032       return *this;
63033     }
63034 
63035 
operator VkPhysicalDeviceIDProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties63036     operator VkPhysicalDeviceIDProperties const &() const VULKAN_HPP_NOEXCEPT
63037     {
63038       return *reinterpret_cast<const VkPhysicalDeviceIDProperties*>( this );
63039     }
63040 
operator VkPhysicalDeviceIDProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties63041     operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT
63042     {
63043       return *reinterpret_cast<VkPhysicalDeviceIDProperties*>( this );
63044     }
63045 
63046 #if defined( VULKAN_HPP_USE_REFLECT )
63047 #if 14 <= VULKAN_HPP_CPP_VERSION
63048     auto
63049 #else
63050     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
63051 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties63052       reflect() const VULKAN_HPP_NOEXCEPT
63053     {
63054       return std::tie( sType, pNext, deviceUUID, driverUUID, deviceLUID, deviceNodeMask, deviceLUIDValid );
63055     }
63056 #endif
63057 
63058 
63059 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63060 auto operator<=>( PhysicalDeviceIDProperties const & ) const = default;
63061 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties63062     bool operator==( PhysicalDeviceIDProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
63063     {
63064 #if defined( VULKAN_HPP_USE_REFLECT )
63065       return this->reflect() == rhs.reflect();
63066 #else
63067       return ( sType == rhs.sType )
63068           && ( pNext == rhs.pNext )
63069           && ( deviceUUID == rhs.deviceUUID )
63070           && ( driverUUID == rhs.driverUUID )
63071           && ( deviceLUID == rhs.deviceLUID )
63072           && ( deviceNodeMask == rhs.deviceNodeMask )
63073           && ( deviceLUIDValid == rhs.deviceLUIDValid );
63074 #endif
63075     }
63076 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties63077     bool operator!=( PhysicalDeviceIDProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
63078     {
63079       return !operator==( rhs );
63080     }
63081 #endif
63082 
63083     public:
63084     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties;
63085     void * pNext = {};
63086     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
63087     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
63088     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
63089     uint32_t deviceNodeMask = {};
63090     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
63091 
63092   };
63093 
63094   template <>
63095   struct CppType<StructureType, StructureType::ePhysicalDeviceIdProperties>
63096   {
63097     using Type = PhysicalDeviceIDProperties;
63098   };
63099   using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
63100 
63101   struct PhysicalDeviceImage2DViewOf3DFeaturesEXT
63102   {
63103     using NativeType = VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
63104 
63105     static const bool allowDuplicate = false;
63106     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImage2DViewOf3DFeaturesEXT;
63107 
63108 
63109 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImage2DViewOf3DFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63110 VULKAN_HPP_CONSTEXPR PhysicalDeviceImage2DViewOf3DFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3D_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
63111     : pNext( pNext_ ), image2DViewOf3D( image2DViewOf3D_ ), sampler2DViewOf3D( sampler2DViewOf3D_ )
63112     {}
63113 
63114     VULKAN_HPP_CONSTEXPR PhysicalDeviceImage2DViewOf3DFeaturesEXT( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63115 
PhysicalDeviceImage2DViewOf3DFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63116     PhysicalDeviceImage2DViewOf3DFeaturesEXT( VkPhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63117       : PhysicalDeviceImage2DViewOf3DFeaturesEXT( *reinterpret_cast<PhysicalDeviceImage2DViewOf3DFeaturesEXT const *>( &rhs ) )
63118     {}
63119 
63120 
63121     PhysicalDeviceImage2DViewOf3DFeaturesEXT & operator=( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63122 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
63123 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63124     PhysicalDeviceImage2DViewOf3DFeaturesEXT & operator=( VkPhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63125     {
63126       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT const *>( &rhs );
63127       return *this;
63128     }
63129 
63130 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63131     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImage2DViewOf3DFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
63132     {
63133       pNext = pNext_;
63134       return *this;
63135     }
63136 
setImage2DViewOf3DVULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63137     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImage2DViewOf3DFeaturesEXT & setImage2DViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3D_ ) VULKAN_HPP_NOEXCEPT
63138     {
63139       image2DViewOf3D = image2DViewOf3D_;
63140       return *this;
63141     }
63142 
setSampler2DViewOf3DVULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63143     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImage2DViewOf3DFeaturesEXT & setSampler2DViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D_ ) VULKAN_HPP_NOEXCEPT
63144     {
63145       sampler2DViewOf3D = sampler2DViewOf3D_;
63146       return *this;
63147     }
63148 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
63149 
63150 
operator VkPhysicalDeviceImage2DViewOf3DFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63151     operator VkPhysicalDeviceImage2DViewOf3DFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
63152     {
63153       return *reinterpret_cast<const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT*>( this );
63154     }
63155 
operator VkPhysicalDeviceImage2DViewOf3DFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63156     operator VkPhysicalDeviceImage2DViewOf3DFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63157     {
63158       return *reinterpret_cast<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT*>( this );
63159     }
63160 
63161 #if defined( VULKAN_HPP_USE_REFLECT )
63162 #if 14 <= VULKAN_HPP_CPP_VERSION
63163     auto
63164 #else
63165     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
63166 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63167       reflect() const VULKAN_HPP_NOEXCEPT
63168     {
63169       return std::tie( sType, pNext, image2DViewOf3D, sampler2DViewOf3D );
63170     }
63171 #endif
63172 
63173 
63174 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63175 auto operator<=>( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & ) const = default;
63176 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63177     bool operator==( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
63178     {
63179 #if defined( VULKAN_HPP_USE_REFLECT )
63180       return this->reflect() == rhs.reflect();
63181 #else
63182       return ( sType == rhs.sType )
63183           && ( pNext == rhs.pNext )
63184           && ( image2DViewOf3D == rhs.image2DViewOf3D )
63185           && ( sampler2DViewOf3D == rhs.sampler2DViewOf3D );
63186 #endif
63187     }
63188 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT63189     bool operator!=( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
63190     {
63191       return !operator==( rhs );
63192     }
63193 #endif
63194 
63195     public:
63196     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImage2DViewOf3DFeaturesEXT;
63197     void * pNext = {};
63198     VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3D = {};
63199     VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D = {};
63200 
63201   };
63202 
63203   template <>
63204   struct CppType<StructureType, StructureType::ePhysicalDeviceImage2DViewOf3DFeaturesEXT>
63205   {
63206     using Type = PhysicalDeviceImage2DViewOf3DFeaturesEXT;
63207   };
63208 
63209   struct PhysicalDeviceImageCompressionControlFeaturesEXT
63210   {
63211     using NativeType = VkPhysicalDeviceImageCompressionControlFeaturesEXT;
63212 
63213     static const bool allowDuplicate = false;
63214     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageCompressionControlFeaturesEXT;
63215 
63216 
63217 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageCompressionControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT63218 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
63219     : pNext( pNext_ ), imageCompressionControl( imageCompressionControl_ )
63220     {}
63221 
63222     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlFeaturesEXT( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63223 
PhysicalDeviceImageCompressionControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT63224     PhysicalDeviceImageCompressionControlFeaturesEXT( VkPhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63225       : PhysicalDeviceImageCompressionControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageCompressionControlFeaturesEXT const *>( &rhs ) )
63226     {}
63227 
63228 
63229     PhysicalDeviceImageCompressionControlFeaturesEXT & operator=( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63230 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
63231 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT63232     PhysicalDeviceImageCompressionControlFeaturesEXT & operator=( VkPhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63233     {
63234       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT const *>( &rhs );
63235       return *this;
63236     }
63237 
63238 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT63239     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
63240     {
63241       pNext = pNext_;
63242       return *this;
63243     }
63244 
setImageCompressionControlVULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT63245     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlFeaturesEXT & setImageCompressionControl( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl_ ) VULKAN_HPP_NOEXCEPT
63246     {
63247       imageCompressionControl = imageCompressionControl_;
63248       return *this;
63249     }
63250 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
63251 
63252 
operator VkPhysicalDeviceImageCompressionControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT63253     operator VkPhysicalDeviceImageCompressionControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
63254     {
63255       return *reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>( this );
63256     }
63257 
operator VkPhysicalDeviceImageCompressionControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT63258     operator VkPhysicalDeviceImageCompressionControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63259     {
63260       return *reinterpret_cast<VkPhysicalDeviceImageCompressionControlFeaturesEXT*>( this );
63261     }
63262 
63263 #if defined( VULKAN_HPP_USE_REFLECT )
63264 #if 14 <= VULKAN_HPP_CPP_VERSION
63265     auto
63266 #else
63267     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
63268 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT63269       reflect() const VULKAN_HPP_NOEXCEPT
63270     {
63271       return std::tie( sType, pNext, imageCompressionControl );
63272     }
63273 #endif
63274 
63275 
63276 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63277 auto operator<=>( PhysicalDeviceImageCompressionControlFeaturesEXT const & ) const = default;
63278 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT63279     bool operator==( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
63280     {
63281 #if defined( VULKAN_HPP_USE_REFLECT )
63282       return this->reflect() == rhs.reflect();
63283 #else
63284       return ( sType == rhs.sType )
63285           && ( pNext == rhs.pNext )
63286           && ( imageCompressionControl == rhs.imageCompressionControl );
63287 #endif
63288     }
63289 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT63290     bool operator!=( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
63291     {
63292       return !operator==( rhs );
63293     }
63294 #endif
63295 
63296     public:
63297     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageCompressionControlFeaturesEXT;
63298     void * pNext = {};
63299     VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl = {};
63300 
63301   };
63302 
63303   template <>
63304   struct CppType<StructureType, StructureType::ePhysicalDeviceImageCompressionControlFeaturesEXT>
63305   {
63306     using Type = PhysicalDeviceImageCompressionControlFeaturesEXT;
63307   };
63308 
63309   struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
63310   {
63311     using NativeType = VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
63312 
63313     static const bool allowDuplicate = false;
63314     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
63315 
63316 
63317 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageCompressionControlSwapchainFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT63318 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
63319     : pNext( pNext_ ), imageCompressionControlSwapchain( imageCompressionControlSwapchain_ )
63320     {}
63321 
63322     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63323 
PhysicalDeviceImageCompressionControlSwapchainFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT63324     PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT( VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63325       : PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const *>( &rhs ) )
63326     {}
63327 
63328 
63329     PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT & operator=( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63330 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
63331 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT63332     PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT & operator=( VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63333     {
63334       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const *>( &rhs );
63335       return *this;
63336     }
63337 
63338 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT63339     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
63340     {
63341       pNext = pNext_;
63342       return *this;
63343     }
63344 
setImageCompressionControlSwapchainVULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT63345     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT & setImageCompressionControlSwapchain( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain_ ) VULKAN_HPP_NOEXCEPT
63346     {
63347       imageCompressionControlSwapchain = imageCompressionControlSwapchain_;
63348       return *this;
63349     }
63350 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
63351 
63352 
operator VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT63353     operator VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
63354     {
63355       return *reinterpret_cast<const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>( this );
63356     }
63357 
operator VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT63358     operator VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63359     {
63360       return *reinterpret_cast<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>( this );
63361     }
63362 
63363 #if defined( VULKAN_HPP_USE_REFLECT )
63364 #if 14 <= VULKAN_HPP_CPP_VERSION
63365     auto
63366 #else
63367     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
63368 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT63369       reflect() const VULKAN_HPP_NOEXCEPT
63370     {
63371       return std::tie( sType, pNext, imageCompressionControlSwapchain );
63372     }
63373 #endif
63374 
63375 
63376 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63377 auto operator<=>( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & ) const = default;
63378 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT63379     bool operator==( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
63380     {
63381 #if defined( VULKAN_HPP_USE_REFLECT )
63382       return this->reflect() == rhs.reflect();
63383 #else
63384       return ( sType == rhs.sType )
63385           && ( pNext == rhs.pNext )
63386           && ( imageCompressionControlSwapchain == rhs.imageCompressionControlSwapchain );
63387 #endif
63388     }
63389 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT63390     bool operator!=( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
63391     {
63392       return !operator==( rhs );
63393     }
63394 #endif
63395 
63396     public:
63397     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
63398     void * pNext = {};
63399     VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain = {};
63400 
63401   };
63402 
63403   template <>
63404   struct CppType<StructureType, StructureType::ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>
63405   {
63406     using Type = PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
63407   };
63408 
63409   struct PhysicalDeviceImageDrmFormatModifierInfoEXT
63410   {
63411     using NativeType = VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
63412 
63413     static const bool allowDuplicate = false;
63414     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
63415 
63416 
63417 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63418 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT(uint64_t drmFormatModifier_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t * pQueueFamilyIndices_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
63419     : pNext( pNext_ ), drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ )
63420     {}
63421 
63422     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63423 
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63424     PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63425       : PhysicalDeviceImageDrmFormatModifierInfoEXT( *reinterpret_cast<PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs ) )
63426     {}
63427 
63428 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63429     PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_, const void * pNext_ = nullptr )
63430     : pNext( pNext_ ), drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() )
63431     {}
63432 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63433 
63434 
63435     PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63436 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
63437 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63438     PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63439     {
63440       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs );
63441       return *this;
63442     }
63443 
63444 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63445     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
63446     {
63447       pNext = pNext_;
63448       return *this;
63449     }
63450 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63451     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
63452     {
63453       drmFormatModifier = drmFormatModifier_;
63454       return *this;
63455     }
63456 
setSharingModeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63457     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
63458     {
63459       sharingMode = sharingMode_;
63460       return *this;
63461     }
63462 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63463     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
63464     {
63465       queueFamilyIndexCount = queueFamilyIndexCount_;
63466       return *this;
63467     }
63468 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63469     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
63470     {
63471       pQueueFamilyIndices = pQueueFamilyIndices_;
63472       return *this;
63473     }
63474 
63475 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63476     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
63477     {
63478       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
63479       pQueueFamilyIndices = queueFamilyIndices_.data();
63480       return *this;
63481     }
63482 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63483 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
63484 
63485 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63486     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const &() const VULKAN_HPP_NOEXCEPT
63487     {
63488       return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
63489     }
63490 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63491     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT
63492     {
63493       return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
63494     }
63495 
63496 #if defined( VULKAN_HPP_USE_REFLECT )
63497 #if 14 <= VULKAN_HPP_CPP_VERSION
63498     auto
63499 #else
63500     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, VULKAN_HPP_NAMESPACE::SharingMode const &, uint32_t const &, const uint32_t * const &>
63501 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63502       reflect() const VULKAN_HPP_NOEXCEPT
63503     {
63504       return std::tie( sType, pNext, drmFormatModifier, sharingMode, queueFamilyIndexCount, pQueueFamilyIndices );
63505     }
63506 #endif
63507 
63508 
63509 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63510 auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const & ) const = default;
63511 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63512     bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
63513     {
63514 #if defined( VULKAN_HPP_USE_REFLECT )
63515       return this->reflect() == rhs.reflect();
63516 #else
63517       return ( sType == rhs.sType )
63518           && ( pNext == rhs.pNext )
63519           && ( drmFormatModifier == rhs.drmFormatModifier )
63520           && ( sharingMode == rhs.sharingMode )
63521           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
63522           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
63523 #endif
63524     }
63525 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT63526     bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
63527     {
63528       return !operator==( rhs );
63529     }
63530 #endif
63531 
63532     public:
63533     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
63534     const void * pNext = {};
63535     uint64_t drmFormatModifier = {};
63536     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
63537     uint32_t queueFamilyIndexCount = {};
63538     const uint32_t * pQueueFamilyIndices = {};
63539 
63540   };
63541 
63542   template <>
63543   struct CppType<StructureType, StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT>
63544   {
63545     using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT;
63546   };
63547 
63548   struct PhysicalDeviceImageFormatInfo2
63549   {
63550     using NativeType = VkPhysicalDeviceImageFormatInfo2;
63551 
63552     static const bool allowDuplicate = false;
63553     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2;
63554 
63555 
63556 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263557 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
63558     : pNext( pNext_ ), format( format_ ), type( type_ ), tiling( tiling_ ), usage( usage_ ), flags( flags_ )
63559     {}
63560 
63561     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63562 
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263563     PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
63564       : PhysicalDeviceImageFormatInfo2( *reinterpret_cast<PhysicalDeviceImageFormatInfo2 const *>( &rhs ) )
63565     {}
63566 
63567 
63568     PhysicalDeviceImageFormatInfo2 & operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63569 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
63570 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263571     PhysicalDeviceImageFormatInfo2 & operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
63572     {
63573       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const *>( &rhs );
63574       return *this;
63575     }
63576 
63577 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263578     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
63579     {
63580       pNext = pNext_;
63581       return *this;
63582     }
63583 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263584     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
63585     {
63586       format = format_;
63587       return *this;
63588     }
63589 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263590     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
63591     {
63592       type = type_;
63593       return *this;
63594     }
63595 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263596     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
63597     {
63598       tiling = tiling_;
63599       return *this;
63600     }
63601 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263602     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
63603     {
63604       usage = usage_;
63605       return *this;
63606     }
63607 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263608     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
63609     {
63610       flags = flags_;
63611       return *this;
63612     }
63613 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
63614 
63615 
operator VkPhysicalDeviceImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263616     operator VkPhysicalDeviceImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
63617     {
63618       return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( this );
63619     }
63620 
operator VkPhysicalDeviceImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263621     operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
63622     {
63623       return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>( this );
63624     }
63625 
63626 #if defined( VULKAN_HPP_USE_REFLECT )
63627 #if 14 <= VULKAN_HPP_CPP_VERSION
63628     auto
63629 #else
63630     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::ImageType const &, VULKAN_HPP_NAMESPACE::ImageTiling const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &, VULKAN_HPP_NAMESPACE::ImageCreateFlags const &>
63631 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263632       reflect() const VULKAN_HPP_NOEXCEPT
63633     {
63634       return std::tie( sType, pNext, format, type, tiling, usage, flags );
63635     }
63636 #endif
63637 
63638 
63639 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63640 auto operator<=>( PhysicalDeviceImageFormatInfo2 const & ) const = default;
63641 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263642     bool operator==( PhysicalDeviceImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
63643     {
63644 #if defined( VULKAN_HPP_USE_REFLECT )
63645       return this->reflect() == rhs.reflect();
63646 #else
63647       return ( sType == rhs.sType )
63648           && ( pNext == rhs.pNext )
63649           && ( format == rhs.format )
63650           && ( type == rhs.type )
63651           && ( tiling == rhs.tiling )
63652           && ( usage == rhs.usage )
63653           && ( flags == rhs.flags );
63654 #endif
63655     }
63656 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo263657     bool operator!=( PhysicalDeviceImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
63658     {
63659       return !operator==( rhs );
63660     }
63661 #endif
63662 
63663     public:
63664     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2;
63665     const void * pNext = {};
63666     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
63667     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
63668     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
63669     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
63670     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
63671 
63672   };
63673 
63674   template <>
63675   struct CppType<StructureType, StructureType::ePhysicalDeviceImageFormatInfo2>
63676   {
63677     using Type = PhysicalDeviceImageFormatInfo2;
63678   };
63679   using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
63680 
63681   struct PhysicalDeviceImageProcessing2FeaturesQCOM
63682   {
63683     using NativeType = VkPhysicalDeviceImageProcessing2FeaturesQCOM;
63684 
63685     static const bool allowDuplicate = false;
63686     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM;
63687 
63688 
63689 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageProcessing2FeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM63690 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2FeaturesQCOM(VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
63691     : pNext( pNext_ ), textureBlockMatch2( textureBlockMatch2_ )
63692     {}
63693 
63694     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2FeaturesQCOM( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63695 
PhysicalDeviceImageProcessing2FeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM63696     PhysicalDeviceImageProcessing2FeaturesQCOM( VkPhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
63697       : PhysicalDeviceImageProcessing2FeaturesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessing2FeaturesQCOM const *>( &rhs ) )
63698     {}
63699 
63700 
63701     PhysicalDeviceImageProcessing2FeaturesQCOM & operator=( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63702 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
63703 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM63704     PhysicalDeviceImageProcessing2FeaturesQCOM & operator=( VkPhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
63705     {
63706       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM const *>( &rhs );
63707       return *this;
63708     }
63709 
63710 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM63711     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessing2FeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
63712     {
63713       pNext = pNext_;
63714       return *this;
63715     }
63716 
setTextureBlockMatch2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM63717     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessing2FeaturesQCOM & setTextureBlockMatch2( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2_ ) VULKAN_HPP_NOEXCEPT
63718     {
63719       textureBlockMatch2 = textureBlockMatch2_;
63720       return *this;
63721     }
63722 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
63723 
63724 
operator VkPhysicalDeviceImageProcessing2FeaturesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM63725     operator VkPhysicalDeviceImageProcessing2FeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
63726     {
63727       return *reinterpret_cast<const VkPhysicalDeviceImageProcessing2FeaturesQCOM*>( this );
63728     }
63729 
operator VkPhysicalDeviceImageProcessing2FeaturesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM63730     operator VkPhysicalDeviceImageProcessing2FeaturesQCOM &() VULKAN_HPP_NOEXCEPT
63731     {
63732       return *reinterpret_cast<VkPhysicalDeviceImageProcessing2FeaturesQCOM*>( this );
63733     }
63734 
63735 #if defined( VULKAN_HPP_USE_REFLECT )
63736 #if 14 <= VULKAN_HPP_CPP_VERSION
63737     auto
63738 #else
63739     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
63740 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM63741       reflect() const VULKAN_HPP_NOEXCEPT
63742     {
63743       return std::tie( sType, pNext, textureBlockMatch2 );
63744     }
63745 #endif
63746 
63747 
63748 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63749 auto operator<=>( PhysicalDeviceImageProcessing2FeaturesQCOM const & ) const = default;
63750 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM63751     bool operator==( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
63752     {
63753 #if defined( VULKAN_HPP_USE_REFLECT )
63754       return this->reflect() == rhs.reflect();
63755 #else
63756       return ( sType == rhs.sType )
63757           && ( pNext == rhs.pNext )
63758           && ( textureBlockMatch2 == rhs.textureBlockMatch2 );
63759 #endif
63760     }
63761 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM63762     bool operator!=( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
63763     {
63764       return !operator==( rhs );
63765     }
63766 #endif
63767 
63768     public:
63769     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM;
63770     void * pNext = {};
63771     VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2 = {};
63772 
63773   };
63774 
63775   template <>
63776   struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM>
63777   {
63778     using Type = PhysicalDeviceImageProcessing2FeaturesQCOM;
63779   };
63780 
63781   struct PhysicalDeviceImageProcessing2PropertiesQCOM
63782   {
63783     using NativeType = VkPhysicalDeviceImageProcessing2PropertiesQCOM;
63784 
63785     static const bool allowDuplicate = false;
63786     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM;
63787 
63788 
63789 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageProcessing2PropertiesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM63790 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2PropertiesQCOM(VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchWindow_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
63791     : pNext( pNext_ ), maxBlockMatchWindow( maxBlockMatchWindow_ )
63792     {}
63793 
63794     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2PropertiesQCOM( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63795 
PhysicalDeviceImageProcessing2PropertiesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM63796     PhysicalDeviceImageProcessing2PropertiesQCOM( VkPhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
63797       : PhysicalDeviceImageProcessing2PropertiesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessing2PropertiesQCOM const *>( &rhs ) )
63798     {}
63799 
63800 
63801     PhysicalDeviceImageProcessing2PropertiesQCOM & operator=( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63802 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
63803 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM63804     PhysicalDeviceImageProcessing2PropertiesQCOM & operator=( VkPhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
63805     {
63806       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM const *>( &rhs );
63807       return *this;
63808     }
63809 
63810 
operator VkPhysicalDeviceImageProcessing2PropertiesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM63811     operator VkPhysicalDeviceImageProcessing2PropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
63812     {
63813       return *reinterpret_cast<const VkPhysicalDeviceImageProcessing2PropertiesQCOM*>( this );
63814     }
63815 
operator VkPhysicalDeviceImageProcessing2PropertiesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM63816     operator VkPhysicalDeviceImageProcessing2PropertiesQCOM &() VULKAN_HPP_NOEXCEPT
63817     {
63818       return *reinterpret_cast<VkPhysicalDeviceImageProcessing2PropertiesQCOM*>( this );
63819     }
63820 
63821 #if defined( VULKAN_HPP_USE_REFLECT )
63822 #if 14 <= VULKAN_HPP_CPP_VERSION
63823     auto
63824 #else
63825     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
63826 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM63827       reflect() const VULKAN_HPP_NOEXCEPT
63828     {
63829       return std::tie( sType, pNext, maxBlockMatchWindow );
63830     }
63831 #endif
63832 
63833 
63834 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63835 auto operator<=>( PhysicalDeviceImageProcessing2PropertiesQCOM const & ) const = default;
63836 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM63837     bool operator==( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
63838     {
63839 #if defined( VULKAN_HPP_USE_REFLECT )
63840       return this->reflect() == rhs.reflect();
63841 #else
63842       return ( sType == rhs.sType )
63843           && ( pNext == rhs.pNext )
63844           && ( maxBlockMatchWindow == rhs.maxBlockMatchWindow );
63845 #endif
63846     }
63847 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM63848     bool operator!=( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
63849     {
63850       return !operator==( rhs );
63851     }
63852 #endif
63853 
63854     public:
63855     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM;
63856     void * pNext = {};
63857     VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchWindow = {};
63858 
63859   };
63860 
63861   template <>
63862   struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM>
63863   {
63864     using Type = PhysicalDeviceImageProcessing2PropertiesQCOM;
63865   };
63866 
63867   struct PhysicalDeviceImageProcessingFeaturesQCOM
63868   {
63869     using NativeType = VkPhysicalDeviceImageProcessingFeaturesQCOM;
63870 
63871     static const bool allowDuplicate = false;
63872     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM;
63873 
63874 
63875 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageProcessingFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63876 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingFeaturesQCOM(VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
63877     : pNext( pNext_ ), textureSampleWeighted( textureSampleWeighted_ ), textureBoxFilter( textureBoxFilter_ ), textureBlockMatch( textureBlockMatch_ )
63878     {}
63879 
63880     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingFeaturesQCOM( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63881 
PhysicalDeviceImageProcessingFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63882     PhysicalDeviceImageProcessingFeaturesQCOM( VkPhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
63883       : PhysicalDeviceImageProcessingFeaturesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessingFeaturesQCOM const *>( &rhs ) )
63884     {}
63885 
63886 
63887     PhysicalDeviceImageProcessingFeaturesQCOM & operator=( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63888 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
63889 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63890     PhysicalDeviceImageProcessingFeaturesQCOM & operator=( VkPhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
63891     {
63892       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM const *>( &rhs );
63893       return *this;
63894     }
63895 
63896 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63897     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
63898     {
63899       pNext = pNext_;
63900       return *this;
63901     }
63902 
setTextureSampleWeightedVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63903     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM & setTextureSampleWeighted( VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted_ ) VULKAN_HPP_NOEXCEPT
63904     {
63905       textureSampleWeighted = textureSampleWeighted_;
63906       return *this;
63907     }
63908 
setTextureBoxFilterVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63909     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM & setTextureBoxFilter( VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter_ ) VULKAN_HPP_NOEXCEPT
63910     {
63911       textureBoxFilter = textureBoxFilter_;
63912       return *this;
63913     }
63914 
setTextureBlockMatchVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63915     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM & setTextureBlockMatch( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch_ ) VULKAN_HPP_NOEXCEPT
63916     {
63917       textureBlockMatch = textureBlockMatch_;
63918       return *this;
63919     }
63920 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
63921 
63922 
operator VkPhysicalDeviceImageProcessingFeaturesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63923     operator VkPhysicalDeviceImageProcessingFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
63924     {
63925       return *reinterpret_cast<const VkPhysicalDeviceImageProcessingFeaturesQCOM*>( this );
63926     }
63927 
operator VkPhysicalDeviceImageProcessingFeaturesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63928     operator VkPhysicalDeviceImageProcessingFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
63929     {
63930       return *reinterpret_cast<VkPhysicalDeviceImageProcessingFeaturesQCOM*>( this );
63931     }
63932 
63933 #if defined( VULKAN_HPP_USE_REFLECT )
63934 #if 14 <= VULKAN_HPP_CPP_VERSION
63935     auto
63936 #else
63937     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
63938 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63939       reflect() const VULKAN_HPP_NOEXCEPT
63940     {
63941       return std::tie( sType, pNext, textureSampleWeighted, textureBoxFilter, textureBlockMatch );
63942     }
63943 #endif
63944 
63945 
63946 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63947 auto operator<=>( PhysicalDeviceImageProcessingFeaturesQCOM const & ) const = default;
63948 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63949     bool operator==( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
63950     {
63951 #if defined( VULKAN_HPP_USE_REFLECT )
63952       return this->reflect() == rhs.reflect();
63953 #else
63954       return ( sType == rhs.sType )
63955           && ( pNext == rhs.pNext )
63956           && ( textureSampleWeighted == rhs.textureSampleWeighted )
63957           && ( textureBoxFilter == rhs.textureBoxFilter )
63958           && ( textureBlockMatch == rhs.textureBlockMatch );
63959 #endif
63960     }
63961 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM63962     bool operator!=( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
63963     {
63964       return !operator==( rhs );
63965     }
63966 #endif
63967 
63968     public:
63969     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM;
63970     void * pNext = {};
63971     VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted = {};
63972     VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter = {};
63973     VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch = {};
63974 
63975   };
63976 
63977   template <>
63978   struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM>
63979   {
63980     using Type = PhysicalDeviceImageProcessingFeaturesQCOM;
63981   };
63982 
63983   struct PhysicalDeviceImageProcessingPropertiesQCOM
63984   {
63985     using NativeType = VkPhysicalDeviceImageProcessingPropertiesQCOM;
63986 
63987     static const bool allowDuplicate = false;
63988     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM;
63989 
63990 
63991 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageProcessingPropertiesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM63992 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingPropertiesQCOM(uint32_t maxWeightFilterPhases_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxWeightFilterDimension_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchRegion_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxBoxFilterBlockSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
63993     : pNext( pNext_ ), maxWeightFilterPhases( maxWeightFilterPhases_ ), maxWeightFilterDimension( maxWeightFilterDimension_ ), maxBlockMatchRegion( maxBlockMatchRegion_ ), maxBoxFilterBlockSize( maxBoxFilterBlockSize_ )
63994     {}
63995 
63996     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingPropertiesQCOM( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63997 
PhysicalDeviceImageProcessingPropertiesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM63998     PhysicalDeviceImageProcessingPropertiesQCOM( VkPhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
63999       : PhysicalDeviceImageProcessingPropertiesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessingPropertiesQCOM const *>( &rhs ) )
64000     {}
64001 
64002 
64003     PhysicalDeviceImageProcessingPropertiesQCOM & operator=( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64004 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
64005 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM64006     PhysicalDeviceImageProcessingPropertiesQCOM & operator=( VkPhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
64007     {
64008       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM const *>( &rhs );
64009       return *this;
64010     }
64011 
64012 
operator VkPhysicalDeviceImageProcessingPropertiesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM64013     operator VkPhysicalDeviceImageProcessingPropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
64014     {
64015       return *reinterpret_cast<const VkPhysicalDeviceImageProcessingPropertiesQCOM*>( this );
64016     }
64017 
operator VkPhysicalDeviceImageProcessingPropertiesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM64018     operator VkPhysicalDeviceImageProcessingPropertiesQCOM &() VULKAN_HPP_NOEXCEPT
64019     {
64020       return *reinterpret_cast<VkPhysicalDeviceImageProcessingPropertiesQCOM*>( this );
64021     }
64022 
64023 #if defined( VULKAN_HPP_USE_REFLECT )
64024 #if 14 <= VULKAN_HPP_CPP_VERSION
64025     auto
64026 #else
64027     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
64028 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM64029       reflect() const VULKAN_HPP_NOEXCEPT
64030     {
64031       return std::tie( sType, pNext, maxWeightFilterPhases, maxWeightFilterDimension, maxBlockMatchRegion, maxBoxFilterBlockSize );
64032     }
64033 #endif
64034 
64035 
64036 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64037 auto operator<=>( PhysicalDeviceImageProcessingPropertiesQCOM const & ) const = default;
64038 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM64039     bool operator==( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
64040     {
64041 #if defined( VULKAN_HPP_USE_REFLECT )
64042       return this->reflect() == rhs.reflect();
64043 #else
64044       return ( sType == rhs.sType )
64045           && ( pNext == rhs.pNext )
64046           && ( maxWeightFilterPhases == rhs.maxWeightFilterPhases )
64047           && ( maxWeightFilterDimension == rhs.maxWeightFilterDimension )
64048           && ( maxBlockMatchRegion == rhs.maxBlockMatchRegion )
64049           && ( maxBoxFilterBlockSize == rhs.maxBoxFilterBlockSize );
64050 #endif
64051     }
64052 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM64053     bool operator!=( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
64054     {
64055       return !operator==( rhs );
64056     }
64057 #endif
64058 
64059     public:
64060     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM;
64061     void * pNext = {};
64062     uint32_t maxWeightFilterPhases = {};
64063     VULKAN_HPP_NAMESPACE::Extent2D maxWeightFilterDimension = {};
64064     VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchRegion = {};
64065     VULKAN_HPP_NAMESPACE::Extent2D maxBoxFilterBlockSize = {};
64066 
64067   };
64068 
64069   template <>
64070   struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM>
64071   {
64072     using Type = PhysicalDeviceImageProcessingPropertiesQCOM;
64073   };
64074 
64075   struct PhysicalDeviceImageRobustnessFeatures
64076   {
64077     using NativeType = VkPhysicalDeviceImageRobustnessFeatures;
64078 
64079     static const bool allowDuplicate = false;
64080     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageRobustnessFeatures;
64081 
64082 
64083 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageRobustnessFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures64084 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeatures(VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
64085     : pNext( pNext_ ), robustImageAccess( robustImageAccess_ )
64086     {}
64087 
64088     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeatures( PhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64089 
PhysicalDeviceImageRobustnessFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures64090     PhysicalDeviceImageRobustnessFeatures( VkPhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
64091       : PhysicalDeviceImageRobustnessFeatures( *reinterpret_cast<PhysicalDeviceImageRobustnessFeatures const *>( &rhs ) )
64092     {}
64093 
64094 
64095     PhysicalDeviceImageRobustnessFeatures & operator=( PhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64096 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
64097 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures64098     PhysicalDeviceImageRobustnessFeatures & operator=( VkPhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
64099     {
64100       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures const *>( &rhs );
64101       return *this;
64102     }
64103 
64104 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures64105     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageRobustnessFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
64106     {
64107       pNext = pNext_;
64108       return *this;
64109     }
64110 
setRobustImageAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures64111     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageRobustnessFeatures & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT
64112     {
64113       robustImageAccess = robustImageAccess_;
64114       return *this;
64115     }
64116 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
64117 
64118 
operator VkPhysicalDeviceImageRobustnessFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures64119     operator VkPhysicalDeviceImageRobustnessFeatures const &() const VULKAN_HPP_NOEXCEPT
64120     {
64121       return *reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>( this );
64122     }
64123 
operator VkPhysicalDeviceImageRobustnessFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures64124     operator VkPhysicalDeviceImageRobustnessFeatures &() VULKAN_HPP_NOEXCEPT
64125     {
64126       return *reinterpret_cast<VkPhysicalDeviceImageRobustnessFeatures*>( this );
64127     }
64128 
64129 #if defined( VULKAN_HPP_USE_REFLECT )
64130 #if 14 <= VULKAN_HPP_CPP_VERSION
64131     auto
64132 #else
64133     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
64134 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures64135       reflect() const VULKAN_HPP_NOEXCEPT
64136     {
64137       return std::tie( sType, pNext, robustImageAccess );
64138     }
64139 #endif
64140 
64141 
64142 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64143 auto operator<=>( PhysicalDeviceImageRobustnessFeatures const & ) const = default;
64144 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures64145     bool operator==( PhysicalDeviceImageRobustnessFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
64146     {
64147 #if defined( VULKAN_HPP_USE_REFLECT )
64148       return this->reflect() == rhs.reflect();
64149 #else
64150       return ( sType == rhs.sType )
64151           && ( pNext == rhs.pNext )
64152           && ( robustImageAccess == rhs.robustImageAccess );
64153 #endif
64154     }
64155 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures64156     bool operator!=( PhysicalDeviceImageRobustnessFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
64157     {
64158       return !operator==( rhs );
64159     }
64160 #endif
64161 
64162     public:
64163     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageRobustnessFeatures;
64164     void * pNext = {};
64165     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {};
64166 
64167   };
64168 
64169   template <>
64170   struct CppType<StructureType, StructureType::ePhysicalDeviceImageRobustnessFeatures>
64171   {
64172     using Type = PhysicalDeviceImageRobustnessFeatures;
64173   };
64174   using PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures;
64175 
64176   struct PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
64177   {
64178     using NativeType = VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
64179 
64180     static const bool allowDuplicate = false;
64181     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
64182 
64183 
64184 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageSlicedViewOf3DFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT64185 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageSlicedViewOf3DFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 imageSlicedViewOf3D_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
64186     : pNext( pNext_ ), imageSlicedViewOf3D( imageSlicedViewOf3D_ )
64187     {}
64188 
64189     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64190 
PhysicalDeviceImageSlicedViewOf3DFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT64191     PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64192       : PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const *>( &rhs ) )
64193     {}
64194 
64195 
64196     PhysicalDeviceImageSlicedViewOf3DFeaturesEXT & operator=( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64197 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
64198 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT64199     PhysicalDeviceImageSlicedViewOf3DFeaturesEXT & operator=( VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64200     {
64201       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const *>( &rhs );
64202       return *this;
64203     }
64204 
64205 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT64206     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
64207     {
64208       pNext = pNext_;
64209       return *this;
64210     }
64211 
setImageSlicedViewOf3DVULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT64212     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT & setImageSlicedViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 imageSlicedViewOf3D_ ) VULKAN_HPP_NOEXCEPT
64213     {
64214       imageSlicedViewOf3D = imageSlicedViewOf3D_;
64215       return *this;
64216     }
64217 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
64218 
64219 
operator VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT64220     operator VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
64221     {
64222       return *reinterpret_cast<const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT*>( this );
64223     }
64224 
operator VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT64225     operator VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64226     {
64227       return *reinterpret_cast<VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT*>( this );
64228     }
64229 
64230 #if defined( VULKAN_HPP_USE_REFLECT )
64231 #if 14 <= VULKAN_HPP_CPP_VERSION
64232     auto
64233 #else
64234     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
64235 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT64236       reflect() const VULKAN_HPP_NOEXCEPT
64237     {
64238       return std::tie( sType, pNext, imageSlicedViewOf3D );
64239     }
64240 #endif
64241 
64242 
64243 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64244 auto operator<=>( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & ) const = default;
64245 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT64246     bool operator==( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
64247     {
64248 #if defined( VULKAN_HPP_USE_REFLECT )
64249       return this->reflect() == rhs.reflect();
64250 #else
64251       return ( sType == rhs.sType )
64252           && ( pNext == rhs.pNext )
64253           && ( imageSlicedViewOf3D == rhs.imageSlicedViewOf3D );
64254 #endif
64255     }
64256 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT64257     bool operator!=( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
64258     {
64259       return !operator==( rhs );
64260     }
64261 #endif
64262 
64263     public:
64264     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
64265     void * pNext = {};
64266     VULKAN_HPP_NAMESPACE::Bool32 imageSlicedViewOf3D = {};
64267 
64268   };
64269 
64270   template <>
64271   struct CppType<StructureType, StructureType::ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT>
64272   {
64273     using Type = PhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
64274   };
64275 
64276   struct PhysicalDeviceImageViewImageFormatInfoEXT
64277   {
64278     using NativeType = VkPhysicalDeviceImageViewImageFormatInfoEXT;
64279 
64280     static const bool allowDuplicate = false;
64281     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
64282 
64283 
64284 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT64285 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT(VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
64286     : pNext( pNext_ ), imageViewType( imageViewType_ )
64287     {}
64288 
64289     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64290 
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT64291     PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64292       : PhysicalDeviceImageViewImageFormatInfoEXT( *reinterpret_cast<PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs ) )
64293     {}
64294 
64295 
64296     PhysicalDeviceImageViewImageFormatInfoEXT & operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64297 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
64298 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT64299     PhysicalDeviceImageViewImageFormatInfoEXT & operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64300     {
64301       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs );
64302       return *this;
64303     }
64304 
64305 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT64306     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
64307     {
64308       pNext = pNext_;
64309       return *this;
64310     }
64311 
setImageViewTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT64312     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT
64313     {
64314       imageViewType = imageViewType_;
64315       return *this;
64316     }
64317 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
64318 
64319 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT64320     operator VkPhysicalDeviceImageViewImageFormatInfoEXT const &() const VULKAN_HPP_NOEXCEPT
64321     {
64322       return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
64323     }
64324 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT64325     operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT
64326     {
64327       return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
64328     }
64329 
64330 #if defined( VULKAN_HPP_USE_REFLECT )
64331 #if 14 <= VULKAN_HPP_CPP_VERSION
64332     auto
64333 #else
64334     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageViewType const &>
64335 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT64336       reflect() const VULKAN_HPP_NOEXCEPT
64337     {
64338       return std::tie( sType, pNext, imageViewType );
64339     }
64340 #endif
64341 
64342 
64343 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64344 auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const & ) const = default;
64345 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT64346     bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
64347     {
64348 #if defined( VULKAN_HPP_USE_REFLECT )
64349       return this->reflect() == rhs.reflect();
64350 #else
64351       return ( sType == rhs.sType )
64352           && ( pNext == rhs.pNext )
64353           && ( imageViewType == rhs.imageViewType );
64354 #endif
64355     }
64356 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT64357     bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
64358     {
64359       return !operator==( rhs );
64360     }
64361 #endif
64362 
64363     public:
64364     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
64365     void * pNext = {};
64366     VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
64367 
64368   };
64369 
64370   template <>
64371   struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT>
64372   {
64373     using Type = PhysicalDeviceImageViewImageFormatInfoEXT;
64374   };
64375 
64376   struct PhysicalDeviceImageViewMinLodFeaturesEXT
64377   {
64378     using NativeType = VkPhysicalDeviceImageViewMinLodFeaturesEXT;
64379 
64380     static const bool allowDuplicate = false;
64381     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewMinLodFeaturesEXT;
64382 
64383 
64384 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageViewMinLodFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT64385 VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewMinLodFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 minLod_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
64386     : pNext( pNext_ ), minLod( minLod_ )
64387     {}
64388 
64389     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewMinLodFeaturesEXT( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64390 
PhysicalDeviceImageViewMinLodFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT64391     PhysicalDeviceImageViewMinLodFeaturesEXT( VkPhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64392       : PhysicalDeviceImageViewMinLodFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageViewMinLodFeaturesEXT const *>( &rhs ) )
64393     {}
64394 
64395 
64396     PhysicalDeviceImageViewMinLodFeaturesEXT & operator=( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64397 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
64398 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT64399     PhysicalDeviceImageViewMinLodFeaturesEXT & operator=( VkPhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64400     {
64401       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT const *>( &rhs );
64402       return *this;
64403     }
64404 
64405 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT64406     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewMinLodFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
64407     {
64408       pNext = pNext_;
64409       return *this;
64410     }
64411 
setMinLodVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT64412     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewMinLodFeaturesEXT & setMinLod( VULKAN_HPP_NAMESPACE::Bool32 minLod_ ) VULKAN_HPP_NOEXCEPT
64413     {
64414       minLod = minLod_;
64415       return *this;
64416     }
64417 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
64418 
64419 
operator VkPhysicalDeviceImageViewMinLodFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT64420     operator VkPhysicalDeviceImageViewMinLodFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
64421     {
64422       return *reinterpret_cast<const VkPhysicalDeviceImageViewMinLodFeaturesEXT*>( this );
64423     }
64424 
operator VkPhysicalDeviceImageViewMinLodFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT64425     operator VkPhysicalDeviceImageViewMinLodFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64426     {
64427       return *reinterpret_cast<VkPhysicalDeviceImageViewMinLodFeaturesEXT*>( this );
64428     }
64429 
64430 #if defined( VULKAN_HPP_USE_REFLECT )
64431 #if 14 <= VULKAN_HPP_CPP_VERSION
64432     auto
64433 #else
64434     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
64435 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT64436       reflect() const VULKAN_HPP_NOEXCEPT
64437     {
64438       return std::tie( sType, pNext, minLod );
64439     }
64440 #endif
64441 
64442 
64443 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64444 auto operator<=>( PhysicalDeviceImageViewMinLodFeaturesEXT const & ) const = default;
64445 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT64446     bool operator==( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
64447     {
64448 #if defined( VULKAN_HPP_USE_REFLECT )
64449       return this->reflect() == rhs.reflect();
64450 #else
64451       return ( sType == rhs.sType )
64452           && ( pNext == rhs.pNext )
64453           && ( minLod == rhs.minLod );
64454 #endif
64455     }
64456 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT64457     bool operator!=( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
64458     {
64459       return !operator==( rhs );
64460     }
64461 #endif
64462 
64463     public:
64464     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewMinLodFeaturesEXT;
64465     void * pNext = {};
64466     VULKAN_HPP_NAMESPACE::Bool32 minLod = {};
64467 
64468   };
64469 
64470   template <>
64471   struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewMinLodFeaturesEXT>
64472   {
64473     using Type = PhysicalDeviceImageViewMinLodFeaturesEXT;
64474   };
64475 
64476   struct PhysicalDeviceImagelessFramebufferFeatures
64477   {
64478     using NativeType = VkPhysicalDeviceImagelessFramebufferFeatures;
64479 
64480     static const bool allowDuplicate = false;
64481     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
64482 
64483 
64484 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures64485 VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures(VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
64486     : pNext( pNext_ ), imagelessFramebuffer( imagelessFramebuffer_ )
64487     {}
64488 
64489     VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64490 
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures64491     PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
64492       : PhysicalDeviceImagelessFramebufferFeatures( *reinterpret_cast<PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs ) )
64493     {}
64494 
64495 
64496     PhysicalDeviceImagelessFramebufferFeatures & operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64497 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
64498 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures64499     PhysicalDeviceImagelessFramebufferFeatures & operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
64500     {
64501       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs );
64502       return *this;
64503     }
64504 
64505 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures64506     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImagelessFramebufferFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
64507     {
64508       pNext = pNext_;
64509       return *this;
64510     }
64511 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures64512     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImagelessFramebufferFeatures & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
64513     {
64514       imagelessFramebuffer = imagelessFramebuffer_;
64515       return *this;
64516     }
64517 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
64518 
64519 
operator VkPhysicalDeviceImagelessFramebufferFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures64520     operator VkPhysicalDeviceImagelessFramebufferFeatures const &() const VULKAN_HPP_NOEXCEPT
64521     {
64522       return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
64523     }
64524 
operator VkPhysicalDeviceImagelessFramebufferFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures64525     operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT
64526     {
64527       return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
64528     }
64529 
64530 #if defined( VULKAN_HPP_USE_REFLECT )
64531 #if 14 <= VULKAN_HPP_CPP_VERSION
64532     auto
64533 #else
64534     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
64535 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures64536       reflect() const VULKAN_HPP_NOEXCEPT
64537     {
64538       return std::tie( sType, pNext, imagelessFramebuffer );
64539     }
64540 #endif
64541 
64542 
64543 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64544 auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const & ) const = default;
64545 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures64546     bool operator==( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
64547     {
64548 #if defined( VULKAN_HPP_USE_REFLECT )
64549       return this->reflect() == rhs.reflect();
64550 #else
64551       return ( sType == rhs.sType )
64552           && ( pNext == rhs.pNext )
64553           && ( imagelessFramebuffer == rhs.imagelessFramebuffer );
64554 #endif
64555     }
64556 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures64557     bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
64558     {
64559       return !operator==( rhs );
64560     }
64561 #endif
64562 
64563     public:
64564     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
64565     void * pNext = {};
64566     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
64567 
64568   };
64569 
64570   template <>
64571   struct CppType<StructureType, StructureType::ePhysicalDeviceImagelessFramebufferFeatures>
64572   {
64573     using Type = PhysicalDeviceImagelessFramebufferFeatures;
64574   };
64575   using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
64576 
64577   struct PhysicalDeviceIndexTypeUint8FeaturesEXT
64578   {
64579     using NativeType = VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
64580 
64581     static const bool allowDuplicate = false;
64582     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
64583 
64584 
64585 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT64586 VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
64587     : pNext( pNext_ ), indexTypeUint8( indexTypeUint8_ )
64588     {}
64589 
64590     VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64591 
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT64592     PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64593       : PhysicalDeviceIndexTypeUint8FeaturesEXT( *reinterpret_cast<PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs ) )
64594     {}
64595 
64596 
64597     PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64598 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
64599 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT64600     PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64601     {
64602       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs );
64603       return *this;
64604     }
64605 
64606 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT64607     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
64608     {
64609       pNext = pNext_;
64610       return *this;
64611     }
64612 
setIndexTypeUint8VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT64613     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT
64614     {
64615       indexTypeUint8 = indexTypeUint8_;
64616       return *this;
64617     }
64618 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
64619 
64620 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT64621     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
64622     {
64623       return *reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
64624     }
64625 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT64626     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT
64627     {
64628       return *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
64629     }
64630 
64631 #if defined( VULKAN_HPP_USE_REFLECT )
64632 #if 14 <= VULKAN_HPP_CPP_VERSION
64633     auto
64634 #else
64635     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
64636 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT64637       reflect() const VULKAN_HPP_NOEXCEPT
64638     {
64639       return std::tie( sType, pNext, indexTypeUint8 );
64640     }
64641 #endif
64642 
64643 
64644 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64645 auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const & ) const = default;
64646 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT64647     bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
64648     {
64649 #if defined( VULKAN_HPP_USE_REFLECT )
64650       return this->reflect() == rhs.reflect();
64651 #else
64652       return ( sType == rhs.sType )
64653           && ( pNext == rhs.pNext )
64654           && ( indexTypeUint8 == rhs.indexTypeUint8 );
64655 #endif
64656     }
64657 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT64658     bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
64659     {
64660       return !operator==( rhs );
64661     }
64662 #endif
64663 
64664     public:
64665     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
64666     void * pNext = {};
64667     VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {};
64668 
64669   };
64670 
64671   template <>
64672   struct CppType<StructureType, StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT>
64673   {
64674     using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT;
64675   };
64676 
64677   struct PhysicalDeviceInheritedViewportScissorFeaturesNV
64678   {
64679     using NativeType = VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
64680 
64681     static const bool allowDuplicate = false;
64682     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV;
64683 
64684 
64685 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInheritedViewportScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV64686 VULKAN_HPP_CONSTEXPR PhysicalDeviceInheritedViewportScissorFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
64687     : pNext( pNext_ ), inheritedViewportScissor2D( inheritedViewportScissor2D_ )
64688     {}
64689 
64690     VULKAN_HPP_CONSTEXPR PhysicalDeviceInheritedViewportScissorFeaturesNV( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64691 
PhysicalDeviceInheritedViewportScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV64692     PhysicalDeviceInheritedViewportScissorFeaturesNV( VkPhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64693       : PhysicalDeviceInheritedViewportScissorFeaturesNV( *reinterpret_cast<PhysicalDeviceInheritedViewportScissorFeaturesNV const *>( &rhs ) )
64694     {}
64695 
64696 
64697     PhysicalDeviceInheritedViewportScissorFeaturesNV & operator=( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64698 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
64699 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV64700     PhysicalDeviceInheritedViewportScissorFeaturesNV & operator=( VkPhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64701     {
64702       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV const *>( &rhs );
64703       return *this;
64704     }
64705 
64706 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV64707     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInheritedViewportScissorFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
64708     {
64709       pNext = pNext_;
64710       return *this;
64711     }
64712 
setInheritedViewportScissor2DVULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV64713     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInheritedViewportScissorFeaturesNV & setInheritedViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ ) VULKAN_HPP_NOEXCEPT
64714     {
64715       inheritedViewportScissor2D = inheritedViewportScissor2D_;
64716       return *this;
64717     }
64718 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
64719 
64720 
operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV64721     operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
64722     {
64723       return *reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>( this );
64724     }
64725 
operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV64726     operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
64727     {
64728       return *reinterpret_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>( this );
64729     }
64730 
64731 #if defined( VULKAN_HPP_USE_REFLECT )
64732 #if 14 <= VULKAN_HPP_CPP_VERSION
64733     auto
64734 #else
64735     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
64736 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV64737       reflect() const VULKAN_HPP_NOEXCEPT
64738     {
64739       return std::tie( sType, pNext, inheritedViewportScissor2D );
64740     }
64741 #endif
64742 
64743 
64744 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64745 auto operator<=>( PhysicalDeviceInheritedViewportScissorFeaturesNV const & ) const = default;
64746 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV64747     bool operator==( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
64748     {
64749 #if defined( VULKAN_HPP_USE_REFLECT )
64750       return this->reflect() == rhs.reflect();
64751 #else
64752       return ( sType == rhs.sType )
64753           && ( pNext == rhs.pNext )
64754           && ( inheritedViewportScissor2D == rhs.inheritedViewportScissor2D );
64755 #endif
64756     }
64757 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV64758     bool operator!=( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
64759     {
64760       return !operator==( rhs );
64761     }
64762 #endif
64763 
64764     public:
64765     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV;
64766     void * pNext = {};
64767     VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D = {};
64768 
64769   };
64770 
64771   template <>
64772   struct CppType<StructureType, StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV>
64773   {
64774     using Type = PhysicalDeviceInheritedViewportScissorFeaturesNV;
64775   };
64776 
64777   struct PhysicalDeviceInlineUniformBlockFeatures
64778   {
64779     using NativeType = VkPhysicalDeviceInlineUniformBlockFeatures;
64780 
64781     static const bool allowDuplicate = false;
64782     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockFeatures;
64783 
64784 
64785 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInlineUniformBlockFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64786 VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeatures(VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
64787     : pNext( pNext_ ), inlineUniformBlock( inlineUniformBlock_ ), descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
64788     {}
64789 
64790     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeatures( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64791 
PhysicalDeviceInlineUniformBlockFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64792     PhysicalDeviceInlineUniformBlockFeatures( VkPhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
64793       : PhysicalDeviceInlineUniformBlockFeatures( *reinterpret_cast<PhysicalDeviceInlineUniformBlockFeatures const *>( &rhs ) )
64794     {}
64795 
64796 
64797     PhysicalDeviceInlineUniformBlockFeatures & operator=( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64798 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
64799 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64800     PhysicalDeviceInlineUniformBlockFeatures & operator=( VkPhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
64801     {
64802       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures const *>( &rhs );
64803       return *this;
64804     }
64805 
64806 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64807     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
64808     {
64809       pNext = pNext_;
64810       return *this;
64811     }
64812 
setInlineUniformBlockVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64813     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeatures & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
64814     {
64815       inlineUniformBlock = inlineUniformBlock_;
64816       return *this;
64817     }
64818 
setDescriptorBindingInlineUniformBlockUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64819     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeatures & setDescriptorBindingInlineUniformBlockUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
64820     {
64821       descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
64822       return *this;
64823     }
64824 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
64825 
64826 
operator VkPhysicalDeviceInlineUniformBlockFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64827     operator VkPhysicalDeviceInlineUniformBlockFeatures const &() const VULKAN_HPP_NOEXCEPT
64828     {
64829       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>( this );
64830     }
64831 
operator VkPhysicalDeviceInlineUniformBlockFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64832     operator VkPhysicalDeviceInlineUniformBlockFeatures &() VULKAN_HPP_NOEXCEPT
64833     {
64834       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeatures*>( this );
64835     }
64836 
64837 #if defined( VULKAN_HPP_USE_REFLECT )
64838 #if 14 <= VULKAN_HPP_CPP_VERSION
64839     auto
64840 #else
64841     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
64842 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64843       reflect() const VULKAN_HPP_NOEXCEPT
64844     {
64845       return std::tie( sType, pNext, inlineUniformBlock, descriptorBindingInlineUniformBlockUpdateAfterBind );
64846     }
64847 #endif
64848 
64849 
64850 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64851 auto operator<=>( PhysicalDeviceInlineUniformBlockFeatures const & ) const = default;
64852 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64853     bool operator==( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
64854     {
64855 #if defined( VULKAN_HPP_USE_REFLECT )
64856       return this->reflect() == rhs.reflect();
64857 #else
64858       return ( sType == rhs.sType )
64859           && ( pNext == rhs.pNext )
64860           && ( inlineUniformBlock == rhs.inlineUniformBlock )
64861           && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind );
64862 #endif
64863     }
64864 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures64865     bool operator!=( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
64866     {
64867       return !operator==( rhs );
64868     }
64869 #endif
64870 
64871     public:
64872     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeatures;
64873     void * pNext = {};
64874     VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
64875     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
64876 
64877   };
64878 
64879   template <>
64880   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockFeatures>
64881   {
64882     using Type = PhysicalDeviceInlineUniformBlockFeatures;
64883   };
64884   using PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures;
64885 
64886   struct PhysicalDeviceInlineUniformBlockProperties
64887   {
64888     using NativeType = VkPhysicalDeviceInlineUniformBlockProperties;
64889 
64890     static const bool allowDuplicate = false;
64891     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockProperties;
64892 
64893 
64894 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInlineUniformBlockPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties64895 VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockProperties(uint32_t maxInlineUniformBlockSize_ = {}, uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
64896     : pNext( pNext_ ), maxInlineUniformBlockSize( maxInlineUniformBlockSize_ ), maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ ), maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ ), maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ ), maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
64897     {}
64898 
64899     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockProperties( PhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64900 
PhysicalDeviceInlineUniformBlockPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties64901     PhysicalDeviceInlineUniformBlockProperties( VkPhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64902       : PhysicalDeviceInlineUniformBlockProperties( *reinterpret_cast<PhysicalDeviceInlineUniformBlockProperties const *>( &rhs ) )
64903     {}
64904 
64905 
64906     PhysicalDeviceInlineUniformBlockProperties & operator=( PhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64907 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
64908 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties64909     PhysicalDeviceInlineUniformBlockProperties & operator=( VkPhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64910     {
64911       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties const *>( &rhs );
64912       return *this;
64913     }
64914 
64915 
operator VkPhysicalDeviceInlineUniformBlockProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties64916     operator VkPhysicalDeviceInlineUniformBlockProperties const &() const VULKAN_HPP_NOEXCEPT
64917     {
64918       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties*>( this );
64919     }
64920 
operator VkPhysicalDeviceInlineUniformBlockProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties64921     operator VkPhysicalDeviceInlineUniformBlockProperties &() VULKAN_HPP_NOEXCEPT
64922     {
64923       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockProperties*>( this );
64924     }
64925 
64926 #if defined( VULKAN_HPP_USE_REFLECT )
64927 #if 14 <= VULKAN_HPP_CPP_VERSION
64928     auto
64929 #else
64930     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
64931 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties64932       reflect() const VULKAN_HPP_NOEXCEPT
64933     {
64934       return std::tie( sType, pNext, maxInlineUniformBlockSize, maxPerStageDescriptorInlineUniformBlocks, maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks, maxDescriptorSetInlineUniformBlocks, maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
64935     }
64936 #endif
64937 
64938 
64939 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64940 auto operator<=>( PhysicalDeviceInlineUniformBlockProperties const & ) const = default;
64941 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties64942     bool operator==( PhysicalDeviceInlineUniformBlockProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
64943     {
64944 #if defined( VULKAN_HPP_USE_REFLECT )
64945       return this->reflect() == rhs.reflect();
64946 #else
64947       return ( sType == rhs.sType )
64948           && ( pNext == rhs.pNext )
64949           && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize )
64950           && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks )
64951           && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks )
64952           && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks )
64953           && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
64954 #endif
64955     }
64956 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties64957     bool operator!=( PhysicalDeviceInlineUniformBlockProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
64958     {
64959       return !operator==( rhs );
64960     }
64961 #endif
64962 
64963     public:
64964     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockProperties;
64965     void * pNext = {};
64966     uint32_t maxInlineUniformBlockSize = {};
64967     uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
64968     uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
64969     uint32_t maxDescriptorSetInlineUniformBlocks = {};
64970     uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
64971 
64972   };
64973 
64974   template <>
64975   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockProperties>
64976   {
64977     using Type = PhysicalDeviceInlineUniformBlockProperties;
64978   };
64979   using PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties;
64980 
64981   struct PhysicalDeviceInvocationMaskFeaturesHUAWEI
64982   {
64983     using NativeType = VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
64984 
64985     static const bool allowDuplicate = false;
64986     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI;
64987 
64988 
64989 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInvocationMaskFeaturesHUAWEIVULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI64990 VULKAN_HPP_CONSTEXPR PhysicalDeviceInvocationMaskFeaturesHUAWEI(VULKAN_HPP_NAMESPACE::Bool32 invocationMask_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
64991     : pNext( pNext_ ), invocationMask( invocationMask_ )
64992     {}
64993 
64994     VULKAN_HPP_CONSTEXPR PhysicalDeviceInvocationMaskFeaturesHUAWEI( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64995 
PhysicalDeviceInvocationMaskFeaturesHUAWEIVULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI64996     PhysicalDeviceInvocationMaskFeaturesHUAWEI( VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
64997       : PhysicalDeviceInvocationMaskFeaturesHUAWEI( *reinterpret_cast<PhysicalDeviceInvocationMaskFeaturesHUAWEI const *>( &rhs ) )
64998     {}
64999 
65000 
65001     PhysicalDeviceInvocationMaskFeaturesHUAWEI & operator=( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65002 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
65003 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI65004     PhysicalDeviceInvocationMaskFeaturesHUAWEI & operator=( VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
65005     {
65006       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI const *>( &rhs );
65007       return *this;
65008     }
65009 
65010 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI65011     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInvocationMaskFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
65012     {
65013       pNext = pNext_;
65014       return *this;
65015     }
65016 
setInvocationMaskVULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI65017     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInvocationMaskFeaturesHUAWEI & setInvocationMask( VULKAN_HPP_NAMESPACE::Bool32 invocationMask_ ) VULKAN_HPP_NOEXCEPT
65018     {
65019       invocationMask = invocationMask_;
65020       return *this;
65021     }
65022 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
65023 
65024 
operator VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI65025     operator VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
65026     {
65027       return *reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>( this );
65028     }
65029 
operator VkPhysicalDeviceInvocationMaskFeaturesHUAWEI&VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI65030     operator VkPhysicalDeviceInvocationMaskFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
65031     {
65032       return *reinterpret_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>( this );
65033     }
65034 
65035 #if defined( VULKAN_HPP_USE_REFLECT )
65036 #if 14 <= VULKAN_HPP_CPP_VERSION
65037     auto
65038 #else
65039     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
65040 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI65041       reflect() const VULKAN_HPP_NOEXCEPT
65042     {
65043       return std::tie( sType, pNext, invocationMask );
65044     }
65045 #endif
65046 
65047 
65048 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65049 auto operator<=>( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & ) const = default;
65050 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI65051     bool operator==( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
65052     {
65053 #if defined( VULKAN_HPP_USE_REFLECT )
65054       return this->reflect() == rhs.reflect();
65055 #else
65056       return ( sType == rhs.sType )
65057           && ( pNext == rhs.pNext )
65058           && ( invocationMask == rhs.invocationMask );
65059 #endif
65060     }
65061 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI65062     bool operator!=( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
65063     {
65064       return !operator==( rhs );
65065     }
65066 #endif
65067 
65068     public:
65069     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI;
65070     void * pNext = {};
65071     VULKAN_HPP_NAMESPACE::Bool32 invocationMask = {};
65072 
65073   };
65074 
65075   template <>
65076   struct CppType<StructureType, StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI>
65077   {
65078     using Type = PhysicalDeviceInvocationMaskFeaturesHUAWEI;
65079   };
65080 
65081   struct PhysicalDeviceLayeredDriverPropertiesMSFT
65082   {
65083     using NativeType = VkPhysicalDeviceLayeredDriverPropertiesMSFT;
65084 
65085     static const bool allowDuplicate = false;
65086     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT;
65087 
65088 
65089 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLayeredDriverPropertiesMSFTVULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT65090 VULKAN_HPP_CONSTEXPR PhysicalDeviceLayeredDriverPropertiesMSFT(VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT underlyingAPI_ = VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT::eNone, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
65091     : pNext( pNext_ ), underlyingAPI( underlyingAPI_ )
65092     {}
65093 
65094     VULKAN_HPP_CONSTEXPR PhysicalDeviceLayeredDriverPropertiesMSFT( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65095 
PhysicalDeviceLayeredDriverPropertiesMSFTVULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT65096     PhysicalDeviceLayeredDriverPropertiesMSFT( VkPhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT
65097       : PhysicalDeviceLayeredDriverPropertiesMSFT( *reinterpret_cast<PhysicalDeviceLayeredDriverPropertiesMSFT const *>( &rhs ) )
65098     {}
65099 
65100 
65101     PhysicalDeviceLayeredDriverPropertiesMSFT & operator=( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65102 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
65103 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT65104     PhysicalDeviceLayeredDriverPropertiesMSFT & operator=( VkPhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT
65105     {
65106       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT const *>( &rhs );
65107       return *this;
65108     }
65109 
65110 
operator VkPhysicalDeviceLayeredDriverPropertiesMSFT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT65111     operator VkPhysicalDeviceLayeredDriverPropertiesMSFT const &() const VULKAN_HPP_NOEXCEPT
65112     {
65113       return *reinterpret_cast<const VkPhysicalDeviceLayeredDriverPropertiesMSFT*>( this );
65114     }
65115 
operator VkPhysicalDeviceLayeredDriverPropertiesMSFT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT65116     operator VkPhysicalDeviceLayeredDriverPropertiesMSFT &() VULKAN_HPP_NOEXCEPT
65117     {
65118       return *reinterpret_cast<VkPhysicalDeviceLayeredDriverPropertiesMSFT*>( this );
65119     }
65120 
65121 #if defined( VULKAN_HPP_USE_REFLECT )
65122 #if 14 <= VULKAN_HPP_CPP_VERSION
65123     auto
65124 #else
65125     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT const &>
65126 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT65127       reflect() const VULKAN_HPP_NOEXCEPT
65128     {
65129       return std::tie( sType, pNext, underlyingAPI );
65130     }
65131 #endif
65132 
65133 
65134 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65135 auto operator<=>( PhysicalDeviceLayeredDriverPropertiesMSFT const & ) const = default;
65136 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT65137     bool operator==( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) const VULKAN_HPP_NOEXCEPT
65138     {
65139 #if defined( VULKAN_HPP_USE_REFLECT )
65140       return this->reflect() == rhs.reflect();
65141 #else
65142       return ( sType == rhs.sType )
65143           && ( pNext == rhs.pNext )
65144           && ( underlyingAPI == rhs.underlyingAPI );
65145 #endif
65146     }
65147 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT65148     bool operator!=( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) const VULKAN_HPP_NOEXCEPT
65149     {
65150       return !operator==( rhs );
65151     }
65152 #endif
65153 
65154     public:
65155     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT;
65156     void * pNext = {};
65157     VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT underlyingAPI = VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT::eNone;
65158 
65159   };
65160 
65161   template <>
65162   struct CppType<StructureType, StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT>
65163   {
65164     using Type = PhysicalDeviceLayeredDriverPropertiesMSFT;
65165   };
65166 
65167   struct PhysicalDeviceLegacyDitheringFeaturesEXT
65168   {
65169     using NativeType = VkPhysicalDeviceLegacyDitheringFeaturesEXT;
65170 
65171     static const bool allowDuplicate = false;
65172     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLegacyDitheringFeaturesEXT;
65173 
65174 
65175 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLegacyDitheringFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT65176 VULKAN_HPP_CONSTEXPR PhysicalDeviceLegacyDitheringFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 legacyDithering_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
65177     : pNext( pNext_ ), legacyDithering( legacyDithering_ )
65178     {}
65179 
65180     VULKAN_HPP_CONSTEXPR PhysicalDeviceLegacyDitheringFeaturesEXT( PhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65181 
PhysicalDeviceLegacyDitheringFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT65182     PhysicalDeviceLegacyDitheringFeaturesEXT( VkPhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65183       : PhysicalDeviceLegacyDitheringFeaturesEXT( *reinterpret_cast<PhysicalDeviceLegacyDitheringFeaturesEXT const *>( &rhs ) )
65184     {}
65185 
65186 
65187     PhysicalDeviceLegacyDitheringFeaturesEXT & operator=( PhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65188 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
65189 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT65190     PhysicalDeviceLegacyDitheringFeaturesEXT & operator=( VkPhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65191     {
65192       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT const *>( &rhs );
65193       return *this;
65194     }
65195 
65196 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT65197     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLegacyDitheringFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
65198     {
65199       pNext = pNext_;
65200       return *this;
65201     }
65202 
setLegacyDitheringVULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT65203     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLegacyDitheringFeaturesEXT & setLegacyDithering( VULKAN_HPP_NAMESPACE::Bool32 legacyDithering_ ) VULKAN_HPP_NOEXCEPT
65204     {
65205       legacyDithering = legacyDithering_;
65206       return *this;
65207     }
65208 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
65209 
65210 
operator VkPhysicalDeviceLegacyDitheringFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT65211     operator VkPhysicalDeviceLegacyDitheringFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
65212     {
65213       return *reinterpret_cast<const VkPhysicalDeviceLegacyDitheringFeaturesEXT*>( this );
65214     }
65215 
operator VkPhysicalDeviceLegacyDitheringFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT65216     operator VkPhysicalDeviceLegacyDitheringFeaturesEXT &() VULKAN_HPP_NOEXCEPT
65217     {
65218       return *reinterpret_cast<VkPhysicalDeviceLegacyDitheringFeaturesEXT*>( this );
65219     }
65220 
65221 #if defined( VULKAN_HPP_USE_REFLECT )
65222 #if 14 <= VULKAN_HPP_CPP_VERSION
65223     auto
65224 #else
65225     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
65226 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT65227       reflect() const VULKAN_HPP_NOEXCEPT
65228     {
65229       return std::tie( sType, pNext, legacyDithering );
65230     }
65231 #endif
65232 
65233 
65234 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65235 auto operator<=>( PhysicalDeviceLegacyDitheringFeaturesEXT const & ) const = default;
65236 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT65237     bool operator==( PhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
65238     {
65239 #if defined( VULKAN_HPP_USE_REFLECT )
65240       return this->reflect() == rhs.reflect();
65241 #else
65242       return ( sType == rhs.sType )
65243           && ( pNext == rhs.pNext )
65244           && ( legacyDithering == rhs.legacyDithering );
65245 #endif
65246     }
65247 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT65248     bool operator!=( PhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
65249     {
65250       return !operator==( rhs );
65251     }
65252 #endif
65253 
65254     public:
65255     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLegacyDitheringFeaturesEXT;
65256     void * pNext = {};
65257     VULKAN_HPP_NAMESPACE::Bool32 legacyDithering = {};
65258 
65259   };
65260 
65261   template <>
65262   struct CppType<StructureType, StructureType::ePhysicalDeviceLegacyDitheringFeaturesEXT>
65263   {
65264     using Type = PhysicalDeviceLegacyDitheringFeaturesEXT;
65265   };
65266 
65267   struct PhysicalDeviceLimits
65268   {
65269     using NativeType = VkPhysicalDeviceLimits;
65270 
65271 
65272 
65273 
65274 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits65275 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits(uint32_t maxImageDimension1D_ = {}, uint32_t maxImageDimension2D_ = {}, uint32_t maxImageDimension3D_ = {}, uint32_t maxImageDimensionCube_ = {}, uint32_t maxImageArrayLayers_ = {}, uint32_t maxTexelBufferElements_ = {}, uint32_t maxUniformBufferRange_ = {}, uint32_t maxStorageBufferRange_ = {}, uint32_t maxPushConstantsSize_ = {}, uint32_t maxMemoryAllocationCount_ = {}, uint32_t maxSamplerAllocationCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize_ = {}, uint32_t maxBoundDescriptorSets_ = {}, uint32_t maxPerStageDescriptorSamplers_ = {}, uint32_t maxPerStageDescriptorUniformBuffers_ = {}, uint32_t maxPerStageDescriptorStorageBuffers_ = {}, uint32_t maxPerStageDescriptorSampledImages_ = {}, uint32_t maxPerStageDescriptorStorageImages_ = {}, uint32_t maxPerStageDescriptorInputAttachments_ = {}, uint32_t maxPerStageResources_ = {}, uint32_t maxDescriptorSetSamplers_ = {}, uint32_t maxDescriptorSetUniformBuffers_ = {}, uint32_t maxDescriptorSetUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetStorageBuffers_ = {}, uint32_t maxDescriptorSetStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetSampledImages_ = {}, uint32_t maxDescriptorSetStorageImages_ = {}, uint32_t maxDescriptorSetInputAttachments_ = {}, uint32_t maxVertexInputAttributes_ = {}, uint32_t maxVertexInputBindings_ = {}, uint32_t maxVertexInputAttributeOffset_ = {}, uint32_t maxVertexInputBindingStride_ = {}, uint32_t maxVertexOutputComponents_ = {}, uint32_t maxTessellationGenerationLevel_ = {}, uint32_t maxTessellationPatchSize_ = {}, uint32_t maxTessellationControlPerVertexInputComponents_ = {}, uint32_t maxTessellationControlPerVertexOutputComponents_ = {}, uint32_t maxTessellationControlPerPatchOutputComponents_ = {}, uint32_t maxTessellationControlTotalOutputComponents_ = {}, uint32_t maxTessellationEvaluationInputComponents_ = {}, uint32_t maxTessellationEvaluationOutputComponents_ = {}, uint32_t maxGeometryShaderInvocations_ = {}, uint32_t maxGeometryInputComponents_ = {}, uint32_t maxGeometryOutputComponents_ = {}, uint32_t maxGeometryOutputVertices_ = {}, uint32_t maxGeometryTotalOutputComponents_ = {}, uint32_t maxFragmentInputComponents_ = {}, uint32_t maxFragmentOutputAttachments_ = {}, uint32_t maxFragmentDualSrcAttachments_ = {}, uint32_t maxFragmentCombinedOutputResources_ = {}, uint32_t maxComputeSharedMemorySize_ = {}, std::array<uint32_t,3> const & maxComputeWorkGroupCount_ = {}, uint32_t maxComputeWorkGroupInvocations_ = {}, std::array<uint32_t,3> const & maxComputeWorkGroupSize_ = {}, uint32_t subPixelPrecisionBits_ = {}, uint32_t subTexelPrecisionBits_ = {}, uint32_t mipmapPrecisionBits_ = {}, uint32_t maxDrawIndexedIndexValue_ = {}, uint32_t maxDrawIndirectCount_ = {}, float maxSamplerLodBias_ = {}, float maxSamplerAnisotropy_ = {}, uint32_t maxViewports_ = {}, std::array<uint32_t,2> const & maxViewportDimensions_ = {}, std::array<float,2> const & viewportBoundsRange_ = {}, uint32_t viewportSubPixelBits_ = {}, size_t minMemoryMapAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment_ = {}, int32_t minTexelOffset_ = {}, uint32_t maxTexelOffset_ = {}, int32_t minTexelGatherOffset_ = {}, uint32_t maxTexelGatherOffset_ = {}, float minInterpolationOffset_ = {}, float maxInterpolationOffset_ = {}, uint32_t subPixelInterpolationOffsetBits_ = {}, uint32_t maxFramebufferWidth_ = {}, uint32_t maxFramebufferHeight_ = {}, uint32_t maxFramebufferLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts_ = {}, uint32_t maxColorAttachments_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts_ = {}, uint32_t maxSampleMaskWords_ = {}, VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics_ = {}, float timestampPeriod_ = {}, uint32_t maxClipDistances_ = {}, uint32_t maxCullDistances_ = {}, uint32_t maxCombinedClipAndCullDistances_ = {}, uint32_t discreteQueuePriorities_ = {}, std::array<float,2> const & pointSizeRange_ = {}, std::array<float,2> const & lineWidthRange_ = {}, float pointSizeGranularity_ = {}, float lineWidthGranularity_ = {}, VULKAN_HPP_NAMESPACE::Bool32 strictLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize_ = {}) VULKAN_HPP_NOEXCEPT
65276     : maxImageDimension1D( maxImageDimension1D_ ), maxImageDimension2D( maxImageDimension2D_ ), maxImageDimension3D( maxImageDimension3D_ ), maxImageDimensionCube( maxImageDimensionCube_ ), maxImageArrayLayers( maxImageArrayLayers_ ), maxTexelBufferElements( maxTexelBufferElements_ ), maxUniformBufferRange( maxUniformBufferRange_ ), maxStorageBufferRange( maxStorageBufferRange_ ), maxPushConstantsSize( maxPushConstantsSize_ ), maxMemoryAllocationCount( maxMemoryAllocationCount_ ), maxSamplerAllocationCount( maxSamplerAllocationCount_ ), bufferImageGranularity( bufferImageGranularity_ ), sparseAddressSpaceSize( sparseAddressSpaceSize_ ), maxBoundDescriptorSets( maxBoundDescriptorSets_ ), maxPerStageDescriptorSamplers( maxPerStageDescriptorSamplers_ ), maxPerStageDescriptorUniformBuffers( maxPerStageDescriptorUniformBuffers_ ), maxPerStageDescriptorStorageBuffers( maxPerStageDescriptorStorageBuffers_ ), maxPerStageDescriptorSampledImages( maxPerStageDescriptorSampledImages_ ), maxPerStageDescriptorStorageImages( maxPerStageDescriptorStorageImages_ ), maxPerStageDescriptorInputAttachments( maxPerStageDescriptorInputAttachments_ ), maxPerStageResources( maxPerStageResources_ ), maxDescriptorSetSamplers( maxDescriptorSetSamplers_ ), maxDescriptorSetUniformBuffers( maxDescriptorSetUniformBuffers_ ), maxDescriptorSetUniformBuffersDynamic( maxDescriptorSetUniformBuffersDynamic_ ), maxDescriptorSetStorageBuffers( maxDescriptorSetStorageBuffers_ ), maxDescriptorSetStorageBuffersDynamic( maxDescriptorSetStorageBuffersDynamic_ ), maxDescriptorSetSampledImages( maxDescriptorSetSampledImages_ ), maxDescriptorSetStorageImages( maxDescriptorSetStorageImages_ ), maxDescriptorSetInputAttachments( maxDescriptorSetInputAttachments_ ), maxVertexInputAttributes( maxVertexInputAttributes_ ), maxVertexInputBindings( maxVertexInputBindings_ ), maxVertexInputAttributeOffset( maxVertexInputAttributeOffset_ ), maxVertexInputBindingStride( maxVertexInputBindingStride_ ), maxVertexOutputComponents( maxVertexOutputComponents_ ), maxTessellationGenerationLevel( maxTessellationGenerationLevel_ ), maxTessellationPatchSize( maxTessellationPatchSize_ ), maxTessellationControlPerVertexInputComponents( maxTessellationControlPerVertexInputComponents_ ), maxTessellationControlPerVertexOutputComponents( maxTessellationControlPerVertexOutputComponents_ ), maxTessellationControlPerPatchOutputComponents( maxTessellationControlPerPatchOutputComponents_ ), maxTessellationControlTotalOutputComponents( maxTessellationControlTotalOutputComponents_ ), maxTessellationEvaluationInputComponents( maxTessellationEvaluationInputComponents_ ), maxTessellationEvaluationOutputComponents( maxTessellationEvaluationOutputComponents_ ), maxGeometryShaderInvocations( maxGeometryShaderInvocations_ ), maxGeometryInputComponents( maxGeometryInputComponents_ ), maxGeometryOutputComponents( maxGeometryOutputComponents_ ), maxGeometryOutputVertices( maxGeometryOutputVertices_ ), maxGeometryTotalOutputComponents( maxGeometryTotalOutputComponents_ ), maxFragmentInputComponents( maxFragmentInputComponents_ ), maxFragmentOutputAttachments( maxFragmentOutputAttachments_ ), maxFragmentDualSrcAttachments( maxFragmentDualSrcAttachments_ ), maxFragmentCombinedOutputResources( maxFragmentCombinedOutputResources_ ), maxComputeSharedMemorySize( maxComputeSharedMemorySize_ ), maxComputeWorkGroupCount( maxComputeWorkGroupCount_ ), maxComputeWorkGroupInvocations( maxComputeWorkGroupInvocations_ ), maxComputeWorkGroupSize( maxComputeWorkGroupSize_ ), subPixelPrecisionBits( subPixelPrecisionBits_ ), subTexelPrecisionBits( subTexelPrecisionBits_ ), mipmapPrecisionBits( mipmapPrecisionBits_ ), maxDrawIndexedIndexValue( maxDrawIndexedIndexValue_ ), maxDrawIndirectCount( maxDrawIndirectCount_ ), maxSamplerLodBias( maxSamplerLodBias_ ), maxSamplerAnisotropy( maxSamplerAnisotropy_ ), maxViewports( maxViewports_ ), maxViewportDimensions( maxViewportDimensions_ ), viewportBoundsRange( viewportBoundsRange_ ), viewportSubPixelBits( viewportSubPixelBits_ ), minMemoryMapAlignment( minMemoryMapAlignment_ ), minTexelBufferOffsetAlignment( minTexelBufferOffsetAlignment_ ), minUniformBufferOffsetAlignment( minUniformBufferOffsetAlignment_ ), minStorageBufferOffsetAlignment( minStorageBufferOffsetAlignment_ ), minTexelOffset( minTexelOffset_ ), maxTexelOffset( maxTexelOffset_ ), minTexelGatherOffset( minTexelGatherOffset_ ), maxTexelGatherOffset( maxTexelGatherOffset_ ), minInterpolationOffset( minInterpolationOffset_ ), maxInterpolationOffset( maxInterpolationOffset_ ), subPixelInterpolationOffsetBits( subPixelInterpolationOffsetBits_ ), maxFramebufferWidth( maxFramebufferWidth_ ), maxFramebufferHeight( maxFramebufferHeight_ ), maxFramebufferLayers( maxFramebufferLayers_ ), framebufferColorSampleCounts( framebufferColorSampleCounts_ ), framebufferDepthSampleCounts( framebufferDepthSampleCounts_ ), framebufferStencilSampleCounts( framebufferStencilSampleCounts_ ), framebufferNoAttachmentsSampleCounts( framebufferNoAttachmentsSampleCounts_ ), maxColorAttachments( maxColorAttachments_ ), sampledImageColorSampleCounts( sampledImageColorSampleCounts_ ), sampledImageIntegerSampleCounts( sampledImageIntegerSampleCounts_ ), sampledImageDepthSampleCounts( sampledImageDepthSampleCounts_ ), sampledImageStencilSampleCounts( sampledImageStencilSampleCounts_ ), storageImageSampleCounts( storageImageSampleCounts_ ), maxSampleMaskWords( maxSampleMaskWords_ ), timestampComputeAndGraphics( timestampComputeAndGraphics_ ), timestampPeriod( timestampPeriod_ ), maxClipDistances( maxClipDistances_ ), maxCullDistances( maxCullDistances_ ), maxCombinedClipAndCullDistances( maxCombinedClipAndCullDistances_ ), discreteQueuePriorities( discreteQueuePriorities_ ), pointSizeRange( pointSizeRange_ ), lineWidthRange( lineWidthRange_ ), pointSizeGranularity( pointSizeGranularity_ ), lineWidthGranularity( lineWidthGranularity_ ), strictLines( strictLines_ ), standardSampleLocations( standardSampleLocations_ ), optimalBufferCopyOffsetAlignment( optimalBufferCopyOffsetAlignment_ ), optimalBufferCopyRowPitchAlignment( optimalBufferCopyRowPitchAlignment_ ), nonCoherentAtomSize( nonCoherentAtomSize_ )
65277     {}
65278 
65279     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65280 
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits65281     PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
65282       : PhysicalDeviceLimits( *reinterpret_cast<PhysicalDeviceLimits const *>( &rhs ) )
65283     {}
65284 
65285 
65286     PhysicalDeviceLimits & operator=( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65287 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
65288 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits65289     PhysicalDeviceLimits & operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
65290     {
65291       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const *>( &rhs );
65292       return *this;
65293     }
65294 
65295 
operator VkPhysicalDeviceLimits const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits65296     operator VkPhysicalDeviceLimits const &() const VULKAN_HPP_NOEXCEPT
65297     {
65298       return *reinterpret_cast<const VkPhysicalDeviceLimits*>( this );
65299     }
65300 
operator VkPhysicalDeviceLimits&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits65301     operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT
65302     {
65303       return *reinterpret_cast<VkPhysicalDeviceLimits*>( this );
65304     }
65305 
65306 #if defined( VULKAN_HPP_USE_REFLECT )
65307 #if 14 <= VULKAN_HPP_CPP_VERSION
65308     auto
65309 #else
65310     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, float const &, float const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &, uint32_t const &, size_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, int32_t const &, uint32_t const &, int32_t const &, uint32_t const &, float const &, float const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, uint32_t const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, float const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &, float const &, float const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
65311 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits65312       reflect() const VULKAN_HPP_NOEXCEPT
65313     {
65314       return std::tie( maxImageDimension1D, maxImageDimension2D, maxImageDimension3D, maxImageDimensionCube, maxImageArrayLayers, maxTexelBufferElements, maxUniformBufferRange, maxStorageBufferRange, maxPushConstantsSize, maxMemoryAllocationCount, maxSamplerAllocationCount, bufferImageGranularity, sparseAddressSpaceSize, maxBoundDescriptorSets, maxPerStageDescriptorSamplers, maxPerStageDescriptorUniformBuffers, maxPerStageDescriptorStorageBuffers, maxPerStageDescriptorSampledImages, maxPerStageDescriptorStorageImages, maxPerStageDescriptorInputAttachments, maxPerStageResources, maxDescriptorSetSamplers, maxDescriptorSetUniformBuffers, maxDescriptorSetUniformBuffersDynamic, maxDescriptorSetStorageBuffers, maxDescriptorSetStorageBuffersDynamic, maxDescriptorSetSampledImages, maxDescriptorSetStorageImages, maxDescriptorSetInputAttachments, maxVertexInputAttributes, maxVertexInputBindings, maxVertexInputAttributeOffset, maxVertexInputBindingStride, maxVertexOutputComponents, maxTessellationGenerationLevel, maxTessellationPatchSize, maxTessellationControlPerVertexInputComponents, maxTessellationControlPerVertexOutputComponents, maxTessellationControlPerPatchOutputComponents, maxTessellationControlTotalOutputComponents, maxTessellationEvaluationInputComponents, maxTessellationEvaluationOutputComponents, maxGeometryShaderInvocations, maxGeometryInputComponents, maxGeometryOutputComponents, maxGeometryOutputVertices, maxGeometryTotalOutputComponents, maxFragmentInputComponents, maxFragmentOutputAttachments, maxFragmentDualSrcAttachments, maxFragmentCombinedOutputResources, maxComputeSharedMemorySize, maxComputeWorkGroupCount, maxComputeWorkGroupInvocations, maxComputeWorkGroupSize, subPixelPrecisionBits, subTexelPrecisionBits, mipmapPrecisionBits, maxDrawIndexedIndexValue, maxDrawIndirectCount, maxSamplerLodBias, maxSamplerAnisotropy, maxViewports, maxViewportDimensions, viewportBoundsRange, viewportSubPixelBits, minMemoryMapAlignment, minTexelBufferOffsetAlignment, minUniformBufferOffsetAlignment, minStorageBufferOffsetAlignment, minTexelOffset, maxTexelOffset, minTexelGatherOffset, maxTexelGatherOffset, minInterpolationOffset, maxInterpolationOffset, subPixelInterpolationOffsetBits, maxFramebufferWidth, maxFramebufferHeight, maxFramebufferLayers, framebufferColorSampleCounts, framebufferDepthSampleCounts, framebufferStencilSampleCounts, framebufferNoAttachmentsSampleCounts, maxColorAttachments, sampledImageColorSampleCounts, sampledImageIntegerSampleCounts, sampledImageDepthSampleCounts, sampledImageStencilSampleCounts, storageImageSampleCounts, maxSampleMaskWords, timestampComputeAndGraphics, timestampPeriod, maxClipDistances, maxCullDistances, maxCombinedClipAndCullDistances, discreteQueuePriorities, pointSizeRange, lineWidthRange, pointSizeGranularity, lineWidthGranularity, strictLines, standardSampleLocations, optimalBufferCopyOffsetAlignment, optimalBufferCopyRowPitchAlignment, nonCoherentAtomSize );
65315     }
65316 #endif
65317 
65318 
65319 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65320 auto operator<=>( PhysicalDeviceLimits const & ) const = default;
65321 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits65322     bool operator==( PhysicalDeviceLimits const & rhs ) const VULKAN_HPP_NOEXCEPT
65323     {
65324 #if defined( VULKAN_HPP_USE_REFLECT )
65325       return this->reflect() == rhs.reflect();
65326 #else
65327       return ( maxImageDimension1D == rhs.maxImageDimension1D )
65328           && ( maxImageDimension2D == rhs.maxImageDimension2D )
65329           && ( maxImageDimension3D == rhs.maxImageDimension3D )
65330           && ( maxImageDimensionCube == rhs.maxImageDimensionCube )
65331           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
65332           && ( maxTexelBufferElements == rhs.maxTexelBufferElements )
65333           && ( maxUniformBufferRange == rhs.maxUniformBufferRange )
65334           && ( maxStorageBufferRange == rhs.maxStorageBufferRange )
65335           && ( maxPushConstantsSize == rhs.maxPushConstantsSize )
65336           && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount )
65337           && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount )
65338           && ( bufferImageGranularity == rhs.bufferImageGranularity )
65339           && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize )
65340           && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets )
65341           && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers )
65342           && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers )
65343           && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers )
65344           && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages )
65345           && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages )
65346           && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments )
65347           && ( maxPerStageResources == rhs.maxPerStageResources )
65348           && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers )
65349           && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers )
65350           && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic )
65351           && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers )
65352           && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic )
65353           && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages )
65354           && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages )
65355           && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments )
65356           && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes )
65357           && ( maxVertexInputBindings == rhs.maxVertexInputBindings )
65358           && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset )
65359           && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride )
65360           && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents )
65361           && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel )
65362           && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize )
65363           && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents )
65364           && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents )
65365           && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents )
65366           && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents )
65367           && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents )
65368           && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents )
65369           && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations )
65370           && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents )
65371           && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents )
65372           && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices )
65373           && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents )
65374           && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents )
65375           && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments )
65376           && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments )
65377           && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources )
65378           && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize )
65379           && ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount )
65380           && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations )
65381           && ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize )
65382           && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits )
65383           && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits )
65384           && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits )
65385           && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue )
65386           && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount )
65387           && ( maxSamplerLodBias == rhs.maxSamplerLodBias )
65388           && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy )
65389           && ( maxViewports == rhs.maxViewports )
65390           && ( maxViewportDimensions == rhs.maxViewportDimensions )
65391           && ( viewportBoundsRange == rhs.viewportBoundsRange )
65392           && ( viewportSubPixelBits == rhs.viewportSubPixelBits )
65393           && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment )
65394           && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment )
65395           && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment )
65396           && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment )
65397           && ( minTexelOffset == rhs.minTexelOffset )
65398           && ( maxTexelOffset == rhs.maxTexelOffset )
65399           && ( minTexelGatherOffset == rhs.minTexelGatherOffset )
65400           && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset )
65401           && ( minInterpolationOffset == rhs.minInterpolationOffset )
65402           && ( maxInterpolationOffset == rhs.maxInterpolationOffset )
65403           && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits )
65404           && ( maxFramebufferWidth == rhs.maxFramebufferWidth )
65405           && ( maxFramebufferHeight == rhs.maxFramebufferHeight )
65406           && ( maxFramebufferLayers == rhs.maxFramebufferLayers )
65407           && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts )
65408           && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts )
65409           && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts )
65410           && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts )
65411           && ( maxColorAttachments == rhs.maxColorAttachments )
65412           && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts )
65413           && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts )
65414           && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts )
65415           && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts )
65416           && ( storageImageSampleCounts == rhs.storageImageSampleCounts )
65417           && ( maxSampleMaskWords == rhs.maxSampleMaskWords )
65418           && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics )
65419           && ( timestampPeriod == rhs.timestampPeriod )
65420           && ( maxClipDistances == rhs.maxClipDistances )
65421           && ( maxCullDistances == rhs.maxCullDistances )
65422           && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances )
65423           && ( discreteQueuePriorities == rhs.discreteQueuePriorities )
65424           && ( pointSizeRange == rhs.pointSizeRange )
65425           && ( lineWidthRange == rhs.lineWidthRange )
65426           && ( pointSizeGranularity == rhs.pointSizeGranularity )
65427           && ( lineWidthGranularity == rhs.lineWidthGranularity )
65428           && ( strictLines == rhs.strictLines )
65429           && ( standardSampleLocations == rhs.standardSampleLocations )
65430           && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment )
65431           && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment )
65432           && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize );
65433 #endif
65434     }
65435 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits65436     bool operator!=( PhysicalDeviceLimits const & rhs ) const VULKAN_HPP_NOEXCEPT
65437     {
65438       return !operator==( rhs );
65439     }
65440 #endif
65441 
65442     public:
65443     uint32_t maxImageDimension1D = {};
65444     uint32_t maxImageDimension2D = {};
65445     uint32_t maxImageDimension3D = {};
65446     uint32_t maxImageDimensionCube = {};
65447     uint32_t maxImageArrayLayers = {};
65448     uint32_t maxTexelBufferElements = {};
65449     uint32_t maxUniformBufferRange = {};
65450     uint32_t maxStorageBufferRange = {};
65451     uint32_t maxPushConstantsSize = {};
65452     uint32_t maxMemoryAllocationCount = {};
65453     uint32_t maxSamplerAllocationCount = {};
65454     VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {};
65455     VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {};
65456     uint32_t maxBoundDescriptorSets = {};
65457     uint32_t maxPerStageDescriptorSamplers = {};
65458     uint32_t maxPerStageDescriptorUniformBuffers = {};
65459     uint32_t maxPerStageDescriptorStorageBuffers = {};
65460     uint32_t maxPerStageDescriptorSampledImages = {};
65461     uint32_t maxPerStageDescriptorStorageImages = {};
65462     uint32_t maxPerStageDescriptorInputAttachments = {};
65463     uint32_t maxPerStageResources = {};
65464     uint32_t maxDescriptorSetSamplers = {};
65465     uint32_t maxDescriptorSetUniformBuffers = {};
65466     uint32_t maxDescriptorSetUniformBuffersDynamic = {};
65467     uint32_t maxDescriptorSetStorageBuffers = {};
65468     uint32_t maxDescriptorSetStorageBuffersDynamic = {};
65469     uint32_t maxDescriptorSetSampledImages = {};
65470     uint32_t maxDescriptorSetStorageImages = {};
65471     uint32_t maxDescriptorSetInputAttachments = {};
65472     uint32_t maxVertexInputAttributes = {};
65473     uint32_t maxVertexInputBindings = {};
65474     uint32_t maxVertexInputAttributeOffset = {};
65475     uint32_t maxVertexInputBindingStride = {};
65476     uint32_t maxVertexOutputComponents = {};
65477     uint32_t maxTessellationGenerationLevel = {};
65478     uint32_t maxTessellationPatchSize = {};
65479     uint32_t maxTessellationControlPerVertexInputComponents = {};
65480     uint32_t maxTessellationControlPerVertexOutputComponents = {};
65481     uint32_t maxTessellationControlPerPatchOutputComponents = {};
65482     uint32_t maxTessellationControlTotalOutputComponents = {};
65483     uint32_t maxTessellationEvaluationInputComponents = {};
65484     uint32_t maxTessellationEvaluationOutputComponents = {};
65485     uint32_t maxGeometryShaderInvocations = {};
65486     uint32_t maxGeometryInputComponents = {};
65487     uint32_t maxGeometryOutputComponents = {};
65488     uint32_t maxGeometryOutputVertices = {};
65489     uint32_t maxGeometryTotalOutputComponents = {};
65490     uint32_t maxFragmentInputComponents = {};
65491     uint32_t maxFragmentOutputAttachments = {};
65492     uint32_t maxFragmentDualSrcAttachments = {};
65493     uint32_t maxFragmentCombinedOutputResources = {};
65494     uint32_t maxComputeSharedMemorySize = {};
65495     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupCount = {};
65496     uint32_t maxComputeWorkGroupInvocations = {};
65497     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupSize = {};
65498     uint32_t subPixelPrecisionBits = {};
65499     uint32_t subTexelPrecisionBits = {};
65500     uint32_t mipmapPrecisionBits = {};
65501     uint32_t maxDrawIndexedIndexValue = {};
65502     uint32_t maxDrawIndirectCount = {};
65503     float maxSamplerLodBias = {};
65504     float maxSamplerAnisotropy = {};
65505     uint32_t maxViewports = {};
65506     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> maxViewportDimensions = {};
65507     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> viewportBoundsRange = {};
65508     uint32_t viewportSubPixelBits = {};
65509     size_t minMemoryMapAlignment = {};
65510     VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {};
65511     VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {};
65512     VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {};
65513     int32_t minTexelOffset = {};
65514     uint32_t maxTexelOffset = {};
65515     int32_t minTexelGatherOffset = {};
65516     uint32_t maxTexelGatherOffset = {};
65517     float minInterpolationOffset = {};
65518     float maxInterpolationOffset = {};
65519     uint32_t subPixelInterpolationOffsetBits = {};
65520     uint32_t maxFramebufferWidth = {};
65521     uint32_t maxFramebufferHeight = {};
65522     uint32_t maxFramebufferLayers = {};
65523     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {};
65524     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {};
65525     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {};
65526     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {};
65527     uint32_t maxColorAttachments = {};
65528     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {};
65529     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {};
65530     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {};
65531     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {};
65532     VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {};
65533     uint32_t maxSampleMaskWords = {};
65534     VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {};
65535     float timestampPeriod = {};
65536     uint32_t maxClipDistances = {};
65537     uint32_t maxCullDistances = {};
65538     uint32_t maxCombinedClipAndCullDistances = {};
65539     uint32_t discreteQueuePriorities = {};
65540     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> pointSizeRange = {};
65541     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> lineWidthRange = {};
65542     float pointSizeGranularity = {};
65543     float lineWidthGranularity = {};
65544     VULKAN_HPP_NAMESPACE::Bool32 strictLines = {};
65545     VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {};
65546     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {};
65547     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {};
65548     VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {};
65549 
65550   };
65551 
65552   struct PhysicalDeviceLineRasterizationFeaturesEXT
65553   {
65554     using NativeType = VkPhysicalDeviceLineRasterizationFeaturesEXT;
65555 
65556     static const bool allowDuplicate = false;
65557     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
65558 
65559 
65560 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65561 VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
65562     : pNext( pNext_ ), rectangularLines( rectangularLines_ ), bresenhamLines( bresenhamLines_ ), smoothLines( smoothLines_ ), stippledRectangularLines( stippledRectangularLines_ ), stippledBresenhamLines( stippledBresenhamLines_ ), stippledSmoothLines( stippledSmoothLines_ )
65563     {}
65564 
65565     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65566 
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65567     PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65568       : PhysicalDeviceLineRasterizationFeaturesEXT( *reinterpret_cast<PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs ) )
65569     {}
65570 
65571 
65572     PhysicalDeviceLineRasterizationFeaturesEXT & operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65573 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
65574 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65575     PhysicalDeviceLineRasterizationFeaturesEXT & operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65576     {
65577       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs );
65578       return *this;
65579     }
65580 
65581 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65582     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
65583     {
65584       pNext = pNext_;
65585       return *this;
65586     }
65587 
setRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65588     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT
65589     {
65590       rectangularLines = rectangularLines_;
65591       return *this;
65592     }
65593 
setBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65594     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT
65595     {
65596       bresenhamLines = bresenhamLines_;
65597       return *this;
65598     }
65599 
setSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65600     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT
65601     {
65602       smoothLines = smoothLines_;
65603       return *this;
65604     }
65605 
setStippledRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65606     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT
65607     {
65608       stippledRectangularLines = stippledRectangularLines_;
65609       return *this;
65610     }
65611 
setStippledBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65612     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT
65613     {
65614       stippledBresenhamLines = stippledBresenhamLines_;
65615       return *this;
65616     }
65617 
setStippledSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65618     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT
65619     {
65620       stippledSmoothLines = stippledSmoothLines_;
65621       return *this;
65622     }
65623 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
65624 
65625 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65626     operator VkPhysicalDeviceLineRasterizationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
65627     {
65628       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
65629     }
65630 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65631     operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
65632     {
65633       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
65634     }
65635 
65636 #if defined( VULKAN_HPP_USE_REFLECT )
65637 #if 14 <= VULKAN_HPP_CPP_VERSION
65638     auto
65639 #else
65640     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
65641 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65642       reflect() const VULKAN_HPP_NOEXCEPT
65643     {
65644       return std::tie( sType, pNext, rectangularLines, bresenhamLines, smoothLines, stippledRectangularLines, stippledBresenhamLines, stippledSmoothLines );
65645     }
65646 #endif
65647 
65648 
65649 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65650 auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const & ) const = default;
65651 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65652     bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
65653     {
65654 #if defined( VULKAN_HPP_USE_REFLECT )
65655       return this->reflect() == rhs.reflect();
65656 #else
65657       return ( sType == rhs.sType )
65658           && ( pNext == rhs.pNext )
65659           && ( rectangularLines == rhs.rectangularLines )
65660           && ( bresenhamLines == rhs.bresenhamLines )
65661           && ( smoothLines == rhs.smoothLines )
65662           && ( stippledRectangularLines == rhs.stippledRectangularLines )
65663           && ( stippledBresenhamLines == rhs.stippledBresenhamLines )
65664           && ( stippledSmoothLines == rhs.stippledSmoothLines );
65665 #endif
65666     }
65667 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT65668     bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
65669     {
65670       return !operator==( rhs );
65671     }
65672 #endif
65673 
65674     public:
65675     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
65676     void * pNext = {};
65677     VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {};
65678     VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {};
65679     VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {};
65680     VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {};
65681     VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {};
65682     VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {};
65683 
65684   };
65685 
65686   template <>
65687   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT>
65688   {
65689     using Type = PhysicalDeviceLineRasterizationFeaturesEXT;
65690   };
65691 
65692   struct PhysicalDeviceLineRasterizationPropertiesEXT
65693   {
65694     using NativeType = VkPhysicalDeviceLineRasterizationPropertiesEXT;
65695 
65696     static const bool allowDuplicate = false;
65697     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
65698 
65699 
65700 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65701 VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT(uint32_t lineSubPixelPrecisionBits_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
65702     : pNext( pNext_ ), lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ )
65703     {}
65704 
65705     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65706 
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65707     PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65708       : PhysicalDeviceLineRasterizationPropertiesEXT( *reinterpret_cast<PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs ) )
65709     {}
65710 
65711 
65712     PhysicalDeviceLineRasterizationPropertiesEXT & operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65713 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
65714 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65715     PhysicalDeviceLineRasterizationPropertiesEXT & operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65716     {
65717       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs );
65718       return *this;
65719     }
65720 
65721 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65722     operator VkPhysicalDeviceLineRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
65723     {
65724       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
65725     }
65726 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65727     operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
65728     {
65729       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
65730     }
65731 
65732 #if defined( VULKAN_HPP_USE_REFLECT )
65733 #if 14 <= VULKAN_HPP_CPP_VERSION
65734     auto
65735 #else
65736     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
65737 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65738       reflect() const VULKAN_HPP_NOEXCEPT
65739     {
65740       return std::tie( sType, pNext, lineSubPixelPrecisionBits );
65741     }
65742 #endif
65743 
65744 
65745 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65746 auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const & ) const = default;
65747 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65748     bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
65749     {
65750 #if defined( VULKAN_HPP_USE_REFLECT )
65751       return this->reflect() == rhs.reflect();
65752 #else
65753       return ( sType == rhs.sType )
65754           && ( pNext == rhs.pNext )
65755           && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits );
65756 #endif
65757     }
65758 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT65759     bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
65760     {
65761       return !operator==( rhs );
65762     }
65763 #endif
65764 
65765     public:
65766     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
65767     void * pNext = {};
65768     uint32_t lineSubPixelPrecisionBits = {};
65769 
65770   };
65771 
65772   template <>
65773   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT>
65774   {
65775     using Type = PhysicalDeviceLineRasterizationPropertiesEXT;
65776   };
65777 
65778   struct PhysicalDeviceLinearColorAttachmentFeaturesNV
65779   {
65780     using NativeType = VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
65781 
65782     static const bool allowDuplicate = false;
65783     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLinearColorAttachmentFeaturesNV;
65784 
65785 
65786 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLinearColorAttachmentFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV65787 VULKAN_HPP_CONSTEXPR PhysicalDeviceLinearColorAttachmentFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
65788     : pNext( pNext_ ), linearColorAttachment( linearColorAttachment_ )
65789     {}
65790 
65791     VULKAN_HPP_CONSTEXPR PhysicalDeviceLinearColorAttachmentFeaturesNV( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65792 
PhysicalDeviceLinearColorAttachmentFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV65793     PhysicalDeviceLinearColorAttachmentFeaturesNV( VkPhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65794       : PhysicalDeviceLinearColorAttachmentFeaturesNV( *reinterpret_cast<PhysicalDeviceLinearColorAttachmentFeaturesNV const *>( &rhs ) )
65795     {}
65796 
65797 
65798     PhysicalDeviceLinearColorAttachmentFeaturesNV & operator=( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65799 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
65800 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV65801     PhysicalDeviceLinearColorAttachmentFeaturesNV & operator=( VkPhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65802     {
65803       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV const *>( &rhs );
65804       return *this;
65805     }
65806 
65807 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV65808     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLinearColorAttachmentFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
65809     {
65810       pNext = pNext_;
65811       return *this;
65812     }
65813 
setLinearColorAttachmentVULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV65814     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLinearColorAttachmentFeaturesNV & setLinearColorAttachment( VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment_ ) VULKAN_HPP_NOEXCEPT
65815     {
65816       linearColorAttachment = linearColorAttachment_;
65817       return *this;
65818     }
65819 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
65820 
65821 
operator VkPhysicalDeviceLinearColorAttachmentFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV65822     operator VkPhysicalDeviceLinearColorAttachmentFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
65823     {
65824       return *reinterpret_cast<const VkPhysicalDeviceLinearColorAttachmentFeaturesNV*>( this );
65825     }
65826 
operator VkPhysicalDeviceLinearColorAttachmentFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV65827     operator VkPhysicalDeviceLinearColorAttachmentFeaturesNV &() VULKAN_HPP_NOEXCEPT
65828     {
65829       return *reinterpret_cast<VkPhysicalDeviceLinearColorAttachmentFeaturesNV*>( this );
65830     }
65831 
65832 #if defined( VULKAN_HPP_USE_REFLECT )
65833 #if 14 <= VULKAN_HPP_CPP_VERSION
65834     auto
65835 #else
65836     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
65837 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV65838       reflect() const VULKAN_HPP_NOEXCEPT
65839     {
65840       return std::tie( sType, pNext, linearColorAttachment );
65841     }
65842 #endif
65843 
65844 
65845 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65846 auto operator<=>( PhysicalDeviceLinearColorAttachmentFeaturesNV const & ) const = default;
65847 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV65848     bool operator==( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
65849     {
65850 #if defined( VULKAN_HPP_USE_REFLECT )
65851       return this->reflect() == rhs.reflect();
65852 #else
65853       return ( sType == rhs.sType )
65854           && ( pNext == rhs.pNext )
65855           && ( linearColorAttachment == rhs.linearColorAttachment );
65856 #endif
65857     }
65858 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV65859     bool operator!=( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
65860     {
65861       return !operator==( rhs );
65862     }
65863 #endif
65864 
65865     public:
65866     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLinearColorAttachmentFeaturesNV;
65867     void * pNext = {};
65868     VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment = {};
65869 
65870   };
65871 
65872   template <>
65873   struct CppType<StructureType, StructureType::ePhysicalDeviceLinearColorAttachmentFeaturesNV>
65874   {
65875     using Type = PhysicalDeviceLinearColorAttachmentFeaturesNV;
65876   };
65877 
65878   struct PhysicalDeviceMaintenance3Properties
65879   {
65880     using NativeType = VkPhysicalDeviceMaintenance3Properties;
65881 
65882     static const bool allowDuplicate = false;
65883     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance3Properties;
65884 
65885 
65886 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65887 VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties(uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
65888     : pNext( pNext_ ), maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ )
65889     {}
65890 
65891     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65892 
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65893     PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
65894       : PhysicalDeviceMaintenance3Properties( *reinterpret_cast<PhysicalDeviceMaintenance3Properties const *>( &rhs ) )
65895     {}
65896 
65897 
65898     PhysicalDeviceMaintenance3Properties & operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65899 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
65900 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65901     PhysicalDeviceMaintenance3Properties & operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
65902     {
65903       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const *>( &rhs );
65904       return *this;
65905     }
65906 
65907 
operator VkPhysicalDeviceMaintenance3Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65908     operator VkPhysicalDeviceMaintenance3Properties const &() const VULKAN_HPP_NOEXCEPT
65909     {
65910       return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>( this );
65911     }
65912 
operator VkPhysicalDeviceMaintenance3Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65913     operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT
65914     {
65915       return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>( this );
65916     }
65917 
65918 #if defined( VULKAN_HPP_USE_REFLECT )
65919 #if 14 <= VULKAN_HPP_CPP_VERSION
65920     auto
65921 #else
65922     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
65923 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65924       reflect() const VULKAN_HPP_NOEXCEPT
65925     {
65926       return std::tie( sType, pNext, maxPerSetDescriptors, maxMemoryAllocationSize );
65927     }
65928 #endif
65929 
65930 
65931 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65932 auto operator<=>( PhysicalDeviceMaintenance3Properties const & ) const = default;
65933 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65934     bool operator==( PhysicalDeviceMaintenance3Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
65935     {
65936 #if defined( VULKAN_HPP_USE_REFLECT )
65937       return this->reflect() == rhs.reflect();
65938 #else
65939       return ( sType == rhs.sType )
65940           && ( pNext == rhs.pNext )
65941           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
65942           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
65943 #endif
65944     }
65945 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties65946     bool operator!=( PhysicalDeviceMaintenance3Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
65947     {
65948       return !operator==( rhs );
65949     }
65950 #endif
65951 
65952     public:
65953     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties;
65954     void * pNext = {};
65955     uint32_t maxPerSetDescriptors = {};
65956     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
65957 
65958   };
65959 
65960   template <>
65961   struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance3Properties>
65962   {
65963     using Type = PhysicalDeviceMaintenance3Properties;
65964   };
65965   using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
65966 
65967   struct PhysicalDeviceMaintenance4Features
65968   {
65969     using NativeType = VkPhysicalDeviceMaintenance4Features;
65970 
65971     static const bool allowDuplicate = false;
65972     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance4Features;
65973 
65974 
65975 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMaintenance4FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features65976 VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Features(VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
65977     : pNext( pNext_ ), maintenance4( maintenance4_ )
65978     {}
65979 
65980     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Features( PhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65981 
PhysicalDeviceMaintenance4FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features65982     PhysicalDeviceMaintenance4Features( VkPhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT
65983       : PhysicalDeviceMaintenance4Features( *reinterpret_cast<PhysicalDeviceMaintenance4Features const *>( &rhs ) )
65984     {}
65985 
65986 
65987     PhysicalDeviceMaintenance4Features & operator=( PhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65988 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
65989 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features65990     PhysicalDeviceMaintenance4Features & operator=( VkPhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT
65991     {
65992       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features const *>( &rhs );
65993       return *this;
65994     }
65995 
65996 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features65997     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance4Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
65998     {
65999       pNext = pNext_;
66000       return *this;
66001     }
66002 
setMaintenance4VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features66003     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance4Features & setMaintenance4( VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ ) VULKAN_HPP_NOEXCEPT
66004     {
66005       maintenance4 = maintenance4_;
66006       return *this;
66007     }
66008 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
66009 
66010 
operator VkPhysicalDeviceMaintenance4Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features66011     operator VkPhysicalDeviceMaintenance4Features const &() const VULKAN_HPP_NOEXCEPT
66012     {
66013       return *reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>( this );
66014     }
66015 
operator VkPhysicalDeviceMaintenance4Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features66016     operator VkPhysicalDeviceMaintenance4Features &() VULKAN_HPP_NOEXCEPT
66017     {
66018       return *reinterpret_cast<VkPhysicalDeviceMaintenance4Features*>( this );
66019     }
66020 
66021 #if defined( VULKAN_HPP_USE_REFLECT )
66022 #if 14 <= VULKAN_HPP_CPP_VERSION
66023     auto
66024 #else
66025     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
66026 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features66027       reflect() const VULKAN_HPP_NOEXCEPT
66028     {
66029       return std::tie( sType, pNext, maintenance4 );
66030     }
66031 #endif
66032 
66033 
66034 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66035 auto operator<=>( PhysicalDeviceMaintenance4Features const & ) const = default;
66036 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features66037     bool operator==( PhysicalDeviceMaintenance4Features const & rhs ) const VULKAN_HPP_NOEXCEPT
66038     {
66039 #if defined( VULKAN_HPP_USE_REFLECT )
66040       return this->reflect() == rhs.reflect();
66041 #else
66042       return ( sType == rhs.sType )
66043           && ( pNext == rhs.pNext )
66044           && ( maintenance4 == rhs.maintenance4 );
66045 #endif
66046     }
66047 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features66048     bool operator!=( PhysicalDeviceMaintenance4Features const & rhs ) const VULKAN_HPP_NOEXCEPT
66049     {
66050       return !operator==( rhs );
66051     }
66052 #endif
66053 
66054     public:
66055     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance4Features;
66056     void * pNext = {};
66057     VULKAN_HPP_NAMESPACE::Bool32 maintenance4 = {};
66058 
66059   };
66060 
66061   template <>
66062   struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance4Features>
66063   {
66064     using Type = PhysicalDeviceMaintenance4Features;
66065   };
66066   using PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features;
66067 
66068   struct PhysicalDeviceMaintenance4Properties
66069   {
66070     using NativeType = VkPhysicalDeviceMaintenance4Properties;
66071 
66072     static const bool allowDuplicate = false;
66073     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance4Properties;
66074 
66075 
66076 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMaintenance4PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties66077 VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Properties(VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
66078     : pNext( pNext_ ), maxBufferSize( maxBufferSize_ )
66079     {}
66080 
66081     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Properties( PhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66082 
PhysicalDeviceMaintenance4PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties66083     PhysicalDeviceMaintenance4Properties( VkPhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT
66084       : PhysicalDeviceMaintenance4Properties( *reinterpret_cast<PhysicalDeviceMaintenance4Properties const *>( &rhs ) )
66085     {}
66086 
66087 
66088     PhysicalDeviceMaintenance4Properties & operator=( PhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66089 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
66090 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties66091     PhysicalDeviceMaintenance4Properties & operator=( VkPhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT
66092     {
66093       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties const *>( &rhs );
66094       return *this;
66095     }
66096 
66097 
operator VkPhysicalDeviceMaintenance4Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties66098     operator VkPhysicalDeviceMaintenance4Properties const &() const VULKAN_HPP_NOEXCEPT
66099     {
66100       return *reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties*>( this );
66101     }
66102 
operator VkPhysicalDeviceMaintenance4Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties66103     operator VkPhysicalDeviceMaintenance4Properties &() VULKAN_HPP_NOEXCEPT
66104     {
66105       return *reinterpret_cast<VkPhysicalDeviceMaintenance4Properties*>( this );
66106     }
66107 
66108 #if defined( VULKAN_HPP_USE_REFLECT )
66109 #if 14 <= VULKAN_HPP_CPP_VERSION
66110     auto
66111 #else
66112     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
66113 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties66114       reflect() const VULKAN_HPP_NOEXCEPT
66115     {
66116       return std::tie( sType, pNext, maxBufferSize );
66117     }
66118 #endif
66119 
66120 
66121 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66122 auto operator<=>( PhysicalDeviceMaintenance4Properties const & ) const = default;
66123 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties66124     bool operator==( PhysicalDeviceMaintenance4Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
66125     {
66126 #if defined( VULKAN_HPP_USE_REFLECT )
66127       return this->reflect() == rhs.reflect();
66128 #else
66129       return ( sType == rhs.sType )
66130           && ( pNext == rhs.pNext )
66131           && ( maxBufferSize == rhs.maxBufferSize );
66132 #endif
66133     }
66134 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties66135     bool operator!=( PhysicalDeviceMaintenance4Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
66136     {
66137       return !operator==( rhs );
66138     }
66139 #endif
66140 
66141     public:
66142     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance4Properties;
66143     void * pNext = {};
66144     VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize = {};
66145 
66146   };
66147 
66148   template <>
66149   struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance4Properties>
66150   {
66151     using Type = PhysicalDeviceMaintenance4Properties;
66152   };
66153   using PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties;
66154 
66155   struct PhysicalDeviceMaintenance5FeaturesKHR
66156   {
66157     using NativeType = VkPhysicalDeviceMaintenance5FeaturesKHR;
66158 
66159     static const bool allowDuplicate = false;
66160     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance5FeaturesKHR;
66161 
66162 
66163 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMaintenance5FeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR66164 VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5FeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 maintenance5_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
66165     : pNext( pNext_ ), maintenance5( maintenance5_ )
66166     {}
66167 
66168     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5FeaturesKHR( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66169 
PhysicalDeviceMaintenance5FeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR66170     PhysicalDeviceMaintenance5FeaturesKHR( VkPhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66171       : PhysicalDeviceMaintenance5FeaturesKHR( *reinterpret_cast<PhysicalDeviceMaintenance5FeaturesKHR const *>( &rhs ) )
66172     {}
66173 
66174 
66175     PhysicalDeviceMaintenance5FeaturesKHR & operator=( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66176 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
66177 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR66178     PhysicalDeviceMaintenance5FeaturesKHR & operator=( VkPhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66179     {
66180       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR const *>( &rhs );
66181       return *this;
66182     }
66183 
66184 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR66185     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance5FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
66186     {
66187       pNext = pNext_;
66188       return *this;
66189     }
66190 
setMaintenance5VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR66191     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance5FeaturesKHR & setMaintenance5( VULKAN_HPP_NAMESPACE::Bool32 maintenance5_ ) VULKAN_HPP_NOEXCEPT
66192     {
66193       maintenance5 = maintenance5_;
66194       return *this;
66195     }
66196 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
66197 
66198 
operator VkPhysicalDeviceMaintenance5FeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR66199     operator VkPhysicalDeviceMaintenance5FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
66200     {
66201       return *reinterpret_cast<const VkPhysicalDeviceMaintenance5FeaturesKHR*>( this );
66202     }
66203 
operator VkPhysicalDeviceMaintenance5FeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR66204     operator VkPhysicalDeviceMaintenance5FeaturesKHR &() VULKAN_HPP_NOEXCEPT
66205     {
66206       return *reinterpret_cast<VkPhysicalDeviceMaintenance5FeaturesKHR*>( this );
66207     }
66208 
66209 #if defined( VULKAN_HPP_USE_REFLECT )
66210 #if 14 <= VULKAN_HPP_CPP_VERSION
66211     auto
66212 #else
66213     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
66214 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR66215       reflect() const VULKAN_HPP_NOEXCEPT
66216     {
66217       return std::tie( sType, pNext, maintenance5 );
66218     }
66219 #endif
66220 
66221 
66222 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66223 auto operator<=>( PhysicalDeviceMaintenance5FeaturesKHR const & ) const = default;
66224 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR66225     bool operator==( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
66226     {
66227 #if defined( VULKAN_HPP_USE_REFLECT )
66228       return this->reflect() == rhs.reflect();
66229 #else
66230       return ( sType == rhs.sType )
66231           && ( pNext == rhs.pNext )
66232           && ( maintenance5 == rhs.maintenance5 );
66233 #endif
66234     }
66235 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR66236     bool operator!=( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
66237     {
66238       return !operator==( rhs );
66239     }
66240 #endif
66241 
66242     public:
66243     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance5FeaturesKHR;
66244     void * pNext = {};
66245     VULKAN_HPP_NAMESPACE::Bool32 maintenance5 = {};
66246 
66247   };
66248 
66249   template <>
66250   struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance5FeaturesKHR>
66251   {
66252     using Type = PhysicalDeviceMaintenance5FeaturesKHR;
66253   };
66254 
66255   struct PhysicalDeviceMaintenance5PropertiesKHR
66256   {
66257     using NativeType = VkPhysicalDeviceMaintenance5PropertiesKHR;
66258 
66259     static const bool allowDuplicate = false;
66260     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance5PropertiesKHR;
66261 
66262 
66263 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMaintenance5PropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR66264 VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5PropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 earlyFragmentMultisampleCoverageAfterSampleCounting_ = {}, VULKAN_HPP_NAMESPACE::Bool32 earlyFragmentSampleMaskTestBeforeSampleCounting_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthStencilSwizzleOneSupport_ = {}, VULKAN_HPP_NAMESPACE::Bool32 polygonModePointSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nonStrictSinglePixelWideLinesUseParallelogram_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nonStrictWideLinesUseParallelogram_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
66265     : pNext( pNext_ ), earlyFragmentMultisampleCoverageAfterSampleCounting( earlyFragmentMultisampleCoverageAfterSampleCounting_ ), earlyFragmentSampleMaskTestBeforeSampleCounting( earlyFragmentSampleMaskTestBeforeSampleCounting_ ), depthStencilSwizzleOneSupport( depthStencilSwizzleOneSupport_ ), polygonModePointSize( polygonModePointSize_ ), nonStrictSinglePixelWideLinesUseParallelogram( nonStrictSinglePixelWideLinesUseParallelogram_ ), nonStrictWideLinesUseParallelogram( nonStrictWideLinesUseParallelogram_ )
66266     {}
66267 
66268     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5PropertiesKHR( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66269 
PhysicalDeviceMaintenance5PropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR66270     PhysicalDeviceMaintenance5PropertiesKHR( VkPhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66271       : PhysicalDeviceMaintenance5PropertiesKHR( *reinterpret_cast<PhysicalDeviceMaintenance5PropertiesKHR const *>( &rhs ) )
66272     {}
66273 
66274 
66275     PhysicalDeviceMaintenance5PropertiesKHR & operator=( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66276 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
66277 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR66278     PhysicalDeviceMaintenance5PropertiesKHR & operator=( VkPhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
66279     {
66280       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR const *>( &rhs );
66281       return *this;
66282     }
66283 
66284 
operator VkPhysicalDeviceMaintenance5PropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR66285     operator VkPhysicalDeviceMaintenance5PropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
66286     {
66287       return *reinterpret_cast<const VkPhysicalDeviceMaintenance5PropertiesKHR*>( this );
66288     }
66289 
operator VkPhysicalDeviceMaintenance5PropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR66290     operator VkPhysicalDeviceMaintenance5PropertiesKHR &() VULKAN_HPP_NOEXCEPT
66291     {
66292       return *reinterpret_cast<VkPhysicalDeviceMaintenance5PropertiesKHR*>( this );
66293     }
66294 
66295 #if defined( VULKAN_HPP_USE_REFLECT )
66296 #if 14 <= VULKAN_HPP_CPP_VERSION
66297     auto
66298 #else
66299     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
66300 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR66301       reflect() const VULKAN_HPP_NOEXCEPT
66302     {
66303       return std::tie( sType, pNext, earlyFragmentMultisampleCoverageAfterSampleCounting, earlyFragmentSampleMaskTestBeforeSampleCounting, depthStencilSwizzleOneSupport, polygonModePointSize, nonStrictSinglePixelWideLinesUseParallelogram, nonStrictWideLinesUseParallelogram );
66304     }
66305 #endif
66306 
66307 
66308 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66309 auto operator<=>( PhysicalDeviceMaintenance5PropertiesKHR const & ) const = default;
66310 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR66311     bool operator==( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
66312     {
66313 #if defined( VULKAN_HPP_USE_REFLECT )
66314       return this->reflect() == rhs.reflect();
66315 #else
66316       return ( sType == rhs.sType )
66317           && ( pNext == rhs.pNext )
66318           && ( earlyFragmentMultisampleCoverageAfterSampleCounting == rhs.earlyFragmentMultisampleCoverageAfterSampleCounting )
66319           && ( earlyFragmentSampleMaskTestBeforeSampleCounting == rhs.earlyFragmentSampleMaskTestBeforeSampleCounting )
66320           && ( depthStencilSwizzleOneSupport == rhs.depthStencilSwizzleOneSupport )
66321           && ( polygonModePointSize == rhs.polygonModePointSize )
66322           && ( nonStrictSinglePixelWideLinesUseParallelogram == rhs.nonStrictSinglePixelWideLinesUseParallelogram )
66323           && ( nonStrictWideLinesUseParallelogram == rhs.nonStrictWideLinesUseParallelogram );
66324 #endif
66325     }
66326 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR66327     bool operator!=( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
66328     {
66329       return !operator==( rhs );
66330     }
66331 #endif
66332 
66333     public:
66334     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance5PropertiesKHR;
66335     void * pNext = {};
66336     VULKAN_HPP_NAMESPACE::Bool32 earlyFragmentMultisampleCoverageAfterSampleCounting = {};
66337     VULKAN_HPP_NAMESPACE::Bool32 earlyFragmentSampleMaskTestBeforeSampleCounting = {};
66338     VULKAN_HPP_NAMESPACE::Bool32 depthStencilSwizzleOneSupport = {};
66339     VULKAN_HPP_NAMESPACE::Bool32 polygonModePointSize = {};
66340     VULKAN_HPP_NAMESPACE::Bool32 nonStrictSinglePixelWideLinesUseParallelogram = {};
66341     VULKAN_HPP_NAMESPACE::Bool32 nonStrictWideLinesUseParallelogram = {};
66342 
66343   };
66344 
66345   template <>
66346   struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance5PropertiesKHR>
66347   {
66348     using Type = PhysicalDeviceMaintenance5PropertiesKHR;
66349   };
66350 
66351   struct PhysicalDeviceMemoryBudgetPropertiesEXT
66352   {
66353     using NativeType = VkPhysicalDeviceMemoryBudgetPropertiesEXT;
66354 
66355     static const bool allowDuplicate = false;
66356     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
66357 
66358 
66359 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66360 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT(std::array<VULKAN_HPP_NAMESPACE::DeviceSize,VK_MAX_MEMORY_HEAPS> const & heapBudget_ = {}, std::array<VULKAN_HPP_NAMESPACE::DeviceSize,VK_MAX_MEMORY_HEAPS> const & heapUsage_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
66361     : pNext( pNext_ ), heapBudget( heapBudget_ ), heapUsage( heapUsage_ )
66362     {}
66363 
66364     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66365 
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66366     PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66367       : PhysicalDeviceMemoryBudgetPropertiesEXT( *reinterpret_cast<PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs ) )
66368     {}
66369 
66370 
66371     PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66372 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
66373 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66374     PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66375     {
66376       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs );
66377       return *this;
66378     }
66379 
66380 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66381     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
66382     {
66383       return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
66384     }
66385 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66386     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT
66387     {
66388       return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
66389     }
66390 
66391 #if defined( VULKAN_HPP_USE_REFLECT )
66392 #if 14 <= VULKAN_HPP_CPP_VERSION
66393     auto
66394 #else
66395     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const &>
66396 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66397       reflect() const VULKAN_HPP_NOEXCEPT
66398     {
66399       return std::tie( sType, pNext, heapBudget, heapUsage );
66400     }
66401 #endif
66402 
66403 
66404 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66405 auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const & ) const = default;
66406 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66407     bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
66408     {
66409 #if defined( VULKAN_HPP_USE_REFLECT )
66410       return this->reflect() == rhs.reflect();
66411 #else
66412       return ( sType == rhs.sType )
66413           && ( pNext == rhs.pNext )
66414           && ( heapBudget == rhs.heapBudget )
66415           && ( heapUsage == rhs.heapUsage );
66416 #endif
66417     }
66418 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66419     bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
66420     {
66421       return !operator==( rhs );
66422     }
66423 #endif
66424 
66425     public:
66426     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
66427     void * pNext = {};
66428     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapBudget = {};
66429     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapUsage = {};
66430 
66431   };
66432 
66433   template <>
66434   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT>
66435   {
66436     using Type = PhysicalDeviceMemoryBudgetPropertiesEXT;
66437   };
66438 
66439   struct PhysicalDeviceMemoryDecompressionFeaturesNV
66440   {
66441     using NativeType = VkPhysicalDeviceMemoryDecompressionFeaturesNV;
66442 
66443     static const bool allowDuplicate = false;
66444     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryDecompressionFeaturesNV;
66445 
66446 
66447 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryDecompressionFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV66448 VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryDecompressionFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 memoryDecompression_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
66449     : pNext( pNext_ ), memoryDecompression( memoryDecompression_ )
66450     {}
66451 
66452     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryDecompressionFeaturesNV( PhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66453 
PhysicalDeviceMemoryDecompressionFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV66454     PhysicalDeviceMemoryDecompressionFeaturesNV( VkPhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66455       : PhysicalDeviceMemoryDecompressionFeaturesNV( *reinterpret_cast<PhysicalDeviceMemoryDecompressionFeaturesNV const *>( &rhs ) )
66456     {}
66457 
66458 
66459     PhysicalDeviceMemoryDecompressionFeaturesNV & operator=( PhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66460 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
66461 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV66462     PhysicalDeviceMemoryDecompressionFeaturesNV & operator=( VkPhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66463     {
66464       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV const *>( &rhs );
66465       return *this;
66466     }
66467 
66468 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV66469     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryDecompressionFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
66470     {
66471       pNext = pNext_;
66472       return *this;
66473     }
66474 
setMemoryDecompressionVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV66475     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryDecompressionFeaturesNV & setMemoryDecompression( VULKAN_HPP_NAMESPACE::Bool32 memoryDecompression_ ) VULKAN_HPP_NOEXCEPT
66476     {
66477       memoryDecompression = memoryDecompression_;
66478       return *this;
66479     }
66480 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
66481 
66482 
operator VkPhysicalDeviceMemoryDecompressionFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV66483     operator VkPhysicalDeviceMemoryDecompressionFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
66484     {
66485       return *reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionFeaturesNV*>( this );
66486     }
66487 
operator VkPhysicalDeviceMemoryDecompressionFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV66488     operator VkPhysicalDeviceMemoryDecompressionFeaturesNV &() VULKAN_HPP_NOEXCEPT
66489     {
66490       return *reinterpret_cast<VkPhysicalDeviceMemoryDecompressionFeaturesNV*>( this );
66491     }
66492 
66493 #if defined( VULKAN_HPP_USE_REFLECT )
66494 #if 14 <= VULKAN_HPP_CPP_VERSION
66495     auto
66496 #else
66497     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
66498 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV66499       reflect() const VULKAN_HPP_NOEXCEPT
66500     {
66501       return std::tie( sType, pNext, memoryDecompression );
66502     }
66503 #endif
66504 
66505 
66506 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66507 auto operator<=>( PhysicalDeviceMemoryDecompressionFeaturesNV const & ) const = default;
66508 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV66509     bool operator==( PhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
66510     {
66511 #if defined( VULKAN_HPP_USE_REFLECT )
66512       return this->reflect() == rhs.reflect();
66513 #else
66514       return ( sType == rhs.sType )
66515           && ( pNext == rhs.pNext )
66516           && ( memoryDecompression == rhs.memoryDecompression );
66517 #endif
66518     }
66519 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV66520     bool operator!=( PhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
66521     {
66522       return !operator==( rhs );
66523     }
66524 #endif
66525 
66526     public:
66527     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryDecompressionFeaturesNV;
66528     void * pNext = {};
66529     VULKAN_HPP_NAMESPACE::Bool32 memoryDecompression = {};
66530 
66531   };
66532 
66533   template <>
66534   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryDecompressionFeaturesNV>
66535   {
66536     using Type = PhysicalDeviceMemoryDecompressionFeaturesNV;
66537   };
66538 
66539   struct PhysicalDeviceMemoryDecompressionPropertiesNV
66540   {
66541     using NativeType = VkPhysicalDeviceMemoryDecompressionPropertiesNV;
66542 
66543     static const bool allowDuplicate = false;
66544     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryDecompressionPropertiesNV;
66545 
66546 
66547 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryDecompressionPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV66548 VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryDecompressionPropertiesNV(VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethods_ = {}, uint64_t maxDecompressionIndirectCount_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
66549     : pNext( pNext_ ), decompressionMethods( decompressionMethods_ ), maxDecompressionIndirectCount( maxDecompressionIndirectCount_ )
66550     {}
66551 
66552     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryDecompressionPropertiesNV( PhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66553 
PhysicalDeviceMemoryDecompressionPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV66554     PhysicalDeviceMemoryDecompressionPropertiesNV( VkPhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66555       : PhysicalDeviceMemoryDecompressionPropertiesNV( *reinterpret_cast<PhysicalDeviceMemoryDecompressionPropertiesNV const *>( &rhs ) )
66556     {}
66557 
66558 
66559     PhysicalDeviceMemoryDecompressionPropertiesNV & operator=( PhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66560 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
66561 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV66562     PhysicalDeviceMemoryDecompressionPropertiesNV & operator=( VkPhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66563     {
66564       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV const *>( &rhs );
66565       return *this;
66566     }
66567 
66568 
operator VkPhysicalDeviceMemoryDecompressionPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV66569     operator VkPhysicalDeviceMemoryDecompressionPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
66570     {
66571       return *reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionPropertiesNV*>( this );
66572     }
66573 
operator VkPhysicalDeviceMemoryDecompressionPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV66574     operator VkPhysicalDeviceMemoryDecompressionPropertiesNV &() VULKAN_HPP_NOEXCEPT
66575     {
66576       return *reinterpret_cast<VkPhysicalDeviceMemoryDecompressionPropertiesNV*>( this );
66577     }
66578 
66579 #if defined( VULKAN_HPP_USE_REFLECT )
66580 #if 14 <= VULKAN_HPP_CPP_VERSION
66581     auto
66582 #else
66583     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV const &, uint64_t const &>
66584 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV66585       reflect() const VULKAN_HPP_NOEXCEPT
66586     {
66587       return std::tie( sType, pNext, decompressionMethods, maxDecompressionIndirectCount );
66588     }
66589 #endif
66590 
66591 
66592 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66593 auto operator<=>( PhysicalDeviceMemoryDecompressionPropertiesNV const & ) const = default;
66594 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV66595     bool operator==( PhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
66596     {
66597 #if defined( VULKAN_HPP_USE_REFLECT )
66598       return this->reflect() == rhs.reflect();
66599 #else
66600       return ( sType == rhs.sType )
66601           && ( pNext == rhs.pNext )
66602           && ( decompressionMethods == rhs.decompressionMethods )
66603           && ( maxDecompressionIndirectCount == rhs.maxDecompressionIndirectCount );
66604 #endif
66605     }
66606 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV66607     bool operator!=( PhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
66608     {
66609       return !operator==( rhs );
66610     }
66611 #endif
66612 
66613     public:
66614     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryDecompressionPropertiesNV;
66615     void * pNext = {};
66616     VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethods = {};
66617     uint64_t maxDecompressionIndirectCount = {};
66618 
66619   };
66620 
66621   template <>
66622   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryDecompressionPropertiesNV>
66623   {
66624     using Type = PhysicalDeviceMemoryDecompressionPropertiesNV;
66625   };
66626 
66627   struct PhysicalDeviceMemoryPriorityFeaturesEXT
66628   {
66629     using NativeType = VkPhysicalDeviceMemoryPriorityFeaturesEXT;
66630 
66631     static const bool allowDuplicate = false;
66632     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
66633 
66634 
66635 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66636 VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
66637     : pNext( pNext_ ), memoryPriority( memoryPriority_ )
66638     {}
66639 
66640     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66641 
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66642     PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66643       : PhysicalDeviceMemoryPriorityFeaturesEXT( *reinterpret_cast<PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs ) )
66644     {}
66645 
66646 
66647     PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66648 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
66649 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66650     PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66651     {
66652       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs );
66653       return *this;
66654     }
66655 
66656 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66657     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
66658     {
66659       pNext = pNext_;
66660       return *this;
66661     }
66662 
setMemoryPriorityVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66663     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT
66664     {
66665       memoryPriority = memoryPriority_;
66666       return *this;
66667     }
66668 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
66669 
66670 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66671     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
66672     {
66673       return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
66674     }
66675 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66676     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66677     {
66678       return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
66679     }
66680 
66681 #if defined( VULKAN_HPP_USE_REFLECT )
66682 #if 14 <= VULKAN_HPP_CPP_VERSION
66683     auto
66684 #else
66685     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
66686 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66687       reflect() const VULKAN_HPP_NOEXCEPT
66688     {
66689       return std::tie( sType, pNext, memoryPriority );
66690     }
66691 #endif
66692 
66693 
66694 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66695 auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const & ) const = default;
66696 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66697     bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
66698     {
66699 #if defined( VULKAN_HPP_USE_REFLECT )
66700       return this->reflect() == rhs.reflect();
66701 #else
66702       return ( sType == rhs.sType )
66703           && ( pNext == rhs.pNext )
66704           && ( memoryPriority == rhs.memoryPriority );
66705 #endif
66706     }
66707 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66708     bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
66709     {
66710       return !operator==( rhs );
66711     }
66712 #endif
66713 
66714     public:
66715     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
66716     void * pNext = {};
66717     VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {};
66718 
66719   };
66720 
66721   template <>
66722   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT>
66723   {
66724     using Type = PhysicalDeviceMemoryPriorityFeaturesEXT;
66725   };
66726 
66727   struct PhysicalDeviceMemoryProperties
66728   {
66729     using NativeType = VkPhysicalDeviceMemoryProperties;
66730 
66731 
66732 
66733 
66734 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties66735 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties(uint32_t memoryTypeCount_ = {}, std::array<VULKAN_HPP_NAMESPACE::MemoryType,VK_MAX_MEMORY_TYPES> const & memoryTypes_ = {}, uint32_t memoryHeapCount_ = {}, std::array<VULKAN_HPP_NAMESPACE::MemoryHeap,VK_MAX_MEMORY_HEAPS> const & memoryHeaps_ = {}) VULKAN_HPP_NOEXCEPT
66736     : memoryTypeCount( memoryTypeCount_ ), memoryTypes( memoryTypes_ ), memoryHeapCount( memoryHeapCount_ ), memoryHeaps( memoryHeaps_ )
66737     {}
66738 
66739     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66740 
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties66741     PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66742       : PhysicalDeviceMemoryProperties( *reinterpret_cast<PhysicalDeviceMemoryProperties const *>( &rhs ) )
66743     {}
66744 
66745 
66746     PhysicalDeviceMemoryProperties & operator=( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66747 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
66748 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties66749     PhysicalDeviceMemoryProperties & operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
66750     {
66751       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const *>( &rhs );
66752       return *this;
66753     }
66754 
66755 
operator VkPhysicalDeviceMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties66756     operator VkPhysicalDeviceMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
66757     {
66758       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties*>( this );
66759     }
66760 
operator VkPhysicalDeviceMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties66761     operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT
66762     {
66763       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( this );
66764     }
66765 
66766 #if defined( VULKAN_HPP_USE_REFLECT )
66767 #if 14 <= VULKAN_HPP_CPP_VERSION
66768     auto
66769 #else
66770     std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> const &>
66771 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties66772       reflect() const VULKAN_HPP_NOEXCEPT
66773     {
66774       return std::tie( memoryTypeCount, memoryTypes, memoryHeapCount, memoryHeaps );
66775     }
66776 #endif
66777 
66778 
66779 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66780 auto operator<=>( PhysicalDeviceMemoryProperties const & ) const = default;
66781 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties66782     bool operator==( PhysicalDeviceMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
66783     {
66784 #if defined( VULKAN_HPP_USE_REFLECT )
66785       return this->reflect() == rhs.reflect();
66786 #else
66787       return ( memoryTypeCount == rhs.memoryTypeCount )
66788           && ( memoryTypes == rhs.memoryTypes )
66789           && ( memoryHeapCount == rhs.memoryHeapCount )
66790           && ( memoryHeaps == rhs.memoryHeaps );
66791 #endif
66792     }
66793 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties66794     bool operator!=( PhysicalDeviceMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
66795     {
66796       return !operator==( rhs );
66797     }
66798 #endif
66799 
66800     public:
66801     uint32_t memoryTypeCount = {};
66802     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> memoryTypes = {};
66803     uint32_t memoryHeapCount = {};
66804     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> memoryHeaps = {};
66805 
66806   };
66807 
66808   struct PhysicalDeviceMemoryProperties2
66809   {
66810     using NativeType = VkPhysicalDeviceMemoryProperties2;
66811 
66812     static const bool allowDuplicate = false;
66813     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2;
66814 
66815 
66816 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties266817 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
66818     : pNext( pNext_ ), memoryProperties( memoryProperties_ )
66819     {}
66820 
66821     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66822 
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties266823     PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
66824       : PhysicalDeviceMemoryProperties2( *reinterpret_cast<PhysicalDeviceMemoryProperties2 const *>( &rhs ) )
66825     {}
66826 
66827 
66828     PhysicalDeviceMemoryProperties2 & operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66829 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
66830 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties266831     PhysicalDeviceMemoryProperties2 & operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
66832     {
66833       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const *>( &rhs );
66834       return *this;
66835     }
66836 
66837 
operator VkPhysicalDeviceMemoryProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties266838     operator VkPhysicalDeviceMemoryProperties2 const &() const VULKAN_HPP_NOEXCEPT
66839     {
66840       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2*>( this );
66841     }
66842 
operator VkPhysicalDeviceMemoryProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties266843     operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT
66844     {
66845       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( this );
66846     }
66847 
66848 #if defined( VULKAN_HPP_USE_REFLECT )
66849 #if 14 <= VULKAN_HPP_CPP_VERSION
66850     auto
66851 #else
66852     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const &>
66853 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties266854       reflect() const VULKAN_HPP_NOEXCEPT
66855     {
66856       return std::tie( sType, pNext, memoryProperties );
66857     }
66858 #endif
66859 
66860 
66861 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66862 auto operator<=>( PhysicalDeviceMemoryProperties2 const & ) const = default;
66863 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties266864     bool operator==( PhysicalDeviceMemoryProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
66865     {
66866 #if defined( VULKAN_HPP_USE_REFLECT )
66867       return this->reflect() == rhs.reflect();
66868 #else
66869       return ( sType == rhs.sType )
66870           && ( pNext == rhs.pNext )
66871           && ( memoryProperties == rhs.memoryProperties );
66872 #endif
66873     }
66874 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties266875     bool operator!=( PhysicalDeviceMemoryProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
66876     {
66877       return !operator==( rhs );
66878     }
66879 #endif
66880 
66881     public:
66882     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2;
66883     void * pNext = {};
66884     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {};
66885 
66886   };
66887 
66888   template <>
66889   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryProperties2>
66890   {
66891     using Type = PhysicalDeviceMemoryProperties2;
66892   };
66893   using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
66894 
66895   struct PhysicalDeviceMeshShaderFeaturesEXT
66896   {
66897     using NativeType = VkPhysicalDeviceMeshShaderFeaturesEXT;
66898 
66899     static const bool allowDuplicate = false;
66900     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesEXT;
66901 
66902 
66903 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66904 VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateMeshShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 meshShaderQueries_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
66905     : pNext( pNext_ ), taskShader( taskShader_ ), meshShader( meshShader_ ), multiviewMeshShader( multiviewMeshShader_ ), primitiveFragmentShadingRateMeshShader( primitiveFragmentShadingRateMeshShader_ ), meshShaderQueries( meshShaderQueries_ )
66906     {}
66907 
66908     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesEXT( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66909 
PhysicalDeviceMeshShaderFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66910     PhysicalDeviceMeshShaderFeaturesEXT( VkPhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66911       : PhysicalDeviceMeshShaderFeaturesEXT( *reinterpret_cast<PhysicalDeviceMeshShaderFeaturesEXT const *>( &rhs ) )
66912     {}
66913 
66914 
66915     PhysicalDeviceMeshShaderFeaturesEXT & operator=( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66916 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
66917 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66918     PhysicalDeviceMeshShaderFeaturesEXT & operator=( VkPhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66919     {
66920       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT const *>( &rhs );
66921       return *this;
66922     }
66923 
66924 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66925     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
66926     {
66927       pNext = pNext_;
66928       return *this;
66929     }
66930 
setTaskShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66931     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
66932     {
66933       taskShader = taskShader_;
66934       return *this;
66935     }
66936 
setMeshShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66937     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
66938     {
66939       meshShader = meshShader_;
66940       return *this;
66941     }
66942 
setMultiviewMeshShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66943     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setMultiviewMeshShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader_ ) VULKAN_HPP_NOEXCEPT
66944     {
66945       multiviewMeshShader = multiviewMeshShader_;
66946       return *this;
66947     }
66948 
setPrimitiveFragmentShadingRateMeshShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66949     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setPrimitiveFragmentShadingRateMeshShader( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateMeshShader_ ) VULKAN_HPP_NOEXCEPT
66950     {
66951       primitiveFragmentShadingRateMeshShader = primitiveFragmentShadingRateMeshShader_;
66952       return *this;
66953     }
66954 
setMeshShaderQueriesVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66955     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setMeshShaderQueries( VULKAN_HPP_NAMESPACE::Bool32 meshShaderQueries_ ) VULKAN_HPP_NOEXCEPT
66956     {
66957       meshShaderQueries = meshShaderQueries_;
66958       return *this;
66959     }
66960 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
66961 
66962 
operator VkPhysicalDeviceMeshShaderFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66963     operator VkPhysicalDeviceMeshShaderFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
66964     {
66965       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesEXT*>( this );
66966     }
66967 
operator VkPhysicalDeviceMeshShaderFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66968     operator VkPhysicalDeviceMeshShaderFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66969     {
66970       return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesEXT*>( this );
66971     }
66972 
66973 #if defined( VULKAN_HPP_USE_REFLECT )
66974 #if 14 <= VULKAN_HPP_CPP_VERSION
66975     auto
66976 #else
66977     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
66978 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66979       reflect() const VULKAN_HPP_NOEXCEPT
66980     {
66981       return std::tie( sType, pNext, taskShader, meshShader, multiviewMeshShader, primitiveFragmentShadingRateMeshShader, meshShaderQueries );
66982     }
66983 #endif
66984 
66985 
66986 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66987 auto operator<=>( PhysicalDeviceMeshShaderFeaturesEXT const & ) const = default;
66988 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT66989     bool operator==( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
66990     {
66991 #if defined( VULKAN_HPP_USE_REFLECT )
66992       return this->reflect() == rhs.reflect();
66993 #else
66994       return ( sType == rhs.sType )
66995           && ( pNext == rhs.pNext )
66996           && ( taskShader == rhs.taskShader )
66997           && ( meshShader == rhs.meshShader )
66998           && ( multiviewMeshShader == rhs.multiviewMeshShader )
66999           && ( primitiveFragmentShadingRateMeshShader == rhs.primitiveFragmentShadingRateMeshShader )
67000           && ( meshShaderQueries == rhs.meshShaderQueries );
67001 #endif
67002     }
67003 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT67004     bool operator!=( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
67005     {
67006       return !operator==( rhs );
67007     }
67008 #endif
67009 
67010     public:
67011     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesEXT;
67012     void * pNext = {};
67013     VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
67014     VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
67015     VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader = {};
67016     VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateMeshShader = {};
67017     VULKAN_HPP_NAMESPACE::Bool32 meshShaderQueries = {};
67018 
67019   };
67020 
67021   template <>
67022   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesEXT>
67023   {
67024     using Type = PhysicalDeviceMeshShaderFeaturesEXT;
67025   };
67026 
67027   struct PhysicalDeviceMeshShaderFeaturesNV
67028   {
67029     using NativeType = VkPhysicalDeviceMeshShaderFeaturesNV;
67030 
67031     static const bool allowDuplicate = false;
67032     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
67033 
67034 
67035 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67036 VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
67037     : pNext( pNext_ ), taskShader( taskShader_ ), meshShader( meshShader_ )
67038     {}
67039 
67040     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67041 
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67042     PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67043       : PhysicalDeviceMeshShaderFeaturesNV( *reinterpret_cast<PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs ) )
67044     {}
67045 
67046 
67047     PhysicalDeviceMeshShaderFeaturesNV & operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67048 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
67049 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67050     PhysicalDeviceMeshShaderFeaturesNV & operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67051     {
67052       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs );
67053       return *this;
67054     }
67055 
67056 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67057     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
67058     {
67059       pNext = pNext_;
67060       return *this;
67061     }
67062 
setTaskShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67063     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
67064     {
67065       taskShader = taskShader_;
67066       return *this;
67067     }
67068 
setMeshShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67069     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
67070     {
67071       meshShader = meshShader_;
67072       return *this;
67073     }
67074 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
67075 
67076 
operator VkPhysicalDeviceMeshShaderFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67077     operator VkPhysicalDeviceMeshShaderFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
67078     {
67079       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
67080     }
67081 
operator VkPhysicalDeviceMeshShaderFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67082     operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT
67083     {
67084       return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
67085     }
67086 
67087 #if defined( VULKAN_HPP_USE_REFLECT )
67088 #if 14 <= VULKAN_HPP_CPP_VERSION
67089     auto
67090 #else
67091     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
67092 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67093       reflect() const VULKAN_HPP_NOEXCEPT
67094     {
67095       return std::tie( sType, pNext, taskShader, meshShader );
67096     }
67097 #endif
67098 
67099 
67100 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67101 auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const & ) const = default;
67102 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67103     bool operator==( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
67104     {
67105 #if defined( VULKAN_HPP_USE_REFLECT )
67106       return this->reflect() == rhs.reflect();
67107 #else
67108       return ( sType == rhs.sType )
67109           && ( pNext == rhs.pNext )
67110           && ( taskShader == rhs.taskShader )
67111           && ( meshShader == rhs.meshShader );
67112 #endif
67113     }
67114 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67115     bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
67116     {
67117       return !operator==( rhs );
67118     }
67119 #endif
67120 
67121     public:
67122     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
67123     void * pNext = {};
67124     VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
67125     VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
67126 
67127   };
67128 
67129   template <>
67130   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesNV>
67131   {
67132     using Type = PhysicalDeviceMeshShaderFeaturesNV;
67133   };
67134 
67135   struct PhysicalDeviceMeshShaderPropertiesEXT
67136   {
67137     using NativeType = VkPhysicalDeviceMeshShaderPropertiesEXT;
67138 
67139     static const bool allowDuplicate = false;
67140     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesEXT;
67141 
67142 
67143 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT67144 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesEXT(uint32_t maxTaskWorkGroupTotalCount_ = {}, std::array<uint32_t,3> const & maxTaskWorkGroupCount_ = {}, uint32_t maxTaskWorkGroupInvocations_ = {}, std::array<uint32_t,3> const & maxTaskWorkGroupSize_ = {}, uint32_t maxTaskPayloadSize_ = {}, uint32_t maxTaskSharedMemorySize_ = {}, uint32_t maxTaskPayloadAndSharedMemorySize_ = {}, uint32_t maxMeshWorkGroupTotalCount_ = {}, std::array<uint32_t,3> const & maxMeshWorkGroupCount_ = {}, uint32_t maxMeshWorkGroupInvocations_ = {}, std::array<uint32_t,3> const & maxMeshWorkGroupSize_ = {}, uint32_t maxMeshSharedMemorySize_ = {}, uint32_t maxMeshPayloadAndSharedMemorySize_ = {}, uint32_t maxMeshOutputMemorySize_ = {}, uint32_t maxMeshPayloadAndOutputMemorySize_ = {}, uint32_t maxMeshOutputComponents_ = {}, uint32_t maxMeshOutputVertices_ = {}, uint32_t maxMeshOutputPrimitives_ = {}, uint32_t maxMeshOutputLayers_ = {}, uint32_t maxMeshMultiviewViewCount_ = {}, uint32_t meshOutputPerVertexGranularity_ = {}, uint32_t meshOutputPerPrimitiveGranularity_ = {}, uint32_t maxPreferredTaskWorkGroupInvocations_ = {}, uint32_t maxPreferredMeshWorkGroupInvocations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationVertexOutput_ = {}, VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationPrimitiveOutput_ = {}, VULKAN_HPP_NAMESPACE::Bool32 prefersCompactVertexOutput_ = {}, VULKAN_HPP_NAMESPACE::Bool32 prefersCompactPrimitiveOutput_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
67145     : pNext( pNext_ ), maxTaskWorkGroupTotalCount( maxTaskWorkGroupTotalCount_ ), maxTaskWorkGroupCount( maxTaskWorkGroupCount_ ), maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ ), maxTaskWorkGroupSize( maxTaskWorkGroupSize_ ), maxTaskPayloadSize( maxTaskPayloadSize_ ), maxTaskSharedMemorySize( maxTaskSharedMemorySize_ ), maxTaskPayloadAndSharedMemorySize( maxTaskPayloadAndSharedMemorySize_ ), maxMeshWorkGroupTotalCount( maxMeshWorkGroupTotalCount_ ), maxMeshWorkGroupCount( maxMeshWorkGroupCount_ ), maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ ), maxMeshWorkGroupSize( maxMeshWorkGroupSize_ ), maxMeshSharedMemorySize( maxMeshSharedMemorySize_ ), maxMeshPayloadAndSharedMemorySize( maxMeshPayloadAndSharedMemorySize_ ), maxMeshOutputMemorySize( maxMeshOutputMemorySize_ ), maxMeshPayloadAndOutputMemorySize( maxMeshPayloadAndOutputMemorySize_ ), maxMeshOutputComponents( maxMeshOutputComponents_ ), maxMeshOutputVertices( maxMeshOutputVertices_ ), maxMeshOutputPrimitives( maxMeshOutputPrimitives_ ), maxMeshOutputLayers( maxMeshOutputLayers_ ), maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ ), meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ ), meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ ), maxPreferredTaskWorkGroupInvocations( maxPreferredTaskWorkGroupInvocations_ ), maxPreferredMeshWorkGroupInvocations( maxPreferredMeshWorkGroupInvocations_ ), prefersLocalInvocationVertexOutput( prefersLocalInvocationVertexOutput_ ), prefersLocalInvocationPrimitiveOutput( prefersLocalInvocationPrimitiveOutput_ ), prefersCompactVertexOutput( prefersCompactVertexOutput_ ), prefersCompactPrimitiveOutput( prefersCompactPrimitiveOutput_ )
67146     {}
67147 
67148     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesEXT( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67149 
PhysicalDeviceMeshShaderPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT67150     PhysicalDeviceMeshShaderPropertiesEXT( VkPhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67151       : PhysicalDeviceMeshShaderPropertiesEXT( *reinterpret_cast<PhysicalDeviceMeshShaderPropertiesEXT const *>( &rhs ) )
67152     {}
67153 
67154 
67155     PhysicalDeviceMeshShaderPropertiesEXT & operator=( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67156 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
67157 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT67158     PhysicalDeviceMeshShaderPropertiesEXT & operator=( VkPhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67159     {
67160       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT const *>( &rhs );
67161       return *this;
67162     }
67163 
67164 
operator VkPhysicalDeviceMeshShaderPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT67165     operator VkPhysicalDeviceMeshShaderPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
67166     {
67167       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesEXT*>( this );
67168     }
67169 
operator VkPhysicalDeviceMeshShaderPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT67170     operator VkPhysicalDeviceMeshShaderPropertiesEXT &() VULKAN_HPP_NOEXCEPT
67171     {
67172       return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesEXT*>( this );
67173     }
67174 
67175 #if defined( VULKAN_HPP_USE_REFLECT )
67176 #if 14 <= VULKAN_HPP_CPP_VERSION
67177     auto
67178 #else
67179     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
67180 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT67181       reflect() const VULKAN_HPP_NOEXCEPT
67182     {
67183       return std::tie( sType, pNext, maxTaskWorkGroupTotalCount, maxTaskWorkGroupCount, maxTaskWorkGroupInvocations, maxTaskWorkGroupSize, maxTaskPayloadSize, maxTaskSharedMemorySize, maxTaskPayloadAndSharedMemorySize, maxMeshWorkGroupTotalCount, maxMeshWorkGroupCount, maxMeshWorkGroupInvocations, maxMeshWorkGroupSize, maxMeshSharedMemorySize, maxMeshPayloadAndSharedMemorySize, maxMeshOutputMemorySize, maxMeshPayloadAndOutputMemorySize, maxMeshOutputComponents, maxMeshOutputVertices, maxMeshOutputPrimitives, maxMeshOutputLayers, maxMeshMultiviewViewCount, meshOutputPerVertexGranularity, meshOutputPerPrimitiveGranularity, maxPreferredTaskWorkGroupInvocations, maxPreferredMeshWorkGroupInvocations, prefersLocalInvocationVertexOutput, prefersLocalInvocationPrimitiveOutput, prefersCompactVertexOutput, prefersCompactPrimitiveOutput );
67184     }
67185 #endif
67186 
67187 
67188 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67189 auto operator<=>( PhysicalDeviceMeshShaderPropertiesEXT const & ) const = default;
67190 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT67191     bool operator==( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
67192     {
67193 #if defined( VULKAN_HPP_USE_REFLECT )
67194       return this->reflect() == rhs.reflect();
67195 #else
67196       return ( sType == rhs.sType )
67197           && ( pNext == rhs.pNext )
67198           && ( maxTaskWorkGroupTotalCount == rhs.maxTaskWorkGroupTotalCount )
67199           && ( maxTaskWorkGroupCount == rhs.maxTaskWorkGroupCount )
67200           && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations )
67201           && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize )
67202           && ( maxTaskPayloadSize == rhs.maxTaskPayloadSize )
67203           && ( maxTaskSharedMemorySize == rhs.maxTaskSharedMemorySize )
67204           && ( maxTaskPayloadAndSharedMemorySize == rhs.maxTaskPayloadAndSharedMemorySize )
67205           && ( maxMeshWorkGroupTotalCount == rhs.maxMeshWorkGroupTotalCount )
67206           && ( maxMeshWorkGroupCount == rhs.maxMeshWorkGroupCount )
67207           && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations )
67208           && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize )
67209           && ( maxMeshSharedMemorySize == rhs.maxMeshSharedMemorySize )
67210           && ( maxMeshPayloadAndSharedMemorySize == rhs.maxMeshPayloadAndSharedMemorySize )
67211           && ( maxMeshOutputMemorySize == rhs.maxMeshOutputMemorySize )
67212           && ( maxMeshPayloadAndOutputMemorySize == rhs.maxMeshPayloadAndOutputMemorySize )
67213           && ( maxMeshOutputComponents == rhs.maxMeshOutputComponents )
67214           && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices )
67215           && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives )
67216           && ( maxMeshOutputLayers == rhs.maxMeshOutputLayers )
67217           && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount )
67218           && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity )
67219           && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity )
67220           && ( maxPreferredTaskWorkGroupInvocations == rhs.maxPreferredTaskWorkGroupInvocations )
67221           && ( maxPreferredMeshWorkGroupInvocations == rhs.maxPreferredMeshWorkGroupInvocations )
67222           && ( prefersLocalInvocationVertexOutput == rhs.prefersLocalInvocationVertexOutput )
67223           && ( prefersLocalInvocationPrimitiveOutput == rhs.prefersLocalInvocationPrimitiveOutput )
67224           && ( prefersCompactVertexOutput == rhs.prefersCompactVertexOutput )
67225           && ( prefersCompactPrimitiveOutput == rhs.prefersCompactPrimitiveOutput );
67226 #endif
67227     }
67228 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT67229     bool operator!=( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
67230     {
67231       return !operator==( rhs );
67232     }
67233 #endif
67234 
67235     public:
67236     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesEXT;
67237     void * pNext = {};
67238     uint32_t maxTaskWorkGroupTotalCount = {};
67239     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupCount = {};
67240     uint32_t maxTaskWorkGroupInvocations = {};
67241     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
67242     uint32_t maxTaskPayloadSize = {};
67243     uint32_t maxTaskSharedMemorySize = {};
67244     uint32_t maxTaskPayloadAndSharedMemorySize = {};
67245     uint32_t maxMeshWorkGroupTotalCount = {};
67246     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupCount = {};
67247     uint32_t maxMeshWorkGroupInvocations = {};
67248     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
67249     uint32_t maxMeshSharedMemorySize = {};
67250     uint32_t maxMeshPayloadAndSharedMemorySize = {};
67251     uint32_t maxMeshOutputMemorySize = {};
67252     uint32_t maxMeshPayloadAndOutputMemorySize = {};
67253     uint32_t maxMeshOutputComponents = {};
67254     uint32_t maxMeshOutputVertices = {};
67255     uint32_t maxMeshOutputPrimitives = {};
67256     uint32_t maxMeshOutputLayers = {};
67257     uint32_t maxMeshMultiviewViewCount = {};
67258     uint32_t meshOutputPerVertexGranularity = {};
67259     uint32_t meshOutputPerPrimitiveGranularity = {};
67260     uint32_t maxPreferredTaskWorkGroupInvocations = {};
67261     uint32_t maxPreferredMeshWorkGroupInvocations = {};
67262     VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationVertexOutput = {};
67263     VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationPrimitiveOutput = {};
67264     VULKAN_HPP_NAMESPACE::Bool32 prefersCompactVertexOutput = {};
67265     VULKAN_HPP_NAMESPACE::Bool32 prefersCompactPrimitiveOutput = {};
67266 
67267   };
67268 
67269   template <>
67270   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesEXT>
67271   {
67272     using Type = PhysicalDeviceMeshShaderPropertiesEXT;
67273   };
67274 
67275   struct PhysicalDeviceMeshShaderPropertiesNV
67276   {
67277     using NativeType = VkPhysicalDeviceMeshShaderPropertiesNV;
67278 
67279     static const bool allowDuplicate = false;
67280     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
67281 
67282 
67283 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67284 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV(uint32_t maxDrawMeshTasksCount_ = {}, uint32_t maxTaskWorkGroupInvocations_ = {}, std::array<uint32_t,3> const & maxTaskWorkGroupSize_ = {}, uint32_t maxTaskTotalMemorySize_ = {}, uint32_t maxTaskOutputCount_ = {}, uint32_t maxMeshWorkGroupInvocations_ = {}, std::array<uint32_t,3> const & maxMeshWorkGroupSize_ = {}, uint32_t maxMeshTotalMemorySize_ = {}, uint32_t maxMeshOutputVertices_ = {}, uint32_t maxMeshOutputPrimitives_ = {}, uint32_t maxMeshMultiviewViewCount_ = {}, uint32_t meshOutputPerVertexGranularity_ = {}, uint32_t meshOutputPerPrimitiveGranularity_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
67285     : pNext( pNext_ ), maxDrawMeshTasksCount( maxDrawMeshTasksCount_ ), maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ ), maxTaskWorkGroupSize( maxTaskWorkGroupSize_ ), maxTaskTotalMemorySize( maxTaskTotalMemorySize_ ), maxTaskOutputCount( maxTaskOutputCount_ ), maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ ), maxMeshWorkGroupSize( maxMeshWorkGroupSize_ ), maxMeshTotalMemorySize( maxMeshTotalMemorySize_ ), maxMeshOutputVertices( maxMeshOutputVertices_ ), maxMeshOutputPrimitives( maxMeshOutputPrimitives_ ), maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ ), meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ ), meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ )
67286     {}
67287 
67288     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67289 
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67290     PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67291       : PhysicalDeviceMeshShaderPropertiesNV( *reinterpret_cast<PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs ) )
67292     {}
67293 
67294 
67295     PhysicalDeviceMeshShaderPropertiesNV & operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67296 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
67297 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67298     PhysicalDeviceMeshShaderPropertiesNV & operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67299     {
67300       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs );
67301       return *this;
67302     }
67303 
67304 
operator VkPhysicalDeviceMeshShaderPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67305     operator VkPhysicalDeviceMeshShaderPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
67306     {
67307       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
67308     }
67309 
operator VkPhysicalDeviceMeshShaderPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67310     operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT
67311     {
67312       return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
67313     }
67314 
67315 #if defined( VULKAN_HPP_USE_REFLECT )
67316 #if 14 <= VULKAN_HPP_CPP_VERSION
67317     auto
67318 #else
67319     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
67320 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67321       reflect() const VULKAN_HPP_NOEXCEPT
67322     {
67323       return std::tie( sType, pNext, maxDrawMeshTasksCount, maxTaskWorkGroupInvocations, maxTaskWorkGroupSize, maxTaskTotalMemorySize, maxTaskOutputCount, maxMeshWorkGroupInvocations, maxMeshWorkGroupSize, maxMeshTotalMemorySize, maxMeshOutputVertices, maxMeshOutputPrimitives, maxMeshMultiviewViewCount, meshOutputPerVertexGranularity, meshOutputPerPrimitiveGranularity );
67324     }
67325 #endif
67326 
67327 
67328 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67329 auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const & ) const = default;
67330 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67331     bool operator==( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
67332     {
67333 #if defined( VULKAN_HPP_USE_REFLECT )
67334       return this->reflect() == rhs.reflect();
67335 #else
67336       return ( sType == rhs.sType )
67337           && ( pNext == rhs.pNext )
67338           && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount )
67339           && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations )
67340           && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize )
67341           && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize )
67342           && ( maxTaskOutputCount == rhs.maxTaskOutputCount )
67343           && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations )
67344           && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize )
67345           && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize )
67346           && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices )
67347           && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives )
67348           && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount )
67349           && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity )
67350           && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity );
67351 #endif
67352     }
67353 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67354     bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
67355     {
67356       return !operator==( rhs );
67357     }
67358 #endif
67359 
67360     public:
67361     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
67362     void * pNext = {};
67363     uint32_t maxDrawMeshTasksCount = {};
67364     uint32_t maxTaskWorkGroupInvocations = {};
67365     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
67366     uint32_t maxTaskTotalMemorySize = {};
67367     uint32_t maxTaskOutputCount = {};
67368     uint32_t maxMeshWorkGroupInvocations = {};
67369     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
67370     uint32_t maxMeshTotalMemorySize = {};
67371     uint32_t maxMeshOutputVertices = {};
67372     uint32_t maxMeshOutputPrimitives = {};
67373     uint32_t maxMeshMultiviewViewCount = {};
67374     uint32_t meshOutputPerVertexGranularity = {};
67375     uint32_t meshOutputPerPrimitiveGranularity = {};
67376 
67377   };
67378 
67379   template <>
67380   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesNV>
67381   {
67382     using Type = PhysicalDeviceMeshShaderPropertiesNV;
67383   };
67384 
67385   struct PhysicalDeviceMultiDrawFeaturesEXT
67386   {
67387     using NativeType = VkPhysicalDeviceMultiDrawFeaturesEXT;
67388 
67389     static const bool allowDuplicate = false;
67390     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiDrawFeaturesEXT;
67391 
67392 
67393 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiDrawFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT67394 VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 multiDraw_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
67395     : pNext( pNext_ ), multiDraw( multiDraw_ )
67396     {}
67397 
67398     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawFeaturesEXT( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67399 
PhysicalDeviceMultiDrawFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT67400     PhysicalDeviceMultiDrawFeaturesEXT( VkPhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67401       : PhysicalDeviceMultiDrawFeaturesEXT( *reinterpret_cast<PhysicalDeviceMultiDrawFeaturesEXT const *>( &rhs ) )
67402     {}
67403 
67404 
67405     PhysicalDeviceMultiDrawFeaturesEXT & operator=( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67406 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
67407 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT67408     PhysicalDeviceMultiDrawFeaturesEXT & operator=( VkPhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67409     {
67410       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT const *>( &rhs );
67411       return *this;
67412     }
67413 
67414 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT67415     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiDrawFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
67416     {
67417       pNext = pNext_;
67418       return *this;
67419     }
67420 
setMultiDrawVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT67421     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiDrawFeaturesEXT & setMultiDraw( VULKAN_HPP_NAMESPACE::Bool32 multiDraw_ ) VULKAN_HPP_NOEXCEPT
67422     {
67423       multiDraw = multiDraw_;
67424       return *this;
67425     }
67426 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
67427 
67428 
operator VkPhysicalDeviceMultiDrawFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT67429     operator VkPhysicalDeviceMultiDrawFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
67430     {
67431       return *reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT*>( this );
67432     }
67433 
operator VkPhysicalDeviceMultiDrawFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT67434     operator VkPhysicalDeviceMultiDrawFeaturesEXT &() VULKAN_HPP_NOEXCEPT
67435     {
67436       return *reinterpret_cast<VkPhysicalDeviceMultiDrawFeaturesEXT*>( this );
67437     }
67438 
67439 #if defined( VULKAN_HPP_USE_REFLECT )
67440 #if 14 <= VULKAN_HPP_CPP_VERSION
67441     auto
67442 #else
67443     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
67444 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT67445       reflect() const VULKAN_HPP_NOEXCEPT
67446     {
67447       return std::tie( sType, pNext, multiDraw );
67448     }
67449 #endif
67450 
67451 
67452 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67453 auto operator<=>( PhysicalDeviceMultiDrawFeaturesEXT const & ) const = default;
67454 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT67455     bool operator==( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
67456     {
67457 #if defined( VULKAN_HPP_USE_REFLECT )
67458       return this->reflect() == rhs.reflect();
67459 #else
67460       return ( sType == rhs.sType )
67461           && ( pNext == rhs.pNext )
67462           && ( multiDraw == rhs.multiDraw );
67463 #endif
67464     }
67465 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT67466     bool operator!=( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
67467     {
67468       return !operator==( rhs );
67469     }
67470 #endif
67471 
67472     public:
67473     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiDrawFeaturesEXT;
67474     void * pNext = {};
67475     VULKAN_HPP_NAMESPACE::Bool32 multiDraw = {};
67476 
67477   };
67478 
67479   template <>
67480   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiDrawFeaturesEXT>
67481   {
67482     using Type = PhysicalDeviceMultiDrawFeaturesEXT;
67483   };
67484 
67485   struct PhysicalDeviceMultiDrawPropertiesEXT
67486   {
67487     using NativeType = VkPhysicalDeviceMultiDrawPropertiesEXT;
67488 
67489     static const bool allowDuplicate = false;
67490     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiDrawPropertiesEXT;
67491 
67492 
67493 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiDrawPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT67494 VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawPropertiesEXT(uint32_t maxMultiDrawCount_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
67495     : pNext( pNext_ ), maxMultiDrawCount( maxMultiDrawCount_ )
67496     {}
67497 
67498     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawPropertiesEXT( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67499 
PhysicalDeviceMultiDrawPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT67500     PhysicalDeviceMultiDrawPropertiesEXT( VkPhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67501       : PhysicalDeviceMultiDrawPropertiesEXT( *reinterpret_cast<PhysicalDeviceMultiDrawPropertiesEXT const *>( &rhs ) )
67502     {}
67503 
67504 
67505     PhysicalDeviceMultiDrawPropertiesEXT & operator=( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67506 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
67507 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT67508     PhysicalDeviceMultiDrawPropertiesEXT & operator=( VkPhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67509     {
67510       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT const *>( &rhs );
67511       return *this;
67512     }
67513 
67514 
operator VkPhysicalDeviceMultiDrawPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT67515     operator VkPhysicalDeviceMultiDrawPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
67516     {
67517       return *reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT*>( this );
67518     }
67519 
operator VkPhysicalDeviceMultiDrawPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT67520     operator VkPhysicalDeviceMultiDrawPropertiesEXT &() VULKAN_HPP_NOEXCEPT
67521     {
67522       return *reinterpret_cast<VkPhysicalDeviceMultiDrawPropertiesEXT*>( this );
67523     }
67524 
67525 #if defined( VULKAN_HPP_USE_REFLECT )
67526 #if 14 <= VULKAN_HPP_CPP_VERSION
67527     auto
67528 #else
67529     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
67530 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT67531       reflect() const VULKAN_HPP_NOEXCEPT
67532     {
67533       return std::tie( sType, pNext, maxMultiDrawCount );
67534     }
67535 #endif
67536 
67537 
67538 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67539 auto operator<=>( PhysicalDeviceMultiDrawPropertiesEXT const & ) const = default;
67540 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT67541     bool operator==( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
67542     {
67543 #if defined( VULKAN_HPP_USE_REFLECT )
67544       return this->reflect() == rhs.reflect();
67545 #else
67546       return ( sType == rhs.sType )
67547           && ( pNext == rhs.pNext )
67548           && ( maxMultiDrawCount == rhs.maxMultiDrawCount );
67549 #endif
67550     }
67551 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT67552     bool operator!=( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
67553     {
67554       return !operator==( rhs );
67555     }
67556 #endif
67557 
67558     public:
67559     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiDrawPropertiesEXT;
67560     void * pNext = {};
67561     uint32_t maxMultiDrawCount = {};
67562 
67563   };
67564 
67565   template <>
67566   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiDrawPropertiesEXT>
67567   {
67568     using Type = PhysicalDeviceMultiDrawPropertiesEXT;
67569   };
67570 
67571   struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
67572   {
67573     using NativeType = VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
67574 
67575     static const bool allowDuplicate = false;
67576     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
67577 
67578 
67579 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT67580 VULKAN_HPP_CONSTEXPR PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
67581     : pNext( pNext_ ), multisampledRenderToSingleSampled( multisampledRenderToSingleSampled_ )
67582     {}
67583 
67584     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67585 
PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT67586     PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT( VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67587       : PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT( *reinterpret_cast<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const *>( &rhs ) )
67588     {}
67589 
67590 
67591     PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT & operator=( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67592 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
67593 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT67594     PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT & operator=( VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67595     {
67596       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const *>( &rhs );
67597       return *this;
67598     }
67599 
67600 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT67601     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
67602     {
67603       pNext = pNext_;
67604       return *this;
67605     }
67606 
setMultisampledRenderToSingleSampledVULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT67607     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT & setMultisampledRenderToSingleSampled( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled_ ) VULKAN_HPP_NOEXCEPT
67608     {
67609       multisampledRenderToSingleSampled = multisampledRenderToSingleSampled_;
67610       return *this;
67611     }
67612 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
67613 
67614 
operator VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT67615     operator VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
67616     {
67617       return *reinterpret_cast<const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT*>( this );
67618     }
67619 
operator VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT67620     operator VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT &() VULKAN_HPP_NOEXCEPT
67621     {
67622       return *reinterpret_cast<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT*>( this );
67623     }
67624 
67625 #if defined( VULKAN_HPP_USE_REFLECT )
67626 #if 14 <= VULKAN_HPP_CPP_VERSION
67627     auto
67628 #else
67629     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
67630 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT67631       reflect() const VULKAN_HPP_NOEXCEPT
67632     {
67633       return std::tie( sType, pNext, multisampledRenderToSingleSampled );
67634     }
67635 #endif
67636 
67637 
67638 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67639 auto operator<=>( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & ) const = default;
67640 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT67641     bool operator==( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
67642     {
67643 #if defined( VULKAN_HPP_USE_REFLECT )
67644       return this->reflect() == rhs.reflect();
67645 #else
67646       return ( sType == rhs.sType )
67647           && ( pNext == rhs.pNext )
67648           && ( multisampledRenderToSingleSampled == rhs.multisampledRenderToSingleSampled );
67649 #endif
67650     }
67651 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT67652     bool operator!=( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
67653     {
67654       return !operator==( rhs );
67655     }
67656 #endif
67657 
67658     public:
67659     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
67660     void * pNext = {};
67661     VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled = {};
67662 
67663   };
67664 
67665   template <>
67666   struct CppType<StructureType, StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>
67667   {
67668     using Type = PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
67669   };
67670 
67671   struct PhysicalDeviceMultiviewFeatures
67672   {
67673     using NativeType = VkPhysicalDeviceMultiviewFeatures;
67674 
67675     static const bool allowDuplicate = false;
67676     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures;
67677 
67678 
67679 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67680 VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures(VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
67681     : pNext( pNext_ ), multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ )
67682     {}
67683 
67684     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67685 
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67686     PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67687       : PhysicalDeviceMultiviewFeatures( *reinterpret_cast<PhysicalDeviceMultiviewFeatures const *>( &rhs ) )
67688     {}
67689 
67690 
67691     PhysicalDeviceMultiviewFeatures & operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67692 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
67693 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67694     PhysicalDeviceMultiviewFeatures & operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67695     {
67696       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const *>( &rhs );
67697       return *this;
67698     }
67699 
67700 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67701     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
67702     {
67703       pNext = pNext_;
67704       return *this;
67705     }
67706 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67707     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
67708     {
67709       multiview = multiview_;
67710       return *this;
67711     }
67712 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67713     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
67714     {
67715       multiviewGeometryShader = multiviewGeometryShader_;
67716       return *this;
67717     }
67718 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67719     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
67720     {
67721       multiviewTessellationShader = multiviewTessellationShader_;
67722       return *this;
67723     }
67724 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
67725 
67726 
operator VkPhysicalDeviceMultiviewFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67727     operator VkPhysicalDeviceMultiviewFeatures const &() const VULKAN_HPP_NOEXCEPT
67728     {
67729       return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>( this );
67730     }
67731 
operator VkPhysicalDeviceMultiviewFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67732     operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT
67733     {
67734       return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>( this );
67735     }
67736 
67737 #if defined( VULKAN_HPP_USE_REFLECT )
67738 #if 14 <= VULKAN_HPP_CPP_VERSION
67739     auto
67740 #else
67741     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
67742 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67743       reflect() const VULKAN_HPP_NOEXCEPT
67744     {
67745       return std::tie( sType, pNext, multiview, multiviewGeometryShader, multiviewTessellationShader );
67746     }
67747 #endif
67748 
67749 
67750 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67751 auto operator<=>( PhysicalDeviceMultiviewFeatures const & ) const = default;
67752 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67753     bool operator==( PhysicalDeviceMultiviewFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
67754     {
67755 #if defined( VULKAN_HPP_USE_REFLECT )
67756       return this->reflect() == rhs.reflect();
67757 #else
67758       return ( sType == rhs.sType )
67759           && ( pNext == rhs.pNext )
67760           && ( multiview == rhs.multiview )
67761           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
67762           && ( multiviewTessellationShader == rhs.multiviewTessellationShader );
67763 #endif
67764     }
67765 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67766     bool operator!=( PhysicalDeviceMultiviewFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
67767     {
67768       return !operator==( rhs );
67769     }
67770 #endif
67771 
67772     public:
67773     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures;
67774     void * pNext = {};
67775     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
67776     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
67777     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
67778 
67779   };
67780 
67781   template <>
67782   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewFeatures>
67783   {
67784     using Type = PhysicalDeviceMultiviewFeatures;
67785   };
67786   using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
67787 
67788   struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
67789   {
67790     using NativeType = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
67791 
67792     static const bool allowDuplicate = false;
67793     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
67794 
67795 
67796 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67797 VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
67798     : pNext( pNext_ ), perViewPositionAllComponents( perViewPositionAllComponents_ )
67799     {}
67800 
67801     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67802 
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67803     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
67804       : PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( *reinterpret_cast<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs ) )
67805     {}
67806 
67807 
67808     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67809 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
67810 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67811     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
67812     {
67813       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs );
67814       return *this;
67815     }
67816 
67817 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67818     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT
67819     {
67820       return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
67821     }
67822 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67823     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT
67824     {
67825       return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
67826     }
67827 
67828 #if defined( VULKAN_HPP_USE_REFLECT )
67829 #if 14 <= VULKAN_HPP_CPP_VERSION
67830     auto
67831 #else
67832     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
67833 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67834       reflect() const VULKAN_HPP_NOEXCEPT
67835     {
67836       return std::tie( sType, pNext, perViewPositionAllComponents );
67837     }
67838 #endif
67839 
67840 
67841 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67842 auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & ) const = default;
67843 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67844     bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
67845     {
67846 #if defined( VULKAN_HPP_USE_REFLECT )
67847       return this->reflect() == rhs.reflect();
67848 #else
67849       return ( sType == rhs.sType )
67850           && ( pNext == rhs.pNext )
67851           && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents );
67852 #endif
67853     }
67854 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67855     bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
67856     {
67857       return !operator==( rhs );
67858     }
67859 #endif
67860 
67861     public:
67862     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
67863     void * pNext = {};
67864     VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {};
67865 
67866   };
67867 
67868   template <>
67869   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>
67870   {
67871     using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
67872   };
67873 
67874   struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM
67875   {
67876     using NativeType = VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
67877 
67878     static const bool allowDuplicate = false;
67879     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
67880 
67881 
67882 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM67883 VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewRenderAreas_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
67884     : pNext( pNext_ ), multiviewPerViewRenderAreas( multiviewPerViewRenderAreas_ )
67885     {}
67886 
67887     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67888 
PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM67889     PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
67890       : PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( *reinterpret_cast<PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const *>( &rhs ) )
67891     {}
67892 
67893 
67894     PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM & operator=( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67895 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
67896 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM67897     PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM & operator=( VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
67898     {
67899       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const *>( &rhs );
67900       return *this;
67901     }
67902 
67903 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM67904     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
67905     {
67906       pNext = pNext_;
67907       return *this;
67908     }
67909 
setMultiviewPerViewRenderAreasVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM67910     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM & setMultiviewPerViewRenderAreas( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewRenderAreas_ ) VULKAN_HPP_NOEXCEPT
67911     {
67912       multiviewPerViewRenderAreas = multiviewPerViewRenderAreas_;
67913       return *this;
67914     }
67915 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
67916 
67917 
operator VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM67918     operator VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
67919     {
67920       return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM*>( this );
67921     }
67922 
operator VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM67923     operator VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
67924     {
67925       return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM*>( this );
67926     }
67927 
67928 #if defined( VULKAN_HPP_USE_REFLECT )
67929 #if 14 <= VULKAN_HPP_CPP_VERSION
67930     auto
67931 #else
67932     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
67933 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM67934       reflect() const VULKAN_HPP_NOEXCEPT
67935     {
67936       return std::tie( sType, pNext, multiviewPerViewRenderAreas );
67937     }
67938 #endif
67939 
67940 
67941 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67942 auto operator<=>( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & ) const = default;
67943 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM67944     bool operator==( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
67945     {
67946 #if defined( VULKAN_HPP_USE_REFLECT )
67947       return this->reflect() == rhs.reflect();
67948 #else
67949       return ( sType == rhs.sType )
67950           && ( pNext == rhs.pNext )
67951           && ( multiviewPerViewRenderAreas == rhs.multiviewPerViewRenderAreas );
67952 #endif
67953     }
67954 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM67955     bool operator!=( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
67956     {
67957       return !operator==( rhs );
67958     }
67959 #endif
67960 
67961     public:
67962     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
67963     void * pNext = {};
67964     VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewRenderAreas = {};
67965 
67966   };
67967 
67968   template <>
67969   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM>
67970   {
67971     using Type = PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
67972   };
67973 
67974   struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
67975   {
67976     using NativeType = VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
67977 
67978     static const bool allowDuplicate = false;
67979     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
67980 
67981 
67982 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM67983 VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewViewports_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
67984     : pNext( pNext_ ), multiviewPerViewViewports( multiviewPerViewViewports_ )
67985     {}
67986 
67987     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67988 
PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM67989     PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM( VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
67990       : PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM( *reinterpret_cast<PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const *>( &rhs ) )
67991     {}
67992 
67993 
67994     PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM & operator=( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67995 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
67996 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM67997     PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM & operator=( VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
67998     {
67999       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const *>( &rhs );
68000       return *this;
68001     }
68002 
68003 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM68004     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
68005     {
68006       pNext = pNext_;
68007       return *this;
68008     }
68009 
setMultiviewPerViewViewportsVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM68010     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM & setMultiviewPerViewViewports( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewViewports_ ) VULKAN_HPP_NOEXCEPT
68011     {
68012       multiviewPerViewViewports = multiviewPerViewViewports_;
68013       return *this;
68014     }
68015 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
68016 
68017 
operator VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM68018     operator VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
68019     {
68020       return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM*>( this );
68021     }
68022 
operator VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM68023     operator VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
68024     {
68025       return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM*>( this );
68026     }
68027 
68028 #if defined( VULKAN_HPP_USE_REFLECT )
68029 #if 14 <= VULKAN_HPP_CPP_VERSION
68030     auto
68031 #else
68032     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
68033 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM68034       reflect() const VULKAN_HPP_NOEXCEPT
68035     {
68036       return std::tie( sType, pNext, multiviewPerViewViewports );
68037     }
68038 #endif
68039 
68040 
68041 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68042 auto operator<=>( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & ) const = default;
68043 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM68044     bool operator==( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
68045     {
68046 #if defined( VULKAN_HPP_USE_REFLECT )
68047       return this->reflect() == rhs.reflect();
68048 #else
68049       return ( sType == rhs.sType )
68050           && ( pNext == rhs.pNext )
68051           && ( multiviewPerViewViewports == rhs.multiviewPerViewViewports );
68052 #endif
68053     }
68054 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM68055     bool operator!=( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
68056     {
68057       return !operator==( rhs );
68058     }
68059 #endif
68060 
68061     public:
68062     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
68063     void * pNext = {};
68064     VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewViewports = {};
68065 
68066   };
68067 
68068   template <>
68069   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM>
68070   {
68071     using Type = PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
68072   };
68073 
68074   struct PhysicalDeviceMultiviewProperties
68075   {
68076     using NativeType = VkPhysicalDeviceMultiviewProperties;
68077 
68078     static const bool allowDuplicate = false;
68079     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewProperties;
68080 
68081 
68082 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties68083 VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties(uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
68084     : pNext( pNext_ ), maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
68085     {}
68086 
68087     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68088 
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties68089     PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68090       : PhysicalDeviceMultiviewProperties( *reinterpret_cast<PhysicalDeviceMultiviewProperties const *>( &rhs ) )
68091     {}
68092 
68093 
68094     PhysicalDeviceMultiviewProperties & operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68095 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
68096 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties68097     PhysicalDeviceMultiviewProperties & operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68098     {
68099       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const *>( &rhs );
68100       return *this;
68101     }
68102 
68103 
operator VkPhysicalDeviceMultiviewProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties68104     operator VkPhysicalDeviceMultiviewProperties const &() const VULKAN_HPP_NOEXCEPT
68105     {
68106       return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>( this );
68107     }
68108 
operator VkPhysicalDeviceMultiviewProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties68109     operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT
68110     {
68111       return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>( this );
68112     }
68113 
68114 #if defined( VULKAN_HPP_USE_REFLECT )
68115 #if 14 <= VULKAN_HPP_CPP_VERSION
68116     auto
68117 #else
68118     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &>
68119 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties68120       reflect() const VULKAN_HPP_NOEXCEPT
68121     {
68122       return std::tie( sType, pNext, maxMultiviewViewCount, maxMultiviewInstanceIndex );
68123     }
68124 #endif
68125 
68126 
68127 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68128 auto operator<=>( PhysicalDeviceMultiviewProperties const & ) const = default;
68129 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties68130     bool operator==( PhysicalDeviceMultiviewProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
68131     {
68132 #if defined( VULKAN_HPP_USE_REFLECT )
68133       return this->reflect() == rhs.reflect();
68134 #else
68135       return ( sType == rhs.sType )
68136           && ( pNext == rhs.pNext )
68137           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
68138           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex );
68139 #endif
68140     }
68141 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties68142     bool operator!=( PhysicalDeviceMultiviewProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
68143     {
68144       return !operator==( rhs );
68145     }
68146 #endif
68147 
68148     public:
68149     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties;
68150     void * pNext = {};
68151     uint32_t maxMultiviewViewCount = {};
68152     uint32_t maxMultiviewInstanceIndex = {};
68153 
68154   };
68155 
68156   template <>
68157   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewProperties>
68158   {
68159     using Type = PhysicalDeviceMultiviewProperties;
68160   };
68161   using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
68162 
68163   struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT
68164   {
68165     using NativeType = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
68166 
68167     static const bool allowDuplicate = false;
68168     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesEXT;
68169 
68170 
68171 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMutableDescriptorTypeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT68172 VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
68173     : pNext( pNext_ ), mutableDescriptorType( mutableDescriptorType_ )
68174     {}
68175 
68176     VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesEXT( PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68177 
PhysicalDeviceMutableDescriptorTypeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT68178     PhysicalDeviceMutableDescriptorTypeFeaturesEXT( VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68179       : PhysicalDeviceMutableDescriptorTypeFeaturesEXT( *reinterpret_cast<PhysicalDeviceMutableDescriptorTypeFeaturesEXT const *>( &rhs ) )
68180     {}
68181 
68182 
68183     PhysicalDeviceMutableDescriptorTypeFeaturesEXT & operator=( PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68184 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
68185 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT68186     PhysicalDeviceMutableDescriptorTypeFeaturesEXT & operator=( VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68187     {
68188       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT const *>( &rhs );
68189       return *this;
68190     }
68191 
68192 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT68193     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMutableDescriptorTypeFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
68194     {
68195       pNext = pNext_;
68196       return *this;
68197     }
68198 
setMutableDescriptorTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT68199     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMutableDescriptorTypeFeaturesEXT & setMutableDescriptorType( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ ) VULKAN_HPP_NOEXCEPT
68200     {
68201       mutableDescriptorType = mutableDescriptorType_;
68202       return *this;
68203     }
68204 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
68205 
68206 
operator VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT68207     operator VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
68208     {
68209       return *reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT*>( this );
68210     }
68211 
operator VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT68212     operator VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
68213     {
68214       return *reinterpret_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT*>( this );
68215     }
68216 
68217 #if defined( VULKAN_HPP_USE_REFLECT )
68218 #if 14 <= VULKAN_HPP_CPP_VERSION
68219     auto
68220 #else
68221     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
68222 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT68223       reflect() const VULKAN_HPP_NOEXCEPT
68224     {
68225       return std::tie( sType, pNext, mutableDescriptorType );
68226     }
68227 #endif
68228 
68229 
68230 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68231 auto operator<=>( PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & ) const = default;
68232 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT68233     bool operator==( PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68234     {
68235 #if defined( VULKAN_HPP_USE_REFLECT )
68236       return this->reflect() == rhs.reflect();
68237 #else
68238       return ( sType == rhs.sType )
68239           && ( pNext == rhs.pNext )
68240           && ( mutableDescriptorType == rhs.mutableDescriptorType );
68241 #endif
68242     }
68243 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT68244     bool operator!=( PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68245     {
68246       return !operator==( rhs );
68247     }
68248 #endif
68249 
68250     public:
68251     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesEXT;
68252     void * pNext = {};
68253     VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType = {};
68254 
68255   };
68256 
68257   template <>
68258   struct CppType<StructureType, StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesEXT>
68259   {
68260     using Type = PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
68261   };
68262   using PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
68263 
68264   struct PhysicalDeviceNestedCommandBufferFeaturesEXT
68265   {
68266     using NativeType = VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
68267 
68268     static const bool allowDuplicate = false;
68269     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT;
68270 
68271 
68272 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceNestedCommandBufferFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68273 VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
68274     : pNext( pNext_ ), nestedCommandBuffer( nestedCommandBuffer_ ), nestedCommandBufferRendering( nestedCommandBufferRendering_ ), nestedCommandBufferSimultaneousUse( nestedCommandBufferSimultaneousUse_ )
68275     {}
68276 
68277     VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferFeaturesEXT( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68278 
PhysicalDeviceNestedCommandBufferFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68279     PhysicalDeviceNestedCommandBufferFeaturesEXT( VkPhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68280       : PhysicalDeviceNestedCommandBufferFeaturesEXT( *reinterpret_cast<PhysicalDeviceNestedCommandBufferFeaturesEXT const *>( &rhs ) )
68281     {}
68282 
68283 
68284     PhysicalDeviceNestedCommandBufferFeaturesEXT & operator=( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68285 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
68286 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68287     PhysicalDeviceNestedCommandBufferFeaturesEXT & operator=( VkPhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68288     {
68289       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT const *>( &rhs );
68290       return *this;
68291     }
68292 
68293 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68294     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
68295     {
68296       pNext = pNext_;
68297       return *this;
68298     }
68299 
setNestedCommandBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68300     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT & setNestedCommandBuffer( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer_ ) VULKAN_HPP_NOEXCEPT
68301     {
68302       nestedCommandBuffer = nestedCommandBuffer_;
68303       return *this;
68304     }
68305 
setNestedCommandBufferRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68306     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT & setNestedCommandBufferRendering( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering_ ) VULKAN_HPP_NOEXCEPT
68307     {
68308       nestedCommandBufferRendering = nestedCommandBufferRendering_;
68309       return *this;
68310     }
68311 
setNestedCommandBufferSimultaneousUseVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68312     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT & setNestedCommandBufferSimultaneousUse( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse_ ) VULKAN_HPP_NOEXCEPT
68313     {
68314       nestedCommandBufferSimultaneousUse = nestedCommandBufferSimultaneousUse_;
68315       return *this;
68316     }
68317 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
68318 
68319 
operator VkPhysicalDeviceNestedCommandBufferFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68320     operator VkPhysicalDeviceNestedCommandBufferFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
68321     {
68322       return *reinterpret_cast<const VkPhysicalDeviceNestedCommandBufferFeaturesEXT*>( this );
68323     }
68324 
operator VkPhysicalDeviceNestedCommandBufferFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68325     operator VkPhysicalDeviceNestedCommandBufferFeaturesEXT &() VULKAN_HPP_NOEXCEPT
68326     {
68327       return *reinterpret_cast<VkPhysicalDeviceNestedCommandBufferFeaturesEXT*>( this );
68328     }
68329 
68330 #if defined( VULKAN_HPP_USE_REFLECT )
68331 #if 14 <= VULKAN_HPP_CPP_VERSION
68332     auto
68333 #else
68334     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
68335 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68336       reflect() const VULKAN_HPP_NOEXCEPT
68337     {
68338       return std::tie( sType, pNext, nestedCommandBuffer, nestedCommandBufferRendering, nestedCommandBufferSimultaneousUse );
68339     }
68340 #endif
68341 
68342 
68343 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68344 auto operator<=>( PhysicalDeviceNestedCommandBufferFeaturesEXT const & ) const = default;
68345 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68346     bool operator==( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68347     {
68348 #if defined( VULKAN_HPP_USE_REFLECT )
68349       return this->reflect() == rhs.reflect();
68350 #else
68351       return ( sType == rhs.sType )
68352           && ( pNext == rhs.pNext )
68353           && ( nestedCommandBuffer == rhs.nestedCommandBuffer )
68354           && ( nestedCommandBufferRendering == rhs.nestedCommandBufferRendering )
68355           && ( nestedCommandBufferSimultaneousUse == rhs.nestedCommandBufferSimultaneousUse );
68356 #endif
68357     }
68358 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT68359     bool operator!=( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68360     {
68361       return !operator==( rhs );
68362     }
68363 #endif
68364 
68365     public:
68366     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT;
68367     void * pNext = {};
68368     VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer = {};
68369     VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering = {};
68370     VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse = {};
68371 
68372   };
68373 
68374   template <>
68375   struct CppType<StructureType, StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT>
68376   {
68377     using Type = PhysicalDeviceNestedCommandBufferFeaturesEXT;
68378   };
68379 
68380   struct PhysicalDeviceNestedCommandBufferPropertiesEXT
68381   {
68382     using NativeType = VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
68383 
68384     static const bool allowDuplicate = false;
68385     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT;
68386 
68387 
68388 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceNestedCommandBufferPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT68389 VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferPropertiesEXT(uint32_t maxCommandBufferNestingLevel_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
68390     : pNext( pNext_ ), maxCommandBufferNestingLevel( maxCommandBufferNestingLevel_ )
68391     {}
68392 
68393     VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferPropertiesEXT( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68394 
PhysicalDeviceNestedCommandBufferPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT68395     PhysicalDeviceNestedCommandBufferPropertiesEXT( VkPhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68396       : PhysicalDeviceNestedCommandBufferPropertiesEXT( *reinterpret_cast<PhysicalDeviceNestedCommandBufferPropertiesEXT const *>( &rhs ) )
68397     {}
68398 
68399 
68400     PhysicalDeviceNestedCommandBufferPropertiesEXT & operator=( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68401 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
68402 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT68403     PhysicalDeviceNestedCommandBufferPropertiesEXT & operator=( VkPhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68404     {
68405       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT const *>( &rhs );
68406       return *this;
68407     }
68408 
68409 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT68410     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
68411     {
68412       pNext = pNext_;
68413       return *this;
68414     }
68415 
setMaxCommandBufferNestingLevelVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT68416     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferPropertiesEXT & setMaxCommandBufferNestingLevel( uint32_t maxCommandBufferNestingLevel_ ) VULKAN_HPP_NOEXCEPT
68417     {
68418       maxCommandBufferNestingLevel = maxCommandBufferNestingLevel_;
68419       return *this;
68420     }
68421 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
68422 
68423 
operator VkPhysicalDeviceNestedCommandBufferPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT68424     operator VkPhysicalDeviceNestedCommandBufferPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
68425     {
68426       return *reinterpret_cast<const VkPhysicalDeviceNestedCommandBufferPropertiesEXT*>( this );
68427     }
68428 
operator VkPhysicalDeviceNestedCommandBufferPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT68429     operator VkPhysicalDeviceNestedCommandBufferPropertiesEXT &() VULKAN_HPP_NOEXCEPT
68430     {
68431       return *reinterpret_cast<VkPhysicalDeviceNestedCommandBufferPropertiesEXT*>( this );
68432     }
68433 
68434 #if defined( VULKAN_HPP_USE_REFLECT )
68435 #if 14 <= VULKAN_HPP_CPP_VERSION
68436     auto
68437 #else
68438     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
68439 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT68440       reflect() const VULKAN_HPP_NOEXCEPT
68441     {
68442       return std::tie( sType, pNext, maxCommandBufferNestingLevel );
68443     }
68444 #endif
68445 
68446 
68447 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68448 auto operator<=>( PhysicalDeviceNestedCommandBufferPropertiesEXT const & ) const = default;
68449 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT68450     bool operator==( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68451     {
68452 #if defined( VULKAN_HPP_USE_REFLECT )
68453       return this->reflect() == rhs.reflect();
68454 #else
68455       return ( sType == rhs.sType )
68456           && ( pNext == rhs.pNext )
68457           && ( maxCommandBufferNestingLevel == rhs.maxCommandBufferNestingLevel );
68458 #endif
68459     }
68460 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT68461     bool operator!=( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68462     {
68463       return !operator==( rhs );
68464     }
68465 #endif
68466 
68467     public:
68468     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT;
68469     void * pNext = {};
68470     uint32_t maxCommandBufferNestingLevel = {};
68471 
68472   };
68473 
68474   template <>
68475   struct CppType<StructureType, StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT>
68476   {
68477     using Type = PhysicalDeviceNestedCommandBufferPropertiesEXT;
68478   };
68479 
68480   struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
68481   {
68482     using NativeType = VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
68483 
68484     static const bool allowDuplicate = false;
68485     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
68486 
68487 
68488 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceNonSeamlessCubeMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT68489 VULKAN_HPP_CONSTEXPR PhysicalDeviceNonSeamlessCubeMapFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
68490     : pNext( pNext_ ), nonSeamlessCubeMap( nonSeamlessCubeMap_ )
68491     {}
68492 
68493     VULKAN_HPP_CONSTEXPR PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68494 
PhysicalDeviceNonSeamlessCubeMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT68495     PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68496       : PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( *reinterpret_cast<PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const *>( &rhs ) )
68497     {}
68498 
68499 
68500     PhysicalDeviceNonSeamlessCubeMapFeaturesEXT & operator=( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68501 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
68502 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT68503     PhysicalDeviceNonSeamlessCubeMapFeaturesEXT & operator=( VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68504     {
68505       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const *>( &rhs );
68506       return *this;
68507     }
68508 
68509 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT68510     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
68511     {
68512       pNext = pNext_;
68513       return *this;
68514     }
68515 
setNonSeamlessCubeMapVULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT68516     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT & setNonSeamlessCubeMap( VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap_ ) VULKAN_HPP_NOEXCEPT
68517     {
68518       nonSeamlessCubeMap = nonSeamlessCubeMap_;
68519       return *this;
68520     }
68521 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
68522 
68523 
operator VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT68524     operator VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
68525     {
68526       return *reinterpret_cast<const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT*>( this );
68527     }
68528 
operator VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT68529     operator VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
68530     {
68531       return *reinterpret_cast<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT*>( this );
68532     }
68533 
68534 #if defined( VULKAN_HPP_USE_REFLECT )
68535 #if 14 <= VULKAN_HPP_CPP_VERSION
68536     auto
68537 #else
68538     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
68539 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT68540       reflect() const VULKAN_HPP_NOEXCEPT
68541     {
68542       return std::tie( sType, pNext, nonSeamlessCubeMap );
68543     }
68544 #endif
68545 
68546 
68547 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68548 auto operator<=>( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & ) const = default;
68549 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT68550     bool operator==( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68551     {
68552 #if defined( VULKAN_HPP_USE_REFLECT )
68553       return this->reflect() == rhs.reflect();
68554 #else
68555       return ( sType == rhs.sType )
68556           && ( pNext == rhs.pNext )
68557           && ( nonSeamlessCubeMap == rhs.nonSeamlessCubeMap );
68558 #endif
68559     }
68560 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT68561     bool operator!=( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68562     {
68563       return !operator==( rhs );
68564     }
68565 #endif
68566 
68567     public:
68568     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
68569     void * pNext = {};
68570     VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap = {};
68571 
68572   };
68573 
68574   template <>
68575   struct CppType<StructureType, StructureType::ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT>
68576   {
68577     using Type = PhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
68578   };
68579 
68580   struct PhysicalDeviceOpacityMicromapFeaturesEXT
68581   {
68582     using NativeType = VkPhysicalDeviceOpacityMicromapFeaturesEXT;
68583 
68584     static const bool allowDuplicate = false;
68585     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceOpacityMicromapFeaturesEXT;
68586 
68587 
68588 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceOpacityMicromapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68589 VULKAN_HPP_CONSTEXPR PhysicalDeviceOpacityMicromapFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 micromap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 micromapCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 micromapHostCommands_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
68590     : pNext( pNext_ ), micromap( micromap_ ), micromapCaptureReplay( micromapCaptureReplay_ ), micromapHostCommands( micromapHostCommands_ )
68591     {}
68592 
68593     VULKAN_HPP_CONSTEXPR PhysicalDeviceOpacityMicromapFeaturesEXT( PhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68594 
PhysicalDeviceOpacityMicromapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68595     PhysicalDeviceOpacityMicromapFeaturesEXT( VkPhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68596       : PhysicalDeviceOpacityMicromapFeaturesEXT( *reinterpret_cast<PhysicalDeviceOpacityMicromapFeaturesEXT const *>( &rhs ) )
68597     {}
68598 
68599 
68600     PhysicalDeviceOpacityMicromapFeaturesEXT & operator=( PhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68601 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
68602 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68603     PhysicalDeviceOpacityMicromapFeaturesEXT & operator=( VkPhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68604     {
68605       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT const *>( &rhs );
68606       return *this;
68607     }
68608 
68609 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68610     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpacityMicromapFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
68611     {
68612       pNext = pNext_;
68613       return *this;
68614     }
68615 
setMicromapVULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68616     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpacityMicromapFeaturesEXT & setMicromap( VULKAN_HPP_NAMESPACE::Bool32 micromap_ ) VULKAN_HPP_NOEXCEPT
68617     {
68618       micromap = micromap_;
68619       return *this;
68620     }
68621 
setMicromapCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68622     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpacityMicromapFeaturesEXT & setMicromapCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 micromapCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
68623     {
68624       micromapCaptureReplay = micromapCaptureReplay_;
68625       return *this;
68626     }
68627 
setMicromapHostCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68628     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpacityMicromapFeaturesEXT & setMicromapHostCommands( VULKAN_HPP_NAMESPACE::Bool32 micromapHostCommands_ ) VULKAN_HPP_NOEXCEPT
68629     {
68630       micromapHostCommands = micromapHostCommands_;
68631       return *this;
68632     }
68633 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
68634 
68635 
operator VkPhysicalDeviceOpacityMicromapFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68636     operator VkPhysicalDeviceOpacityMicromapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
68637     {
68638       return *reinterpret_cast<const VkPhysicalDeviceOpacityMicromapFeaturesEXT*>( this );
68639     }
68640 
operator VkPhysicalDeviceOpacityMicromapFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68641     operator VkPhysicalDeviceOpacityMicromapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
68642     {
68643       return *reinterpret_cast<VkPhysicalDeviceOpacityMicromapFeaturesEXT*>( this );
68644     }
68645 
68646 #if defined( VULKAN_HPP_USE_REFLECT )
68647 #if 14 <= VULKAN_HPP_CPP_VERSION
68648     auto
68649 #else
68650     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
68651 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68652       reflect() const VULKAN_HPP_NOEXCEPT
68653     {
68654       return std::tie( sType, pNext, micromap, micromapCaptureReplay, micromapHostCommands );
68655     }
68656 #endif
68657 
68658 
68659 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68660 auto operator<=>( PhysicalDeviceOpacityMicromapFeaturesEXT const & ) const = default;
68661 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68662     bool operator==( PhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68663     {
68664 #if defined( VULKAN_HPP_USE_REFLECT )
68665       return this->reflect() == rhs.reflect();
68666 #else
68667       return ( sType == rhs.sType )
68668           && ( pNext == rhs.pNext )
68669           && ( micromap == rhs.micromap )
68670           && ( micromapCaptureReplay == rhs.micromapCaptureReplay )
68671           && ( micromapHostCommands == rhs.micromapHostCommands );
68672 #endif
68673     }
68674 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT68675     bool operator!=( PhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68676     {
68677       return !operator==( rhs );
68678     }
68679 #endif
68680 
68681     public:
68682     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceOpacityMicromapFeaturesEXT;
68683     void * pNext = {};
68684     VULKAN_HPP_NAMESPACE::Bool32 micromap = {};
68685     VULKAN_HPP_NAMESPACE::Bool32 micromapCaptureReplay = {};
68686     VULKAN_HPP_NAMESPACE::Bool32 micromapHostCommands = {};
68687 
68688   };
68689 
68690   template <>
68691   struct CppType<StructureType, StructureType::ePhysicalDeviceOpacityMicromapFeaturesEXT>
68692   {
68693     using Type = PhysicalDeviceOpacityMicromapFeaturesEXT;
68694   };
68695 
68696   struct PhysicalDeviceOpacityMicromapPropertiesEXT
68697   {
68698     using NativeType = VkPhysicalDeviceOpacityMicromapPropertiesEXT;
68699 
68700     static const bool allowDuplicate = false;
68701     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceOpacityMicromapPropertiesEXT;
68702 
68703 
68704 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceOpacityMicromapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT68705 VULKAN_HPP_CONSTEXPR PhysicalDeviceOpacityMicromapPropertiesEXT(uint32_t maxOpacity2StateSubdivisionLevel_ = {}, uint32_t maxOpacity4StateSubdivisionLevel_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
68706     : pNext( pNext_ ), maxOpacity2StateSubdivisionLevel( maxOpacity2StateSubdivisionLevel_ ), maxOpacity4StateSubdivisionLevel( maxOpacity4StateSubdivisionLevel_ )
68707     {}
68708 
68709     VULKAN_HPP_CONSTEXPR PhysicalDeviceOpacityMicromapPropertiesEXT( PhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68710 
PhysicalDeviceOpacityMicromapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT68711     PhysicalDeviceOpacityMicromapPropertiesEXT( VkPhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68712       : PhysicalDeviceOpacityMicromapPropertiesEXT( *reinterpret_cast<PhysicalDeviceOpacityMicromapPropertiesEXT const *>( &rhs ) )
68713     {}
68714 
68715 
68716     PhysicalDeviceOpacityMicromapPropertiesEXT & operator=( PhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68717 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
68718 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT68719     PhysicalDeviceOpacityMicromapPropertiesEXT & operator=( VkPhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68720     {
68721       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT const *>( &rhs );
68722       return *this;
68723     }
68724 
68725 
operator VkPhysicalDeviceOpacityMicromapPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT68726     operator VkPhysicalDeviceOpacityMicromapPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
68727     {
68728       return *reinterpret_cast<const VkPhysicalDeviceOpacityMicromapPropertiesEXT*>( this );
68729     }
68730 
operator VkPhysicalDeviceOpacityMicromapPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT68731     operator VkPhysicalDeviceOpacityMicromapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
68732     {
68733       return *reinterpret_cast<VkPhysicalDeviceOpacityMicromapPropertiesEXT*>( this );
68734     }
68735 
68736 #if defined( VULKAN_HPP_USE_REFLECT )
68737 #if 14 <= VULKAN_HPP_CPP_VERSION
68738     auto
68739 #else
68740     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &>
68741 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT68742       reflect() const VULKAN_HPP_NOEXCEPT
68743     {
68744       return std::tie( sType, pNext, maxOpacity2StateSubdivisionLevel, maxOpacity4StateSubdivisionLevel );
68745     }
68746 #endif
68747 
68748 
68749 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68750 auto operator<=>( PhysicalDeviceOpacityMicromapPropertiesEXT const & ) const = default;
68751 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT68752     bool operator==( PhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68753     {
68754 #if defined( VULKAN_HPP_USE_REFLECT )
68755       return this->reflect() == rhs.reflect();
68756 #else
68757       return ( sType == rhs.sType )
68758           && ( pNext == rhs.pNext )
68759           && ( maxOpacity2StateSubdivisionLevel == rhs.maxOpacity2StateSubdivisionLevel )
68760           && ( maxOpacity4StateSubdivisionLevel == rhs.maxOpacity4StateSubdivisionLevel );
68761 #endif
68762     }
68763 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT68764     bool operator!=( PhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
68765     {
68766       return !operator==( rhs );
68767     }
68768 #endif
68769 
68770     public:
68771     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceOpacityMicromapPropertiesEXT;
68772     void * pNext = {};
68773     uint32_t maxOpacity2StateSubdivisionLevel = {};
68774     uint32_t maxOpacity4StateSubdivisionLevel = {};
68775 
68776   };
68777 
68778   template <>
68779   struct CppType<StructureType, StructureType::ePhysicalDeviceOpacityMicromapPropertiesEXT>
68780   {
68781     using Type = PhysicalDeviceOpacityMicromapPropertiesEXT;
68782   };
68783 
68784   struct PhysicalDeviceOpticalFlowFeaturesNV
68785   {
68786     using NativeType = VkPhysicalDeviceOpticalFlowFeaturesNV;
68787 
68788     static const bool allowDuplicate = false;
68789     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceOpticalFlowFeaturesNV;
68790 
68791 
68792 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceOpticalFlowFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV68793 VULKAN_HPP_CONSTEXPR PhysicalDeviceOpticalFlowFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 opticalFlow_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
68794     : pNext( pNext_ ), opticalFlow( opticalFlow_ )
68795     {}
68796 
68797     VULKAN_HPP_CONSTEXPR PhysicalDeviceOpticalFlowFeaturesNV( PhysicalDeviceOpticalFlowFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68798 
PhysicalDeviceOpticalFlowFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV68799     PhysicalDeviceOpticalFlowFeaturesNV( VkPhysicalDeviceOpticalFlowFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68800       : PhysicalDeviceOpticalFlowFeaturesNV( *reinterpret_cast<PhysicalDeviceOpticalFlowFeaturesNV const *>( &rhs ) )
68801     {}
68802 
68803 
68804     PhysicalDeviceOpticalFlowFeaturesNV & operator=( PhysicalDeviceOpticalFlowFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68805 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
68806 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV68807     PhysicalDeviceOpticalFlowFeaturesNV & operator=( VkPhysicalDeviceOpticalFlowFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68808     {
68809       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV const *>( &rhs );
68810       return *this;
68811     }
68812 
68813 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV68814     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpticalFlowFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
68815     {
68816       pNext = pNext_;
68817       return *this;
68818     }
68819 
setOpticalFlowVULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV68820     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpticalFlowFeaturesNV & setOpticalFlow( VULKAN_HPP_NAMESPACE::Bool32 opticalFlow_ ) VULKAN_HPP_NOEXCEPT
68821     {
68822       opticalFlow = opticalFlow_;
68823       return *this;
68824     }
68825 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
68826 
68827 
operator VkPhysicalDeviceOpticalFlowFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV68828     operator VkPhysicalDeviceOpticalFlowFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
68829     {
68830       return *reinterpret_cast<const VkPhysicalDeviceOpticalFlowFeaturesNV*>( this );
68831     }
68832 
operator VkPhysicalDeviceOpticalFlowFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV68833     operator VkPhysicalDeviceOpticalFlowFeaturesNV &() VULKAN_HPP_NOEXCEPT
68834     {
68835       return *reinterpret_cast<VkPhysicalDeviceOpticalFlowFeaturesNV*>( this );
68836     }
68837 
68838 #if defined( VULKAN_HPP_USE_REFLECT )
68839 #if 14 <= VULKAN_HPP_CPP_VERSION
68840     auto
68841 #else
68842     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
68843 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV68844       reflect() const VULKAN_HPP_NOEXCEPT
68845     {
68846       return std::tie( sType, pNext, opticalFlow );
68847     }
68848 #endif
68849 
68850 
68851 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68852 auto operator<=>( PhysicalDeviceOpticalFlowFeaturesNV const & ) const = default;
68853 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV68854     bool operator==( PhysicalDeviceOpticalFlowFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
68855     {
68856 #if defined( VULKAN_HPP_USE_REFLECT )
68857       return this->reflect() == rhs.reflect();
68858 #else
68859       return ( sType == rhs.sType )
68860           && ( pNext == rhs.pNext )
68861           && ( opticalFlow == rhs.opticalFlow );
68862 #endif
68863     }
68864 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV68865     bool operator!=( PhysicalDeviceOpticalFlowFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
68866     {
68867       return !operator==( rhs );
68868     }
68869 #endif
68870 
68871     public:
68872     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceOpticalFlowFeaturesNV;
68873     void * pNext = {};
68874     VULKAN_HPP_NAMESPACE::Bool32 opticalFlow = {};
68875 
68876   };
68877 
68878   template <>
68879   struct CppType<StructureType, StructureType::ePhysicalDeviceOpticalFlowFeaturesNV>
68880   {
68881     using Type = PhysicalDeviceOpticalFlowFeaturesNV;
68882   };
68883 
68884   struct PhysicalDeviceOpticalFlowPropertiesNV
68885   {
68886     using NativeType = VkPhysicalDeviceOpticalFlowPropertiesNV;
68887 
68888     static const bool allowDuplicate = false;
68889     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceOpticalFlowPropertiesNV;
68890 
68891 
68892 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceOpticalFlowPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV68893 VULKAN_HPP_CONSTEXPR PhysicalDeviceOpticalFlowPropertiesNV(VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV supportedOutputGridSizes_ = {}, VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV supportedHintGridSizes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 hintSupported_ = {}, VULKAN_HPP_NAMESPACE::Bool32 costSupported_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bidirectionalFlowSupported_ = {}, VULKAN_HPP_NAMESPACE::Bool32 globalFlowSupported_ = {}, uint32_t minWidth_ = {}, uint32_t minHeight_ = {}, uint32_t maxWidth_ = {}, uint32_t maxHeight_ = {}, uint32_t maxNumRegionsOfInterest_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
68894     : pNext( pNext_ ), supportedOutputGridSizes( supportedOutputGridSizes_ ), supportedHintGridSizes( supportedHintGridSizes_ ), hintSupported( hintSupported_ ), costSupported( costSupported_ ), bidirectionalFlowSupported( bidirectionalFlowSupported_ ), globalFlowSupported( globalFlowSupported_ ), minWidth( minWidth_ ), minHeight( minHeight_ ), maxWidth( maxWidth_ ), maxHeight( maxHeight_ ), maxNumRegionsOfInterest( maxNumRegionsOfInterest_ )
68895     {}
68896 
68897     VULKAN_HPP_CONSTEXPR PhysicalDeviceOpticalFlowPropertiesNV( PhysicalDeviceOpticalFlowPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68898 
PhysicalDeviceOpticalFlowPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV68899     PhysicalDeviceOpticalFlowPropertiesNV( VkPhysicalDeviceOpticalFlowPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68900       : PhysicalDeviceOpticalFlowPropertiesNV( *reinterpret_cast<PhysicalDeviceOpticalFlowPropertiesNV const *>( &rhs ) )
68901     {}
68902 
68903 
68904     PhysicalDeviceOpticalFlowPropertiesNV & operator=( PhysicalDeviceOpticalFlowPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68905 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
68906 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV68907     PhysicalDeviceOpticalFlowPropertiesNV & operator=( VkPhysicalDeviceOpticalFlowPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68908     {
68909       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV const *>( &rhs );
68910       return *this;
68911     }
68912 
68913 
operator VkPhysicalDeviceOpticalFlowPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV68914     operator VkPhysicalDeviceOpticalFlowPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
68915     {
68916       return *reinterpret_cast<const VkPhysicalDeviceOpticalFlowPropertiesNV*>( this );
68917     }
68918 
operator VkPhysicalDeviceOpticalFlowPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV68919     operator VkPhysicalDeviceOpticalFlowPropertiesNV &() VULKAN_HPP_NOEXCEPT
68920     {
68921       return *reinterpret_cast<VkPhysicalDeviceOpticalFlowPropertiesNV*>( this );
68922     }
68923 
68924 #if defined( VULKAN_HPP_USE_REFLECT )
68925 #if 14 <= VULKAN_HPP_CPP_VERSION
68926     auto
68927 #else
68928     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV const &, VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
68929 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV68930       reflect() const VULKAN_HPP_NOEXCEPT
68931     {
68932       return std::tie( sType, pNext, supportedOutputGridSizes, supportedHintGridSizes, hintSupported, costSupported, bidirectionalFlowSupported, globalFlowSupported, minWidth, minHeight, maxWidth, maxHeight, maxNumRegionsOfInterest );
68933     }
68934 #endif
68935 
68936 
68937 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68938 auto operator<=>( PhysicalDeviceOpticalFlowPropertiesNV const & ) const = default;
68939 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV68940     bool operator==( PhysicalDeviceOpticalFlowPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
68941     {
68942 #if defined( VULKAN_HPP_USE_REFLECT )
68943       return this->reflect() == rhs.reflect();
68944 #else
68945       return ( sType == rhs.sType )
68946           && ( pNext == rhs.pNext )
68947           && ( supportedOutputGridSizes == rhs.supportedOutputGridSizes )
68948           && ( supportedHintGridSizes == rhs.supportedHintGridSizes )
68949           && ( hintSupported == rhs.hintSupported )
68950           && ( costSupported == rhs.costSupported )
68951           && ( bidirectionalFlowSupported == rhs.bidirectionalFlowSupported )
68952           && ( globalFlowSupported == rhs.globalFlowSupported )
68953           && ( minWidth == rhs.minWidth )
68954           && ( minHeight == rhs.minHeight )
68955           && ( maxWidth == rhs.maxWidth )
68956           && ( maxHeight == rhs.maxHeight )
68957           && ( maxNumRegionsOfInterest == rhs.maxNumRegionsOfInterest );
68958 #endif
68959     }
68960 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV68961     bool operator!=( PhysicalDeviceOpticalFlowPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
68962     {
68963       return !operator==( rhs );
68964     }
68965 #endif
68966 
68967     public:
68968     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceOpticalFlowPropertiesNV;
68969     void * pNext = {};
68970     VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV supportedOutputGridSizes = {};
68971     VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV supportedHintGridSizes = {};
68972     VULKAN_HPP_NAMESPACE::Bool32 hintSupported = {};
68973     VULKAN_HPP_NAMESPACE::Bool32 costSupported = {};
68974     VULKAN_HPP_NAMESPACE::Bool32 bidirectionalFlowSupported = {};
68975     VULKAN_HPP_NAMESPACE::Bool32 globalFlowSupported = {};
68976     uint32_t minWidth = {};
68977     uint32_t minHeight = {};
68978     uint32_t maxWidth = {};
68979     uint32_t maxHeight = {};
68980     uint32_t maxNumRegionsOfInterest = {};
68981 
68982   };
68983 
68984   template <>
68985   struct CppType<StructureType, StructureType::ePhysicalDeviceOpticalFlowPropertiesNV>
68986   {
68987     using Type = PhysicalDeviceOpticalFlowPropertiesNV;
68988   };
68989 
68990   struct PhysicalDevicePCIBusInfoPropertiesEXT
68991   {
68992     using NativeType = VkPhysicalDevicePCIBusInfoPropertiesEXT;
68993 
68994     static const bool allowDuplicate = false;
68995     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
68996 
68997 
68998 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT68999 VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT(uint32_t pciDomain_ = {}, uint32_t pciBus_ = {}, uint32_t pciDevice_ = {}, uint32_t pciFunction_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69000     : pNext( pNext_ ), pciDomain( pciDomain_ ), pciBus( pciBus_ ), pciDevice( pciDevice_ ), pciFunction( pciFunction_ )
69001     {}
69002 
69003     VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69004 
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT69005     PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69006       : PhysicalDevicePCIBusInfoPropertiesEXT( *reinterpret_cast<PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs ) )
69007     {}
69008 
69009 
69010     PhysicalDevicePCIBusInfoPropertiesEXT & operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69011 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69012 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT69013     PhysicalDevicePCIBusInfoPropertiesEXT & operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69014     {
69015       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs );
69016       return *this;
69017     }
69018 
69019 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT69020     operator VkPhysicalDevicePCIBusInfoPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
69021     {
69022       return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
69023     }
69024 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT69025     operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT
69026     {
69027       return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
69028     }
69029 
69030 #if defined( VULKAN_HPP_USE_REFLECT )
69031 #if 14 <= VULKAN_HPP_CPP_VERSION
69032     auto
69033 #else
69034     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
69035 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT69036       reflect() const VULKAN_HPP_NOEXCEPT
69037     {
69038       return std::tie( sType, pNext, pciDomain, pciBus, pciDevice, pciFunction );
69039     }
69040 #endif
69041 
69042 
69043 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69044 auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const & ) const = default;
69045 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT69046     bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69047     {
69048 #if defined( VULKAN_HPP_USE_REFLECT )
69049       return this->reflect() == rhs.reflect();
69050 #else
69051       return ( sType == rhs.sType )
69052           && ( pNext == rhs.pNext )
69053           && ( pciDomain == rhs.pciDomain )
69054           && ( pciBus == rhs.pciBus )
69055           && ( pciDevice == rhs.pciDevice )
69056           && ( pciFunction == rhs.pciFunction );
69057 #endif
69058     }
69059 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT69060     bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69061     {
69062       return !operator==( rhs );
69063     }
69064 #endif
69065 
69066     public:
69067     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
69068     void * pNext = {};
69069     uint32_t pciDomain = {};
69070     uint32_t pciBus = {};
69071     uint32_t pciDevice = {};
69072     uint32_t pciFunction = {};
69073 
69074   };
69075 
69076   template <>
69077   struct CppType<StructureType, StructureType::ePhysicalDevicePciBusInfoPropertiesEXT>
69078   {
69079     using Type = PhysicalDevicePCIBusInfoPropertiesEXT;
69080   };
69081 
69082   struct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
69083   {
69084     using NativeType = VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
69085 
69086     static const bool allowDuplicate = false;
69087     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
69088 
69089 
69090 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePageableDeviceLocalMemoryFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT69091 VULKAN_HPP_CONSTEXPR PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69092     : pNext( pNext_ ), pageableDeviceLocalMemory( pageableDeviceLocalMemory_ )
69093     {}
69094 
69095     VULKAN_HPP_CONSTEXPR PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69096 
PhysicalDevicePageableDeviceLocalMemoryFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT69097     PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69098       : PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( *reinterpret_cast<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const *>( &rhs ) )
69099     {}
69100 
69101 
69102     PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT & operator=( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69103 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69104 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT69105     PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT & operator=( VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69106     {
69107       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const *>( &rhs );
69108       return *this;
69109     }
69110 
69111 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT69112     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
69113     {
69114       pNext = pNext_;
69115       return *this;
69116     }
69117 
setPageableDeviceLocalMemoryVULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT69118     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT & setPageableDeviceLocalMemory( VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory_ ) VULKAN_HPP_NOEXCEPT
69119     {
69120       pageableDeviceLocalMemory = pageableDeviceLocalMemory_;
69121       return *this;
69122     }
69123 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
69124 
69125 
operator VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT69126     operator VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
69127     {
69128       return *reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>( this );
69129     }
69130 
operator VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT69131     operator VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
69132     {
69133       return *reinterpret_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>( this );
69134     }
69135 
69136 #if defined( VULKAN_HPP_USE_REFLECT )
69137 #if 14 <= VULKAN_HPP_CPP_VERSION
69138     auto
69139 #else
69140     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
69141 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT69142       reflect() const VULKAN_HPP_NOEXCEPT
69143     {
69144       return std::tie( sType, pNext, pageableDeviceLocalMemory );
69145     }
69146 #endif
69147 
69148 
69149 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69150 auto operator<=>( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & ) const = default;
69151 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT69152     bool operator==( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69153     {
69154 #if defined( VULKAN_HPP_USE_REFLECT )
69155       return this->reflect() == rhs.reflect();
69156 #else
69157       return ( sType == rhs.sType )
69158           && ( pNext == rhs.pNext )
69159           && ( pageableDeviceLocalMemory == rhs.pageableDeviceLocalMemory );
69160 #endif
69161     }
69162 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT69163     bool operator!=( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69164     {
69165       return !operator==( rhs );
69166     }
69167 #endif
69168 
69169     public:
69170     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
69171     void * pNext = {};
69172     VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory = {};
69173 
69174   };
69175 
69176   template <>
69177   struct CppType<StructureType, StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>
69178   {
69179     using Type = PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
69180   };
69181 
69182   struct PhysicalDevicePerformanceQueryFeaturesKHR
69183   {
69184     using NativeType = VkPhysicalDevicePerformanceQueryFeaturesKHR;
69185 
69186     static const bool allowDuplicate = false;
69187     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
69188 
69189 
69190 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69191 VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69192     : pNext( pNext_ ), performanceCounterQueryPools( performanceCounterQueryPools_ ), performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ )
69193     {}
69194 
69195     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69196 
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69197     PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69198       : PhysicalDevicePerformanceQueryFeaturesKHR( *reinterpret_cast<PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs ) )
69199     {}
69200 
69201 
69202     PhysicalDevicePerformanceQueryFeaturesKHR & operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69203 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69204 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69205     PhysicalDevicePerformanceQueryFeaturesKHR & operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69206     {
69207       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs );
69208       return *this;
69209     }
69210 
69211 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69212     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
69213     {
69214       pNext = pNext_;
69215       return *this;
69216     }
69217 
setPerformanceCounterQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69218     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT
69219     {
69220       performanceCounterQueryPools = performanceCounterQueryPools_;
69221       return *this;
69222     }
69223 
setPerformanceCounterMultipleQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69224     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT
69225     {
69226       performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_;
69227       return *this;
69228     }
69229 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
69230 
69231 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69232     operator VkPhysicalDevicePerformanceQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
69233     {
69234       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
69235     }
69236 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69237     operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
69238     {
69239       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
69240     }
69241 
69242 #if defined( VULKAN_HPP_USE_REFLECT )
69243 #if 14 <= VULKAN_HPP_CPP_VERSION
69244     auto
69245 #else
69246     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
69247 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69248       reflect() const VULKAN_HPP_NOEXCEPT
69249     {
69250       return std::tie( sType, pNext, performanceCounterQueryPools, performanceCounterMultipleQueryPools );
69251     }
69252 #endif
69253 
69254 
69255 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69256 auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const & ) const = default;
69257 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69258     bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
69259     {
69260 #if defined( VULKAN_HPP_USE_REFLECT )
69261       return this->reflect() == rhs.reflect();
69262 #else
69263       return ( sType == rhs.sType )
69264           && ( pNext == rhs.pNext )
69265           && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools )
69266           && ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools );
69267 #endif
69268     }
69269 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR69270     bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
69271     {
69272       return !operator==( rhs );
69273     }
69274 #endif
69275 
69276     public:
69277     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
69278     void * pNext = {};
69279     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {};
69280     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {};
69281 
69282   };
69283 
69284   template <>
69285   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR>
69286   {
69287     using Type = PhysicalDevicePerformanceQueryFeaturesKHR;
69288   };
69289 
69290   struct PhysicalDevicePerformanceQueryPropertiesKHR
69291   {
69292     using NativeType = VkPhysicalDevicePerformanceQueryPropertiesKHR;
69293 
69294     static const bool allowDuplicate = false;
69295     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
69296 
69297 
69298 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR69299 VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69300     : pNext( pNext_ ), allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ )
69301     {}
69302 
69303     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69304 
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR69305     PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69306       : PhysicalDevicePerformanceQueryPropertiesKHR( *reinterpret_cast<PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs ) )
69307     {}
69308 
69309 
69310     PhysicalDevicePerformanceQueryPropertiesKHR & operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69311 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69312 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR69313     PhysicalDevicePerformanceQueryPropertiesKHR & operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69314     {
69315       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs );
69316       return *this;
69317     }
69318 
69319 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR69320     operator VkPhysicalDevicePerformanceQueryPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
69321     {
69322       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
69323     }
69324 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR69325     operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT
69326     {
69327       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
69328     }
69329 
69330 #if defined( VULKAN_HPP_USE_REFLECT )
69331 #if 14 <= VULKAN_HPP_CPP_VERSION
69332     auto
69333 #else
69334     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
69335 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR69336       reflect() const VULKAN_HPP_NOEXCEPT
69337     {
69338       return std::tie( sType, pNext, allowCommandBufferQueryCopies );
69339     }
69340 #endif
69341 
69342 
69343 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69344 auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const & ) const = default;
69345 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR69346     bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
69347     {
69348 #if defined( VULKAN_HPP_USE_REFLECT )
69349       return this->reflect() == rhs.reflect();
69350 #else
69351       return ( sType == rhs.sType )
69352           && ( pNext == rhs.pNext )
69353           && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies );
69354 #endif
69355     }
69356 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR69357     bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
69358     {
69359       return !operator==( rhs );
69360     }
69361 #endif
69362 
69363     public:
69364     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
69365     void * pNext = {};
69366     VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {};
69367 
69368   };
69369 
69370   template <>
69371   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR>
69372   {
69373     using Type = PhysicalDevicePerformanceQueryPropertiesKHR;
69374   };
69375 
69376   struct PhysicalDevicePipelineCreationCacheControlFeatures
69377   {
69378     using NativeType = VkPhysicalDevicePipelineCreationCacheControlFeatures;
69379 
69380     static const bool allowDuplicate = false;
69381     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeatures;
69382 
69383 
69384 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineCreationCacheControlFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures69385 VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeatures(VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69386     : pNext( pNext_ ), pipelineCreationCacheControl( pipelineCreationCacheControl_ )
69387     {}
69388 
69389     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeatures( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69390 
PhysicalDevicePipelineCreationCacheControlFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures69391     PhysicalDevicePipelineCreationCacheControlFeatures( VkPhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69392       : PhysicalDevicePipelineCreationCacheControlFeatures( *reinterpret_cast<PhysicalDevicePipelineCreationCacheControlFeatures const *>( &rhs ) )
69393     {}
69394 
69395 
69396     PhysicalDevicePipelineCreationCacheControlFeatures & operator=( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69397 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69398 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures69399     PhysicalDevicePipelineCreationCacheControlFeatures & operator=( VkPhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69400     {
69401       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures const *>( &rhs );
69402       return *this;
69403     }
69404 
69405 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures69406     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineCreationCacheControlFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
69407     {
69408       pNext = pNext_;
69409       return *this;
69410     }
69411 
setPipelineCreationCacheControlVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures69412     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineCreationCacheControlFeatures & setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
69413     {
69414       pipelineCreationCacheControl = pipelineCreationCacheControl_;
69415       return *this;
69416     }
69417 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
69418 
69419 
operator VkPhysicalDevicePipelineCreationCacheControlFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures69420     operator VkPhysicalDevicePipelineCreationCacheControlFeatures const &() const VULKAN_HPP_NOEXCEPT
69421     {
69422       return *reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>( this );
69423     }
69424 
operator VkPhysicalDevicePipelineCreationCacheControlFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures69425     operator VkPhysicalDevicePipelineCreationCacheControlFeatures &() VULKAN_HPP_NOEXCEPT
69426     {
69427       return *reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeatures*>( this );
69428     }
69429 
69430 #if defined( VULKAN_HPP_USE_REFLECT )
69431 #if 14 <= VULKAN_HPP_CPP_VERSION
69432     auto
69433 #else
69434     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
69435 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures69436       reflect() const VULKAN_HPP_NOEXCEPT
69437     {
69438       return std::tie( sType, pNext, pipelineCreationCacheControl );
69439     }
69440 #endif
69441 
69442 
69443 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69444 auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeatures const & ) const = default;
69445 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures69446     bool operator==( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
69447     {
69448 #if defined( VULKAN_HPP_USE_REFLECT )
69449       return this->reflect() == rhs.reflect();
69450 #else
69451       return ( sType == rhs.sType )
69452           && ( pNext == rhs.pNext )
69453           && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl );
69454 #endif
69455     }
69456 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures69457     bool operator!=( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
69458     {
69459       return !operator==( rhs );
69460     }
69461 #endif
69462 
69463     public:
69464     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeatures;
69465     void * pNext = {};
69466     VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
69467 
69468   };
69469 
69470   template <>
69471   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineCreationCacheControlFeatures>
69472   {
69473     using Type = PhysicalDevicePipelineCreationCacheControlFeatures;
69474   };
69475   using PhysicalDevicePipelineCreationCacheControlFeaturesEXT = PhysicalDevicePipelineCreationCacheControlFeatures;
69476 
69477   struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
69478   {
69479     using NativeType = VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
69480 
69481     static const bool allowDuplicate = false;
69482     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
69483 
69484 
69485 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR69486 VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69487     : pNext( pNext_ ), pipelineExecutableInfo( pipelineExecutableInfo_ )
69488     {}
69489 
69490     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69491 
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR69492     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69493       : PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( *reinterpret_cast<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs ) )
69494     {}
69495 
69496 
69497     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69498 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69499 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR69500     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69501     {
69502       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs );
69503       return *this;
69504     }
69505 
69506 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR69507     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
69508     {
69509       pNext = pNext_;
69510       return *this;
69511     }
69512 
setPipelineExecutableInfoVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR69513     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT
69514     {
69515       pipelineExecutableInfo = pipelineExecutableInfo_;
69516       return *this;
69517     }
69518 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
69519 
69520 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR69521     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
69522     {
69523       return *reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
69524     }
69525 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR69526     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT
69527     {
69528       return *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
69529     }
69530 
69531 #if defined( VULKAN_HPP_USE_REFLECT )
69532 #if 14 <= VULKAN_HPP_CPP_VERSION
69533     auto
69534 #else
69535     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
69536 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR69537       reflect() const VULKAN_HPP_NOEXCEPT
69538     {
69539       return std::tie( sType, pNext, pipelineExecutableInfo );
69540     }
69541 #endif
69542 
69543 
69544 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69545 auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & ) const = default;
69546 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR69547     bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
69548     {
69549 #if defined( VULKAN_HPP_USE_REFLECT )
69550       return this->reflect() == rhs.reflect();
69551 #else
69552       return ( sType == rhs.sType )
69553           && ( pNext == rhs.pNext )
69554           && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo );
69555 #endif
69556     }
69557 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR69558     bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
69559     {
69560       return !operator==( rhs );
69561     }
69562 #endif
69563 
69564     public:
69565     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
69566     void * pNext = {};
69567     VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {};
69568 
69569   };
69570 
69571   template <>
69572   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR>
69573   {
69574     using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
69575   };
69576 
69577   struct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
69578   {
69579     using NativeType = VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
69580 
69581     static const bool allowDuplicate = false;
69582     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
69583 
69584 
69585 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT69586 VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pipelineLibraryGroupHandles_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69587     : pNext( pNext_ ), pipelineLibraryGroupHandles( pipelineLibraryGroupHandles_ )
69588     {}
69589 
69590     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69591 
PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT69592     PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69593       : PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const *>( &rhs ) )
69594     {}
69595 
69596 
69597     PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT & operator=( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69598 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69599 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT69600     PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT & operator=( VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69601     {
69602       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const *>( &rhs );
69603       return *this;
69604     }
69605 
69606 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT69607     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
69608     {
69609       pNext = pNext_;
69610       return *this;
69611     }
69612 
setPipelineLibraryGroupHandlesVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT69613     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT & setPipelineLibraryGroupHandles( VULKAN_HPP_NAMESPACE::Bool32 pipelineLibraryGroupHandles_ ) VULKAN_HPP_NOEXCEPT
69614     {
69615       pipelineLibraryGroupHandles = pipelineLibraryGroupHandles_;
69616       return *this;
69617     }
69618 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
69619 
69620 
operator VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT69621     operator VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
69622     {
69623       return *reinterpret_cast<const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT*>( this );
69624     }
69625 
operator VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT69626     operator VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT &() VULKAN_HPP_NOEXCEPT
69627     {
69628       return *reinterpret_cast<VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT*>( this );
69629     }
69630 
69631 #if defined( VULKAN_HPP_USE_REFLECT )
69632 #if 14 <= VULKAN_HPP_CPP_VERSION
69633     auto
69634 #else
69635     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
69636 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT69637       reflect() const VULKAN_HPP_NOEXCEPT
69638     {
69639       return std::tie( sType, pNext, pipelineLibraryGroupHandles );
69640     }
69641 #endif
69642 
69643 
69644 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69645 auto operator<=>( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & ) const = default;
69646 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT69647     bool operator==( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69648     {
69649 #if defined( VULKAN_HPP_USE_REFLECT )
69650       return this->reflect() == rhs.reflect();
69651 #else
69652       return ( sType == rhs.sType )
69653           && ( pNext == rhs.pNext )
69654           && ( pipelineLibraryGroupHandles == rhs.pipelineLibraryGroupHandles );
69655 #endif
69656     }
69657 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT69658     bool operator!=( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69659     {
69660       return !operator==( rhs );
69661     }
69662 #endif
69663 
69664     public:
69665     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
69666     void * pNext = {};
69667     VULKAN_HPP_NAMESPACE::Bool32 pipelineLibraryGroupHandles = {};
69668 
69669   };
69670 
69671   template <>
69672   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT>
69673   {
69674     using Type = PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
69675   };
69676 
69677   struct PhysicalDevicePipelinePropertiesFeaturesEXT
69678   {
69679     using NativeType = VkPhysicalDevicePipelinePropertiesFeaturesEXT;
69680 
69681     static const bool allowDuplicate = false;
69682     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT;
69683 
69684 
69685 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelinePropertiesFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT69686 VULKAN_HPP_CONSTEXPR PhysicalDevicePipelinePropertiesFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69687     : pNext( pNext_ ), pipelinePropertiesIdentifier( pipelinePropertiesIdentifier_ )
69688     {}
69689 
69690     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelinePropertiesFeaturesEXT( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69691 
PhysicalDevicePipelinePropertiesFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT69692     PhysicalDevicePipelinePropertiesFeaturesEXT( VkPhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69693       : PhysicalDevicePipelinePropertiesFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelinePropertiesFeaturesEXT const *>( &rhs ) )
69694     {}
69695 
69696 
69697     PhysicalDevicePipelinePropertiesFeaturesEXT & operator=( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69698 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69699 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT69700     PhysicalDevicePipelinePropertiesFeaturesEXT & operator=( VkPhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69701     {
69702       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT const *>( &rhs );
69703       return *this;
69704     }
69705 
69706 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT69707     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelinePropertiesFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
69708     {
69709       pNext = pNext_;
69710       return *this;
69711     }
69712 
setPipelinePropertiesIdentifierVULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT69713     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelinePropertiesFeaturesEXT & setPipelinePropertiesIdentifier( VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier_ ) VULKAN_HPP_NOEXCEPT
69714     {
69715       pipelinePropertiesIdentifier = pipelinePropertiesIdentifier_;
69716       return *this;
69717     }
69718 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
69719 
69720 
operator VkPhysicalDevicePipelinePropertiesFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT69721     operator VkPhysicalDevicePipelinePropertiesFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
69722     {
69723       return *reinterpret_cast<const VkPhysicalDevicePipelinePropertiesFeaturesEXT*>( this );
69724     }
69725 
operator VkPhysicalDevicePipelinePropertiesFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT69726     operator VkPhysicalDevicePipelinePropertiesFeaturesEXT &() VULKAN_HPP_NOEXCEPT
69727     {
69728       return *reinterpret_cast<VkPhysicalDevicePipelinePropertiesFeaturesEXT*>( this );
69729     }
69730 
69731 #if defined( VULKAN_HPP_USE_REFLECT )
69732 #if 14 <= VULKAN_HPP_CPP_VERSION
69733     auto
69734 #else
69735     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
69736 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT69737       reflect() const VULKAN_HPP_NOEXCEPT
69738     {
69739       return std::tie( sType, pNext, pipelinePropertiesIdentifier );
69740     }
69741 #endif
69742 
69743 
69744 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69745 auto operator<=>( PhysicalDevicePipelinePropertiesFeaturesEXT const & ) const = default;
69746 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT69747     bool operator==( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69748     {
69749 #if defined( VULKAN_HPP_USE_REFLECT )
69750       return this->reflect() == rhs.reflect();
69751 #else
69752       return ( sType == rhs.sType )
69753           && ( pNext == rhs.pNext )
69754           && ( pipelinePropertiesIdentifier == rhs.pipelinePropertiesIdentifier );
69755 #endif
69756     }
69757 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT69758     bool operator!=( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69759     {
69760       return !operator==( rhs );
69761     }
69762 #endif
69763 
69764     public:
69765     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT;
69766     void * pNext = {};
69767     VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier = {};
69768 
69769   };
69770 
69771   template <>
69772   struct CppType<StructureType, StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT>
69773   {
69774     using Type = PhysicalDevicePipelinePropertiesFeaturesEXT;
69775   };
69776 
69777   struct PhysicalDevicePipelineProtectedAccessFeaturesEXT
69778   {
69779     using NativeType = VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
69780 
69781     static const bool allowDuplicate = false;
69782     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineProtectedAccessFeaturesEXT;
69783 
69784 
69785 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineProtectedAccessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT69786 VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineProtectedAccessFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pipelineProtectedAccess_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69787     : pNext( pNext_ ), pipelineProtectedAccess( pipelineProtectedAccess_ )
69788     {}
69789 
69790     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineProtectedAccessFeaturesEXT( PhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69791 
PhysicalDevicePipelineProtectedAccessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT69792     PhysicalDevicePipelineProtectedAccessFeaturesEXT( VkPhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69793       : PhysicalDevicePipelineProtectedAccessFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelineProtectedAccessFeaturesEXT const *>( &rhs ) )
69794     {}
69795 
69796 
69797     PhysicalDevicePipelineProtectedAccessFeaturesEXT & operator=( PhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69798 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69799 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT69800     PhysicalDevicePipelineProtectedAccessFeaturesEXT & operator=( VkPhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69801     {
69802       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT const *>( &rhs );
69803       return *this;
69804     }
69805 
69806 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT69807     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineProtectedAccessFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
69808     {
69809       pNext = pNext_;
69810       return *this;
69811     }
69812 
setPipelineProtectedAccessVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT69813     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineProtectedAccessFeaturesEXT & setPipelineProtectedAccess( VULKAN_HPP_NAMESPACE::Bool32 pipelineProtectedAccess_ ) VULKAN_HPP_NOEXCEPT
69814     {
69815       pipelineProtectedAccess = pipelineProtectedAccess_;
69816       return *this;
69817     }
69818 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
69819 
69820 
operator VkPhysicalDevicePipelineProtectedAccessFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT69821     operator VkPhysicalDevicePipelineProtectedAccessFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
69822     {
69823       return *reinterpret_cast<const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT*>( this );
69824     }
69825 
operator VkPhysicalDevicePipelineProtectedAccessFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT69826     operator VkPhysicalDevicePipelineProtectedAccessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
69827     {
69828       return *reinterpret_cast<VkPhysicalDevicePipelineProtectedAccessFeaturesEXT*>( this );
69829     }
69830 
69831 #if defined( VULKAN_HPP_USE_REFLECT )
69832 #if 14 <= VULKAN_HPP_CPP_VERSION
69833     auto
69834 #else
69835     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
69836 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT69837       reflect() const VULKAN_HPP_NOEXCEPT
69838     {
69839       return std::tie( sType, pNext, pipelineProtectedAccess );
69840     }
69841 #endif
69842 
69843 
69844 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69845 auto operator<=>( PhysicalDevicePipelineProtectedAccessFeaturesEXT const & ) const = default;
69846 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT69847     bool operator==( PhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69848     {
69849 #if defined( VULKAN_HPP_USE_REFLECT )
69850       return this->reflect() == rhs.reflect();
69851 #else
69852       return ( sType == rhs.sType )
69853           && ( pNext == rhs.pNext )
69854           && ( pipelineProtectedAccess == rhs.pipelineProtectedAccess );
69855 #endif
69856     }
69857 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT69858     bool operator!=( PhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69859     {
69860       return !operator==( rhs );
69861     }
69862 #endif
69863 
69864     public:
69865     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineProtectedAccessFeaturesEXT;
69866     void * pNext = {};
69867     VULKAN_HPP_NAMESPACE::Bool32 pipelineProtectedAccess = {};
69868 
69869   };
69870 
69871   template <>
69872   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineProtectedAccessFeaturesEXT>
69873   {
69874     using Type = PhysicalDevicePipelineProtectedAccessFeaturesEXT;
69875   };
69876 
69877   struct PhysicalDevicePipelineRobustnessFeaturesEXT
69878   {
69879     using NativeType = VkPhysicalDevicePipelineRobustnessFeaturesEXT;
69880 
69881     static const bool allowDuplicate = false;
69882     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineRobustnessFeaturesEXT;
69883 
69884 
69885 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineRobustnessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT69886 VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineRobustnessFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69887     : pNext( pNext_ ), pipelineRobustness( pipelineRobustness_ )
69888     {}
69889 
69890     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineRobustnessFeaturesEXT( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69891 
PhysicalDevicePipelineRobustnessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT69892     PhysicalDevicePipelineRobustnessFeaturesEXT( VkPhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69893       : PhysicalDevicePipelineRobustnessFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelineRobustnessFeaturesEXT const *>( &rhs ) )
69894     {}
69895 
69896 
69897     PhysicalDevicePipelineRobustnessFeaturesEXT & operator=( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69898 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69899 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT69900     PhysicalDevicePipelineRobustnessFeaturesEXT & operator=( VkPhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69901     {
69902       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT const *>( &rhs );
69903       return *this;
69904     }
69905 
69906 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT69907     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineRobustnessFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
69908     {
69909       pNext = pNext_;
69910       return *this;
69911     }
69912 
setPipelineRobustnessVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT69913     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineRobustnessFeaturesEXT & setPipelineRobustness( VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness_ ) VULKAN_HPP_NOEXCEPT
69914     {
69915       pipelineRobustness = pipelineRobustness_;
69916       return *this;
69917     }
69918 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
69919 
69920 
operator VkPhysicalDevicePipelineRobustnessFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT69921     operator VkPhysicalDevicePipelineRobustnessFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
69922     {
69923       return *reinterpret_cast<const VkPhysicalDevicePipelineRobustnessFeaturesEXT*>( this );
69924     }
69925 
operator VkPhysicalDevicePipelineRobustnessFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT69926     operator VkPhysicalDevicePipelineRobustnessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
69927     {
69928       return *reinterpret_cast<VkPhysicalDevicePipelineRobustnessFeaturesEXT*>( this );
69929     }
69930 
69931 #if defined( VULKAN_HPP_USE_REFLECT )
69932 #if 14 <= VULKAN_HPP_CPP_VERSION
69933     auto
69934 #else
69935     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
69936 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT69937       reflect() const VULKAN_HPP_NOEXCEPT
69938     {
69939       return std::tie( sType, pNext, pipelineRobustness );
69940     }
69941 #endif
69942 
69943 
69944 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69945 auto operator<=>( PhysicalDevicePipelineRobustnessFeaturesEXT const & ) const = default;
69946 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT69947     bool operator==( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69948     {
69949 #if defined( VULKAN_HPP_USE_REFLECT )
69950       return this->reflect() == rhs.reflect();
69951 #else
69952       return ( sType == rhs.sType )
69953           && ( pNext == rhs.pNext )
69954           && ( pipelineRobustness == rhs.pipelineRobustness );
69955 #endif
69956     }
69957 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT69958     bool operator!=( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
69959     {
69960       return !operator==( rhs );
69961     }
69962 #endif
69963 
69964     public:
69965     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineRobustnessFeaturesEXT;
69966     void * pNext = {};
69967     VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness = {};
69968 
69969   };
69970 
69971   template <>
69972   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineRobustnessFeaturesEXT>
69973   {
69974     using Type = PhysicalDevicePipelineRobustnessFeaturesEXT;
69975   };
69976 
69977   struct PhysicalDevicePipelineRobustnessPropertiesEXT
69978   {
69979     using NativeType = VkPhysicalDevicePipelineRobustnessPropertiesEXT;
69980 
69981     static const bool allowDuplicate = false;
69982     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineRobustnessPropertiesEXT;
69983 
69984 
69985 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineRobustnessPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT69986 VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineRobustnessPropertiesEXT(VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault, VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault, VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault, VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT defaultRobustnessImages_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
69987     : pNext( pNext_ ), defaultRobustnessStorageBuffers( defaultRobustnessStorageBuffers_ ), defaultRobustnessUniformBuffers( defaultRobustnessUniformBuffers_ ), defaultRobustnessVertexInputs( defaultRobustnessVertexInputs_ ), defaultRobustnessImages( defaultRobustnessImages_ )
69988     {}
69989 
69990     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineRobustnessPropertiesEXT( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69991 
PhysicalDevicePipelineRobustnessPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT69992     PhysicalDevicePipelineRobustnessPropertiesEXT( VkPhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69993       : PhysicalDevicePipelineRobustnessPropertiesEXT( *reinterpret_cast<PhysicalDevicePipelineRobustnessPropertiesEXT const *>( &rhs ) )
69994     {}
69995 
69996 
69997     PhysicalDevicePipelineRobustnessPropertiesEXT & operator=( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69998 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
69999 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT70000     PhysicalDevicePipelineRobustnessPropertiesEXT & operator=( VkPhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70001     {
70002       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT const *>( &rhs );
70003       return *this;
70004     }
70005 
70006 
operator VkPhysicalDevicePipelineRobustnessPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT70007     operator VkPhysicalDevicePipelineRobustnessPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
70008     {
70009       return *reinterpret_cast<const VkPhysicalDevicePipelineRobustnessPropertiesEXT*>( this );
70010     }
70011 
operator VkPhysicalDevicePipelineRobustnessPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT70012     operator VkPhysicalDevicePipelineRobustnessPropertiesEXT &() VULKAN_HPP_NOEXCEPT
70013     {
70014       return *reinterpret_cast<VkPhysicalDevicePipelineRobustnessPropertiesEXT*>( this );
70015     }
70016 
70017 #if defined( VULKAN_HPP_USE_REFLECT )
70018 #if 14 <= VULKAN_HPP_CPP_VERSION
70019     auto
70020 #else
70021     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &, VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &, VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &, VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT const &>
70022 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT70023       reflect() const VULKAN_HPP_NOEXCEPT
70024     {
70025       return std::tie( sType, pNext, defaultRobustnessStorageBuffers, defaultRobustnessUniformBuffers, defaultRobustnessVertexInputs, defaultRobustnessImages );
70026     }
70027 #endif
70028 
70029 
70030 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70031 auto operator<=>( PhysicalDevicePipelineRobustnessPropertiesEXT const & ) const = default;
70032 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT70033     bool operator==( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
70034     {
70035 #if defined( VULKAN_HPP_USE_REFLECT )
70036       return this->reflect() == rhs.reflect();
70037 #else
70038       return ( sType == rhs.sType )
70039           && ( pNext == rhs.pNext )
70040           && ( defaultRobustnessStorageBuffers == rhs.defaultRobustnessStorageBuffers )
70041           && ( defaultRobustnessUniformBuffers == rhs.defaultRobustnessUniformBuffers )
70042           && ( defaultRobustnessVertexInputs == rhs.defaultRobustnessVertexInputs )
70043           && ( defaultRobustnessImages == rhs.defaultRobustnessImages );
70044 #endif
70045     }
70046 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT70047     bool operator!=( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
70048     {
70049       return !operator==( rhs );
70050     }
70051 #endif
70052 
70053     public:
70054     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineRobustnessPropertiesEXT;
70055     void * pNext = {};
70056     VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
70057     VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
70058     VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
70059     VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT defaultRobustnessImages = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault;
70060 
70061   };
70062 
70063   template <>
70064   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineRobustnessPropertiesEXT>
70065   {
70066     using Type = PhysicalDevicePipelineRobustnessPropertiesEXT;
70067   };
70068 
70069   struct PhysicalDevicePointClippingProperties
70070   {
70071     using NativeType = VkPhysicalDevicePointClippingProperties;
70072 
70073     static const bool allowDuplicate = false;
70074     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePointClippingProperties;
70075 
70076 
70077 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties70078 VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties(VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
70079     : pNext( pNext_ ), pointClippingBehavior( pointClippingBehavior_ )
70080     {}
70081 
70082     VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70083 
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties70084     PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70085       : PhysicalDevicePointClippingProperties( *reinterpret_cast<PhysicalDevicePointClippingProperties const *>( &rhs ) )
70086     {}
70087 
70088 
70089     PhysicalDevicePointClippingProperties & operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70090 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
70091 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties70092     PhysicalDevicePointClippingProperties & operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
70093     {
70094       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const *>( &rhs );
70095       return *this;
70096     }
70097 
70098 
operator VkPhysicalDevicePointClippingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties70099     operator VkPhysicalDevicePointClippingProperties const &() const VULKAN_HPP_NOEXCEPT
70100     {
70101       return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>( this );
70102     }
70103 
operator VkPhysicalDevicePointClippingProperties&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties70104     operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT
70105     {
70106       return *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>( this );
70107     }
70108 
70109 #if defined( VULKAN_HPP_USE_REFLECT )
70110 #if 14 <= VULKAN_HPP_CPP_VERSION
70111     auto
70112 #else
70113     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PointClippingBehavior const &>
70114 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties70115       reflect() const VULKAN_HPP_NOEXCEPT
70116     {
70117       return std::tie( sType, pNext, pointClippingBehavior );
70118     }
70119 #endif
70120 
70121 
70122 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70123 auto operator<=>( PhysicalDevicePointClippingProperties const & ) const = default;
70124 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties70125     bool operator==( PhysicalDevicePointClippingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
70126     {
70127 #if defined( VULKAN_HPP_USE_REFLECT )
70128       return this->reflect() == rhs.reflect();
70129 #else
70130       return ( sType == rhs.sType )
70131           && ( pNext == rhs.pNext )
70132           && ( pointClippingBehavior == rhs.pointClippingBehavior );
70133 #endif
70134     }
70135 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties70136     bool operator!=( PhysicalDevicePointClippingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
70137     {
70138       return !operator==( rhs );
70139     }
70140 #endif
70141 
70142     public:
70143     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties;
70144     void * pNext = {};
70145     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
70146 
70147   };
70148 
70149   template <>
70150   struct CppType<StructureType, StructureType::ePhysicalDevicePointClippingProperties>
70151   {
70152     using Type = PhysicalDevicePointClippingProperties;
70153   };
70154   using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
70155 
70156 #if defined( VK_ENABLE_BETA_EXTENSIONS )
70157   struct PhysicalDevicePortabilitySubsetFeaturesKHR
70158   {
70159     using NativeType = VkPhysicalDevicePortabilitySubsetFeaturesKHR;
70160 
70161     static const bool allowDuplicate = false;
70162     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
70163 
70164 
70165 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePortabilitySubsetFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70166 VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 events_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ = {}, VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ = {}, VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
70167     : pNext( pNext_ ), constantAlphaColorBlendFactors( constantAlphaColorBlendFactors_ ), events( events_ ), imageViewFormatReinterpretation( imageViewFormatReinterpretation_ ), imageViewFormatSwizzle( imageViewFormatSwizzle_ ), imageView2DOn3DImage( imageView2DOn3DImage_ ), multisampleArrayImage( multisampleArrayImage_ ), mutableComparisonSamplers( mutableComparisonSamplers_ ), pointPolygons( pointPolygons_ ), samplerMipLodBias( samplerMipLodBias_ ), separateStencilMaskRef( separateStencilMaskRef_ ), shaderSampleRateInterpolationFunctions( shaderSampleRateInterpolationFunctions_ ), tessellationIsolines( tessellationIsolines_ ), tessellationPointMode( tessellationPointMode_ ), triangleFans( triangleFans_ ), vertexAttributeAccessBeyondStride( vertexAttributeAccessBeyondStride_ )
70168     {}
70169 
70170     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70171 
PhysicalDevicePortabilitySubsetFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70172     PhysicalDevicePortabilitySubsetFeaturesKHR( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70173       : PhysicalDevicePortabilitySubsetFeaturesKHR( *reinterpret_cast<PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs ) )
70174     {}
70175 
70176 
70177     PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70178 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
70179 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70180     PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70181     {
70182       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs );
70183       return *this;
70184     }
70185 
70186 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70187     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
70188     {
70189       pNext = pNext_;
70190       return *this;
70191     }
70192 
setConstantAlphaColorBlendFactorsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70193     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT
70194     {
70195       constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_;
70196       return *this;
70197     }
70198 
setEventsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70199     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setEvents( VULKAN_HPP_NAMESPACE::Bool32 events_ ) VULKAN_HPP_NOEXCEPT
70200     {
70201       events = events_;
70202       return *this;
70203     }
70204 
setImageViewFormatReinterpretationVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70205     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT
70206     {
70207       imageViewFormatReinterpretation = imageViewFormatReinterpretation_;
70208       return *this;
70209     }
70210 
setImageViewFormatSwizzleVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70211     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT
70212     {
70213       imageViewFormatSwizzle = imageViewFormatSwizzle_;
70214       return *this;
70215     }
70216 
setImageView2DOn3DImageVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70217     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT
70218     {
70219       imageView2DOn3DImage = imageView2DOn3DImage_;
70220       return *this;
70221     }
70222 
setMultisampleArrayImageVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70223     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT
70224     {
70225       multisampleArrayImage = multisampleArrayImage_;
70226       return *this;
70227     }
70228 
setMutableComparisonSamplersVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70229     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT
70230     {
70231       mutableComparisonSamplers = mutableComparisonSamplers_;
70232       return *this;
70233     }
70234 
setPointPolygonsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70235     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setPointPolygons( VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ ) VULKAN_HPP_NOEXCEPT
70236     {
70237       pointPolygons = pointPolygons_;
70238       return *this;
70239     }
70240 
setSamplerMipLodBiasVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70241     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT
70242     {
70243       samplerMipLodBias = samplerMipLodBias_;
70244       return *this;
70245     }
70246 
setSeparateStencilMaskRefVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70247     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT
70248     {
70249       separateStencilMaskRef = separateStencilMaskRef_;
70250       return *this;
70251     }
70252 
setShaderSampleRateInterpolationFunctionsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70253     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setShaderSampleRateInterpolationFunctions( VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ ) VULKAN_HPP_NOEXCEPT
70254     {
70255       shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions_;
70256       return *this;
70257     }
70258 
setTessellationIsolinesVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70259     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT
70260     {
70261       tessellationIsolines = tessellationIsolines_;
70262       return *this;
70263     }
70264 
setTessellationPointModeVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70265     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT
70266     {
70267       tessellationPointMode = tessellationPointMode_;
70268       return *this;
70269     }
70270 
setTriangleFansVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70271     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setTriangleFans( VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ ) VULKAN_HPP_NOEXCEPT
70272     {
70273       triangleFans = triangleFans_;
70274       return *this;
70275     }
70276 
setVertexAttributeAccessBeyondStrideVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70277     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT
70278     {
70279       vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_;
70280       return *this;
70281     }
70282 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
70283 
70284 
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70285     operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
70286     {
70287       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>( this );
70288     }
70289 
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70290     operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT
70291     {
70292       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>( this );
70293     }
70294 
70295 #if defined( VULKAN_HPP_USE_REFLECT )
70296 #if 14 <= VULKAN_HPP_CPP_VERSION
70297     auto
70298 #else
70299     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
70300 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70301       reflect() const VULKAN_HPP_NOEXCEPT
70302     {
70303       return std::tie( sType, pNext, constantAlphaColorBlendFactors, events, imageViewFormatReinterpretation, imageViewFormatSwizzle, imageView2DOn3DImage, multisampleArrayImage, mutableComparisonSamplers, pointPolygons, samplerMipLodBias, separateStencilMaskRef, shaderSampleRateInterpolationFunctions, tessellationIsolines, tessellationPointMode, triangleFans, vertexAttributeAccessBeyondStride );
70304     }
70305 #endif
70306 
70307 
70308 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70309 auto operator<=>( PhysicalDevicePortabilitySubsetFeaturesKHR const & ) const = default;
70310 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70311     bool operator==( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
70312     {
70313 #if defined( VULKAN_HPP_USE_REFLECT )
70314       return this->reflect() == rhs.reflect();
70315 #else
70316       return ( sType == rhs.sType )
70317           && ( pNext == rhs.pNext )
70318           && ( constantAlphaColorBlendFactors == rhs.constantAlphaColorBlendFactors )
70319           && ( events == rhs.events )
70320           && ( imageViewFormatReinterpretation == rhs.imageViewFormatReinterpretation )
70321           && ( imageViewFormatSwizzle == rhs.imageViewFormatSwizzle )
70322           && ( imageView2DOn3DImage == rhs.imageView2DOn3DImage )
70323           && ( multisampleArrayImage == rhs.multisampleArrayImage )
70324           && ( mutableComparisonSamplers == rhs.mutableComparisonSamplers )
70325           && ( pointPolygons == rhs.pointPolygons )
70326           && ( samplerMipLodBias == rhs.samplerMipLodBias )
70327           && ( separateStencilMaskRef == rhs.separateStencilMaskRef )
70328           && ( shaderSampleRateInterpolationFunctions == rhs.shaderSampleRateInterpolationFunctions )
70329           && ( tessellationIsolines == rhs.tessellationIsolines )
70330           && ( tessellationPointMode == rhs.tessellationPointMode )
70331           && ( triangleFans == rhs.triangleFans )
70332           && ( vertexAttributeAccessBeyondStride == rhs.vertexAttributeAccessBeyondStride );
70333 #endif
70334     }
70335 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR70336     bool operator!=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
70337     {
70338       return !operator==( rhs );
70339     }
70340 #endif
70341 
70342     public:
70343     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
70344     void * pNext = {};
70345     VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors = {};
70346     VULKAN_HPP_NAMESPACE::Bool32 events = {};
70347     VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation = {};
70348     VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle = {};
70349     VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage = {};
70350     VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage = {};
70351     VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers = {};
70352     VULKAN_HPP_NAMESPACE::Bool32 pointPolygons = {};
70353     VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias = {};
70354     VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef = {};
70355     VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions = {};
70356     VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines = {};
70357     VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode = {};
70358     VULKAN_HPP_NAMESPACE::Bool32 triangleFans = {};
70359     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride = {};
70360 
70361   };
70362 
70363   template <>
70364   struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR>
70365   {
70366     using Type = PhysicalDevicePortabilitySubsetFeaturesKHR;
70367   };
70368 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
70369 
70370 #if defined( VK_ENABLE_BETA_EXTENSIONS )
70371   struct PhysicalDevicePortabilitySubsetPropertiesKHR
70372   {
70373     using NativeType = VkPhysicalDevicePortabilitySubsetPropertiesKHR;
70374 
70375     static const bool allowDuplicate = false;
70376     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
70377 
70378 
70379 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePortabilitySubsetPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR70380 VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR(uint32_t minVertexInputBindingStrideAlignment_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
70381     : pNext( pNext_ ), minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ )
70382     {}
70383 
70384     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70385 
PhysicalDevicePortabilitySubsetPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR70386     PhysicalDevicePortabilitySubsetPropertiesKHR( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70387       : PhysicalDevicePortabilitySubsetPropertiesKHR( *reinterpret_cast<PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs ) )
70388     {}
70389 
70390 
70391     PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70392 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
70393 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR70394     PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70395     {
70396       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs );
70397       return *this;
70398     }
70399 
70400 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR70401     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
70402     {
70403       pNext = pNext_;
70404       return *this;
70405     }
70406 
setMinVertexInputBindingStrideAlignmentVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR70407     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetPropertiesKHR & setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT
70408     {
70409       minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_;
70410       return *this;
70411     }
70412 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
70413 
70414 
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR70415     operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
70416     {
70417       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>( this );
70418     }
70419 
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR70420     operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT
70421     {
70422       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>( this );
70423     }
70424 
70425 #if defined( VULKAN_HPP_USE_REFLECT )
70426 #if 14 <= VULKAN_HPP_CPP_VERSION
70427     auto
70428 #else
70429     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
70430 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR70431       reflect() const VULKAN_HPP_NOEXCEPT
70432     {
70433       return std::tie( sType, pNext, minVertexInputBindingStrideAlignment );
70434     }
70435 #endif
70436 
70437 
70438 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70439 auto operator<=>( PhysicalDevicePortabilitySubsetPropertiesKHR const & ) const = default;
70440 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR70441     bool operator==( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
70442     {
70443 #if defined( VULKAN_HPP_USE_REFLECT )
70444       return this->reflect() == rhs.reflect();
70445 #else
70446       return ( sType == rhs.sType )
70447           && ( pNext == rhs.pNext )
70448           && ( minVertexInputBindingStrideAlignment == rhs.minVertexInputBindingStrideAlignment );
70449 #endif
70450     }
70451 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR70452     bool operator!=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
70453     {
70454       return !operator==( rhs );
70455     }
70456 #endif
70457 
70458     public:
70459     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
70460     void * pNext = {};
70461     uint32_t minVertexInputBindingStrideAlignment = {};
70462 
70463   };
70464 
70465   template <>
70466   struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR>
70467   {
70468     using Type = PhysicalDevicePortabilitySubsetPropertiesKHR;
70469   };
70470 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
70471 
70472   struct PhysicalDevicePresentBarrierFeaturesNV
70473   {
70474     using NativeType = VkPhysicalDevicePresentBarrierFeaturesNV;
70475 
70476     static const bool allowDuplicate = false;
70477     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePresentBarrierFeaturesNV;
70478 
70479 
70480 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePresentBarrierFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV70481 VULKAN_HPP_CONSTEXPR PhysicalDevicePresentBarrierFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 presentBarrier_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
70482     : pNext( pNext_ ), presentBarrier( presentBarrier_ )
70483     {}
70484 
70485     VULKAN_HPP_CONSTEXPR PhysicalDevicePresentBarrierFeaturesNV( PhysicalDevicePresentBarrierFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70486 
PhysicalDevicePresentBarrierFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV70487     PhysicalDevicePresentBarrierFeaturesNV( VkPhysicalDevicePresentBarrierFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70488       : PhysicalDevicePresentBarrierFeaturesNV( *reinterpret_cast<PhysicalDevicePresentBarrierFeaturesNV const *>( &rhs ) )
70489     {}
70490 
70491 
70492     PhysicalDevicePresentBarrierFeaturesNV & operator=( PhysicalDevicePresentBarrierFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70493 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
70494 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV70495     PhysicalDevicePresentBarrierFeaturesNV & operator=( VkPhysicalDevicePresentBarrierFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70496     {
70497       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV const *>( &rhs );
70498       return *this;
70499     }
70500 
70501 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV70502     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentBarrierFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
70503     {
70504       pNext = pNext_;
70505       return *this;
70506     }
70507 
setPresentBarrierVULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV70508     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentBarrierFeaturesNV & setPresentBarrier( VULKAN_HPP_NAMESPACE::Bool32 presentBarrier_ ) VULKAN_HPP_NOEXCEPT
70509     {
70510       presentBarrier = presentBarrier_;
70511       return *this;
70512     }
70513 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
70514 
70515 
operator VkPhysicalDevicePresentBarrierFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV70516     operator VkPhysicalDevicePresentBarrierFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
70517     {
70518       return *reinterpret_cast<const VkPhysicalDevicePresentBarrierFeaturesNV*>( this );
70519     }
70520 
operator VkPhysicalDevicePresentBarrierFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV70521     operator VkPhysicalDevicePresentBarrierFeaturesNV &() VULKAN_HPP_NOEXCEPT
70522     {
70523       return *reinterpret_cast<VkPhysicalDevicePresentBarrierFeaturesNV*>( this );
70524     }
70525 
70526 #if defined( VULKAN_HPP_USE_REFLECT )
70527 #if 14 <= VULKAN_HPP_CPP_VERSION
70528     auto
70529 #else
70530     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
70531 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV70532       reflect() const VULKAN_HPP_NOEXCEPT
70533     {
70534       return std::tie( sType, pNext, presentBarrier );
70535     }
70536 #endif
70537 
70538 
70539 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70540 auto operator<=>( PhysicalDevicePresentBarrierFeaturesNV const & ) const = default;
70541 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV70542     bool operator==( PhysicalDevicePresentBarrierFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
70543     {
70544 #if defined( VULKAN_HPP_USE_REFLECT )
70545       return this->reflect() == rhs.reflect();
70546 #else
70547       return ( sType == rhs.sType )
70548           && ( pNext == rhs.pNext )
70549           && ( presentBarrier == rhs.presentBarrier );
70550 #endif
70551     }
70552 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV70553     bool operator!=( PhysicalDevicePresentBarrierFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
70554     {
70555       return !operator==( rhs );
70556     }
70557 #endif
70558 
70559     public:
70560     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentBarrierFeaturesNV;
70561     void * pNext = {};
70562     VULKAN_HPP_NAMESPACE::Bool32 presentBarrier = {};
70563 
70564   };
70565 
70566   template <>
70567   struct CppType<StructureType, StructureType::ePhysicalDevicePresentBarrierFeaturesNV>
70568   {
70569     using Type = PhysicalDevicePresentBarrierFeaturesNV;
70570   };
70571 
70572   struct PhysicalDevicePresentIdFeaturesKHR
70573   {
70574     using NativeType = VkPhysicalDevicePresentIdFeaturesKHR;
70575 
70576     static const bool allowDuplicate = false;
70577     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePresentIdFeaturesKHR;
70578 
70579 
70580 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePresentIdFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR70581 VULKAN_HPP_CONSTEXPR PhysicalDevicePresentIdFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 presentId_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
70582     : pNext( pNext_ ), presentId( presentId_ )
70583     {}
70584 
70585     VULKAN_HPP_CONSTEXPR PhysicalDevicePresentIdFeaturesKHR( PhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70586 
PhysicalDevicePresentIdFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR70587     PhysicalDevicePresentIdFeaturesKHR( VkPhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70588       : PhysicalDevicePresentIdFeaturesKHR( *reinterpret_cast<PhysicalDevicePresentIdFeaturesKHR const *>( &rhs ) )
70589     {}
70590 
70591 
70592     PhysicalDevicePresentIdFeaturesKHR & operator=( PhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70593 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
70594 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR70595     PhysicalDevicePresentIdFeaturesKHR & operator=( VkPhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70596     {
70597       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR const *>( &rhs );
70598       return *this;
70599     }
70600 
70601 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR70602     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentIdFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
70603     {
70604       pNext = pNext_;
70605       return *this;
70606     }
70607 
setPresentIdVULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR70608     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentIdFeaturesKHR & setPresentId( VULKAN_HPP_NAMESPACE::Bool32 presentId_ ) VULKAN_HPP_NOEXCEPT
70609     {
70610       presentId = presentId_;
70611       return *this;
70612     }
70613 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
70614 
70615 
operator VkPhysicalDevicePresentIdFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR70616     operator VkPhysicalDevicePresentIdFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
70617     {
70618       return *reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR*>( this );
70619     }
70620 
operator VkPhysicalDevicePresentIdFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR70621     operator VkPhysicalDevicePresentIdFeaturesKHR &() VULKAN_HPP_NOEXCEPT
70622     {
70623       return *reinterpret_cast<VkPhysicalDevicePresentIdFeaturesKHR*>( this );
70624     }
70625 
70626 #if defined( VULKAN_HPP_USE_REFLECT )
70627 #if 14 <= VULKAN_HPP_CPP_VERSION
70628     auto
70629 #else
70630     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
70631 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR70632       reflect() const VULKAN_HPP_NOEXCEPT
70633     {
70634       return std::tie( sType, pNext, presentId );
70635     }
70636 #endif
70637 
70638 
70639 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70640 auto operator<=>( PhysicalDevicePresentIdFeaturesKHR const & ) const = default;
70641 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR70642     bool operator==( PhysicalDevicePresentIdFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
70643     {
70644 #if defined( VULKAN_HPP_USE_REFLECT )
70645       return this->reflect() == rhs.reflect();
70646 #else
70647       return ( sType == rhs.sType )
70648           && ( pNext == rhs.pNext )
70649           && ( presentId == rhs.presentId );
70650 #endif
70651     }
70652 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR70653     bool operator!=( PhysicalDevicePresentIdFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
70654     {
70655       return !operator==( rhs );
70656     }
70657 #endif
70658 
70659     public:
70660     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentIdFeaturesKHR;
70661     void * pNext = {};
70662     VULKAN_HPP_NAMESPACE::Bool32 presentId = {};
70663 
70664   };
70665 
70666   template <>
70667   struct CppType<StructureType, StructureType::ePhysicalDevicePresentIdFeaturesKHR>
70668   {
70669     using Type = PhysicalDevicePresentIdFeaturesKHR;
70670   };
70671 
70672   struct PhysicalDevicePresentWaitFeaturesKHR
70673   {
70674     using NativeType = VkPhysicalDevicePresentWaitFeaturesKHR;
70675 
70676     static const bool allowDuplicate = false;
70677     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePresentWaitFeaturesKHR;
70678 
70679 
70680 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePresentWaitFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR70681 VULKAN_HPP_CONSTEXPR PhysicalDevicePresentWaitFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 presentWait_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
70682     : pNext( pNext_ ), presentWait( presentWait_ )
70683     {}
70684 
70685     VULKAN_HPP_CONSTEXPR PhysicalDevicePresentWaitFeaturesKHR( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70686 
PhysicalDevicePresentWaitFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR70687     PhysicalDevicePresentWaitFeaturesKHR( VkPhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70688       : PhysicalDevicePresentWaitFeaturesKHR( *reinterpret_cast<PhysicalDevicePresentWaitFeaturesKHR const *>( &rhs ) )
70689     {}
70690 
70691 
70692     PhysicalDevicePresentWaitFeaturesKHR & operator=( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70693 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
70694 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR70695     PhysicalDevicePresentWaitFeaturesKHR & operator=( VkPhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70696     {
70697       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR const *>( &rhs );
70698       return *this;
70699     }
70700 
70701 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR70702     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentWaitFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
70703     {
70704       pNext = pNext_;
70705       return *this;
70706     }
70707 
setPresentWaitVULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR70708     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentWaitFeaturesKHR & setPresentWait( VULKAN_HPP_NAMESPACE::Bool32 presentWait_ ) VULKAN_HPP_NOEXCEPT
70709     {
70710       presentWait = presentWait_;
70711       return *this;
70712     }
70713 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
70714 
70715 
operator VkPhysicalDevicePresentWaitFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR70716     operator VkPhysicalDevicePresentWaitFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
70717     {
70718       return *reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>( this );
70719     }
70720 
operator VkPhysicalDevicePresentWaitFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR70721     operator VkPhysicalDevicePresentWaitFeaturesKHR &() VULKAN_HPP_NOEXCEPT
70722     {
70723       return *reinterpret_cast<VkPhysicalDevicePresentWaitFeaturesKHR*>( this );
70724     }
70725 
70726 #if defined( VULKAN_HPP_USE_REFLECT )
70727 #if 14 <= VULKAN_HPP_CPP_VERSION
70728     auto
70729 #else
70730     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
70731 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR70732       reflect() const VULKAN_HPP_NOEXCEPT
70733     {
70734       return std::tie( sType, pNext, presentWait );
70735     }
70736 #endif
70737 
70738 
70739 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70740 auto operator<=>( PhysicalDevicePresentWaitFeaturesKHR const & ) const = default;
70741 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR70742     bool operator==( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
70743     {
70744 #if defined( VULKAN_HPP_USE_REFLECT )
70745       return this->reflect() == rhs.reflect();
70746 #else
70747       return ( sType == rhs.sType )
70748           && ( pNext == rhs.pNext )
70749           && ( presentWait == rhs.presentWait );
70750 #endif
70751     }
70752 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR70753     bool operator!=( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
70754     {
70755       return !operator==( rhs );
70756     }
70757 #endif
70758 
70759     public:
70760     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentWaitFeaturesKHR;
70761     void * pNext = {};
70762     VULKAN_HPP_NAMESPACE::Bool32 presentWait = {};
70763 
70764   };
70765 
70766   template <>
70767   struct CppType<StructureType, StructureType::ePhysicalDevicePresentWaitFeaturesKHR>
70768   {
70769     using Type = PhysicalDevicePresentWaitFeaturesKHR;
70770   };
70771 
70772   struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
70773   {
70774     using NativeType = VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
70775 
70776     static const bool allowDuplicate = false;
70777     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
70778 
70779 
70780 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePrimitiveTopologyListRestartFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70781 VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
70782     : pNext( pNext_ ), primitiveTopologyListRestart( primitiveTopologyListRestart_ ), primitiveTopologyPatchListRestart( primitiveTopologyPatchListRestart_ )
70783     {}
70784 
70785     VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70786 
PhysicalDevicePrimitiveTopologyListRestartFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70787     PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70788       : PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( *reinterpret_cast<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const *>( &rhs ) )
70789     {}
70790 
70791 
70792     PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & operator=( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70793 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
70794 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70795     PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & operator=( VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70796     {
70797       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const *>( &rhs );
70798       return *this;
70799     }
70800 
70801 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70802     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
70803     {
70804       pNext = pNext_;
70805       return *this;
70806     }
70807 
setPrimitiveTopologyListRestartVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70808     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & setPrimitiveTopologyListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ ) VULKAN_HPP_NOEXCEPT
70809     {
70810       primitiveTopologyListRestart = primitiveTopologyListRestart_;
70811       return *this;
70812     }
70813 
setPrimitiveTopologyPatchListRestartVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70814     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & setPrimitiveTopologyPatchListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ ) VULKAN_HPP_NOEXCEPT
70815     {
70816       primitiveTopologyPatchListRestart = primitiveTopologyPatchListRestart_;
70817       return *this;
70818     }
70819 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
70820 
70821 
operator VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70822     operator VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
70823     {
70824       return *reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>( this );
70825     }
70826 
operator VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70827     operator VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &() VULKAN_HPP_NOEXCEPT
70828     {
70829       return *reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>( this );
70830     }
70831 
70832 #if defined( VULKAN_HPP_USE_REFLECT )
70833 #if 14 <= VULKAN_HPP_CPP_VERSION
70834     auto
70835 #else
70836     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
70837 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70838       reflect() const VULKAN_HPP_NOEXCEPT
70839     {
70840       return std::tie( sType, pNext, primitiveTopologyListRestart, primitiveTopologyPatchListRestart );
70841     }
70842 #endif
70843 
70844 
70845 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70846 auto operator<=>( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & ) const = default;
70847 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70848     bool operator==( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
70849     {
70850 #if defined( VULKAN_HPP_USE_REFLECT )
70851       return this->reflect() == rhs.reflect();
70852 #else
70853       return ( sType == rhs.sType )
70854           && ( pNext == rhs.pNext )
70855           && ( primitiveTopologyListRestart == rhs.primitiveTopologyListRestart )
70856           && ( primitiveTopologyPatchListRestart == rhs.primitiveTopologyPatchListRestart );
70857 #endif
70858     }
70859 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT70860     bool operator!=( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
70861     {
70862       return !operator==( rhs );
70863     }
70864 #endif
70865 
70866     public:
70867     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
70868     void * pNext = {};
70869     VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart = {};
70870     VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart = {};
70871 
70872   };
70873 
70874   template <>
70875   struct CppType<StructureType, StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>
70876   {
70877     using Type = PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
70878   };
70879 
70880   struct PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
70881   {
70882     using NativeType = VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
70883 
70884     static const bool allowDuplicate = false;
70885     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
70886 
70887 
70888 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePrimitivesGeneratedQueryFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70889 VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithRasterizerDiscard_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithNonZeroStreams_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
70890     : pNext( pNext_ ), primitivesGeneratedQuery( primitivesGeneratedQuery_ ), primitivesGeneratedQueryWithRasterizerDiscard( primitivesGeneratedQueryWithRasterizerDiscard_ ), primitivesGeneratedQueryWithNonZeroStreams( primitivesGeneratedQueryWithNonZeroStreams_ )
70891     {}
70892 
70893     VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70894 
PhysicalDevicePrimitivesGeneratedQueryFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70895     PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70896       : PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( *reinterpret_cast<PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const *>( &rhs ) )
70897     {}
70898 
70899 
70900     PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT & operator=( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70901 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
70902 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70903     PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT & operator=( VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70904     {
70905       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const *>( &rhs );
70906       return *this;
70907     }
70908 
70909 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70910     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
70911     {
70912       pNext = pNext_;
70913       return *this;
70914     }
70915 
setPrimitivesGeneratedQueryVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70916     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT & setPrimitivesGeneratedQuery( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery_ ) VULKAN_HPP_NOEXCEPT
70917     {
70918       primitivesGeneratedQuery = primitivesGeneratedQuery_;
70919       return *this;
70920     }
70921 
setPrimitivesGeneratedQueryWithRasterizerDiscardVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70922     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT & setPrimitivesGeneratedQueryWithRasterizerDiscard( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithRasterizerDiscard_ ) VULKAN_HPP_NOEXCEPT
70923     {
70924       primitivesGeneratedQueryWithRasterizerDiscard = primitivesGeneratedQueryWithRasterizerDiscard_;
70925       return *this;
70926     }
70927 
setPrimitivesGeneratedQueryWithNonZeroStreamsVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70928     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT & setPrimitivesGeneratedQueryWithNonZeroStreams( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithNonZeroStreams_ ) VULKAN_HPP_NOEXCEPT
70929     {
70930       primitivesGeneratedQueryWithNonZeroStreams = primitivesGeneratedQueryWithNonZeroStreams_;
70931       return *this;
70932     }
70933 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
70934 
70935 
operator VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70936     operator VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
70937     {
70938       return *reinterpret_cast<const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT*>( this );
70939     }
70940 
operator VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70941     operator VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
70942     {
70943       return *reinterpret_cast<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT*>( this );
70944     }
70945 
70946 #if defined( VULKAN_HPP_USE_REFLECT )
70947 #if 14 <= VULKAN_HPP_CPP_VERSION
70948     auto
70949 #else
70950     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
70951 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70952       reflect() const VULKAN_HPP_NOEXCEPT
70953     {
70954       return std::tie( sType, pNext, primitivesGeneratedQuery, primitivesGeneratedQueryWithRasterizerDiscard, primitivesGeneratedQueryWithNonZeroStreams );
70955     }
70956 #endif
70957 
70958 
70959 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70960 auto operator<=>( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & ) const = default;
70961 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70962     bool operator==( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
70963     {
70964 #if defined( VULKAN_HPP_USE_REFLECT )
70965       return this->reflect() == rhs.reflect();
70966 #else
70967       return ( sType == rhs.sType )
70968           && ( pNext == rhs.pNext )
70969           && ( primitivesGeneratedQuery == rhs.primitivesGeneratedQuery )
70970           && ( primitivesGeneratedQueryWithRasterizerDiscard == rhs.primitivesGeneratedQueryWithRasterizerDiscard )
70971           && ( primitivesGeneratedQueryWithNonZeroStreams == rhs.primitivesGeneratedQueryWithNonZeroStreams );
70972 #endif
70973     }
70974 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT70975     bool operator!=( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
70976     {
70977       return !operator==( rhs );
70978     }
70979 #endif
70980 
70981     public:
70982     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
70983     void * pNext = {};
70984     VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery = {};
70985     VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithRasterizerDiscard = {};
70986     VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithNonZeroStreams = {};
70987 
70988   };
70989 
70990   template <>
70991   struct CppType<StructureType, StructureType::ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>
70992   {
70993     using Type = PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
70994   };
70995 
70996   struct PhysicalDevicePrivateDataFeatures
70997   {
70998     using NativeType = VkPhysicalDevicePrivateDataFeatures;
70999 
71000     static const bool allowDuplicate = false;
71001     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrivateDataFeatures;
71002 
71003 
71004 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePrivateDataFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures71005 VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeatures(VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
71006     : pNext( pNext_ ), privateData( privateData_ )
71007     {}
71008 
71009     VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeatures( PhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71010 
PhysicalDevicePrivateDataFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures71011     PhysicalDevicePrivateDataFeatures( VkPhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71012       : PhysicalDevicePrivateDataFeatures( *reinterpret_cast<PhysicalDevicePrivateDataFeatures const *>( &rhs ) )
71013     {}
71014 
71015 
71016     PhysicalDevicePrivateDataFeatures & operator=( PhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71017 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71018 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures71019     PhysicalDevicePrivateDataFeatures & operator=( VkPhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71020     {
71021       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures const *>( &rhs );
71022       return *this;
71023     }
71024 
71025 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures71026     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrivateDataFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
71027     {
71028       pNext = pNext_;
71029       return *this;
71030     }
71031 
setPrivateDataVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures71032     VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrivateDataFeatures & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
71033     {
71034       privateData = privateData_;
71035       return *this;
71036     }
71037 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
71038 
71039 
operator VkPhysicalDevicePrivateDataFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures71040     operator VkPhysicalDevicePrivateDataFeatures const &() const VULKAN_HPP_NOEXCEPT
71041     {
71042       return *reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>( this );
71043     }
71044 
operator VkPhysicalDevicePrivateDataFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures71045     operator VkPhysicalDevicePrivateDataFeatures &() VULKAN_HPP_NOEXCEPT
71046     {
71047       return *reinterpret_cast<VkPhysicalDevicePrivateDataFeatures*>( this );
71048     }
71049 
71050 #if defined( VULKAN_HPP_USE_REFLECT )
71051 #if 14 <= VULKAN_HPP_CPP_VERSION
71052     auto
71053 #else
71054     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
71055 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures71056       reflect() const VULKAN_HPP_NOEXCEPT
71057     {
71058       return std::tie( sType, pNext, privateData );
71059     }
71060 #endif
71061 
71062 
71063 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71064 auto operator<=>( PhysicalDevicePrivateDataFeatures const & ) const = default;
71065 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures71066     bool operator==( PhysicalDevicePrivateDataFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
71067     {
71068 #if defined( VULKAN_HPP_USE_REFLECT )
71069       return this->reflect() == rhs.reflect();
71070 #else
71071       return ( sType == rhs.sType )
71072           && ( pNext == rhs.pNext )
71073           && ( privateData == rhs.privateData );
71074 #endif
71075     }
71076 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures71077     bool operator!=( PhysicalDevicePrivateDataFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
71078     {
71079       return !operator==( rhs );
71080     }
71081 #endif
71082 
71083     public:
71084     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeatures;
71085     void * pNext = {};
71086     VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
71087 
71088   };
71089 
71090   template <>
71091   struct CppType<StructureType, StructureType::ePhysicalDevicePrivateDataFeatures>
71092   {
71093     using Type = PhysicalDevicePrivateDataFeatures;
71094   };
71095   using PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures;
71096 
71097   struct PhysicalDeviceSparseProperties
71098   {
71099     using NativeType = VkPhysicalDeviceSparseProperties;
71100 
71101 
71102 
71103 
71104 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties71105 VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties(VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict_ = {}) VULKAN_HPP_NOEXCEPT
71106     : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ ), residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ ), residencyStandard3DBlockShape( residencyStandard3DBlockShape_ ), residencyAlignedMipSize( residencyAlignedMipSize_ ), residencyNonResidentStrict( residencyNonResidentStrict_ )
71107     {}
71108 
71109     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71110 
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties71111     PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71112       : PhysicalDeviceSparseProperties( *reinterpret_cast<PhysicalDeviceSparseProperties const *>( &rhs ) )
71113     {}
71114 
71115 
71116     PhysicalDeviceSparseProperties & operator=( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71117 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71118 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties71119     PhysicalDeviceSparseProperties & operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71120     {
71121       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const *>( &rhs );
71122       return *this;
71123     }
71124 
71125 
operator VkPhysicalDeviceSparseProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties71126     operator VkPhysicalDeviceSparseProperties const &() const VULKAN_HPP_NOEXCEPT
71127     {
71128       return *reinterpret_cast<const VkPhysicalDeviceSparseProperties*>( this );
71129     }
71130 
operator VkPhysicalDeviceSparseProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties71131     operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT
71132     {
71133       return *reinterpret_cast<VkPhysicalDeviceSparseProperties*>( this );
71134     }
71135 
71136 #if defined( VULKAN_HPP_USE_REFLECT )
71137 #if 14 <= VULKAN_HPP_CPP_VERSION
71138     auto
71139 #else
71140     std::tuple<VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
71141 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties71142       reflect() const VULKAN_HPP_NOEXCEPT
71143     {
71144       return std::tie( residencyStandard2DBlockShape, residencyStandard2DMultisampleBlockShape, residencyStandard3DBlockShape, residencyAlignedMipSize, residencyNonResidentStrict );
71145     }
71146 #endif
71147 
71148 
71149 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71150 auto operator<=>( PhysicalDeviceSparseProperties const & ) const = default;
71151 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties71152     bool operator==( PhysicalDeviceSparseProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
71153     {
71154 #if defined( VULKAN_HPP_USE_REFLECT )
71155       return this->reflect() == rhs.reflect();
71156 #else
71157       return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape )
71158           && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape )
71159           && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape )
71160           && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize )
71161           && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict );
71162 #endif
71163     }
71164 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties71165     bool operator!=( PhysicalDeviceSparseProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
71166     {
71167       return !operator==( rhs );
71168     }
71169 #endif
71170 
71171     public:
71172     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {};
71173     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {};
71174     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {};
71175     VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {};
71176     VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {};
71177 
71178   };
71179 
71180   struct PhysicalDeviceProperties
71181   {
71182     using NativeType = VkPhysicalDeviceProperties;
71183 
71184 
71185 
71186 
71187 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties71188 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties(uint32_t apiVersion_ = {}, uint32_t driverVersion_ = {}, uint32_t vendorID_ = {}, uint32_t deviceID_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType_ = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther, std::array<char,VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> const & deviceName_ = {}, std::array<uint8_t,VK_UUID_SIZE> const & pipelineCacheUUID_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties_ = {}) VULKAN_HPP_NOEXCEPT
71189     : apiVersion( apiVersion_ ), driverVersion( driverVersion_ ), vendorID( vendorID_ ), deviceID( deviceID_ ), deviceType( deviceType_ ), deviceName( deviceName_ ), pipelineCacheUUID( pipelineCacheUUID_ ), limits( limits_ ), sparseProperties( sparseProperties_ )
71190     {}
71191 
71192     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71193 
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties71194     PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71195       : PhysicalDeviceProperties( *reinterpret_cast<PhysicalDeviceProperties const *>( &rhs ) )
71196     {}
71197 
71198 
71199     PhysicalDeviceProperties & operator=( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71200 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71201 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties71202     PhysicalDeviceProperties & operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71203     {
71204       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const *>( &rhs );
71205       return *this;
71206     }
71207 
71208 
operator VkPhysicalDeviceProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties71209     operator VkPhysicalDeviceProperties const &() const VULKAN_HPP_NOEXCEPT
71210     {
71211       return *reinterpret_cast<const VkPhysicalDeviceProperties*>( this );
71212     }
71213 
operator VkPhysicalDeviceProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties71214     operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT
71215     {
71216       return *reinterpret_cast<VkPhysicalDeviceProperties*>( this );
71217     }
71218 
71219 #if defined( VULKAN_HPP_USE_REFLECT )
71220 #if 14 <= VULKAN_HPP_CPP_VERSION
71221     auto
71222 #else
71223     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceType const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const &>
71224 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties71225       reflect() const VULKAN_HPP_NOEXCEPT
71226     {
71227       return std::tie( apiVersion, driverVersion, vendorID, deviceID, deviceType, deviceName, pipelineCacheUUID, limits, sparseProperties );
71228     }
71229 #endif
71230 
71231 
71232 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71233 auto operator<=>( PhysicalDeviceProperties const & ) const = default;
71234 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties71235     bool operator==( PhysicalDeviceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
71236     {
71237 #if defined( VULKAN_HPP_USE_REFLECT )
71238       return this->reflect() == rhs.reflect();
71239 #else
71240       return ( apiVersion == rhs.apiVersion )
71241           && ( driverVersion == rhs.driverVersion )
71242           && ( vendorID == rhs.vendorID )
71243           && ( deviceID == rhs.deviceID )
71244           && ( deviceType == rhs.deviceType )
71245           && ( deviceName == rhs.deviceName )
71246           && ( pipelineCacheUUID == rhs.pipelineCacheUUID )
71247           && ( limits == rhs.limits )
71248           && ( sparseProperties == rhs.sparseProperties );
71249 #endif
71250     }
71251 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties71252     bool operator!=( PhysicalDeviceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
71253     {
71254       return !operator==( rhs );
71255     }
71256 #endif
71257 
71258     public:
71259     uint32_t apiVersion = {};
71260     uint32_t driverVersion = {};
71261     uint32_t vendorID = {};
71262     uint32_t deviceID = {};
71263     VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther;
71264     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> deviceName = {};
71265     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
71266     VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {};
71267     VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {};
71268 
71269   };
71270 
71271   struct PhysicalDeviceProperties2
71272   {
71273     using NativeType = VkPhysicalDeviceProperties2;
71274 
71275     static const bool allowDuplicate = false;
71276     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2;
71277 
71278 
71279 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties271280 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
71281     : pNext( pNext_ ), properties( properties_ )
71282     {}
71283 
71284     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71285 
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties271286     PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
71287       : PhysicalDeviceProperties2( *reinterpret_cast<PhysicalDeviceProperties2 const *>( &rhs ) )
71288     {}
71289 
71290 
71291     PhysicalDeviceProperties2 & operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71292 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71293 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties271294     PhysicalDeviceProperties2 & operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
71295     {
71296       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const *>( &rhs );
71297       return *this;
71298     }
71299 
71300 
operator VkPhysicalDeviceProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties271301     operator VkPhysicalDeviceProperties2 const &() const VULKAN_HPP_NOEXCEPT
71302     {
71303       return *reinterpret_cast<const VkPhysicalDeviceProperties2*>( this );
71304     }
71305 
operator VkPhysicalDeviceProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties271306     operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT
71307     {
71308       return *reinterpret_cast<VkPhysicalDeviceProperties2*>( this );
71309     }
71310 
71311 #if defined( VULKAN_HPP_USE_REFLECT )
71312 #if 14 <= VULKAN_HPP_CPP_VERSION
71313     auto
71314 #else
71315     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const &>
71316 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties271317       reflect() const VULKAN_HPP_NOEXCEPT
71318     {
71319       return std::tie( sType, pNext, properties );
71320     }
71321 #endif
71322 
71323 
71324 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71325 auto operator<=>( PhysicalDeviceProperties2 const & ) const = default;
71326 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties271327     bool operator==( PhysicalDeviceProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
71328     {
71329 #if defined( VULKAN_HPP_USE_REFLECT )
71330       return this->reflect() == rhs.reflect();
71331 #else
71332       return ( sType == rhs.sType )
71333           && ( pNext == rhs.pNext )
71334           && ( properties == rhs.properties );
71335 #endif
71336     }
71337 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties271338     bool operator!=( PhysicalDeviceProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
71339     {
71340       return !operator==( rhs );
71341     }
71342 #endif
71343 
71344     public:
71345     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2;
71346     void * pNext = {};
71347     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {};
71348 
71349   };
71350 
71351   template <>
71352   struct CppType<StructureType, StructureType::ePhysicalDeviceProperties2>
71353   {
71354     using Type = PhysicalDeviceProperties2;
71355   };
71356   using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
71357 
71358   struct PhysicalDeviceProtectedMemoryFeatures
71359   {
71360     using NativeType = VkPhysicalDeviceProtectedMemoryFeatures;
71361 
71362     static const bool allowDuplicate = false;
71363     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
71364 
71365 
71366 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures71367 VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures(VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
71368     : pNext( pNext_ ), protectedMemory( protectedMemory_ )
71369     {}
71370 
71371     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71372 
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures71373     PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71374       : PhysicalDeviceProtectedMemoryFeatures( *reinterpret_cast<PhysicalDeviceProtectedMemoryFeatures const *>( &rhs ) )
71375     {}
71376 
71377 
71378     PhysicalDeviceProtectedMemoryFeatures & operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71379 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71380 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures71381     PhysicalDeviceProtectedMemoryFeatures & operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71382     {
71383       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const *>( &rhs );
71384       return *this;
71385     }
71386 
71387 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures71388     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
71389     {
71390       pNext = pNext_;
71391       return *this;
71392     }
71393 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures71394     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
71395     {
71396       protectedMemory = protectedMemory_;
71397       return *this;
71398     }
71399 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
71400 
71401 
operator VkPhysicalDeviceProtectedMemoryFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures71402     operator VkPhysicalDeviceProtectedMemoryFeatures const &() const VULKAN_HPP_NOEXCEPT
71403     {
71404       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>( this );
71405     }
71406 
operator VkPhysicalDeviceProtectedMemoryFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures71407     operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT
71408     {
71409       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>( this );
71410     }
71411 
71412 #if defined( VULKAN_HPP_USE_REFLECT )
71413 #if 14 <= VULKAN_HPP_CPP_VERSION
71414     auto
71415 #else
71416     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
71417 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures71418       reflect() const VULKAN_HPP_NOEXCEPT
71419     {
71420       return std::tie( sType, pNext, protectedMemory );
71421     }
71422 #endif
71423 
71424 
71425 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71426 auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const & ) const = default;
71427 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures71428     bool operator==( PhysicalDeviceProtectedMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
71429     {
71430 #if defined( VULKAN_HPP_USE_REFLECT )
71431       return this->reflect() == rhs.reflect();
71432 #else
71433       return ( sType == rhs.sType )
71434           && ( pNext == rhs.pNext )
71435           && ( protectedMemory == rhs.protectedMemory );
71436 #endif
71437     }
71438 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures71439     bool operator!=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
71440     {
71441       return !operator==( rhs );
71442     }
71443 #endif
71444 
71445     public:
71446     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
71447     void * pNext = {};
71448     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
71449 
71450   };
71451 
71452   template <>
71453   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryFeatures>
71454   {
71455     using Type = PhysicalDeviceProtectedMemoryFeatures;
71456   };
71457 
71458   struct PhysicalDeviceProtectedMemoryProperties
71459   {
71460     using NativeType = VkPhysicalDeviceProtectedMemoryProperties;
71461 
71462     static const bool allowDuplicate = false;
71463     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
71464 
71465 
71466 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties71467 VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties(VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
71468     : pNext( pNext_ ), protectedNoFault( protectedNoFault_ )
71469     {}
71470 
71471     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71472 
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties71473     PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71474       : PhysicalDeviceProtectedMemoryProperties( *reinterpret_cast<PhysicalDeviceProtectedMemoryProperties const *>( &rhs ) )
71475     {}
71476 
71477 
71478     PhysicalDeviceProtectedMemoryProperties & operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71479 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71480 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties71481     PhysicalDeviceProtectedMemoryProperties & operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71482     {
71483       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const *>( &rhs );
71484       return *this;
71485     }
71486 
71487 
operator VkPhysicalDeviceProtectedMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties71488     operator VkPhysicalDeviceProtectedMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
71489     {
71490       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>( this );
71491     }
71492 
operator VkPhysicalDeviceProtectedMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties71493     operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT
71494     {
71495       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>( this );
71496     }
71497 
71498 #if defined( VULKAN_HPP_USE_REFLECT )
71499 #if 14 <= VULKAN_HPP_CPP_VERSION
71500     auto
71501 #else
71502     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
71503 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties71504       reflect() const VULKAN_HPP_NOEXCEPT
71505     {
71506       return std::tie( sType, pNext, protectedNoFault );
71507     }
71508 #endif
71509 
71510 
71511 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71512 auto operator<=>( PhysicalDeviceProtectedMemoryProperties const & ) const = default;
71513 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties71514     bool operator==( PhysicalDeviceProtectedMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
71515     {
71516 #if defined( VULKAN_HPP_USE_REFLECT )
71517       return this->reflect() == rhs.reflect();
71518 #else
71519       return ( sType == rhs.sType )
71520           && ( pNext == rhs.pNext )
71521           && ( protectedNoFault == rhs.protectedNoFault );
71522 #endif
71523     }
71524 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties71525     bool operator!=( PhysicalDeviceProtectedMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
71526     {
71527       return !operator==( rhs );
71528     }
71529 #endif
71530 
71531     public:
71532     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
71533     void * pNext = {};
71534     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
71535 
71536   };
71537 
71538   template <>
71539   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryProperties>
71540   {
71541     using Type = PhysicalDeviceProtectedMemoryProperties;
71542   };
71543 
71544   struct PhysicalDeviceProvokingVertexFeaturesEXT
71545   {
71546     using NativeType = VkPhysicalDeviceProvokingVertexFeaturesEXT;
71547 
71548     static const bool allowDuplicate = false;
71549     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT;
71550 
71551 
71552 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProvokingVertexFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71553 VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesProvokingVertex_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
71554     : pNext( pNext_ ), provokingVertexLast( provokingVertexLast_ ), transformFeedbackPreservesProvokingVertex( transformFeedbackPreservesProvokingVertex_ )
71555     {}
71556 
71557     VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexFeaturesEXT( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71558 
PhysicalDeviceProvokingVertexFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71559     PhysicalDeviceProvokingVertexFeaturesEXT( VkPhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71560       : PhysicalDeviceProvokingVertexFeaturesEXT( *reinterpret_cast<PhysicalDeviceProvokingVertexFeaturesEXT const *>( &rhs ) )
71561     {}
71562 
71563 
71564     PhysicalDeviceProvokingVertexFeaturesEXT & operator=( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71565 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71566 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71567     PhysicalDeviceProvokingVertexFeaturesEXT & operator=( VkPhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71568     {
71569       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT const *>( &rhs );
71570       return *this;
71571     }
71572 
71573 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71574     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProvokingVertexFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
71575     {
71576       pNext = pNext_;
71577       return *this;
71578     }
71579 
setProvokingVertexLastVULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71580     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProvokingVertexFeaturesEXT & setProvokingVertexLast( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast_ ) VULKAN_HPP_NOEXCEPT
71581     {
71582       provokingVertexLast = provokingVertexLast_;
71583       return *this;
71584     }
71585 
setTransformFeedbackPreservesProvokingVertexVULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71586     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProvokingVertexFeaturesEXT & setTransformFeedbackPreservesProvokingVertex( VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesProvokingVertex_ ) VULKAN_HPP_NOEXCEPT
71587     {
71588       transformFeedbackPreservesProvokingVertex = transformFeedbackPreservesProvokingVertex_;
71589       return *this;
71590     }
71591 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
71592 
71593 
operator VkPhysicalDeviceProvokingVertexFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71594     operator VkPhysicalDeviceProvokingVertexFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
71595     {
71596       return *reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>( this );
71597     }
71598 
operator VkPhysicalDeviceProvokingVertexFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71599     operator VkPhysicalDeviceProvokingVertexFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71600     {
71601       return *reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>( this );
71602     }
71603 
71604 #if defined( VULKAN_HPP_USE_REFLECT )
71605 #if 14 <= VULKAN_HPP_CPP_VERSION
71606     auto
71607 #else
71608     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
71609 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71610       reflect() const VULKAN_HPP_NOEXCEPT
71611     {
71612       return std::tie( sType, pNext, provokingVertexLast, transformFeedbackPreservesProvokingVertex );
71613     }
71614 #endif
71615 
71616 
71617 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71618 auto operator<=>( PhysicalDeviceProvokingVertexFeaturesEXT const & ) const = default;
71619 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71620     bool operator==( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
71621     {
71622 #if defined( VULKAN_HPP_USE_REFLECT )
71623       return this->reflect() == rhs.reflect();
71624 #else
71625       return ( sType == rhs.sType )
71626           && ( pNext == rhs.pNext )
71627           && ( provokingVertexLast == rhs.provokingVertexLast )
71628           && ( transformFeedbackPreservesProvokingVertex == rhs.transformFeedbackPreservesProvokingVertex );
71629 #endif
71630     }
71631 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT71632     bool operator!=( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
71633     {
71634       return !operator==( rhs );
71635     }
71636 #endif
71637 
71638     public:
71639     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT;
71640     void * pNext = {};
71641     VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast = {};
71642     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesProvokingVertex = {};
71643 
71644   };
71645 
71646   template <>
71647   struct CppType<StructureType, StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT>
71648   {
71649     using Type = PhysicalDeviceProvokingVertexFeaturesEXT;
71650   };
71651 
71652   struct PhysicalDeviceProvokingVertexPropertiesEXT
71653   {
71654     using NativeType = VkPhysicalDeviceProvokingVertexPropertiesEXT;
71655 
71656     static const bool allowDuplicate = false;
71657     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT;
71658 
71659 
71660 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProvokingVertexPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT71661 VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 provokingVertexModePerPipeline_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesTriangleFanProvokingVertex_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
71662     : pNext( pNext_ ), provokingVertexModePerPipeline( provokingVertexModePerPipeline_ ), transformFeedbackPreservesTriangleFanProvokingVertex( transformFeedbackPreservesTriangleFanProvokingVertex_ )
71663     {}
71664 
71665     VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexPropertiesEXT( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71666 
PhysicalDeviceProvokingVertexPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT71667     PhysicalDeviceProvokingVertexPropertiesEXT( VkPhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71668       : PhysicalDeviceProvokingVertexPropertiesEXT( *reinterpret_cast<PhysicalDeviceProvokingVertexPropertiesEXT const *>( &rhs ) )
71669     {}
71670 
71671 
71672     PhysicalDeviceProvokingVertexPropertiesEXT & operator=( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71673 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71674 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT71675     PhysicalDeviceProvokingVertexPropertiesEXT & operator=( VkPhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71676     {
71677       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT const *>( &rhs );
71678       return *this;
71679     }
71680 
71681 
operator VkPhysicalDeviceProvokingVertexPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT71682     operator VkPhysicalDeviceProvokingVertexPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
71683     {
71684       return *reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>( this );
71685     }
71686 
operator VkPhysicalDeviceProvokingVertexPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT71687     operator VkPhysicalDeviceProvokingVertexPropertiesEXT &() VULKAN_HPP_NOEXCEPT
71688     {
71689       return *reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>( this );
71690     }
71691 
71692 #if defined( VULKAN_HPP_USE_REFLECT )
71693 #if 14 <= VULKAN_HPP_CPP_VERSION
71694     auto
71695 #else
71696     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
71697 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT71698       reflect() const VULKAN_HPP_NOEXCEPT
71699     {
71700       return std::tie( sType, pNext, provokingVertexModePerPipeline, transformFeedbackPreservesTriangleFanProvokingVertex );
71701     }
71702 #endif
71703 
71704 
71705 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71706 auto operator<=>( PhysicalDeviceProvokingVertexPropertiesEXT const & ) const = default;
71707 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT71708     bool operator==( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
71709     {
71710 #if defined( VULKAN_HPP_USE_REFLECT )
71711       return this->reflect() == rhs.reflect();
71712 #else
71713       return ( sType == rhs.sType )
71714           && ( pNext == rhs.pNext )
71715           && ( provokingVertexModePerPipeline == rhs.provokingVertexModePerPipeline )
71716           && ( transformFeedbackPreservesTriangleFanProvokingVertex == rhs.transformFeedbackPreservesTriangleFanProvokingVertex );
71717 #endif
71718     }
71719 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT71720     bool operator!=( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
71721     {
71722       return !operator==( rhs );
71723     }
71724 #endif
71725 
71726     public:
71727     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT;
71728     void * pNext = {};
71729     VULKAN_HPP_NAMESPACE::Bool32 provokingVertexModePerPipeline = {};
71730     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesTriangleFanProvokingVertex = {};
71731 
71732   };
71733 
71734   template <>
71735   struct CppType<StructureType, StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT>
71736   {
71737     using Type = PhysicalDeviceProvokingVertexPropertiesEXT;
71738   };
71739 
71740   struct PhysicalDevicePushDescriptorPropertiesKHR
71741   {
71742     using NativeType = VkPhysicalDevicePushDescriptorPropertiesKHR;
71743 
71744     static const bool allowDuplicate = false;
71745     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
71746 
71747 
71748 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR71749 VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR(uint32_t maxPushDescriptors_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
71750     : pNext( pNext_ ), maxPushDescriptors( maxPushDescriptors_ )
71751     {}
71752 
71753     VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71754 
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR71755     PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
71756       : PhysicalDevicePushDescriptorPropertiesKHR( *reinterpret_cast<PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs ) )
71757     {}
71758 
71759 
71760     PhysicalDevicePushDescriptorPropertiesKHR & operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71761 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71762 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR71763     PhysicalDevicePushDescriptorPropertiesKHR & operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
71764     {
71765       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs );
71766       return *this;
71767     }
71768 
71769 
operator VkPhysicalDevicePushDescriptorPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR71770     operator VkPhysicalDevicePushDescriptorPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
71771     {
71772       return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
71773     }
71774 
operator VkPhysicalDevicePushDescriptorPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR71775     operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
71776     {
71777       return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
71778     }
71779 
71780 #if defined( VULKAN_HPP_USE_REFLECT )
71781 #if 14 <= VULKAN_HPP_CPP_VERSION
71782     auto
71783 #else
71784     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
71785 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR71786       reflect() const VULKAN_HPP_NOEXCEPT
71787     {
71788       return std::tie( sType, pNext, maxPushDescriptors );
71789     }
71790 #endif
71791 
71792 
71793 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71794 auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const & ) const = default;
71795 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR71796     bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
71797     {
71798 #if defined( VULKAN_HPP_USE_REFLECT )
71799       return this->reflect() == rhs.reflect();
71800 #else
71801       return ( sType == rhs.sType )
71802           && ( pNext == rhs.pNext )
71803           && ( maxPushDescriptors == rhs.maxPushDescriptors );
71804 #endif
71805     }
71806 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR71807     bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
71808     {
71809       return !operator==( rhs );
71810     }
71811 #endif
71812 
71813     public:
71814     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
71815     void * pNext = {};
71816     uint32_t maxPushDescriptors = {};
71817 
71818   };
71819 
71820   template <>
71821   struct CppType<StructureType, StructureType::ePhysicalDevicePushDescriptorPropertiesKHR>
71822   {
71823     using Type = PhysicalDevicePushDescriptorPropertiesKHR;
71824   };
71825 
71826   struct PhysicalDeviceRGBA10X6FormatsFeaturesEXT
71827   {
71828     using NativeType = VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
71829 
71830     static const bool allowDuplicate = false;
71831     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT;
71832 
71833 
71834 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRGBA10X6FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT71835 VULKAN_HPP_CONSTEXPR PhysicalDeviceRGBA10X6FormatsFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
71836     : pNext( pNext_ ), formatRgba10x6WithoutYCbCrSampler( formatRgba10x6WithoutYCbCrSampler_ )
71837     {}
71838 
71839     VULKAN_HPP_CONSTEXPR PhysicalDeviceRGBA10X6FormatsFeaturesEXT( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71840 
PhysicalDeviceRGBA10X6FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT71841     PhysicalDeviceRGBA10X6FormatsFeaturesEXT( VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71842       : PhysicalDeviceRGBA10X6FormatsFeaturesEXT( *reinterpret_cast<PhysicalDeviceRGBA10X6FormatsFeaturesEXT const *>( &rhs ) )
71843     {}
71844 
71845 
71846     PhysicalDeviceRGBA10X6FormatsFeaturesEXT & operator=( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71847 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71848 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT71849     PhysicalDeviceRGBA10X6FormatsFeaturesEXT & operator=( VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71850     {
71851       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT const *>( &rhs );
71852       return *this;
71853     }
71854 
71855 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT71856     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRGBA10X6FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
71857     {
71858       pNext = pNext_;
71859       return *this;
71860     }
71861 
setFormatRgba10x6WithoutYCbCrSamplerVULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT71862     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRGBA10X6FormatsFeaturesEXT & setFormatRgba10x6WithoutYCbCrSampler( VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler_ ) VULKAN_HPP_NOEXCEPT
71863     {
71864       formatRgba10x6WithoutYCbCrSampler = formatRgba10x6WithoutYCbCrSampler_;
71865       return *this;
71866     }
71867 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
71868 
71869 
operator VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT71870     operator VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
71871     {
71872       return *reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>( this );
71873     }
71874 
operator VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT71875     operator VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71876     {
71877       return *reinterpret_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>( this );
71878     }
71879 
71880 #if defined( VULKAN_HPP_USE_REFLECT )
71881 #if 14 <= VULKAN_HPP_CPP_VERSION
71882     auto
71883 #else
71884     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
71885 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT71886       reflect() const VULKAN_HPP_NOEXCEPT
71887     {
71888       return std::tie( sType, pNext, formatRgba10x6WithoutYCbCrSampler );
71889     }
71890 #endif
71891 
71892 
71893 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71894 auto operator<=>( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & ) const = default;
71895 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT71896     bool operator==( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
71897     {
71898 #if defined( VULKAN_HPP_USE_REFLECT )
71899       return this->reflect() == rhs.reflect();
71900 #else
71901       return ( sType == rhs.sType )
71902           && ( pNext == rhs.pNext )
71903           && ( formatRgba10x6WithoutYCbCrSampler == rhs.formatRgba10x6WithoutYCbCrSampler );
71904 #endif
71905     }
71906 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT71907     bool operator!=( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
71908     {
71909       return !operator==( rhs );
71910     }
71911 #endif
71912 
71913     public:
71914     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT;
71915     void * pNext = {};
71916     VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler = {};
71917 
71918   };
71919 
71920   template <>
71921   struct CppType<StructureType, StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT>
71922   {
71923     using Type = PhysicalDeviceRGBA10X6FormatsFeaturesEXT;
71924   };
71925 
71926   struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
71927   {
71928     using NativeType = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
71929 
71930     static const bool allowDuplicate = false;
71931     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
71932 
71933 
71934 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT71935 VULKAN_HPP_CONSTEXPR PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderColorAttachmentAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
71936     : pNext( pNext_ ), rasterizationOrderColorAttachmentAccess( rasterizationOrderColorAttachmentAccess_ ), rasterizationOrderDepthAttachmentAccess( rasterizationOrderDepthAttachmentAccess_ ), rasterizationOrderStencilAttachmentAccess( rasterizationOrderStencilAttachmentAccess_ )
71937     {}
71938 
71939     VULKAN_HPP_CONSTEXPR PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71940 
PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT71941     PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT( VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71942       : PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT( *reinterpret_cast<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const *>( &rhs ) )
71943     {}
71944 
71945 
71946     PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT & operator=( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71947 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
71948 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT71949     PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT & operator=( VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71950     {
71951       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const *>( &rhs );
71952       return *this;
71953     }
71954 
71955 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT71956     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
71957     {
71958       pNext = pNext_;
71959       return *this;
71960     }
71961 
setRasterizationOrderColorAttachmentAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT71962     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT & setRasterizationOrderColorAttachmentAccess( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderColorAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
71963     {
71964       rasterizationOrderColorAttachmentAccess = rasterizationOrderColorAttachmentAccess_;
71965       return *this;
71966     }
71967 
setRasterizationOrderDepthAttachmentAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT71968     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT & setRasterizationOrderDepthAttachmentAccess( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
71969     {
71970       rasterizationOrderDepthAttachmentAccess = rasterizationOrderDepthAttachmentAccess_;
71971       return *this;
71972     }
71973 
setRasterizationOrderStencilAttachmentAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT71974     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT & setRasterizationOrderStencilAttachmentAccess( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
71975     {
71976       rasterizationOrderStencilAttachmentAccess = rasterizationOrderStencilAttachmentAccess_;
71977       return *this;
71978     }
71979 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
71980 
71981 
operator VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT71982     operator VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
71983     {
71984       return *reinterpret_cast<const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT*>( this );
71985     }
71986 
operator VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT71987     operator VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71988     {
71989       return *reinterpret_cast<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT*>( this );
71990     }
71991 
71992 #if defined( VULKAN_HPP_USE_REFLECT )
71993 #if 14 <= VULKAN_HPP_CPP_VERSION
71994     auto
71995 #else
71996     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
71997 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT71998       reflect() const VULKAN_HPP_NOEXCEPT
71999     {
72000       return std::tie( sType, pNext, rasterizationOrderColorAttachmentAccess, rasterizationOrderDepthAttachmentAccess, rasterizationOrderStencilAttachmentAccess );
72001     }
72002 #endif
72003 
72004 
72005 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72006 auto operator<=>( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & ) const = default;
72007 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT72008     bool operator==( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
72009     {
72010 #if defined( VULKAN_HPP_USE_REFLECT )
72011       return this->reflect() == rhs.reflect();
72012 #else
72013       return ( sType == rhs.sType )
72014           && ( pNext == rhs.pNext )
72015           && ( rasterizationOrderColorAttachmentAccess == rhs.rasterizationOrderColorAttachmentAccess )
72016           && ( rasterizationOrderDepthAttachmentAccess == rhs.rasterizationOrderDepthAttachmentAccess )
72017           && ( rasterizationOrderStencilAttachmentAccess == rhs.rasterizationOrderStencilAttachmentAccess );
72018 #endif
72019     }
72020 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT72021     bool operator!=( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
72022     {
72023       return !operator==( rhs );
72024     }
72025 #endif
72026 
72027     public:
72028     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
72029     void * pNext = {};
72030     VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderColorAttachmentAccess = {};
72031     VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess = {};
72032     VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess = {};
72033 
72034   };
72035 
72036   template <>
72037   struct CppType<StructureType, StructureType::ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT>
72038   {
72039     using Type = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
72040   };
72041   using PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
72042 
72043   struct PhysicalDeviceRayQueryFeaturesKHR
72044   {
72045     using NativeType = VkPhysicalDeviceRayQueryFeaturesKHR;
72046 
72047     static const bool allowDuplicate = false;
72048     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR;
72049 
72050 
72051 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR72052 VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
72053     : pNext( pNext_ ), rayQuery( rayQuery_ )
72054     {}
72055 
72056     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72057 
PhysicalDeviceRayQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR72058     PhysicalDeviceRayQueryFeaturesKHR( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72059       : PhysicalDeviceRayQueryFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayQueryFeaturesKHR const *>( &rhs ) )
72060     {}
72061 
72062 
72063     PhysicalDeviceRayQueryFeaturesKHR & operator=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72064 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
72065 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR72066     PhysicalDeviceRayQueryFeaturesKHR & operator=( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72067     {
72068       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR const *>( &rhs );
72069       return *this;
72070     }
72071 
72072 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR72073     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
72074     {
72075       pNext = pNext_;
72076       return *this;
72077     }
72078 
setRayQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR72079     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayQueryFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT
72080     {
72081       rayQuery = rayQuery_;
72082       return *this;
72083     }
72084 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
72085 
72086 
operator VkPhysicalDeviceRayQueryFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR72087     operator VkPhysicalDeviceRayQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
72088     {
72089       return *reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>( this );
72090     }
72091 
operator VkPhysicalDeviceRayQueryFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR72092     operator VkPhysicalDeviceRayQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
72093     {
72094       return *reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR*>( this );
72095     }
72096 
72097 #if defined( VULKAN_HPP_USE_REFLECT )
72098 #if 14 <= VULKAN_HPP_CPP_VERSION
72099     auto
72100 #else
72101     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
72102 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR72103       reflect() const VULKAN_HPP_NOEXCEPT
72104     {
72105       return std::tie( sType, pNext, rayQuery );
72106     }
72107 #endif
72108 
72109 
72110 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72111 auto operator<=>( PhysicalDeviceRayQueryFeaturesKHR const & ) const = default;
72112 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR72113     bool operator==( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
72114     {
72115 #if defined( VULKAN_HPP_USE_REFLECT )
72116       return this->reflect() == rhs.reflect();
72117 #else
72118       return ( sType == rhs.sType )
72119           && ( pNext == rhs.pNext )
72120           && ( rayQuery == rhs.rayQuery );
72121 #endif
72122     }
72123 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR72124     bool operator!=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
72125     {
72126       return !operator==( rhs );
72127     }
72128 #endif
72129 
72130     public:
72131     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR;
72132     void * pNext = {};
72133     VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {};
72134 
72135   };
72136 
72137   template <>
72138   struct CppType<StructureType, StructureType::ePhysicalDeviceRayQueryFeaturesKHR>
72139   {
72140     using Type = PhysicalDeviceRayQueryFeaturesKHR;
72141   };
72142 
72143   struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV
72144   {
72145     using NativeType = VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
72146 
72147     static const bool allowDuplicate = false;
72148     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingInvocationReorderFeaturesNV;
72149 
72150 
72151 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingInvocationReorderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV72152 VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingInvocationReorderFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 rayTracingInvocationReorder_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
72153     : pNext( pNext_ ), rayTracingInvocationReorder( rayTracingInvocationReorder_ )
72154     {}
72155 
72156     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingInvocationReorderFeaturesNV( PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72157 
PhysicalDeviceRayTracingInvocationReorderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV72158     PhysicalDeviceRayTracingInvocationReorderFeaturesNV( VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
72159       : PhysicalDeviceRayTracingInvocationReorderFeaturesNV( *reinterpret_cast<PhysicalDeviceRayTracingInvocationReorderFeaturesNV const *>( &rhs ) )
72160     {}
72161 
72162 
72163     PhysicalDeviceRayTracingInvocationReorderFeaturesNV & operator=( PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72164 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
72165 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV72166     PhysicalDeviceRayTracingInvocationReorderFeaturesNV & operator=( VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
72167     {
72168       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV const *>( &rhs );
72169       return *this;
72170     }
72171 
72172 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV72173     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingInvocationReorderFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
72174     {
72175       pNext = pNext_;
72176       return *this;
72177     }
72178 
setRayTracingInvocationReorderVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV72179     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingInvocationReorderFeaturesNV & setRayTracingInvocationReorder( VULKAN_HPP_NAMESPACE::Bool32 rayTracingInvocationReorder_ ) VULKAN_HPP_NOEXCEPT
72180     {
72181       rayTracingInvocationReorder = rayTracingInvocationReorder_;
72182       return *this;
72183     }
72184 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
72185 
72186 
operator VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV72187     operator VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
72188     {
72189       return *reinterpret_cast<const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV*>( this );
72190     }
72191 
operator VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV72192     operator VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV &() VULKAN_HPP_NOEXCEPT
72193     {
72194       return *reinterpret_cast<VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV*>( this );
72195     }
72196 
72197 #if defined( VULKAN_HPP_USE_REFLECT )
72198 #if 14 <= VULKAN_HPP_CPP_VERSION
72199     auto
72200 #else
72201     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
72202 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV72203       reflect() const VULKAN_HPP_NOEXCEPT
72204     {
72205       return std::tie( sType, pNext, rayTracingInvocationReorder );
72206     }
72207 #endif
72208 
72209 
72210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72211 auto operator<=>( PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & ) const = default;
72212 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV72213     bool operator==( PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
72214     {
72215 #if defined( VULKAN_HPP_USE_REFLECT )
72216       return this->reflect() == rhs.reflect();
72217 #else
72218       return ( sType == rhs.sType )
72219           && ( pNext == rhs.pNext )
72220           && ( rayTracingInvocationReorder == rhs.rayTracingInvocationReorder );
72221 #endif
72222     }
72223 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV72224     bool operator!=( PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
72225     {
72226       return !operator==( rhs );
72227     }
72228 #endif
72229 
72230     public:
72231     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingInvocationReorderFeaturesNV;
72232     void * pNext = {};
72233     VULKAN_HPP_NAMESPACE::Bool32 rayTracingInvocationReorder = {};
72234 
72235   };
72236 
72237   template <>
72238   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingInvocationReorderFeaturesNV>
72239   {
72240     using Type = PhysicalDeviceRayTracingInvocationReorderFeaturesNV;
72241   };
72242 
72243   struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV
72244   {
72245     using NativeType = VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
72246 
72247     static const bool allowDuplicate = false;
72248     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingInvocationReorderPropertiesNV;
72249 
72250 
72251 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingInvocationReorderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV72252 VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingInvocationReorderPropertiesNV(VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint_ = VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV::eNone, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
72253     : pNext( pNext_ ), rayTracingInvocationReorderReorderingHint( rayTracingInvocationReorderReorderingHint_ )
72254     {}
72255 
72256     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingInvocationReorderPropertiesNV( PhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72257 
PhysicalDeviceRayTracingInvocationReorderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV72258     PhysicalDeviceRayTracingInvocationReorderPropertiesNV( VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
72259       : PhysicalDeviceRayTracingInvocationReorderPropertiesNV( *reinterpret_cast<PhysicalDeviceRayTracingInvocationReorderPropertiesNV const *>( &rhs ) )
72260     {}
72261 
72262 
72263     PhysicalDeviceRayTracingInvocationReorderPropertiesNV & operator=( PhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72264 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
72265 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV72266     PhysicalDeviceRayTracingInvocationReorderPropertiesNV & operator=( VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
72267     {
72268       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV const *>( &rhs );
72269       return *this;
72270     }
72271 
72272 
operator VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV72273     operator VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
72274     {
72275       return *reinterpret_cast<const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV*>( this );
72276     }
72277 
operator VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV72278     operator VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV &() VULKAN_HPP_NOEXCEPT
72279     {
72280       return *reinterpret_cast<VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV*>( this );
72281     }
72282 
72283 #if defined( VULKAN_HPP_USE_REFLECT )
72284 #if 14 <= VULKAN_HPP_CPP_VERSION
72285     auto
72286 #else
72287     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV const &>
72288 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV72289       reflect() const VULKAN_HPP_NOEXCEPT
72290     {
72291       return std::tie( sType, pNext, rayTracingInvocationReorderReorderingHint );
72292     }
72293 #endif
72294 
72295 
72296 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72297 auto operator<=>( PhysicalDeviceRayTracingInvocationReorderPropertiesNV const & ) const = default;
72298 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV72299     bool operator==( PhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
72300     {
72301 #if defined( VULKAN_HPP_USE_REFLECT )
72302       return this->reflect() == rhs.reflect();
72303 #else
72304       return ( sType == rhs.sType )
72305           && ( pNext == rhs.pNext )
72306           && ( rayTracingInvocationReorderReorderingHint == rhs.rayTracingInvocationReorderReorderingHint );
72307 #endif
72308     }
72309 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV72310     bool operator!=( PhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
72311     {
72312       return !operator==( rhs );
72313     }
72314 #endif
72315 
72316     public:
72317     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingInvocationReorderPropertiesNV;
72318     void * pNext = {};
72319     VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint = VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV::eNone;
72320 
72321   };
72322 
72323   template <>
72324   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingInvocationReorderPropertiesNV>
72325   {
72326     using Type = PhysicalDeviceRayTracingInvocationReorderPropertiesNV;
72327   };
72328 
72329   struct PhysicalDeviceRayTracingMaintenance1FeaturesKHR
72330   {
72331     using NativeType = VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
72332 
72333     static const bool allowDuplicate = false;
72334     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingMaintenance1FeaturesKHR;
72335 
72336 
72337 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingMaintenance1FeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72338 VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMaintenance1FeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
72339     : pNext( pNext_ ), rayTracingMaintenance1( rayTracingMaintenance1_ ), rayTracingPipelineTraceRaysIndirect2( rayTracingPipelineTraceRaysIndirect2_ )
72340     {}
72341 
72342     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMaintenance1FeaturesKHR( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72343 
PhysicalDeviceRayTracingMaintenance1FeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72344     PhysicalDeviceRayTracingMaintenance1FeaturesKHR( VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72345       : PhysicalDeviceRayTracingMaintenance1FeaturesKHR( *reinterpret_cast<PhysicalDeviceRayTracingMaintenance1FeaturesKHR const *>( &rhs ) )
72346     {}
72347 
72348 
72349     PhysicalDeviceRayTracingMaintenance1FeaturesKHR & operator=( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72350 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
72351 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72352     PhysicalDeviceRayTracingMaintenance1FeaturesKHR & operator=( VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72353     {
72354       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR const *>( &rhs );
72355       return *this;
72356     }
72357 
72358 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72359     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
72360     {
72361       pNext = pNext_;
72362       return *this;
72363     }
72364 
setRayTracingMaintenance1VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72365     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR & setRayTracingMaintenance1( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1_ ) VULKAN_HPP_NOEXCEPT
72366     {
72367       rayTracingMaintenance1 = rayTracingMaintenance1_;
72368       return *this;
72369     }
72370 
setRayTracingPipelineTraceRaysIndirect2VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72371     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR & setRayTracingPipelineTraceRaysIndirect2( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2_ ) VULKAN_HPP_NOEXCEPT
72372     {
72373       rayTracingPipelineTraceRaysIndirect2 = rayTracingPipelineTraceRaysIndirect2_;
72374       return *this;
72375     }
72376 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
72377 
72378 
operator VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72379     operator VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
72380     {
72381       return *reinterpret_cast<const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR*>( this );
72382     }
72383 
operator VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72384     operator VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR &() VULKAN_HPP_NOEXCEPT
72385     {
72386       return *reinterpret_cast<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR*>( this );
72387     }
72388 
72389 #if defined( VULKAN_HPP_USE_REFLECT )
72390 #if 14 <= VULKAN_HPP_CPP_VERSION
72391     auto
72392 #else
72393     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
72394 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72395       reflect() const VULKAN_HPP_NOEXCEPT
72396     {
72397       return std::tie( sType, pNext, rayTracingMaintenance1, rayTracingPipelineTraceRaysIndirect2 );
72398     }
72399 #endif
72400 
72401 
72402 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72403 auto operator<=>( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & ) const = default;
72404 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72405     bool operator==( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
72406     {
72407 #if defined( VULKAN_HPP_USE_REFLECT )
72408       return this->reflect() == rhs.reflect();
72409 #else
72410       return ( sType == rhs.sType )
72411           && ( pNext == rhs.pNext )
72412           && ( rayTracingMaintenance1 == rhs.rayTracingMaintenance1 )
72413           && ( rayTracingPipelineTraceRaysIndirect2 == rhs.rayTracingPipelineTraceRaysIndirect2 );
72414 #endif
72415     }
72416 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR72417     bool operator!=( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
72418     {
72419       return !operator==( rhs );
72420     }
72421 #endif
72422 
72423     public:
72424     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingMaintenance1FeaturesKHR;
72425     void * pNext = {};
72426     VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1 = {};
72427     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2 = {};
72428 
72429   };
72430 
72431   template <>
72432   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingMaintenance1FeaturesKHR>
72433   {
72434     using Type = PhysicalDeviceRayTracingMaintenance1FeaturesKHR;
72435   };
72436 
72437   struct PhysicalDeviceRayTracingMotionBlurFeaturesNV
72438   {
72439     using NativeType = VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
72440 
72441     static const bool allowDuplicate = false;
72442     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV;
72443 
72444 
72445 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingMotionBlurFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72446 VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMotionBlurFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
72447     : pNext( pNext_ ), rayTracingMotionBlur( rayTracingMotionBlur_ ), rayTracingMotionBlurPipelineTraceRaysIndirect( rayTracingMotionBlurPipelineTraceRaysIndirect_ )
72448     {}
72449 
72450     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMotionBlurFeaturesNV( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72451 
PhysicalDeviceRayTracingMotionBlurFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72452     PhysicalDeviceRayTracingMotionBlurFeaturesNV( VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
72453       : PhysicalDeviceRayTracingMotionBlurFeaturesNV( *reinterpret_cast<PhysicalDeviceRayTracingMotionBlurFeaturesNV const *>( &rhs ) )
72454     {}
72455 
72456 
72457     PhysicalDeviceRayTracingMotionBlurFeaturesNV & operator=( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72458 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
72459 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72460     PhysicalDeviceRayTracingMotionBlurFeaturesNV & operator=( VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
72461     {
72462       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV const *>( &rhs );
72463       return *this;
72464     }
72465 
72466 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72467     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMotionBlurFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
72468     {
72469       pNext = pNext_;
72470       return *this;
72471     }
72472 
setRayTracingMotionBlurVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72473     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMotionBlurFeaturesNV & setRayTracingMotionBlur( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur_ ) VULKAN_HPP_NOEXCEPT
72474     {
72475       rayTracingMotionBlur = rayTracingMotionBlur_;
72476       return *this;
72477     }
72478 
setRayTracingMotionBlurPipelineTraceRaysIndirectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72479     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMotionBlurFeaturesNV & setRayTracingMotionBlurPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT
72480     {
72481       rayTracingMotionBlurPipelineTraceRaysIndirect = rayTracingMotionBlurPipelineTraceRaysIndirect_;
72482       return *this;
72483     }
72484 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
72485 
72486 
operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72487     operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
72488     {
72489       return *reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>( this );
72490     }
72491 
operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72492     operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV &() VULKAN_HPP_NOEXCEPT
72493     {
72494       return *reinterpret_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>( this );
72495     }
72496 
72497 #if defined( VULKAN_HPP_USE_REFLECT )
72498 #if 14 <= VULKAN_HPP_CPP_VERSION
72499     auto
72500 #else
72501     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
72502 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72503       reflect() const VULKAN_HPP_NOEXCEPT
72504     {
72505       return std::tie( sType, pNext, rayTracingMotionBlur, rayTracingMotionBlurPipelineTraceRaysIndirect );
72506     }
72507 #endif
72508 
72509 
72510 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72511 auto operator<=>( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & ) const = default;
72512 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72513     bool operator==( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
72514     {
72515 #if defined( VULKAN_HPP_USE_REFLECT )
72516       return this->reflect() == rhs.reflect();
72517 #else
72518       return ( sType == rhs.sType )
72519           && ( pNext == rhs.pNext )
72520           && ( rayTracingMotionBlur == rhs.rayTracingMotionBlur )
72521           && ( rayTracingMotionBlurPipelineTraceRaysIndirect == rhs.rayTracingMotionBlurPipelineTraceRaysIndirect );
72522 #endif
72523     }
72524 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV72525     bool operator!=( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
72526     {
72527       return !operator==( rhs );
72528     }
72529 #endif
72530 
72531     public:
72532     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV;
72533     void * pNext = {};
72534     VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur = {};
72535     VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect = {};
72536 
72537   };
72538 
72539   template <>
72540   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV>
72541   {
72542     using Type = PhysicalDeviceRayTracingMotionBlurFeaturesNV;
72543   };
72544 
72545   struct PhysicalDeviceRayTracingPipelineFeaturesKHR
72546   {
72547     using NativeType = VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
72548 
72549     static const bool allowDuplicate = false;
72550     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR;
72551 
72552 
72553 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPipelineFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72554 VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
72555     : pNext( pNext_ ), rayTracingPipeline( rayTracingPipeline_ ), rayTracingPipelineShaderGroupHandleCaptureReplay( rayTracingPipelineShaderGroupHandleCaptureReplay_ ), rayTracingPipelineShaderGroupHandleCaptureReplayMixed( rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ), rayTracingPipelineTraceRaysIndirect( rayTracingPipelineTraceRaysIndirect_ ), rayTraversalPrimitiveCulling( rayTraversalPrimitiveCulling_ )
72556     {}
72557 
72558     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72559 
PhysicalDeviceRayTracingPipelineFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72560     PhysicalDeviceRayTracingPipelineFeaturesKHR( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72561       : PhysicalDeviceRayTracingPipelineFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPipelineFeaturesKHR const *>( &rhs ) )
72562     {}
72563 
72564 
72565     PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72566 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
72567 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72568     PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72569     {
72570       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR const *>( &rhs );
72571       return *this;
72572     }
72573 
72574 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72575     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
72576     {
72577       pNext = pNext_;
72578       return *this;
72579     }
72580 
setRayTracingPipelineVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72581     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipeline( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ ) VULKAN_HPP_NOEXCEPT
72582     {
72583       rayTracingPipeline = rayTracingPipeline_;
72584       return *this;
72585     }
72586 
setRayTracingPipelineShaderGroupHandleCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72587     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
72588     {
72589       rayTracingPipelineShaderGroupHandleCaptureReplay = rayTracingPipelineShaderGroupHandleCaptureReplay_;
72590       return *this;
72591     }
72592 
setRayTracingPipelineShaderGroupHandleCaptureReplayMixedVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72593     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplayMixed( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT
72594     {
72595       rayTracingPipelineShaderGroupHandleCaptureReplayMixed = rayTracingPipelineShaderGroupHandleCaptureReplayMixed_;
72596       return *this;
72597     }
72598 
setRayTracingPipelineTraceRaysIndirectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72599     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT
72600     {
72601       rayTracingPipelineTraceRaysIndirect = rayTracingPipelineTraceRaysIndirect_;
72602       return *this;
72603     }
72604 
setRayTraversalPrimitiveCullingVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72605     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTraversalPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT
72606     {
72607       rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling_;
72608       return *this;
72609     }
72610 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
72611 
72612 
operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72613     operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
72614     {
72615       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>( this );
72616     }
72617 
operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72618     operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR &() VULKAN_HPP_NOEXCEPT
72619     {
72620       return *reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>( this );
72621     }
72622 
72623 #if defined( VULKAN_HPP_USE_REFLECT )
72624 #if 14 <= VULKAN_HPP_CPP_VERSION
72625     auto
72626 #else
72627     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
72628 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72629       reflect() const VULKAN_HPP_NOEXCEPT
72630     {
72631       return std::tie( sType, pNext, rayTracingPipeline, rayTracingPipelineShaderGroupHandleCaptureReplay, rayTracingPipelineShaderGroupHandleCaptureReplayMixed, rayTracingPipelineTraceRaysIndirect, rayTraversalPrimitiveCulling );
72632     }
72633 #endif
72634 
72635 
72636 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72637 auto operator<=>( PhysicalDeviceRayTracingPipelineFeaturesKHR const & ) const = default;
72638 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72639     bool operator==( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
72640     {
72641 #if defined( VULKAN_HPP_USE_REFLECT )
72642       return this->reflect() == rhs.reflect();
72643 #else
72644       return ( sType == rhs.sType )
72645           && ( pNext == rhs.pNext )
72646           && ( rayTracingPipeline == rhs.rayTracingPipeline )
72647           && ( rayTracingPipelineShaderGroupHandleCaptureReplay == rhs.rayTracingPipelineShaderGroupHandleCaptureReplay )
72648           && ( rayTracingPipelineShaderGroupHandleCaptureReplayMixed == rhs.rayTracingPipelineShaderGroupHandleCaptureReplayMixed )
72649           && ( rayTracingPipelineTraceRaysIndirect == rhs.rayTracingPipelineTraceRaysIndirect )
72650           && ( rayTraversalPrimitiveCulling == rhs.rayTraversalPrimitiveCulling );
72651 #endif
72652     }
72653 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR72654     bool operator!=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
72655     {
72656       return !operator==( rhs );
72657     }
72658 #endif
72659 
72660     public:
72661     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR;
72662     void * pNext = {};
72663     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline = {};
72664     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay = {};
72665     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed = {};
72666     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect = {};
72667     VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling = {};
72668 
72669   };
72670 
72671   template <>
72672   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR>
72673   {
72674     using Type = PhysicalDeviceRayTracingPipelineFeaturesKHR;
72675   };
72676 
72677   struct PhysicalDeviceRayTracingPipelinePropertiesKHR
72678   {
72679     using NativeType = VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
72680 
72681     static const bool allowDuplicate = false;
72682     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR;
72683 
72684 
72685 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPipelinePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR72686 VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR(uint32_t shaderGroupHandleSize_ = {}, uint32_t maxRayRecursionDepth_ = {}, uint32_t maxShaderGroupStride_ = {}, uint32_t shaderGroupBaseAlignment_ = {}, uint32_t shaderGroupHandleCaptureReplaySize_ = {}, uint32_t maxRayDispatchInvocationCount_ = {}, uint32_t shaderGroupHandleAlignment_ = {}, uint32_t maxRayHitAttributeSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
72687     : pNext( pNext_ ), shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRayRecursionDepth( maxRayRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ ), maxRayDispatchInvocationCount( maxRayDispatchInvocationCount_ ), shaderGroupHandleAlignment( shaderGroupHandleAlignment_ ), maxRayHitAttributeSize( maxRayHitAttributeSize_ )
72688     {}
72689 
72690     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72691 
PhysicalDeviceRayTracingPipelinePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR72692     PhysicalDeviceRayTracingPipelinePropertiesKHR( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72693       : PhysicalDeviceRayTracingPipelinePropertiesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPipelinePropertiesKHR const *>( &rhs ) )
72694     {}
72695 
72696 
72697     PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72698 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
72699 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR72700     PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72701     {
72702       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR const *>( &rhs );
72703       return *this;
72704     }
72705 
72706 
operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR72707     operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
72708     {
72709       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>( this );
72710     }
72711 
operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR72712     operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR &() VULKAN_HPP_NOEXCEPT
72713     {
72714       return *reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>( this );
72715     }
72716 
72717 #if defined( VULKAN_HPP_USE_REFLECT )
72718 #if 14 <= VULKAN_HPP_CPP_VERSION
72719     auto
72720 #else
72721     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
72722 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR72723       reflect() const VULKAN_HPP_NOEXCEPT
72724     {
72725       return std::tie( sType, pNext, shaderGroupHandleSize, maxRayRecursionDepth, maxShaderGroupStride, shaderGroupBaseAlignment, shaderGroupHandleCaptureReplaySize, maxRayDispatchInvocationCount, shaderGroupHandleAlignment, maxRayHitAttributeSize );
72726     }
72727 #endif
72728 
72729 
72730 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72731 auto operator<=>( PhysicalDeviceRayTracingPipelinePropertiesKHR const & ) const = default;
72732 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR72733     bool operator==( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
72734     {
72735 #if defined( VULKAN_HPP_USE_REFLECT )
72736       return this->reflect() == rhs.reflect();
72737 #else
72738       return ( sType == rhs.sType )
72739           && ( pNext == rhs.pNext )
72740           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
72741           && ( maxRayRecursionDepth == rhs.maxRayRecursionDepth )
72742           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
72743           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
72744           && ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize )
72745           && ( maxRayDispatchInvocationCount == rhs.maxRayDispatchInvocationCount )
72746           && ( shaderGroupHandleAlignment == rhs.shaderGroupHandleAlignment )
72747           && ( maxRayHitAttributeSize == rhs.maxRayHitAttributeSize );
72748 #endif
72749     }
72750 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR72751     bool operator!=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
72752     {
72753       return !operator==( rhs );
72754     }
72755 #endif
72756 
72757     public:
72758     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR;
72759     void * pNext = {};
72760     uint32_t shaderGroupHandleSize = {};
72761     uint32_t maxRayRecursionDepth = {};
72762     uint32_t maxShaderGroupStride = {};
72763     uint32_t shaderGroupBaseAlignment = {};
72764     uint32_t shaderGroupHandleCaptureReplaySize = {};
72765     uint32_t maxRayDispatchInvocationCount = {};
72766     uint32_t shaderGroupHandleAlignment = {};
72767     uint32_t maxRayHitAttributeSize = {};
72768 
72769   };
72770 
72771   template <>
72772   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR>
72773   {
72774     using Type = PhysicalDeviceRayTracingPipelinePropertiesKHR;
72775   };
72776 
72777   struct PhysicalDeviceRayTracingPositionFetchFeaturesKHR
72778   {
72779     using NativeType = VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
72780 
72781     static const bool allowDuplicate = false;
72782     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR;
72783 
72784 
72785 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPositionFetchFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR72786 VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPositionFetchFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayTracingPositionFetch_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
72787     : pNext( pNext_ ), rayTracingPositionFetch( rayTracingPositionFetch_ )
72788     {}
72789 
72790     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPositionFetchFeaturesKHR( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72791 
PhysicalDeviceRayTracingPositionFetchFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR72792     PhysicalDeviceRayTracingPositionFetchFeaturesKHR( VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72793       : PhysicalDeviceRayTracingPositionFetchFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPositionFetchFeaturesKHR const *>( &rhs ) )
72794     {}
72795 
72796 
72797     PhysicalDeviceRayTracingPositionFetchFeaturesKHR & operator=( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72798 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
72799 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR72800     PhysicalDeviceRayTracingPositionFetchFeaturesKHR & operator=( VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
72801     {
72802       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR const *>( &rhs );
72803       return *this;
72804     }
72805 
72806 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR72807     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPositionFetchFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
72808     {
72809       pNext = pNext_;
72810       return *this;
72811     }
72812 
setRayTracingPositionFetchVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR72813     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPositionFetchFeaturesKHR & setRayTracingPositionFetch( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPositionFetch_ ) VULKAN_HPP_NOEXCEPT
72814     {
72815       rayTracingPositionFetch = rayTracingPositionFetch_;
72816       return *this;
72817     }
72818 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
72819 
72820 
operator VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR72821     operator VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
72822     {
72823       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR*>( this );
72824     }
72825 
operator VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR72826     operator VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR &() VULKAN_HPP_NOEXCEPT
72827     {
72828       return *reinterpret_cast<VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR*>( this );
72829     }
72830 
72831 #if defined( VULKAN_HPP_USE_REFLECT )
72832 #if 14 <= VULKAN_HPP_CPP_VERSION
72833     auto
72834 #else
72835     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
72836 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR72837       reflect() const VULKAN_HPP_NOEXCEPT
72838     {
72839       return std::tie( sType, pNext, rayTracingPositionFetch );
72840     }
72841 #endif
72842 
72843 
72844 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72845 auto operator<=>( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & ) const = default;
72846 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR72847     bool operator==( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
72848     {
72849 #if defined( VULKAN_HPP_USE_REFLECT )
72850       return this->reflect() == rhs.reflect();
72851 #else
72852       return ( sType == rhs.sType )
72853           && ( pNext == rhs.pNext )
72854           && ( rayTracingPositionFetch == rhs.rayTracingPositionFetch );
72855 #endif
72856     }
72857 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR72858     bool operator!=( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
72859     {
72860       return !operator==( rhs );
72861     }
72862 #endif
72863 
72864     public:
72865     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR;
72866     void * pNext = {};
72867     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPositionFetch = {};
72868 
72869   };
72870 
72871   template <>
72872   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR>
72873   {
72874     using Type = PhysicalDeviceRayTracingPositionFetchFeaturesKHR;
72875   };
72876 
72877   struct PhysicalDeviceRayTracingPropertiesNV
72878   {
72879     using NativeType = VkPhysicalDeviceRayTracingPropertiesNV;
72880 
72881     static const bool allowDuplicate = false;
72882     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
72883 
72884 
72885 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV72886 VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV(uint32_t shaderGroupHandleSize_ = {}, uint32_t maxRecursionDepth_ = {}, uint32_t maxShaderGroupStride_ = {}, uint32_t shaderGroupBaseAlignment_ = {}, uint64_t maxGeometryCount_ = {}, uint64_t maxInstanceCount_ = {}, uint64_t maxTriangleCount_ = {}, uint32_t maxDescriptorSetAccelerationStructures_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
72887     : pNext( pNext_ ), shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRecursionDepth( maxRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxTriangleCount( maxTriangleCount_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
72888     {}
72889 
72890     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72891 
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV72892     PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
72893       : PhysicalDeviceRayTracingPropertiesNV( *reinterpret_cast<PhysicalDeviceRayTracingPropertiesNV const *>( &rhs ) )
72894     {}
72895 
72896 
72897     PhysicalDeviceRayTracingPropertiesNV & operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72898 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
72899 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV72900     PhysicalDeviceRayTracingPropertiesNV & operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
72901     {
72902       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const *>( &rhs );
72903       return *this;
72904     }
72905 
72906 
operator VkPhysicalDeviceRayTracingPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV72907     operator VkPhysicalDeviceRayTracingPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
72908     {
72909       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>( this );
72910     }
72911 
operator VkPhysicalDeviceRayTracingPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV72912     operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT
72913     {
72914       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>( this );
72915     }
72916 
72917 #if defined( VULKAN_HPP_USE_REFLECT )
72918 #if 14 <= VULKAN_HPP_CPP_VERSION
72919     auto
72920 #else
72921     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint32_t const &>
72922 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV72923       reflect() const VULKAN_HPP_NOEXCEPT
72924     {
72925       return std::tie( sType, pNext, shaderGroupHandleSize, maxRecursionDepth, maxShaderGroupStride, shaderGroupBaseAlignment, maxGeometryCount, maxInstanceCount, maxTriangleCount, maxDescriptorSetAccelerationStructures );
72926     }
72927 #endif
72928 
72929 
72930 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72931 auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const & ) const = default;
72932 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV72933     bool operator==( PhysicalDeviceRayTracingPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
72934     {
72935 #if defined( VULKAN_HPP_USE_REFLECT )
72936       return this->reflect() == rhs.reflect();
72937 #else
72938       return ( sType == rhs.sType )
72939           && ( pNext == rhs.pNext )
72940           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
72941           && ( maxRecursionDepth == rhs.maxRecursionDepth )
72942           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
72943           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
72944           && ( maxGeometryCount == rhs.maxGeometryCount )
72945           && ( maxInstanceCount == rhs.maxInstanceCount )
72946           && ( maxTriangleCount == rhs.maxTriangleCount )
72947           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures );
72948 #endif
72949     }
72950 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV72951     bool operator!=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
72952     {
72953       return !operator==( rhs );
72954     }
72955 #endif
72956 
72957     public:
72958     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
72959     void * pNext = {};
72960     uint32_t shaderGroupHandleSize = {};
72961     uint32_t maxRecursionDepth = {};
72962     uint32_t maxShaderGroupStride = {};
72963     uint32_t shaderGroupBaseAlignment = {};
72964     uint64_t maxGeometryCount = {};
72965     uint64_t maxInstanceCount = {};
72966     uint64_t maxTriangleCount = {};
72967     uint32_t maxDescriptorSetAccelerationStructures = {};
72968 
72969   };
72970 
72971   template <>
72972   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesNV>
72973   {
72974     using Type = PhysicalDeviceRayTracingPropertiesNV;
72975   };
72976 
72977   struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
72978   {
72979     using NativeType = VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
72980 
72981     static const bool allowDuplicate = false;
72982     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
72983 
72984 
72985 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV72986 VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
72987     : pNext( pNext_ ), representativeFragmentTest( representativeFragmentTest_ )
72988     {}
72989 
72990     VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72991 
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV72992     PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
72993       : PhysicalDeviceRepresentativeFragmentTestFeaturesNV( *reinterpret_cast<PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs ) )
72994     {}
72995 
72996 
72997     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72998 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
72999 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV73000     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
73001     {
73002       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs );
73003       return *this;
73004     }
73005 
73006 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV73007     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
73008     {
73009       pNext = pNext_;
73010       return *this;
73011     }
73012 
setRepresentativeFragmentTestVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV73013     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT
73014     {
73015       representativeFragmentTest = representativeFragmentTest_;
73016       return *this;
73017     }
73018 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
73019 
73020 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV73021     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
73022     {
73023       return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
73024     }
73025 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV73026     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT
73027     {
73028       return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
73029     }
73030 
73031 #if defined( VULKAN_HPP_USE_REFLECT )
73032 #if 14 <= VULKAN_HPP_CPP_VERSION
73033     auto
73034 #else
73035     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
73036 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV73037       reflect() const VULKAN_HPP_NOEXCEPT
73038     {
73039       return std::tie( sType, pNext, representativeFragmentTest );
73040     }
73041 #endif
73042 
73043 
73044 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73045 auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & ) const = default;
73046 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV73047     bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
73048     {
73049 #if defined( VULKAN_HPP_USE_REFLECT )
73050       return this->reflect() == rhs.reflect();
73051 #else
73052       return ( sType == rhs.sType )
73053           && ( pNext == rhs.pNext )
73054           && ( representativeFragmentTest == rhs.representativeFragmentTest );
73055 #endif
73056     }
73057 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV73058     bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
73059     {
73060       return !operator==( rhs );
73061     }
73062 #endif
73063 
73064     public:
73065     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
73066     void * pNext = {};
73067     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {};
73068 
73069   };
73070 
73071   template <>
73072   struct CppType<StructureType, StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV>
73073   {
73074     using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
73075   };
73076 
73077   struct PhysicalDeviceRobustness2FeaturesEXT
73078   {
73079     using NativeType = VkPhysicalDeviceRobustness2FeaturesEXT;
73080 
73081     static const bool allowDuplicate = false;
73082     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
73083 
73084 
73085 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73086 VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
73087     : pNext( pNext_ ), robustBufferAccess2( robustBufferAccess2_ ), robustImageAccess2( robustImageAccess2_ ), nullDescriptor( nullDescriptor_ )
73088     {}
73089 
73090     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73091 
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73092     PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73093       : PhysicalDeviceRobustness2FeaturesEXT( *reinterpret_cast<PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs ) )
73094     {}
73095 
73096 
73097     PhysicalDeviceRobustness2FeaturesEXT & operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73098 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
73099 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73100     PhysicalDeviceRobustness2FeaturesEXT & operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73101     {
73102       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs );
73103       return *this;
73104     }
73105 
73106 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73107     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
73108     {
73109       pNext = pNext_;
73110       return *this;
73111     }
73112 
setRobustBufferAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73113     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT
73114     {
73115       robustBufferAccess2 = robustBufferAccess2_;
73116       return *this;
73117     }
73118 
setRobustImageAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73119     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT
73120     {
73121       robustImageAccess2 = robustImageAccess2_;
73122       return *this;
73123     }
73124 
setNullDescriptorVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73125     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT
73126     {
73127       nullDescriptor = nullDescriptor_;
73128       return *this;
73129     }
73130 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
73131 
73132 
operator VkPhysicalDeviceRobustness2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73133     operator VkPhysicalDeviceRobustness2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
73134     {
73135       return *reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
73136     }
73137 
operator VkPhysicalDeviceRobustness2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73138     operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
73139     {
73140       return *reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
73141     }
73142 
73143 #if defined( VULKAN_HPP_USE_REFLECT )
73144 #if 14 <= VULKAN_HPP_CPP_VERSION
73145     auto
73146 #else
73147     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
73148 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73149       reflect() const VULKAN_HPP_NOEXCEPT
73150     {
73151       return std::tie( sType, pNext, robustBufferAccess2, robustImageAccess2, nullDescriptor );
73152     }
73153 #endif
73154 
73155 
73156 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73157 auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const & ) const = default;
73158 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73159     bool operator==( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
73160     {
73161 #if defined( VULKAN_HPP_USE_REFLECT )
73162       return this->reflect() == rhs.reflect();
73163 #else
73164       return ( sType == rhs.sType )
73165           && ( pNext == rhs.pNext )
73166           && ( robustBufferAccess2 == rhs.robustBufferAccess2 )
73167           && ( robustImageAccess2 == rhs.robustImageAccess2 )
73168           && ( nullDescriptor == rhs.nullDescriptor );
73169 #endif
73170     }
73171 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT73172     bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
73173     {
73174       return !operator==( rhs );
73175     }
73176 #endif
73177 
73178     public:
73179     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
73180     void * pNext = {};
73181     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {};
73182     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {};
73183     VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {};
73184 
73185   };
73186 
73187   template <>
73188   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2FeaturesEXT>
73189   {
73190     using Type = PhysicalDeviceRobustness2FeaturesEXT;
73191   };
73192 
73193   struct PhysicalDeviceRobustness2PropertiesEXT
73194   {
73195     using NativeType = VkPhysicalDeviceRobustness2PropertiesEXT;
73196 
73197     static const bool allowDuplicate = false;
73198     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
73199 
73200 
73201 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT73202 VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
73203     : pNext( pNext_ ), robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ ), robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ )
73204     {}
73205 
73206     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73207 
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT73208     PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73209       : PhysicalDeviceRobustness2PropertiesEXT( *reinterpret_cast<PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs ) )
73210     {}
73211 
73212 
73213     PhysicalDeviceRobustness2PropertiesEXT & operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73214 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
73215 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT73216     PhysicalDeviceRobustness2PropertiesEXT & operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73217     {
73218       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs );
73219       return *this;
73220     }
73221 
73222 
operator VkPhysicalDeviceRobustness2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT73223     operator VkPhysicalDeviceRobustness2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
73224     {
73225       return *reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
73226     }
73227 
operator VkPhysicalDeviceRobustness2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT73228     operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
73229     {
73230       return *reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
73231     }
73232 
73233 #if defined( VULKAN_HPP_USE_REFLECT )
73234 #if 14 <= VULKAN_HPP_CPP_VERSION
73235     auto
73236 #else
73237     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
73238 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT73239       reflect() const VULKAN_HPP_NOEXCEPT
73240     {
73241       return std::tie( sType, pNext, robustStorageBufferAccessSizeAlignment, robustUniformBufferAccessSizeAlignment );
73242     }
73243 #endif
73244 
73245 
73246 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73247 auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const & ) const = default;
73248 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT73249     bool operator==( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
73250     {
73251 #if defined( VULKAN_HPP_USE_REFLECT )
73252       return this->reflect() == rhs.reflect();
73253 #else
73254       return ( sType == rhs.sType )
73255           && ( pNext == rhs.pNext )
73256           && ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment )
73257           && ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment );
73258 #endif
73259     }
73260 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT73261     bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
73262     {
73263       return !operator==( rhs );
73264     }
73265 #endif
73266 
73267     public:
73268     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
73269     void * pNext = {};
73270     VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {};
73271     VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {};
73272 
73273   };
73274 
73275   template <>
73276   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2PropertiesEXT>
73277   {
73278     using Type = PhysicalDeviceRobustness2PropertiesEXT;
73279   };
73280 
73281   struct PhysicalDeviceSampleLocationsPropertiesEXT
73282   {
73283     using NativeType = VkPhysicalDeviceSampleLocationsPropertiesEXT;
73284 
73285     static const bool allowDuplicate = false;
73286     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
73287 
73288 
73289 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT73290 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}, std::array<float,2> const & sampleLocationCoordinateRange_ = {}, uint32_t sampleLocationSubPixelBits_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
73291     : pNext( pNext_ ), sampleLocationSampleCounts( sampleLocationSampleCounts_ ), maxSampleLocationGridSize( maxSampleLocationGridSize_ ), sampleLocationCoordinateRange( sampleLocationCoordinateRange_ ), sampleLocationSubPixelBits( sampleLocationSubPixelBits_ ), variableSampleLocations( variableSampleLocations_ )
73292     {}
73293 
73294     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73295 
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT73296     PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73297       : PhysicalDeviceSampleLocationsPropertiesEXT( *reinterpret_cast<PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs ) )
73298     {}
73299 
73300 
73301     PhysicalDeviceSampleLocationsPropertiesEXT & operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73302 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
73303 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT73304     PhysicalDeviceSampleLocationsPropertiesEXT & operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73305     {
73306       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs );
73307       return *this;
73308     }
73309 
73310 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT73311     operator VkPhysicalDeviceSampleLocationsPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
73312     {
73313       return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
73314     }
73315 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT73316     operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
73317     {
73318       return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
73319     }
73320 
73321 #if defined( VULKAN_HPP_USE_REFLECT )
73322 #if 14 <= VULKAN_HPP_CPP_VERSION
73323     auto
73324 #else
73325     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
73326 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT73327       reflect() const VULKAN_HPP_NOEXCEPT
73328     {
73329       return std::tie( sType, pNext, sampleLocationSampleCounts, maxSampleLocationGridSize, sampleLocationCoordinateRange, sampleLocationSubPixelBits, variableSampleLocations );
73330     }
73331 #endif
73332 
73333 
73334 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73335 auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const & ) const = default;
73336 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT73337     bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
73338     {
73339 #if defined( VULKAN_HPP_USE_REFLECT )
73340       return this->reflect() == rhs.reflect();
73341 #else
73342       return ( sType == rhs.sType )
73343           && ( pNext == rhs.pNext )
73344           && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts )
73345           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize )
73346           && ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange )
73347           && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits )
73348           && ( variableSampleLocations == rhs.variableSampleLocations );
73349 #endif
73350     }
73351 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT73352     bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
73353     {
73354       return !operator==( rhs );
73355     }
73356 #endif
73357 
73358     public:
73359     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
73360     void * pNext = {};
73361     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {};
73362     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
73363     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> sampleLocationCoordinateRange = {};
73364     uint32_t sampleLocationSubPixelBits = {};
73365     VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {};
73366 
73367   };
73368 
73369   template <>
73370   struct CppType<StructureType, StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT>
73371   {
73372     using Type = PhysicalDeviceSampleLocationsPropertiesEXT;
73373   };
73374 
73375   struct PhysicalDeviceSamplerFilterMinmaxProperties
73376   {
73377     using NativeType = VkPhysicalDeviceSamplerFilterMinmaxProperties;
73378 
73379     static const bool allowDuplicate = false;
73380     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
73381 
73382 
73383 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties73384 VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties(VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
73385     : pNext( pNext_ ), filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
73386     {}
73387 
73388     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73389 
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties73390     PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
73391       : PhysicalDeviceSamplerFilterMinmaxProperties( *reinterpret_cast<PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs ) )
73392     {}
73393 
73394 
73395     PhysicalDeviceSamplerFilterMinmaxProperties & operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73396 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
73397 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties73398     PhysicalDeviceSamplerFilterMinmaxProperties & operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
73399     {
73400       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs );
73401       return *this;
73402     }
73403 
73404 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties73405     operator VkPhysicalDeviceSamplerFilterMinmaxProperties const &() const VULKAN_HPP_NOEXCEPT
73406     {
73407       return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
73408     }
73409 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties73410     operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT
73411     {
73412       return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
73413     }
73414 
73415 #if defined( VULKAN_HPP_USE_REFLECT )
73416 #if 14 <= VULKAN_HPP_CPP_VERSION
73417     auto
73418 #else
73419     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
73420 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties73421       reflect() const VULKAN_HPP_NOEXCEPT
73422     {
73423       return std::tie( sType, pNext, filterMinmaxSingleComponentFormats, filterMinmaxImageComponentMapping );
73424     }
73425 #endif
73426 
73427 
73428 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73429 auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const & ) const = default;
73430 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties73431     bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
73432     {
73433 #if defined( VULKAN_HPP_USE_REFLECT )
73434       return this->reflect() == rhs.reflect();
73435 #else
73436       return ( sType == rhs.sType )
73437           && ( pNext == rhs.pNext )
73438           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
73439           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping );
73440 #endif
73441     }
73442 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties73443     bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
73444     {
73445       return !operator==( rhs );
73446     }
73447 #endif
73448 
73449     public:
73450     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
73451     void * pNext = {};
73452     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
73453     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
73454 
73455   };
73456 
73457   template <>
73458   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties>
73459   {
73460     using Type = PhysicalDeviceSamplerFilterMinmaxProperties;
73461   };
73462   using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
73463 
73464   struct PhysicalDeviceSamplerYcbcrConversionFeatures
73465   {
73466     using NativeType = VkPhysicalDeviceSamplerYcbcrConversionFeatures;
73467 
73468     static const bool allowDuplicate = false;
73469     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
73470 
73471 
73472 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures73473 VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures(VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
73474     : pNext( pNext_ ), samplerYcbcrConversion( samplerYcbcrConversion_ )
73475     {}
73476 
73477     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73478 
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures73479     PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73480       : PhysicalDeviceSamplerYcbcrConversionFeatures( *reinterpret_cast<PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs ) )
73481     {}
73482 
73483 
73484     PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73485 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
73486 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures73487     PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73488     {
73489       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs );
73490       return *this;
73491     }
73492 
73493 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures73494     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
73495     {
73496       pNext = pNext_;
73497       return *this;
73498     }
73499 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures73500     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
73501     {
73502       samplerYcbcrConversion = samplerYcbcrConversion_;
73503       return *this;
73504     }
73505 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
73506 
73507 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures73508     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const &() const VULKAN_HPP_NOEXCEPT
73509     {
73510       return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
73511     }
73512 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures73513     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT
73514     {
73515       return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
73516     }
73517 
73518 #if defined( VULKAN_HPP_USE_REFLECT )
73519 #if 14 <= VULKAN_HPP_CPP_VERSION
73520     auto
73521 #else
73522     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
73523 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures73524       reflect() const VULKAN_HPP_NOEXCEPT
73525     {
73526       return std::tie( sType, pNext, samplerYcbcrConversion );
73527     }
73528 #endif
73529 
73530 
73531 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73532 auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const & ) const = default;
73533 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures73534     bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
73535     {
73536 #if defined( VULKAN_HPP_USE_REFLECT )
73537       return this->reflect() == rhs.reflect();
73538 #else
73539       return ( sType == rhs.sType )
73540           && ( pNext == rhs.pNext )
73541           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion );
73542 #endif
73543     }
73544 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures73545     bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
73546     {
73547       return !operator==( rhs );
73548     }
73549 #endif
73550 
73551     public:
73552     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
73553     void * pNext = {};
73554     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
73555 
73556   };
73557 
73558   template <>
73559   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures>
73560   {
73561     using Type = PhysicalDeviceSamplerYcbcrConversionFeatures;
73562   };
73563   using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
73564 
73565   struct PhysicalDeviceScalarBlockLayoutFeatures
73566   {
73567     using NativeType = VkPhysicalDeviceScalarBlockLayoutFeatures;
73568 
73569     static const bool allowDuplicate = false;
73570     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
73571 
73572 
73573 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures73574 VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
73575     : pNext( pNext_ ), scalarBlockLayout( scalarBlockLayout_ )
73576     {}
73577 
73578     VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73579 
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures73580     PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73581       : PhysicalDeviceScalarBlockLayoutFeatures( *reinterpret_cast<PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs ) )
73582     {}
73583 
73584 
73585     PhysicalDeviceScalarBlockLayoutFeatures & operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73586 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
73587 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures73588     PhysicalDeviceScalarBlockLayoutFeatures & operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73589     {
73590       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs );
73591       return *this;
73592     }
73593 
73594 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures73595     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
73596     {
73597       pNext = pNext_;
73598       return *this;
73599     }
73600 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures73601     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceScalarBlockLayoutFeatures & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
73602     {
73603       scalarBlockLayout = scalarBlockLayout_;
73604       return *this;
73605     }
73606 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
73607 
73608 
operator VkPhysicalDeviceScalarBlockLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures73609     operator VkPhysicalDeviceScalarBlockLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
73610     {
73611       return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
73612     }
73613 
operator VkPhysicalDeviceScalarBlockLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures73614     operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT
73615     {
73616       return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
73617     }
73618 
73619 #if defined( VULKAN_HPP_USE_REFLECT )
73620 #if 14 <= VULKAN_HPP_CPP_VERSION
73621     auto
73622 #else
73623     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
73624 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures73625       reflect() const VULKAN_HPP_NOEXCEPT
73626     {
73627       return std::tie( sType, pNext, scalarBlockLayout );
73628     }
73629 #endif
73630 
73631 
73632 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73633 auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const & ) const = default;
73634 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures73635     bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
73636     {
73637 #if defined( VULKAN_HPP_USE_REFLECT )
73638       return this->reflect() == rhs.reflect();
73639 #else
73640       return ( sType == rhs.sType )
73641           && ( pNext == rhs.pNext )
73642           && ( scalarBlockLayout == rhs.scalarBlockLayout );
73643 #endif
73644     }
73645 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures73646     bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
73647     {
73648       return !operator==( rhs );
73649     }
73650 #endif
73651 
73652     public:
73653     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
73654     void * pNext = {};
73655     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
73656 
73657   };
73658 
73659   template <>
73660   struct CppType<StructureType, StructureType::ePhysicalDeviceScalarBlockLayoutFeatures>
73661   {
73662     using Type = PhysicalDeviceScalarBlockLayoutFeatures;
73663   };
73664   using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
73665 
73666   struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures
73667   {
73668     using NativeType = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
73669 
73670     static const bool allowDuplicate = false;
73671     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
73672 
73673 
73674 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures73675 VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures(VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
73676     : pNext( pNext_ ), separateDepthStencilLayouts( separateDepthStencilLayouts_ )
73677     {}
73678 
73679     VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73680 
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures73681     PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73682       : PhysicalDeviceSeparateDepthStencilLayoutsFeatures( *reinterpret_cast<PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs ) )
73683     {}
73684 
73685 
73686     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73687 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
73688 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures73689     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73690     {
73691       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs );
73692       return *this;
73693     }
73694 
73695 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures73696     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
73697     {
73698       pNext = pNext_;
73699       return *this;
73700     }
73701 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures73702     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
73703     {
73704       separateDepthStencilLayouts = separateDepthStencilLayouts_;
73705       return *this;
73706     }
73707 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
73708 
73709 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures73710     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const &() const VULKAN_HPP_NOEXCEPT
73711     {
73712       return *reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
73713     }
73714 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures73715     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT
73716     {
73717       return *reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
73718     }
73719 
73720 #if defined( VULKAN_HPP_USE_REFLECT )
73721 #if 14 <= VULKAN_HPP_CPP_VERSION
73722     auto
73723 #else
73724     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
73725 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures73726       reflect() const VULKAN_HPP_NOEXCEPT
73727     {
73728       return std::tie( sType, pNext, separateDepthStencilLayouts );
73729     }
73730 #endif
73731 
73732 
73733 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73734 auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & ) const = default;
73735 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures73736     bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
73737     {
73738 #if defined( VULKAN_HPP_USE_REFLECT )
73739       return this->reflect() == rhs.reflect();
73740 #else
73741       return ( sType == rhs.sType )
73742           && ( pNext == rhs.pNext )
73743           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts );
73744 #endif
73745     }
73746 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures73747     bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
73748     {
73749       return !operator==( rhs );
73750     }
73751 #endif
73752 
73753     public:
73754     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
73755     void * pNext = {};
73756     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
73757 
73758   };
73759 
73760   template <>
73761   struct CppType<StructureType, StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures>
73762   {
73763     using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
73764   };
73765   using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
73766 
73767   struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT
73768   {
73769     using NativeType = VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
73770 
73771     static const bool allowDuplicate = false;
73772     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT;
73773 
73774 
73775 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicFloat2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73776 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloat2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
73777     : pNext( pNext_ ), shaderBufferFloat16Atomics( shaderBufferFloat16Atomics_ ), shaderBufferFloat16AtomicAdd( shaderBufferFloat16AtomicAdd_ ), shaderBufferFloat16AtomicMinMax( shaderBufferFloat16AtomicMinMax_ ), shaderBufferFloat32AtomicMinMax( shaderBufferFloat32AtomicMinMax_ ), shaderBufferFloat64AtomicMinMax( shaderBufferFloat64AtomicMinMax_ ), shaderSharedFloat16Atomics( shaderSharedFloat16Atomics_ ), shaderSharedFloat16AtomicAdd( shaderSharedFloat16AtomicAdd_ ), shaderSharedFloat16AtomicMinMax( shaderSharedFloat16AtomicMinMax_ ), shaderSharedFloat32AtomicMinMax( shaderSharedFloat32AtomicMinMax_ ), shaderSharedFloat64AtomicMinMax( shaderSharedFloat64AtomicMinMax_ ), shaderImageFloat32AtomicMinMax( shaderImageFloat32AtomicMinMax_ ), sparseImageFloat32AtomicMinMax( sparseImageFloat32AtomicMinMax_ )
73778     {}
73779 
73780     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloat2FeaturesEXT( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73781 
PhysicalDeviceShaderAtomicFloat2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73782     PhysicalDeviceShaderAtomicFloat2FeaturesEXT( VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73783       : PhysicalDeviceShaderAtomicFloat2FeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderAtomicFloat2FeaturesEXT const *>( &rhs ) )
73784     {}
73785 
73786 
73787     PhysicalDeviceShaderAtomicFloat2FeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73788 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
73789 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73790     PhysicalDeviceShaderAtomicFloat2FeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73791     {
73792       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT const *>( &rhs );
73793       return *this;
73794     }
73795 
73796 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73797     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
73798     {
73799       pNext = pNext_;
73800       return *this;
73801     }
73802 
setShaderBufferFloat16AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73803     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderBufferFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
73804     {
73805       shaderBufferFloat16Atomics = shaderBufferFloat16Atomics_;
73806       return *this;
73807     }
73808 
setShaderBufferFloat16AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73809     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderBufferFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
73810     {
73811       shaderBufferFloat16AtomicAdd = shaderBufferFloat16AtomicAdd_;
73812       return *this;
73813     }
73814 
setShaderBufferFloat16AtomicMinMaxVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73815     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderBufferFloat16AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
73816     {
73817       shaderBufferFloat16AtomicMinMax = shaderBufferFloat16AtomicMinMax_;
73818       return *this;
73819     }
73820 
setShaderBufferFloat32AtomicMinMaxVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73821     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderBufferFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
73822     {
73823       shaderBufferFloat32AtomicMinMax = shaderBufferFloat32AtomicMinMax_;
73824       return *this;
73825     }
73826 
setShaderBufferFloat64AtomicMinMaxVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73827     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderBufferFloat64AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
73828     {
73829       shaderBufferFloat64AtomicMinMax = shaderBufferFloat64AtomicMinMax_;
73830       return *this;
73831     }
73832 
setShaderSharedFloat16AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73833     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderSharedFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
73834     {
73835       shaderSharedFloat16Atomics = shaderSharedFloat16Atomics_;
73836       return *this;
73837     }
73838 
setShaderSharedFloat16AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73839     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderSharedFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
73840     {
73841       shaderSharedFloat16AtomicAdd = shaderSharedFloat16AtomicAdd_;
73842       return *this;
73843     }
73844 
setShaderSharedFloat16AtomicMinMaxVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73845     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderSharedFloat16AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
73846     {
73847       shaderSharedFloat16AtomicMinMax = shaderSharedFloat16AtomicMinMax_;
73848       return *this;
73849     }
73850 
setShaderSharedFloat32AtomicMinMaxVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73851     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderSharedFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
73852     {
73853       shaderSharedFloat32AtomicMinMax = shaderSharedFloat32AtomicMinMax_;
73854       return *this;
73855     }
73856 
setShaderSharedFloat64AtomicMinMaxVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73857     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderSharedFloat64AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
73858     {
73859       shaderSharedFloat64AtomicMinMax = shaderSharedFloat64AtomicMinMax_;
73860       return *this;
73861     }
73862 
setShaderImageFloat32AtomicMinMaxVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73863     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setShaderImageFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
73864     {
73865       shaderImageFloat32AtomicMinMax = shaderImageFloat32AtomicMinMax_;
73866       return *this;
73867     }
73868 
setSparseImageFloat32AtomicMinMaxVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73869     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setSparseImageFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
73870     {
73871       sparseImageFloat32AtomicMinMax = sparseImageFloat32AtomicMinMax_;
73872       return *this;
73873     }
73874 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
73875 
73876 
operator VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73877     operator VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
73878     {
73879       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>( this );
73880     }
73881 
operator VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73882     operator VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
73883     {
73884       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>( this );
73885     }
73886 
73887 #if defined( VULKAN_HPP_USE_REFLECT )
73888 #if 14 <= VULKAN_HPP_CPP_VERSION
73889     auto
73890 #else
73891     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
73892 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73893       reflect() const VULKAN_HPP_NOEXCEPT
73894     {
73895       return std::tie( sType, pNext, shaderBufferFloat16Atomics, shaderBufferFloat16AtomicAdd, shaderBufferFloat16AtomicMinMax, shaderBufferFloat32AtomicMinMax, shaderBufferFloat64AtomicMinMax, shaderSharedFloat16Atomics, shaderSharedFloat16AtomicAdd, shaderSharedFloat16AtomicMinMax, shaderSharedFloat32AtomicMinMax, shaderSharedFloat64AtomicMinMax, shaderImageFloat32AtomicMinMax, sparseImageFloat32AtomicMinMax );
73896     }
73897 #endif
73898 
73899 
73900 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73901 auto operator<=>( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & ) const = default;
73902 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73903     bool operator==( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
73904     {
73905 #if defined( VULKAN_HPP_USE_REFLECT )
73906       return this->reflect() == rhs.reflect();
73907 #else
73908       return ( sType == rhs.sType )
73909           && ( pNext == rhs.pNext )
73910           && ( shaderBufferFloat16Atomics == rhs.shaderBufferFloat16Atomics )
73911           && ( shaderBufferFloat16AtomicAdd == rhs.shaderBufferFloat16AtomicAdd )
73912           && ( shaderBufferFloat16AtomicMinMax == rhs.shaderBufferFloat16AtomicMinMax )
73913           && ( shaderBufferFloat32AtomicMinMax == rhs.shaderBufferFloat32AtomicMinMax )
73914           && ( shaderBufferFloat64AtomicMinMax == rhs.shaderBufferFloat64AtomicMinMax )
73915           && ( shaderSharedFloat16Atomics == rhs.shaderSharedFloat16Atomics )
73916           && ( shaderSharedFloat16AtomicAdd == rhs.shaderSharedFloat16AtomicAdd )
73917           && ( shaderSharedFloat16AtomicMinMax == rhs.shaderSharedFloat16AtomicMinMax )
73918           && ( shaderSharedFloat32AtomicMinMax == rhs.shaderSharedFloat32AtomicMinMax )
73919           && ( shaderSharedFloat64AtomicMinMax == rhs.shaderSharedFloat64AtomicMinMax )
73920           && ( shaderImageFloat32AtomicMinMax == rhs.shaderImageFloat32AtomicMinMax )
73921           && ( sparseImageFloat32AtomicMinMax == rhs.sparseImageFloat32AtomicMinMax );
73922 #endif
73923     }
73924 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT73925     bool operator!=( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
73926     {
73927       return !operator==( rhs );
73928     }
73929 #endif
73930 
73931     public:
73932     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT;
73933     void * pNext = {};
73934     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics = {};
73935     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd = {};
73936     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax = {};
73937     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax = {};
73938     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax = {};
73939     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics = {};
73940     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd = {};
73941     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax = {};
73942     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax = {};
73943     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax = {};
73944     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax = {};
73945     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax = {};
73946 
73947   };
73948 
73949   template <>
73950   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT>
73951   {
73952     using Type = PhysicalDeviceShaderAtomicFloat2FeaturesEXT;
73953   };
73954 
73955   struct PhysicalDeviceShaderAtomicFloatFeaturesEXT
73956   {
73957     using NativeType = VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
73958 
73959     static const bool allowDuplicate = false;
73960     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
73961 
73962 
73963 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicFloatFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT73964 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
73965     : pNext( pNext_ ), shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ ), shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ ), shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ ), shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ ), shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ ), shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ ), shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ ), shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ ), shaderImageFloat32Atomics( shaderImageFloat32Atomics_ ), shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ ), sparseImageFloat32Atomics( sparseImageFloat32Atomics_ ), sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ )
73966     {}
73967 
73968     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73969 
PhysicalDeviceShaderAtomicFloatFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT73970     PhysicalDeviceShaderAtomicFloatFeaturesEXT( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73971       : PhysicalDeviceShaderAtomicFloatFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs ) )
73972     {}
73973 
73974 
73975     PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73976 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
73977 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT73978     PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73979     {
73980       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs );
73981       return *this;
73982     }
73983 
73984 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT73985     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
73986     {
73987       pNext = pNext_;
73988       return *this;
73989     }
73990 
setShaderBufferFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT73991     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
73992     {
73993       shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_;
73994       return *this;
73995     }
73996 
setShaderBufferFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT73997     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
73998     {
73999       shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_;
74000       return *this;
74001     }
74002 
setShaderBufferFloat64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74003     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
74004     {
74005       shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_;
74006       return *this;
74007     }
74008 
setShaderBufferFloat64AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74009     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
74010     {
74011       shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_;
74012       return *this;
74013     }
74014 
setShaderSharedFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74015     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
74016     {
74017       shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_;
74018       return *this;
74019     }
74020 
setShaderSharedFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74021     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
74022     {
74023       shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_;
74024       return *this;
74025     }
74026 
setShaderSharedFloat64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74027     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
74028     {
74029       shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_;
74030       return *this;
74031     }
74032 
setShaderSharedFloat64AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74033     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
74034     {
74035       shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_;
74036       return *this;
74037     }
74038 
setShaderImageFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74039     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
74040     {
74041       shaderImageFloat32Atomics = shaderImageFloat32Atomics_;
74042       return *this;
74043     }
74044 
setShaderImageFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74045     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
74046     {
74047       shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_;
74048       return *this;
74049     }
74050 
setSparseImageFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74051     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
74052     {
74053       sparseImageFloat32Atomics = sparseImageFloat32Atomics_;
74054       return *this;
74055     }
74056 
setSparseImageFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74057     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
74058     {
74059       sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_;
74060       return *this;
74061     }
74062 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
74063 
74064 
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74065     operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
74066     {
74067       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>( this );
74068     }
74069 
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74070     operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT
74071     {
74072       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>( this );
74073     }
74074 
74075 #if defined( VULKAN_HPP_USE_REFLECT )
74076 #if 14 <= VULKAN_HPP_CPP_VERSION
74077     auto
74078 #else
74079     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
74080 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74081       reflect() const VULKAN_HPP_NOEXCEPT
74082     {
74083       return std::tie( sType, pNext, shaderBufferFloat32Atomics, shaderBufferFloat32AtomicAdd, shaderBufferFloat64Atomics, shaderBufferFloat64AtomicAdd, shaderSharedFloat32Atomics, shaderSharedFloat32AtomicAdd, shaderSharedFloat64Atomics, shaderSharedFloat64AtomicAdd, shaderImageFloat32Atomics, shaderImageFloat32AtomicAdd, sparseImageFloat32Atomics, sparseImageFloat32AtomicAdd );
74084     }
74085 #endif
74086 
74087 
74088 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74089 auto operator<=>( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & ) const = default;
74090 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74091     bool operator==( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
74092     {
74093 #if defined( VULKAN_HPP_USE_REFLECT )
74094       return this->reflect() == rhs.reflect();
74095 #else
74096       return ( sType == rhs.sType )
74097           && ( pNext == rhs.pNext )
74098           && ( shaderBufferFloat32Atomics == rhs.shaderBufferFloat32Atomics )
74099           && ( shaderBufferFloat32AtomicAdd == rhs.shaderBufferFloat32AtomicAdd )
74100           && ( shaderBufferFloat64Atomics == rhs.shaderBufferFloat64Atomics )
74101           && ( shaderBufferFloat64AtomicAdd == rhs.shaderBufferFloat64AtomicAdd )
74102           && ( shaderSharedFloat32Atomics == rhs.shaderSharedFloat32Atomics )
74103           && ( shaderSharedFloat32AtomicAdd == rhs.shaderSharedFloat32AtomicAdd )
74104           && ( shaderSharedFloat64Atomics == rhs.shaderSharedFloat64Atomics )
74105           && ( shaderSharedFloat64AtomicAdd == rhs.shaderSharedFloat64AtomicAdd )
74106           && ( shaderImageFloat32Atomics == rhs.shaderImageFloat32Atomics )
74107           && ( shaderImageFloat32AtomicAdd == rhs.shaderImageFloat32AtomicAdd )
74108           && ( sparseImageFloat32Atomics == rhs.sparseImageFloat32Atomics )
74109           && ( sparseImageFloat32AtomicAdd == rhs.sparseImageFloat32AtomicAdd );
74110 #endif
74111     }
74112 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT74113     bool operator!=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
74114     {
74115       return !operator==( rhs );
74116     }
74117 #endif
74118 
74119     public:
74120     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
74121     void * pNext = {};
74122     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics = {};
74123     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd = {};
74124     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics = {};
74125     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd = {};
74126     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics = {};
74127     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd = {};
74128     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics = {};
74129     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd = {};
74130     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics = {};
74131     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd = {};
74132     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics = {};
74133     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd = {};
74134 
74135   };
74136 
74137   template <>
74138   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT>
74139   {
74140     using Type = PhysicalDeviceShaderAtomicFloatFeaturesEXT;
74141   };
74142 
74143   struct PhysicalDeviceShaderAtomicInt64Features
74144   {
74145     using NativeType = VkPhysicalDeviceShaderAtomicInt64Features;
74146 
74147     static const bool allowDuplicate = false;
74148     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
74149 
74150 
74151 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74152 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
74153     : pNext( pNext_ ), shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
74154     {}
74155 
74156     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74157 
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74158     PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
74159       : PhysicalDeviceShaderAtomicInt64Features( *reinterpret_cast<PhysicalDeviceShaderAtomicInt64Features const *>( &rhs ) )
74160     {}
74161 
74162 
74163     PhysicalDeviceShaderAtomicInt64Features & operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74164 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
74165 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74166     PhysicalDeviceShaderAtomicInt64Features & operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
74167     {
74168       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const *>( &rhs );
74169       return *this;
74170     }
74171 
74172 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74173     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
74174     {
74175       pNext = pNext_;
74176       return *this;
74177     }
74178 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74179     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
74180     {
74181       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
74182       return *this;
74183     }
74184 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74185     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
74186     {
74187       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
74188       return *this;
74189     }
74190 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
74191 
74192 
operator VkPhysicalDeviceShaderAtomicInt64Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74193     operator VkPhysicalDeviceShaderAtomicInt64Features const &() const VULKAN_HPP_NOEXCEPT
74194     {
74195       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>( this );
74196     }
74197 
operator VkPhysicalDeviceShaderAtomicInt64Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74198     operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT
74199     {
74200       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>( this );
74201     }
74202 
74203 #if defined( VULKAN_HPP_USE_REFLECT )
74204 #if 14 <= VULKAN_HPP_CPP_VERSION
74205     auto
74206 #else
74207     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
74208 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74209       reflect() const VULKAN_HPP_NOEXCEPT
74210     {
74211       return std::tie( sType, pNext, shaderBufferInt64Atomics, shaderSharedInt64Atomics );
74212     }
74213 #endif
74214 
74215 
74216 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74217 auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const & ) const = default;
74218 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74219     bool operator==( PhysicalDeviceShaderAtomicInt64Features const & rhs ) const VULKAN_HPP_NOEXCEPT
74220     {
74221 #if defined( VULKAN_HPP_USE_REFLECT )
74222       return this->reflect() == rhs.reflect();
74223 #else
74224       return ( sType == rhs.sType )
74225           && ( pNext == rhs.pNext )
74226           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
74227           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics );
74228 #endif
74229     }
74230 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features74231     bool operator!=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) const VULKAN_HPP_NOEXCEPT
74232     {
74233       return !operator==( rhs );
74234     }
74235 #endif
74236 
74237     public:
74238     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
74239     void * pNext = {};
74240     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
74241     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
74242 
74243   };
74244 
74245   template <>
74246   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicInt64Features>
74247   {
74248     using Type = PhysicalDeviceShaderAtomicInt64Features;
74249   };
74250   using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
74251 
74252   struct PhysicalDeviceShaderClockFeaturesKHR
74253   {
74254     using NativeType = VkPhysicalDeviceShaderClockFeaturesKHR;
74255 
74256     static const bool allowDuplicate = false;
74257     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
74258 
74259 
74260 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74261 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
74262     : pNext( pNext_ ), shaderSubgroupClock( shaderSubgroupClock_ ), shaderDeviceClock( shaderDeviceClock_ )
74263     {}
74264 
74265     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74266 
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74267     PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74268       : PhysicalDeviceShaderClockFeaturesKHR( *reinterpret_cast<PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs ) )
74269     {}
74270 
74271 
74272     PhysicalDeviceShaderClockFeaturesKHR & operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74273 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
74274 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74275     PhysicalDeviceShaderClockFeaturesKHR & operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74276     {
74277       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs );
74278       return *this;
74279     }
74280 
74281 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74282     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
74283     {
74284       pNext = pNext_;
74285       return *this;
74286     }
74287 
setShaderSubgroupClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74288     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR & setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT
74289     {
74290       shaderSubgroupClock = shaderSubgroupClock_;
74291       return *this;
74292     }
74293 
setShaderDeviceClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74294     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT
74295     {
74296       shaderDeviceClock = shaderDeviceClock_;
74297       return *this;
74298     }
74299 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
74300 
74301 
operator VkPhysicalDeviceShaderClockFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74302     operator VkPhysicalDeviceShaderClockFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
74303     {
74304       return *reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
74305     }
74306 
operator VkPhysicalDeviceShaderClockFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74307     operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT
74308     {
74309       return *reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
74310     }
74311 
74312 #if defined( VULKAN_HPP_USE_REFLECT )
74313 #if 14 <= VULKAN_HPP_CPP_VERSION
74314     auto
74315 #else
74316     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
74317 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74318       reflect() const VULKAN_HPP_NOEXCEPT
74319     {
74320       return std::tie( sType, pNext, shaderSubgroupClock, shaderDeviceClock );
74321     }
74322 #endif
74323 
74324 
74325 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74326 auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const & ) const = default;
74327 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74328     bool operator==( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
74329     {
74330 #if defined( VULKAN_HPP_USE_REFLECT )
74331       return this->reflect() == rhs.reflect();
74332 #else
74333       return ( sType == rhs.sType )
74334           && ( pNext == rhs.pNext )
74335           && ( shaderSubgroupClock == rhs.shaderSubgroupClock )
74336           && ( shaderDeviceClock == rhs.shaderDeviceClock );
74337 #endif
74338     }
74339 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR74340     bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
74341     {
74342       return !operator==( rhs );
74343     }
74344 #endif
74345 
74346     public:
74347     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
74348     void * pNext = {};
74349     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {};
74350     VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {};
74351 
74352   };
74353 
74354   template <>
74355   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderClockFeaturesKHR>
74356   {
74357     using Type = PhysicalDeviceShaderClockFeaturesKHR;
74358   };
74359 
74360   struct PhysicalDeviceShaderCoreBuiltinsFeaturesARM
74361   {
74362     using NativeType = VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
74363 
74364     static const bool allowDuplicate = false;
74365     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreBuiltinsFeaturesARM;
74366 
74367 
74368 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCoreBuiltinsFeaturesARMVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM74369 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreBuiltinsFeaturesARM(VULKAN_HPP_NAMESPACE::Bool32 shaderCoreBuiltins_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
74370     : pNext( pNext_ ), shaderCoreBuiltins( shaderCoreBuiltins_ )
74371     {}
74372 
74373     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreBuiltinsFeaturesARM( PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74374 
PhysicalDeviceShaderCoreBuiltinsFeaturesARMVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM74375     PhysicalDeviceShaderCoreBuiltinsFeaturesARM( VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT
74376       : PhysicalDeviceShaderCoreBuiltinsFeaturesARM( *reinterpret_cast<PhysicalDeviceShaderCoreBuiltinsFeaturesARM const *>( &rhs ) )
74377     {}
74378 
74379 
74380     PhysicalDeviceShaderCoreBuiltinsFeaturesARM & operator=( PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74381 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
74382 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM74383     PhysicalDeviceShaderCoreBuiltinsFeaturesARM & operator=( VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT
74384     {
74385       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM const *>( &rhs );
74386       return *this;
74387     }
74388 
74389 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM74390     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCoreBuiltinsFeaturesARM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
74391     {
74392       pNext = pNext_;
74393       return *this;
74394     }
74395 
setShaderCoreBuiltinsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM74396     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCoreBuiltinsFeaturesARM & setShaderCoreBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderCoreBuiltins_ ) VULKAN_HPP_NOEXCEPT
74397     {
74398       shaderCoreBuiltins = shaderCoreBuiltins_;
74399       return *this;
74400     }
74401 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
74402 
74403 
operator VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM74404     operator VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM const &() const VULKAN_HPP_NOEXCEPT
74405     {
74406       return *reinterpret_cast<const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM*>( this );
74407     }
74408 
operator VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM74409     operator VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM &() VULKAN_HPP_NOEXCEPT
74410     {
74411       return *reinterpret_cast<VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM*>( this );
74412     }
74413 
74414 #if defined( VULKAN_HPP_USE_REFLECT )
74415 #if 14 <= VULKAN_HPP_CPP_VERSION
74416     auto
74417 #else
74418     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
74419 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM74420       reflect() const VULKAN_HPP_NOEXCEPT
74421     {
74422       return std::tie( sType, pNext, shaderCoreBuiltins );
74423     }
74424 #endif
74425 
74426 
74427 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74428 auto operator<=>( PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & ) const = default;
74429 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM74430     bool operator==( PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
74431     {
74432 #if defined( VULKAN_HPP_USE_REFLECT )
74433       return this->reflect() == rhs.reflect();
74434 #else
74435       return ( sType == rhs.sType )
74436           && ( pNext == rhs.pNext )
74437           && ( shaderCoreBuiltins == rhs.shaderCoreBuiltins );
74438 #endif
74439     }
74440 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM74441     bool operator!=( PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
74442     {
74443       return !operator==( rhs );
74444     }
74445 #endif
74446 
74447     public:
74448     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreBuiltinsFeaturesARM;
74449     void * pNext = {};
74450     VULKAN_HPP_NAMESPACE::Bool32 shaderCoreBuiltins = {};
74451 
74452   };
74453 
74454   template <>
74455   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreBuiltinsFeaturesARM>
74456   {
74457     using Type = PhysicalDeviceShaderCoreBuiltinsFeaturesARM;
74458   };
74459 
74460   struct PhysicalDeviceShaderCoreBuiltinsPropertiesARM
74461   {
74462     using NativeType = VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
74463 
74464     static const bool allowDuplicate = false;
74465     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreBuiltinsPropertiesARM;
74466 
74467 
74468 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCoreBuiltinsPropertiesARMVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM74469 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreBuiltinsPropertiesARM(uint64_t shaderCoreMask_ = {}, uint32_t shaderCoreCount_ = {}, uint32_t shaderWarpsPerCore_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
74470     : pNext( pNext_ ), shaderCoreMask( shaderCoreMask_ ), shaderCoreCount( shaderCoreCount_ ), shaderWarpsPerCore( shaderWarpsPerCore_ )
74471     {}
74472 
74473     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreBuiltinsPropertiesARM( PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74474 
PhysicalDeviceShaderCoreBuiltinsPropertiesARMVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM74475     PhysicalDeviceShaderCoreBuiltinsPropertiesARM( VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
74476       : PhysicalDeviceShaderCoreBuiltinsPropertiesARM( *reinterpret_cast<PhysicalDeviceShaderCoreBuiltinsPropertiesARM const *>( &rhs ) )
74477     {}
74478 
74479 
74480     PhysicalDeviceShaderCoreBuiltinsPropertiesARM & operator=( PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74481 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
74482 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM74483     PhysicalDeviceShaderCoreBuiltinsPropertiesARM & operator=( VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
74484     {
74485       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM const *>( &rhs );
74486       return *this;
74487     }
74488 
74489 
operator VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM74490     operator VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM const &() const VULKAN_HPP_NOEXCEPT
74491     {
74492       return *reinterpret_cast<const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM*>( this );
74493     }
74494 
operator VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM74495     operator VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM &() VULKAN_HPP_NOEXCEPT
74496     {
74497       return *reinterpret_cast<VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM*>( this );
74498     }
74499 
74500 #if defined( VULKAN_HPP_USE_REFLECT )
74501 #if 14 <= VULKAN_HPP_CPP_VERSION
74502     auto
74503 #else
74504     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &, uint32_t const &, uint32_t const &>
74505 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM74506       reflect() const VULKAN_HPP_NOEXCEPT
74507     {
74508       return std::tie( sType, pNext, shaderCoreMask, shaderCoreCount, shaderWarpsPerCore );
74509     }
74510 #endif
74511 
74512 
74513 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74514 auto operator<=>( PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & ) const = default;
74515 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM74516     bool operator==( PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
74517     {
74518 #if defined( VULKAN_HPP_USE_REFLECT )
74519       return this->reflect() == rhs.reflect();
74520 #else
74521       return ( sType == rhs.sType )
74522           && ( pNext == rhs.pNext )
74523           && ( shaderCoreMask == rhs.shaderCoreMask )
74524           && ( shaderCoreCount == rhs.shaderCoreCount )
74525           && ( shaderWarpsPerCore == rhs.shaderWarpsPerCore );
74526 #endif
74527     }
74528 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM74529     bool operator!=( PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
74530     {
74531       return !operator==( rhs );
74532     }
74533 #endif
74534 
74535     public:
74536     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreBuiltinsPropertiesARM;
74537     void * pNext = {};
74538     uint64_t shaderCoreMask = {};
74539     uint32_t shaderCoreCount = {};
74540     uint32_t shaderWarpsPerCore = {};
74541 
74542   };
74543 
74544   template <>
74545   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreBuiltinsPropertiesARM>
74546   {
74547     using Type = PhysicalDeviceShaderCoreBuiltinsPropertiesARM;
74548   };
74549 
74550   struct PhysicalDeviceShaderCoreProperties2AMD
74551   {
74552     using NativeType = VkPhysicalDeviceShaderCoreProperties2AMD;
74553 
74554     static const bool allowDuplicate = false;
74555     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
74556 
74557 
74558 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD74559 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD(VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {}, uint32_t activeComputeUnitCount_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
74560     : pNext( pNext_ ), shaderCoreFeatures( shaderCoreFeatures_ ), activeComputeUnitCount( activeComputeUnitCount_ )
74561     {}
74562 
74563     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74564 
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD74565     PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
74566       : PhysicalDeviceShaderCoreProperties2AMD( *reinterpret_cast<PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs ) )
74567     {}
74568 
74569 
74570     PhysicalDeviceShaderCoreProperties2AMD & operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74571 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
74572 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD74573     PhysicalDeviceShaderCoreProperties2AMD & operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
74574     {
74575       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs );
74576       return *this;
74577     }
74578 
74579 
operator VkPhysicalDeviceShaderCoreProperties2AMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD74580     operator VkPhysicalDeviceShaderCoreProperties2AMD const &() const VULKAN_HPP_NOEXCEPT
74581     {
74582       return *reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
74583     }
74584 
operator VkPhysicalDeviceShaderCoreProperties2AMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD74585     operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT
74586     {
74587       return *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
74588     }
74589 
74590 #if defined( VULKAN_HPP_USE_REFLECT )
74591 #if 14 <= VULKAN_HPP_CPP_VERSION
74592     auto
74593 #else
74594     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD const &, uint32_t const &>
74595 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD74596       reflect() const VULKAN_HPP_NOEXCEPT
74597     {
74598       return std::tie( sType, pNext, shaderCoreFeatures, activeComputeUnitCount );
74599     }
74600 #endif
74601 
74602 
74603 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74604 auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const & ) const = default;
74605 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD74606     bool operator==( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) const VULKAN_HPP_NOEXCEPT
74607     {
74608 #if defined( VULKAN_HPP_USE_REFLECT )
74609       return this->reflect() == rhs.reflect();
74610 #else
74611       return ( sType == rhs.sType )
74612           && ( pNext == rhs.pNext )
74613           && ( shaderCoreFeatures == rhs.shaderCoreFeatures )
74614           && ( activeComputeUnitCount == rhs.activeComputeUnitCount );
74615 #endif
74616     }
74617 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD74618     bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) const VULKAN_HPP_NOEXCEPT
74619     {
74620       return !operator==( rhs );
74621     }
74622 #endif
74623 
74624     public:
74625     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
74626     void * pNext = {};
74627     VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {};
74628     uint32_t activeComputeUnitCount = {};
74629 
74630   };
74631 
74632   template <>
74633   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreProperties2AMD>
74634   {
74635     using Type = PhysicalDeviceShaderCoreProperties2AMD;
74636   };
74637 
74638   struct PhysicalDeviceShaderCorePropertiesAMD
74639   {
74640     using NativeType = VkPhysicalDeviceShaderCorePropertiesAMD;
74641 
74642     static const bool allowDuplicate = false;
74643     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
74644 
74645 
74646 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD74647 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD(uint32_t shaderEngineCount_ = {}, uint32_t shaderArraysPerEngineCount_ = {}, uint32_t computeUnitsPerShaderArray_ = {}, uint32_t simdPerComputeUnit_ = {}, uint32_t wavefrontsPerSimd_ = {}, uint32_t wavefrontSize_ = {}, uint32_t sgprsPerSimd_ = {}, uint32_t minSgprAllocation_ = {}, uint32_t maxSgprAllocation_ = {}, uint32_t sgprAllocationGranularity_ = {}, uint32_t vgprsPerSimd_ = {}, uint32_t minVgprAllocation_ = {}, uint32_t maxVgprAllocation_ = {}, uint32_t vgprAllocationGranularity_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
74648     : pNext( pNext_ ), shaderEngineCount( shaderEngineCount_ ), shaderArraysPerEngineCount( shaderArraysPerEngineCount_ ), computeUnitsPerShaderArray( computeUnitsPerShaderArray_ ), simdPerComputeUnit( simdPerComputeUnit_ ), wavefrontsPerSimd( wavefrontsPerSimd_ ), wavefrontSize( wavefrontSize_ ), sgprsPerSimd( sgprsPerSimd_ ), minSgprAllocation( minSgprAllocation_ ), maxSgprAllocation( maxSgprAllocation_ ), sgprAllocationGranularity( sgprAllocationGranularity_ ), vgprsPerSimd( vgprsPerSimd_ ), minVgprAllocation( minVgprAllocation_ ), maxVgprAllocation( maxVgprAllocation_ ), vgprAllocationGranularity( vgprAllocationGranularity_ )
74649     {}
74650 
74651     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74652 
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD74653     PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
74654       : PhysicalDeviceShaderCorePropertiesAMD( *reinterpret_cast<PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs ) )
74655     {}
74656 
74657 
74658     PhysicalDeviceShaderCorePropertiesAMD & operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74659 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
74660 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD74661     PhysicalDeviceShaderCorePropertiesAMD & operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
74662     {
74663       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs );
74664       return *this;
74665     }
74666 
74667 
operator VkPhysicalDeviceShaderCorePropertiesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD74668     operator VkPhysicalDeviceShaderCorePropertiesAMD const &() const VULKAN_HPP_NOEXCEPT
74669     {
74670       return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
74671     }
74672 
operator VkPhysicalDeviceShaderCorePropertiesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD74673     operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT
74674     {
74675       return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
74676     }
74677 
74678 #if defined( VULKAN_HPP_USE_REFLECT )
74679 #if 14 <= VULKAN_HPP_CPP_VERSION
74680     auto
74681 #else
74682     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
74683 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD74684       reflect() const VULKAN_HPP_NOEXCEPT
74685     {
74686       return std::tie( sType, pNext, shaderEngineCount, shaderArraysPerEngineCount, computeUnitsPerShaderArray, simdPerComputeUnit, wavefrontsPerSimd, wavefrontSize, sgprsPerSimd, minSgprAllocation, maxSgprAllocation, sgprAllocationGranularity, vgprsPerSimd, minVgprAllocation, maxVgprAllocation, vgprAllocationGranularity );
74687     }
74688 #endif
74689 
74690 
74691 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74692 auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const & ) const = default;
74693 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD74694     bool operator==( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
74695     {
74696 #if defined( VULKAN_HPP_USE_REFLECT )
74697       return this->reflect() == rhs.reflect();
74698 #else
74699       return ( sType == rhs.sType )
74700           && ( pNext == rhs.pNext )
74701           && ( shaderEngineCount == rhs.shaderEngineCount )
74702           && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount )
74703           && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray )
74704           && ( simdPerComputeUnit == rhs.simdPerComputeUnit )
74705           && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd )
74706           && ( wavefrontSize == rhs.wavefrontSize )
74707           && ( sgprsPerSimd == rhs.sgprsPerSimd )
74708           && ( minSgprAllocation == rhs.minSgprAllocation )
74709           && ( maxSgprAllocation == rhs.maxSgprAllocation )
74710           && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity )
74711           && ( vgprsPerSimd == rhs.vgprsPerSimd )
74712           && ( minVgprAllocation == rhs.minVgprAllocation )
74713           && ( maxVgprAllocation == rhs.maxVgprAllocation )
74714           && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity );
74715 #endif
74716     }
74717 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD74718     bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
74719     {
74720       return !operator==( rhs );
74721     }
74722 #endif
74723 
74724     public:
74725     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
74726     void * pNext = {};
74727     uint32_t shaderEngineCount = {};
74728     uint32_t shaderArraysPerEngineCount = {};
74729     uint32_t computeUnitsPerShaderArray = {};
74730     uint32_t simdPerComputeUnit = {};
74731     uint32_t wavefrontsPerSimd = {};
74732     uint32_t wavefrontSize = {};
74733     uint32_t sgprsPerSimd = {};
74734     uint32_t minSgprAllocation = {};
74735     uint32_t maxSgprAllocation = {};
74736     uint32_t sgprAllocationGranularity = {};
74737     uint32_t vgprsPerSimd = {};
74738     uint32_t minVgprAllocation = {};
74739     uint32_t maxVgprAllocation = {};
74740     uint32_t vgprAllocationGranularity = {};
74741 
74742   };
74743 
74744   template <>
74745   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesAMD>
74746   {
74747     using Type = PhysicalDeviceShaderCorePropertiesAMD;
74748   };
74749 
74750   struct PhysicalDeviceShaderCorePropertiesARM
74751   {
74752     using NativeType = VkPhysicalDeviceShaderCorePropertiesARM;
74753 
74754     static const bool allowDuplicate = false;
74755     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesARM;
74756 
74757 
74758 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCorePropertiesARMVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM74759 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesARM(uint32_t pixelRate_ = {}, uint32_t texelRate_ = {}, uint32_t fmaRate_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
74760     : pNext( pNext_ ), pixelRate( pixelRate_ ), texelRate( texelRate_ ), fmaRate( fmaRate_ )
74761     {}
74762 
74763     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesARM( PhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74764 
PhysicalDeviceShaderCorePropertiesARMVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM74765     PhysicalDeviceShaderCorePropertiesARM( VkPhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
74766       : PhysicalDeviceShaderCorePropertiesARM( *reinterpret_cast<PhysicalDeviceShaderCorePropertiesARM const *>( &rhs ) )
74767     {}
74768 
74769 
74770     PhysicalDeviceShaderCorePropertiesARM & operator=( PhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74771 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
74772 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM74773     PhysicalDeviceShaderCorePropertiesARM & operator=( VkPhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
74774     {
74775       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM const *>( &rhs );
74776       return *this;
74777     }
74778 
74779 
operator VkPhysicalDeviceShaderCorePropertiesARM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM74780     operator VkPhysicalDeviceShaderCorePropertiesARM const &() const VULKAN_HPP_NOEXCEPT
74781     {
74782       return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesARM*>( this );
74783     }
74784 
operator VkPhysicalDeviceShaderCorePropertiesARM&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM74785     operator VkPhysicalDeviceShaderCorePropertiesARM &() VULKAN_HPP_NOEXCEPT
74786     {
74787       return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesARM*>( this );
74788     }
74789 
74790 #if defined( VULKAN_HPP_USE_REFLECT )
74791 #if 14 <= VULKAN_HPP_CPP_VERSION
74792     auto
74793 #else
74794     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &>
74795 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM74796       reflect() const VULKAN_HPP_NOEXCEPT
74797     {
74798       return std::tie( sType, pNext, pixelRate, texelRate, fmaRate );
74799     }
74800 #endif
74801 
74802 
74803 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74804 auto operator<=>( PhysicalDeviceShaderCorePropertiesARM const & ) const = default;
74805 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM74806     bool operator==( PhysicalDeviceShaderCorePropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
74807     {
74808 #if defined( VULKAN_HPP_USE_REFLECT )
74809       return this->reflect() == rhs.reflect();
74810 #else
74811       return ( sType == rhs.sType )
74812           && ( pNext == rhs.pNext )
74813           && ( pixelRate == rhs.pixelRate )
74814           && ( texelRate == rhs.texelRate )
74815           && ( fmaRate == rhs.fmaRate );
74816 #endif
74817     }
74818 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM74819     bool operator!=( PhysicalDeviceShaderCorePropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
74820     {
74821       return !operator==( rhs );
74822     }
74823 #endif
74824 
74825     public:
74826     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesARM;
74827     void * pNext = {};
74828     uint32_t pixelRate = {};
74829     uint32_t texelRate = {};
74830     uint32_t fmaRate = {};
74831 
74832   };
74833 
74834   template <>
74835   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesARM>
74836   {
74837     using Type = PhysicalDeviceShaderCorePropertiesARM;
74838   };
74839 
74840   struct PhysicalDeviceShaderDemoteToHelperInvocationFeatures
74841   {
74842     using NativeType = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
74843 
74844     static const bool allowDuplicate = false;
74845     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeatures;
74846 
74847 
74848 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures74849 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
74850     : pNext( pNext_ ), shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
74851     {}
74852 
74853     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeatures( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74854 
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures74855     PhysicalDeviceShaderDemoteToHelperInvocationFeatures( VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
74856       : PhysicalDeviceShaderDemoteToHelperInvocationFeatures( *reinterpret_cast<PhysicalDeviceShaderDemoteToHelperInvocationFeatures const *>( &rhs ) )
74857     {}
74858 
74859 
74860     PhysicalDeviceShaderDemoteToHelperInvocationFeatures & operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74861 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
74862 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures74863     PhysicalDeviceShaderDemoteToHelperInvocationFeatures & operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
74864     {
74865       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures const *>( &rhs );
74866       return *this;
74867     }
74868 
74869 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures74870     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDemoteToHelperInvocationFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
74871     {
74872       pNext = pNext_;
74873       return *this;
74874     }
74875 
setShaderDemoteToHelperInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures74876     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDemoteToHelperInvocationFeatures & setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
74877     {
74878       shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
74879       return *this;
74880     }
74881 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
74882 
74883 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures74884     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures const &() const VULKAN_HPP_NOEXCEPT
74885     {
74886       return *reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>( this );
74887     }
74888 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures74889     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures &() VULKAN_HPP_NOEXCEPT
74890     {
74891       return *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>( this );
74892     }
74893 
74894 #if defined( VULKAN_HPP_USE_REFLECT )
74895 #if 14 <= VULKAN_HPP_CPP_VERSION
74896     auto
74897 #else
74898     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
74899 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures74900       reflect() const VULKAN_HPP_NOEXCEPT
74901     {
74902       return std::tie( sType, pNext, shaderDemoteToHelperInvocation );
74903     }
74904 #endif
74905 
74906 
74907 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74908 auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & ) const = default;
74909 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures74910     bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
74911     {
74912 #if defined( VULKAN_HPP_USE_REFLECT )
74913       return this->reflect() == rhs.reflect();
74914 #else
74915       return ( sType == rhs.sType )
74916           && ( pNext == rhs.pNext )
74917           && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation );
74918 #endif
74919     }
74920 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures74921     bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
74922     {
74923       return !operator==( rhs );
74924     }
74925 #endif
74926 
74927     public:
74928     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeatures;
74929     void * pNext = {};
74930     VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
74931 
74932   };
74933 
74934   template <>
74935   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeatures>
74936   {
74937     using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
74938   };
74939   using PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
74940 
74941   struct PhysicalDeviceShaderDrawParametersFeatures
74942   {
74943     using NativeType = VkPhysicalDeviceShaderDrawParametersFeatures;
74944 
74945     static const bool allowDuplicate = false;
74946     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
74947 
74948 
74949 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures74950 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
74951     : pNext( pNext_ ), shaderDrawParameters( shaderDrawParameters_ )
74952     {}
74953 
74954     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74955 
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures74956     PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
74957       : PhysicalDeviceShaderDrawParametersFeatures( *reinterpret_cast<PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs ) )
74958     {}
74959 
74960 
74961     PhysicalDeviceShaderDrawParametersFeatures & operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74962 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
74963 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures74964     PhysicalDeviceShaderDrawParametersFeatures & operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
74965     {
74966       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs );
74967       return *this;
74968     }
74969 
74970 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures74971     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDrawParametersFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
74972     {
74973       pNext = pNext_;
74974       return *this;
74975     }
74976 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures74977     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
74978     {
74979       shaderDrawParameters = shaderDrawParameters_;
74980       return *this;
74981     }
74982 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
74983 
74984 
operator VkPhysicalDeviceShaderDrawParametersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures74985     operator VkPhysicalDeviceShaderDrawParametersFeatures const &() const VULKAN_HPP_NOEXCEPT
74986     {
74987       return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
74988     }
74989 
operator VkPhysicalDeviceShaderDrawParametersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures74990     operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT
74991     {
74992       return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
74993     }
74994 
74995 #if defined( VULKAN_HPP_USE_REFLECT )
74996 #if 14 <= VULKAN_HPP_CPP_VERSION
74997     auto
74998 #else
74999     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
75000 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures75001       reflect() const VULKAN_HPP_NOEXCEPT
75002     {
75003       return std::tie( sType, pNext, shaderDrawParameters );
75004     }
75005 #endif
75006 
75007 
75008 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75009 auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const & ) const = default;
75010 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures75011     bool operator==( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
75012     {
75013 #if defined( VULKAN_HPP_USE_REFLECT )
75014       return this->reflect() == rhs.reflect();
75015 #else
75016       return ( sType == rhs.sType )
75017           && ( pNext == rhs.pNext )
75018           && ( shaderDrawParameters == rhs.shaderDrawParameters );
75019 #endif
75020     }
75021 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures75022     bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
75023     {
75024       return !operator==( rhs );
75025     }
75026 #endif
75027 
75028     public:
75029     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
75030     void * pNext = {};
75031     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
75032 
75033   };
75034 
75035   template <>
75036   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDrawParametersFeatures>
75037   {
75038     using Type = PhysicalDeviceShaderDrawParametersFeatures;
75039   };
75040   using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
75041 
75042   struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
75043   {
75044     using NativeType = VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
75045 
75046     static const bool allowDuplicate = false;
75047     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
75048 
75049 
75050 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD75051 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
75052     : pNext( pNext_ ), shaderEarlyAndLateFragmentTests( shaderEarlyAndLateFragmentTests_ )
75053     {}
75054 
75055     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75056 
PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD75057     PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
75058       : PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( *reinterpret_cast<PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const *>( &rhs ) )
75059     {}
75060 
75061 
75062     PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD & operator=( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75063 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
75064 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD75065     PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD & operator=( VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
75066     {
75067       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const *>( &rhs );
75068       return *this;
75069     }
75070 
75071 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD75072     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
75073     {
75074       pNext = pNext_;
75075       return *this;
75076     }
75077 
setShaderEarlyAndLateFragmentTestsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD75078     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD & setShaderEarlyAndLateFragmentTests( VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests_ ) VULKAN_HPP_NOEXCEPT
75079     {
75080       shaderEarlyAndLateFragmentTests = shaderEarlyAndLateFragmentTests_;
75081       return *this;
75082     }
75083 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
75084 
75085 
operator VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD75086     operator VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const &() const VULKAN_HPP_NOEXCEPT
75087     {
75088       return *reinterpret_cast<const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD*>( this );
75089     }
75090 
operator VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD75091     operator VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD &() VULKAN_HPP_NOEXCEPT
75092     {
75093       return *reinterpret_cast<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD*>( this );
75094     }
75095 
75096 #if defined( VULKAN_HPP_USE_REFLECT )
75097 #if 14 <= VULKAN_HPP_CPP_VERSION
75098     auto
75099 #else
75100     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
75101 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD75102       reflect() const VULKAN_HPP_NOEXCEPT
75103     {
75104       return std::tie( sType, pNext, shaderEarlyAndLateFragmentTests );
75105     }
75106 #endif
75107 
75108 
75109 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75110 auto operator<=>( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & ) const = default;
75111 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD75112     bool operator==( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
75113     {
75114 #if defined( VULKAN_HPP_USE_REFLECT )
75115       return this->reflect() == rhs.reflect();
75116 #else
75117       return ( sType == rhs.sType )
75118           && ( pNext == rhs.pNext )
75119           && ( shaderEarlyAndLateFragmentTests == rhs.shaderEarlyAndLateFragmentTests );
75120 #endif
75121     }
75122 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD75123     bool operator!=( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
75124     {
75125       return !operator==( rhs );
75126     }
75127 #endif
75128 
75129     public:
75130     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
75131     void * pNext = {};
75132     VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests = {};
75133 
75134   };
75135 
75136   template <>
75137   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>
75138   {
75139     using Type = PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
75140   };
75141 
75142 #if defined( VK_ENABLE_BETA_EXTENSIONS )
75143   struct PhysicalDeviceShaderEnqueueFeaturesAMDX
75144   {
75145     using NativeType = VkPhysicalDeviceShaderEnqueueFeaturesAMDX;
75146 
75147     static const bool allowDuplicate = false;
75148     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderEnqueueFeaturesAMDX;
75149 
75150 
75151 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderEnqueueFeaturesAMDXVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX75152 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueueFeaturesAMDX(VULKAN_HPP_NAMESPACE::Bool32 shaderEnqueue_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
75153     : pNext( pNext_ ), shaderEnqueue( shaderEnqueue_ )
75154     {}
75155 
75156     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueueFeaturesAMDX( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75157 
PhysicalDeviceShaderEnqueueFeaturesAMDXVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX75158     PhysicalDeviceShaderEnqueueFeaturesAMDX( VkPhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
75159       : PhysicalDeviceShaderEnqueueFeaturesAMDX( *reinterpret_cast<PhysicalDeviceShaderEnqueueFeaturesAMDX const *>( &rhs ) )
75160     {}
75161 
75162 
75163     PhysicalDeviceShaderEnqueueFeaturesAMDX & operator=( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75164 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
75165 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX75166     PhysicalDeviceShaderEnqueueFeaturesAMDX & operator=( VkPhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
75167     {
75168       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX const *>( &rhs );
75169       return *this;
75170     }
75171 
75172 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX75173     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueueFeaturesAMDX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
75174     {
75175       pNext = pNext_;
75176       return *this;
75177     }
75178 
setShaderEnqueueVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX75179     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueueFeaturesAMDX & setShaderEnqueue( VULKAN_HPP_NAMESPACE::Bool32 shaderEnqueue_ ) VULKAN_HPP_NOEXCEPT
75180     {
75181       shaderEnqueue = shaderEnqueue_;
75182       return *this;
75183     }
75184 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
75185 
75186 
operator VkPhysicalDeviceShaderEnqueueFeaturesAMDX const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX75187     operator VkPhysicalDeviceShaderEnqueueFeaturesAMDX const &() const VULKAN_HPP_NOEXCEPT
75188     {
75189       return *reinterpret_cast<const VkPhysicalDeviceShaderEnqueueFeaturesAMDX*>( this );
75190     }
75191 
operator VkPhysicalDeviceShaderEnqueueFeaturesAMDX&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX75192     operator VkPhysicalDeviceShaderEnqueueFeaturesAMDX &() VULKAN_HPP_NOEXCEPT
75193     {
75194       return *reinterpret_cast<VkPhysicalDeviceShaderEnqueueFeaturesAMDX*>( this );
75195     }
75196 
75197 #if defined( VULKAN_HPP_USE_REFLECT )
75198 #if 14 <= VULKAN_HPP_CPP_VERSION
75199     auto
75200 #else
75201     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
75202 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX75203       reflect() const VULKAN_HPP_NOEXCEPT
75204     {
75205       return std::tie( sType, pNext, shaderEnqueue );
75206     }
75207 #endif
75208 
75209 
75210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75211 auto operator<=>( PhysicalDeviceShaderEnqueueFeaturesAMDX const & ) const = default;
75212 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX75213     bool operator==( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
75214     {
75215 #if defined( VULKAN_HPP_USE_REFLECT )
75216       return this->reflect() == rhs.reflect();
75217 #else
75218       return ( sType == rhs.sType )
75219           && ( pNext == rhs.pNext )
75220           && ( shaderEnqueue == rhs.shaderEnqueue );
75221 #endif
75222     }
75223 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX75224     bool operator!=( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
75225     {
75226       return !operator==( rhs );
75227     }
75228 #endif
75229 
75230     public:
75231     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderEnqueueFeaturesAMDX;
75232     void * pNext = {};
75233     VULKAN_HPP_NAMESPACE::Bool32 shaderEnqueue = {};
75234 
75235   };
75236 
75237   template <>
75238   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderEnqueueFeaturesAMDX>
75239   {
75240     using Type = PhysicalDeviceShaderEnqueueFeaturesAMDX;
75241   };
75242 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
75243 
75244 #if defined( VK_ENABLE_BETA_EXTENSIONS )
75245   struct PhysicalDeviceShaderEnqueuePropertiesAMDX
75246   {
75247     using NativeType = VkPhysicalDeviceShaderEnqueuePropertiesAMDX;
75248 
75249     static const bool allowDuplicate = false;
75250     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderEnqueuePropertiesAMDX;
75251 
75252 
75253 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderEnqueuePropertiesAMDXVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75254 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueuePropertiesAMDX(uint32_t maxExecutionGraphDepth_ = {}, uint32_t maxExecutionGraphShaderOutputNodes_ = {}, uint32_t maxExecutionGraphShaderPayloadSize_ = {}, uint32_t maxExecutionGraphShaderPayloadCount_ = {}, uint32_t executionGraphDispatchAddressAlignment_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
75255     : pNext( pNext_ ), maxExecutionGraphDepth( maxExecutionGraphDepth_ ), maxExecutionGraphShaderOutputNodes( maxExecutionGraphShaderOutputNodes_ ), maxExecutionGraphShaderPayloadSize( maxExecutionGraphShaderPayloadSize_ ), maxExecutionGraphShaderPayloadCount( maxExecutionGraphShaderPayloadCount_ ), executionGraphDispatchAddressAlignment( executionGraphDispatchAddressAlignment_ )
75256     {}
75257 
75258     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueuePropertiesAMDX( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75259 
PhysicalDeviceShaderEnqueuePropertiesAMDXVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75260     PhysicalDeviceShaderEnqueuePropertiesAMDX( VkPhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
75261       : PhysicalDeviceShaderEnqueuePropertiesAMDX( *reinterpret_cast<PhysicalDeviceShaderEnqueuePropertiesAMDX const *>( &rhs ) )
75262     {}
75263 
75264 
75265     PhysicalDeviceShaderEnqueuePropertiesAMDX & operator=( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75266 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
75267 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75268     PhysicalDeviceShaderEnqueuePropertiesAMDX & operator=( VkPhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
75269     {
75270       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX const *>( &rhs );
75271       return *this;
75272     }
75273 
75274 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75275     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
75276     {
75277       pNext = pNext_;
75278       return *this;
75279     }
75280 
setMaxExecutionGraphDepthVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75281     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX & setMaxExecutionGraphDepth( uint32_t maxExecutionGraphDepth_ ) VULKAN_HPP_NOEXCEPT
75282     {
75283       maxExecutionGraphDepth = maxExecutionGraphDepth_;
75284       return *this;
75285     }
75286 
setMaxExecutionGraphShaderOutputNodesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75287     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX & setMaxExecutionGraphShaderOutputNodes( uint32_t maxExecutionGraphShaderOutputNodes_ ) VULKAN_HPP_NOEXCEPT
75288     {
75289       maxExecutionGraphShaderOutputNodes = maxExecutionGraphShaderOutputNodes_;
75290       return *this;
75291     }
75292 
setMaxExecutionGraphShaderPayloadSizeVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75293     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX & setMaxExecutionGraphShaderPayloadSize( uint32_t maxExecutionGraphShaderPayloadSize_ ) VULKAN_HPP_NOEXCEPT
75294     {
75295       maxExecutionGraphShaderPayloadSize = maxExecutionGraphShaderPayloadSize_;
75296       return *this;
75297     }
75298 
setMaxExecutionGraphShaderPayloadCountVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75299     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX & setMaxExecutionGraphShaderPayloadCount( uint32_t maxExecutionGraphShaderPayloadCount_ ) VULKAN_HPP_NOEXCEPT
75300     {
75301       maxExecutionGraphShaderPayloadCount = maxExecutionGraphShaderPayloadCount_;
75302       return *this;
75303     }
75304 
setExecutionGraphDispatchAddressAlignmentVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75305     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX & setExecutionGraphDispatchAddressAlignment( uint32_t executionGraphDispatchAddressAlignment_ ) VULKAN_HPP_NOEXCEPT
75306     {
75307       executionGraphDispatchAddressAlignment = executionGraphDispatchAddressAlignment_;
75308       return *this;
75309     }
75310 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
75311 
75312 
operator VkPhysicalDeviceShaderEnqueuePropertiesAMDX const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75313     operator VkPhysicalDeviceShaderEnqueuePropertiesAMDX const &() const VULKAN_HPP_NOEXCEPT
75314     {
75315       return *reinterpret_cast<const VkPhysicalDeviceShaderEnqueuePropertiesAMDX*>( this );
75316     }
75317 
operator VkPhysicalDeviceShaderEnqueuePropertiesAMDX&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75318     operator VkPhysicalDeviceShaderEnqueuePropertiesAMDX &() VULKAN_HPP_NOEXCEPT
75319     {
75320       return *reinterpret_cast<VkPhysicalDeviceShaderEnqueuePropertiesAMDX*>( this );
75321     }
75322 
75323 #if defined( VULKAN_HPP_USE_REFLECT )
75324 #if 14 <= VULKAN_HPP_CPP_VERSION
75325     auto
75326 #else
75327     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
75328 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75329       reflect() const VULKAN_HPP_NOEXCEPT
75330     {
75331       return std::tie( sType, pNext, maxExecutionGraphDepth, maxExecutionGraphShaderOutputNodes, maxExecutionGraphShaderPayloadSize, maxExecutionGraphShaderPayloadCount, executionGraphDispatchAddressAlignment );
75332     }
75333 #endif
75334 
75335 
75336 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75337 auto operator<=>( PhysicalDeviceShaderEnqueuePropertiesAMDX const & ) const = default;
75338 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75339     bool operator==( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
75340     {
75341 #if defined( VULKAN_HPP_USE_REFLECT )
75342       return this->reflect() == rhs.reflect();
75343 #else
75344       return ( sType == rhs.sType )
75345           && ( pNext == rhs.pNext )
75346           && ( maxExecutionGraphDepth == rhs.maxExecutionGraphDepth )
75347           && ( maxExecutionGraphShaderOutputNodes == rhs.maxExecutionGraphShaderOutputNodes )
75348           && ( maxExecutionGraphShaderPayloadSize == rhs.maxExecutionGraphShaderPayloadSize )
75349           && ( maxExecutionGraphShaderPayloadCount == rhs.maxExecutionGraphShaderPayloadCount )
75350           && ( executionGraphDispatchAddressAlignment == rhs.executionGraphDispatchAddressAlignment );
75351 #endif
75352     }
75353 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX75354     bool operator!=( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
75355     {
75356       return !operator==( rhs );
75357     }
75358 #endif
75359 
75360     public:
75361     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderEnqueuePropertiesAMDX;
75362     void * pNext = {};
75363     uint32_t maxExecutionGraphDepth = {};
75364     uint32_t maxExecutionGraphShaderOutputNodes = {};
75365     uint32_t maxExecutionGraphShaderPayloadSize = {};
75366     uint32_t maxExecutionGraphShaderPayloadCount = {};
75367     uint32_t executionGraphDispatchAddressAlignment = {};
75368 
75369   };
75370 
75371   template <>
75372   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderEnqueuePropertiesAMDX>
75373   {
75374     using Type = PhysicalDeviceShaderEnqueuePropertiesAMDX;
75375   };
75376 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
75377 
75378   struct PhysicalDeviceShaderFloat16Int8Features
75379   {
75380     using NativeType = VkPhysicalDeviceShaderFloat16Int8Features;
75381 
75382     static const bool allowDuplicate = false;
75383     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
75384 
75385 
75386 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75387 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features(VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
75388     : pNext( pNext_ ), shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ )
75389     {}
75390 
75391     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75392 
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75393     PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
75394       : PhysicalDeviceShaderFloat16Int8Features( *reinterpret_cast<PhysicalDeviceShaderFloat16Int8Features const *>( &rhs ) )
75395     {}
75396 
75397 
75398     PhysicalDeviceShaderFloat16Int8Features & operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75399 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
75400 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75401     PhysicalDeviceShaderFloat16Int8Features & operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
75402     {
75403       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const *>( &rhs );
75404       return *this;
75405     }
75406 
75407 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75408     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
75409     {
75410       pNext = pNext_;
75411       return *this;
75412     }
75413 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75414     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
75415     {
75416       shaderFloat16 = shaderFloat16_;
75417       return *this;
75418     }
75419 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75420     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
75421     {
75422       shaderInt8 = shaderInt8_;
75423       return *this;
75424     }
75425 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
75426 
75427 
operator VkPhysicalDeviceShaderFloat16Int8Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75428     operator VkPhysicalDeviceShaderFloat16Int8Features const &() const VULKAN_HPP_NOEXCEPT
75429     {
75430       return *reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>( this );
75431     }
75432 
operator VkPhysicalDeviceShaderFloat16Int8Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75433     operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT
75434     {
75435       return *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>( this );
75436     }
75437 
75438 #if defined( VULKAN_HPP_USE_REFLECT )
75439 #if 14 <= VULKAN_HPP_CPP_VERSION
75440     auto
75441 #else
75442     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
75443 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75444       reflect() const VULKAN_HPP_NOEXCEPT
75445     {
75446       return std::tie( sType, pNext, shaderFloat16, shaderInt8 );
75447     }
75448 #endif
75449 
75450 
75451 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75452 auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const & ) const = default;
75453 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75454     bool operator==( PhysicalDeviceShaderFloat16Int8Features const & rhs ) const VULKAN_HPP_NOEXCEPT
75455     {
75456 #if defined( VULKAN_HPP_USE_REFLECT )
75457       return this->reflect() == rhs.reflect();
75458 #else
75459       return ( sType == rhs.sType )
75460           && ( pNext == rhs.pNext )
75461           && ( shaderFloat16 == rhs.shaderFloat16 )
75462           && ( shaderInt8 == rhs.shaderInt8 );
75463 #endif
75464     }
75465 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features75466     bool operator!=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) const VULKAN_HPP_NOEXCEPT
75467     {
75468       return !operator==( rhs );
75469     }
75470 #endif
75471 
75472     public:
75473     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
75474     void * pNext = {};
75475     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
75476     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
75477 
75478   };
75479 
75480   template <>
75481   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderFloat16Int8Features>
75482   {
75483     using Type = PhysicalDeviceShaderFloat16Int8Features;
75484   };
75485   using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
75486   using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
75487 
75488   struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
75489   {
75490     using NativeType = VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
75491 
75492     static const bool allowDuplicate = false;
75493     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
75494 
75495 
75496 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderImageAtomicInt64FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75497 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
75498     : pNext( pNext_ ), shaderImageInt64Atomics( shaderImageInt64Atomics_ ), sparseImageInt64Atomics( sparseImageInt64Atomics_ )
75499     {}
75500 
75501     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75502 
PhysicalDeviceShaderImageAtomicInt64FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75503     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75504       : PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs ) )
75505     {}
75506 
75507 
75508     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75509 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
75510 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75511     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75512     {
75513       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs );
75514       return *this;
75515     }
75516 
75517 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75518     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
75519     {
75520       pNext = pNext_;
75521       return *this;
75522     }
75523 
setShaderImageInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75524     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
75525     {
75526       shaderImageInt64Atomics = shaderImageInt64Atomics_;
75527       return *this;
75528     }
75529 
setSparseImageInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75530     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
75531     {
75532       sparseImageInt64Atomics = sparseImageInt64Atomics_;
75533       return *this;
75534     }
75535 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
75536 
75537 
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75538     operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
75539     {
75540       return *reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>( this );
75541     }
75542 
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75543     operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT
75544     {
75545       return *reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>( this );
75546     }
75547 
75548 #if defined( VULKAN_HPP_USE_REFLECT )
75549 #if 14 <= VULKAN_HPP_CPP_VERSION
75550     auto
75551 #else
75552     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
75553 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75554       reflect() const VULKAN_HPP_NOEXCEPT
75555     {
75556       return std::tie( sType, pNext, shaderImageInt64Atomics, sparseImageInt64Atomics );
75557     }
75558 #endif
75559 
75560 
75561 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75562 auto operator<=>( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & ) const = default;
75563 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75564     bool operator==( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
75565     {
75566 #if defined( VULKAN_HPP_USE_REFLECT )
75567       return this->reflect() == rhs.reflect();
75568 #else
75569       return ( sType == rhs.sType )
75570           && ( pNext == rhs.pNext )
75571           && ( shaderImageInt64Atomics == rhs.shaderImageInt64Atomics )
75572           && ( sparseImageInt64Atomics == rhs.sparseImageInt64Atomics );
75573 #endif
75574     }
75575 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT75576     bool operator!=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
75577     {
75578       return !operator==( rhs );
75579     }
75580 #endif
75581 
75582     public:
75583     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
75584     void * pNext = {};
75585     VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics = {};
75586     VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics = {};
75587 
75588   };
75589 
75590   template <>
75591   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
75592   {
75593     using Type = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
75594   };
75595 
75596   struct PhysicalDeviceShaderImageFootprintFeaturesNV
75597   {
75598     using NativeType = VkPhysicalDeviceShaderImageFootprintFeaturesNV;
75599 
75600     static const bool allowDuplicate = false;
75601     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
75602 
75603 
75604 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV75605 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
75606     : pNext( pNext_ ), imageFootprint( imageFootprint_ )
75607     {}
75608 
75609     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75610 
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV75611     PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
75612       : PhysicalDeviceShaderImageFootprintFeaturesNV( *reinterpret_cast<PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs ) )
75613     {}
75614 
75615 
75616     PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75617 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
75618 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV75619     PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
75620     {
75621       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs );
75622       return *this;
75623     }
75624 
75625 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV75626     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
75627     {
75628       pNext = pNext_;
75629       return *this;
75630     }
75631 
setImageFootprintVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV75632     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT
75633     {
75634       imageFootprint = imageFootprint_;
75635       return *this;
75636     }
75637 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
75638 
75639 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV75640     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
75641     {
75642       return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
75643     }
75644 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV75645     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT
75646     {
75647       return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
75648     }
75649 
75650 #if defined( VULKAN_HPP_USE_REFLECT )
75651 #if 14 <= VULKAN_HPP_CPP_VERSION
75652     auto
75653 #else
75654     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
75655 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV75656       reflect() const VULKAN_HPP_NOEXCEPT
75657     {
75658       return std::tie( sType, pNext, imageFootprint );
75659     }
75660 #endif
75661 
75662 
75663 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75664 auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const & ) const = default;
75665 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV75666     bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
75667     {
75668 #if defined( VULKAN_HPP_USE_REFLECT )
75669       return this->reflect() == rhs.reflect();
75670 #else
75671       return ( sType == rhs.sType )
75672           && ( pNext == rhs.pNext )
75673           && ( imageFootprint == rhs.imageFootprint );
75674 #endif
75675     }
75676 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV75677     bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
75678     {
75679       return !operator==( rhs );
75680     }
75681 #endif
75682 
75683     public:
75684     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
75685     void * pNext = {};
75686     VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {};
75687 
75688   };
75689 
75690   template <>
75691   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV>
75692   {
75693     using Type = PhysicalDeviceShaderImageFootprintFeaturesNV;
75694   };
75695 
75696   struct PhysicalDeviceShaderIntegerDotProductFeatures
75697   {
75698     using NativeType = VkPhysicalDeviceShaderIntegerDotProductFeatures;
75699 
75700     static const bool allowDuplicate = false;
75701     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerDotProductFeatures;
75702 
75703 
75704 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderIntegerDotProductFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures75705 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
75706     : pNext( pNext_ ), shaderIntegerDotProduct( shaderIntegerDotProduct_ )
75707     {}
75708 
75709     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductFeatures( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75710 
PhysicalDeviceShaderIntegerDotProductFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures75711     PhysicalDeviceShaderIntegerDotProductFeatures( VkPhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
75712       : PhysicalDeviceShaderIntegerDotProductFeatures( *reinterpret_cast<PhysicalDeviceShaderIntegerDotProductFeatures const *>( &rhs ) )
75713     {}
75714 
75715 
75716     PhysicalDeviceShaderIntegerDotProductFeatures & operator=( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75717 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
75718 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures75719     PhysicalDeviceShaderIntegerDotProductFeatures & operator=( VkPhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
75720     {
75721       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures const *>( &rhs );
75722       return *this;
75723     }
75724 
75725 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures75726     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerDotProductFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
75727     {
75728       pNext = pNext_;
75729       return *this;
75730     }
75731 
setShaderIntegerDotProductVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures75732     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerDotProductFeatures & setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
75733     {
75734       shaderIntegerDotProduct = shaderIntegerDotProduct_;
75735       return *this;
75736     }
75737 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
75738 
75739 
operator VkPhysicalDeviceShaderIntegerDotProductFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures75740     operator VkPhysicalDeviceShaderIntegerDotProductFeatures const &() const VULKAN_HPP_NOEXCEPT
75741     {
75742       return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>( this );
75743     }
75744 
operator VkPhysicalDeviceShaderIntegerDotProductFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures75745     operator VkPhysicalDeviceShaderIntegerDotProductFeatures &() VULKAN_HPP_NOEXCEPT
75746     {
75747       return *reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeatures*>( this );
75748     }
75749 
75750 #if defined( VULKAN_HPP_USE_REFLECT )
75751 #if 14 <= VULKAN_HPP_CPP_VERSION
75752     auto
75753 #else
75754     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
75755 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures75756       reflect() const VULKAN_HPP_NOEXCEPT
75757     {
75758       return std::tie( sType, pNext, shaderIntegerDotProduct );
75759     }
75760 #endif
75761 
75762 
75763 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75764 auto operator<=>( PhysicalDeviceShaderIntegerDotProductFeatures const & ) const = default;
75765 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures75766     bool operator==( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
75767     {
75768 #if defined( VULKAN_HPP_USE_REFLECT )
75769       return this->reflect() == rhs.reflect();
75770 #else
75771       return ( sType == rhs.sType )
75772           && ( pNext == rhs.pNext )
75773           && ( shaderIntegerDotProduct == rhs.shaderIntegerDotProduct );
75774 #endif
75775     }
75776 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures75777     bool operator!=( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
75778     {
75779       return !operator==( rhs );
75780     }
75781 #endif
75782 
75783     public:
75784     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerDotProductFeatures;
75785     void * pNext = {};
75786     VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct = {};
75787 
75788   };
75789 
75790   template <>
75791   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerDotProductFeatures>
75792   {
75793     using Type = PhysicalDeviceShaderIntegerDotProductFeatures;
75794   };
75795   using PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeatures;
75796 
75797   struct PhysicalDeviceShaderIntegerDotProductProperties
75798   {
75799     using NativeType = VkPhysicalDeviceShaderIntegerDotProductProperties;
75800 
75801     static const bool allowDuplicate = false;
75802     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerDotProductProperties;
75803 
75804 
75805 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderIntegerDotProductPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties75806 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductProperties(VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
75807     : pNext( pNext_ ), integerDotProduct8BitUnsignedAccelerated( integerDotProduct8BitUnsignedAccelerated_ ), integerDotProduct8BitSignedAccelerated( integerDotProduct8BitSignedAccelerated_ ), integerDotProduct8BitMixedSignednessAccelerated( integerDotProduct8BitMixedSignednessAccelerated_ ), integerDotProduct4x8BitPackedUnsignedAccelerated( integerDotProduct4x8BitPackedUnsignedAccelerated_ ), integerDotProduct4x8BitPackedSignedAccelerated( integerDotProduct4x8BitPackedSignedAccelerated_ ), integerDotProduct4x8BitPackedMixedSignednessAccelerated( integerDotProduct4x8BitPackedMixedSignednessAccelerated_ ), integerDotProduct16BitUnsignedAccelerated( integerDotProduct16BitUnsignedAccelerated_ ), integerDotProduct16BitSignedAccelerated( integerDotProduct16BitSignedAccelerated_ ), integerDotProduct16BitMixedSignednessAccelerated( integerDotProduct16BitMixedSignednessAccelerated_ ), integerDotProduct32BitUnsignedAccelerated( integerDotProduct32BitUnsignedAccelerated_ ), integerDotProduct32BitSignedAccelerated( integerDotProduct32BitSignedAccelerated_ ), integerDotProduct32BitMixedSignednessAccelerated( integerDotProduct32BitMixedSignednessAccelerated_ ), integerDotProduct64BitUnsignedAccelerated( integerDotProduct64BitUnsignedAccelerated_ ), integerDotProduct64BitSignedAccelerated( integerDotProduct64BitSignedAccelerated_ ), integerDotProduct64BitMixedSignednessAccelerated( integerDotProduct64BitMixedSignednessAccelerated_ ), integerDotProductAccumulatingSaturating8BitUnsignedAccelerated( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ ), integerDotProductAccumulatingSaturating8BitSignedAccelerated( integerDotProductAccumulatingSaturating8BitSignedAccelerated_ ), integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ ), integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ ), integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ ), integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ ), integerDotProductAccumulatingSaturating16BitUnsignedAccelerated( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ ), integerDotProductAccumulatingSaturating16BitSignedAccelerated( integerDotProductAccumulatingSaturating16BitSignedAccelerated_ ), integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ ), integerDotProductAccumulatingSaturating32BitUnsignedAccelerated( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ ), integerDotProductAccumulatingSaturating32BitSignedAccelerated( integerDotProductAccumulatingSaturating32BitSignedAccelerated_ ), integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ ), integerDotProductAccumulatingSaturating64BitUnsignedAccelerated( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ ), integerDotProductAccumulatingSaturating64BitSignedAccelerated( integerDotProductAccumulatingSaturating64BitSignedAccelerated_ ), integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ )
75808     {}
75809 
75810     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductProperties( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75811 
PhysicalDeviceShaderIntegerDotProductPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties75812     PhysicalDeviceShaderIntegerDotProductProperties( VkPhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT
75813       : PhysicalDeviceShaderIntegerDotProductProperties( *reinterpret_cast<PhysicalDeviceShaderIntegerDotProductProperties const *>( &rhs ) )
75814     {}
75815 
75816 
75817     PhysicalDeviceShaderIntegerDotProductProperties & operator=( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75818 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
75819 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties75820     PhysicalDeviceShaderIntegerDotProductProperties & operator=( VkPhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT
75821     {
75822       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties const *>( &rhs );
75823       return *this;
75824     }
75825 
75826 
operator VkPhysicalDeviceShaderIntegerDotProductProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties75827     operator VkPhysicalDeviceShaderIntegerDotProductProperties const &() const VULKAN_HPP_NOEXCEPT
75828     {
75829       return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties*>( this );
75830     }
75831 
operator VkPhysicalDeviceShaderIntegerDotProductProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties75832     operator VkPhysicalDeviceShaderIntegerDotProductProperties &() VULKAN_HPP_NOEXCEPT
75833     {
75834       return *reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductProperties*>( this );
75835     }
75836 
75837 #if defined( VULKAN_HPP_USE_REFLECT )
75838 #if 14 <= VULKAN_HPP_CPP_VERSION
75839     auto
75840 #else
75841     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
75842 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties75843       reflect() const VULKAN_HPP_NOEXCEPT
75844     {
75845       return std::tie( sType, pNext, integerDotProduct8BitUnsignedAccelerated, integerDotProduct8BitSignedAccelerated, integerDotProduct8BitMixedSignednessAccelerated, integerDotProduct4x8BitPackedUnsignedAccelerated, integerDotProduct4x8BitPackedSignedAccelerated, integerDotProduct4x8BitPackedMixedSignednessAccelerated, integerDotProduct16BitUnsignedAccelerated, integerDotProduct16BitSignedAccelerated, integerDotProduct16BitMixedSignednessAccelerated, integerDotProduct32BitUnsignedAccelerated, integerDotProduct32BitSignedAccelerated, integerDotProduct32BitMixedSignednessAccelerated, integerDotProduct64BitUnsignedAccelerated, integerDotProduct64BitSignedAccelerated, integerDotProduct64BitMixedSignednessAccelerated, integerDotProductAccumulatingSaturating8BitUnsignedAccelerated, integerDotProductAccumulatingSaturating8BitSignedAccelerated, integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated, integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated, integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated, integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated, integerDotProductAccumulatingSaturating16BitUnsignedAccelerated, integerDotProductAccumulatingSaturating16BitSignedAccelerated, integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated, integerDotProductAccumulatingSaturating32BitUnsignedAccelerated, integerDotProductAccumulatingSaturating32BitSignedAccelerated, integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated, integerDotProductAccumulatingSaturating64BitUnsignedAccelerated, integerDotProductAccumulatingSaturating64BitSignedAccelerated, integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
75846     }
75847 #endif
75848 
75849 
75850 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75851 auto operator<=>( PhysicalDeviceShaderIntegerDotProductProperties const & ) const = default;
75852 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties75853     bool operator==( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
75854     {
75855 #if defined( VULKAN_HPP_USE_REFLECT )
75856       return this->reflect() == rhs.reflect();
75857 #else
75858       return ( sType == rhs.sType )
75859           && ( pNext == rhs.pNext )
75860           && ( integerDotProduct8BitUnsignedAccelerated == rhs.integerDotProduct8BitUnsignedAccelerated )
75861           && ( integerDotProduct8BitSignedAccelerated == rhs.integerDotProduct8BitSignedAccelerated )
75862           && ( integerDotProduct8BitMixedSignednessAccelerated == rhs.integerDotProduct8BitMixedSignednessAccelerated )
75863           && ( integerDotProduct4x8BitPackedUnsignedAccelerated == rhs.integerDotProduct4x8BitPackedUnsignedAccelerated )
75864           && ( integerDotProduct4x8BitPackedSignedAccelerated == rhs.integerDotProduct4x8BitPackedSignedAccelerated )
75865           && ( integerDotProduct4x8BitPackedMixedSignednessAccelerated == rhs.integerDotProduct4x8BitPackedMixedSignednessAccelerated )
75866           && ( integerDotProduct16BitUnsignedAccelerated == rhs.integerDotProduct16BitUnsignedAccelerated )
75867           && ( integerDotProduct16BitSignedAccelerated == rhs.integerDotProduct16BitSignedAccelerated )
75868           && ( integerDotProduct16BitMixedSignednessAccelerated == rhs.integerDotProduct16BitMixedSignednessAccelerated )
75869           && ( integerDotProduct32BitUnsignedAccelerated == rhs.integerDotProduct32BitUnsignedAccelerated )
75870           && ( integerDotProduct32BitSignedAccelerated == rhs.integerDotProduct32BitSignedAccelerated )
75871           && ( integerDotProduct32BitMixedSignednessAccelerated == rhs.integerDotProduct32BitMixedSignednessAccelerated )
75872           && ( integerDotProduct64BitUnsignedAccelerated == rhs.integerDotProduct64BitUnsignedAccelerated )
75873           && ( integerDotProduct64BitSignedAccelerated == rhs.integerDotProduct64BitSignedAccelerated )
75874           && ( integerDotProduct64BitMixedSignednessAccelerated == rhs.integerDotProduct64BitMixedSignednessAccelerated )
75875           && ( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated )
75876           && ( integerDotProductAccumulatingSaturating8BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitSignedAccelerated )
75877           && ( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated == rhs.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated )
75878           && ( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated )
75879           && ( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated == rhs.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated )
75880           && ( integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated == rhs.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated )
75881           && ( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated )
75882           && ( integerDotProductAccumulatingSaturating16BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitSignedAccelerated )
75883           && ( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated == rhs.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated )
75884           && ( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated )
75885           && ( integerDotProductAccumulatingSaturating32BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitSignedAccelerated )
75886           && ( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated == rhs.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated )
75887           && ( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated )
75888           && ( integerDotProductAccumulatingSaturating64BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitSignedAccelerated )
75889           && ( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated == rhs.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
75890 #endif
75891     }
75892 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties75893     bool operator!=( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
75894     {
75895       return !operator==( rhs );
75896     }
75897 #endif
75898 
75899     public:
75900     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerDotProductProperties;
75901     void * pNext = {};
75902     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated = {};
75903     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated = {};
75904     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated = {};
75905     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated = {};
75906     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated = {};
75907     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated = {};
75908     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated = {};
75909     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated = {};
75910     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated = {};
75911     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated = {};
75912     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated = {};
75913     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated = {};
75914     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated = {};
75915     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated = {};
75916     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated = {};
75917     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = {};
75918     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated = {};
75919     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = {};
75920     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = {};
75921     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = {};
75922     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = {};
75923     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = {};
75924     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated = {};
75925     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = {};
75926     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = {};
75927     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated = {};
75928     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = {};
75929     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = {};
75930     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated = {};
75931     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = {};
75932 
75933   };
75934 
75935   template <>
75936   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerDotProductProperties>
75937   {
75938     using Type = PhysicalDeviceShaderIntegerDotProductProperties;
75939   };
75940   using PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductProperties;
75941 
75942   struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
75943   {
75944     using NativeType = VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
75945 
75946     static const bool allowDuplicate = false;
75947     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
75948 
75949 
75950 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL75951 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
75952     : pNext( pNext_ ), shaderIntegerFunctions2( shaderIntegerFunctions2_ )
75953     {}
75954 
75955     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75956 
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL75957     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
75958       : PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( *reinterpret_cast<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs ) )
75959     {}
75960 
75961 
75962     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75963 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
75964 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL75965     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
75966     {
75967       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs );
75968       return *this;
75969     }
75970 
75971 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL75972     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
75973     {
75974       pNext = pNext_;
75975       return *this;
75976     }
75977 
setShaderIntegerFunctions2VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL75978     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT
75979     {
75980       shaderIntegerFunctions2 = shaderIntegerFunctions2_;
75981       return *this;
75982     }
75983 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
75984 
75985 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL75986     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const &() const VULKAN_HPP_NOEXCEPT
75987     {
75988       return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
75989     }
75990 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL75991     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT
75992     {
75993       return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
75994     }
75995 
75996 #if defined( VULKAN_HPP_USE_REFLECT )
75997 #if 14 <= VULKAN_HPP_CPP_VERSION
75998     auto
75999 #else
76000     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
76001 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL76002       reflect() const VULKAN_HPP_NOEXCEPT
76003     {
76004       return std::tie( sType, pNext, shaderIntegerFunctions2 );
76005     }
76006 #endif
76007 
76008 
76009 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76010 auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & ) const = default;
76011 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL76012     bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
76013     {
76014 #if defined( VULKAN_HPP_USE_REFLECT )
76015       return this->reflect() == rhs.reflect();
76016 #else
76017       return ( sType == rhs.sType )
76018           && ( pNext == rhs.pNext )
76019           && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 );
76020 #endif
76021     }
76022 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL76023     bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
76024     {
76025       return !operator==( rhs );
76026     }
76027 #endif
76028 
76029     public:
76030     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
76031     void * pNext = {};
76032     VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {};
76033 
76034   };
76035 
76036   template <>
76037   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>
76038   {
76039     using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
76040   };
76041 
76042   struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT
76043   {
76044     using NativeType = VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
76045 
76046     static const bool allowDuplicate = false;
76047     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderModuleIdentifierFeaturesEXT;
76048 
76049 
76050 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderModuleIdentifierFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT76051 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderModuleIdentifierFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
76052     : pNext( pNext_ ), shaderModuleIdentifier( shaderModuleIdentifier_ )
76053     {}
76054 
76055     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderModuleIdentifierFeaturesEXT( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76056 
PhysicalDeviceShaderModuleIdentifierFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT76057     PhysicalDeviceShaderModuleIdentifierFeaturesEXT( VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76058       : PhysicalDeviceShaderModuleIdentifierFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderModuleIdentifierFeaturesEXT const *>( &rhs ) )
76059     {}
76060 
76061 
76062     PhysicalDeviceShaderModuleIdentifierFeaturesEXT & operator=( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76063 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
76064 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT76065     PhysicalDeviceShaderModuleIdentifierFeaturesEXT & operator=( VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76066     {
76067       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT const *>( &rhs );
76068       return *this;
76069     }
76070 
76071 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT76072     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderModuleIdentifierFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
76073     {
76074       pNext = pNext_;
76075       return *this;
76076     }
76077 
setShaderModuleIdentifierVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT76078     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderModuleIdentifierFeaturesEXT & setShaderModuleIdentifier( VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier_ ) VULKAN_HPP_NOEXCEPT
76079     {
76080       shaderModuleIdentifier = shaderModuleIdentifier_;
76081       return *this;
76082     }
76083 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
76084 
76085 
operator VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT76086     operator VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
76087     {
76088       return *reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT*>( this );
76089     }
76090 
operator VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT76091     operator VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT &() VULKAN_HPP_NOEXCEPT
76092     {
76093       return *reinterpret_cast<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT*>( this );
76094     }
76095 
76096 #if defined( VULKAN_HPP_USE_REFLECT )
76097 #if 14 <= VULKAN_HPP_CPP_VERSION
76098     auto
76099 #else
76100     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
76101 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT76102       reflect() const VULKAN_HPP_NOEXCEPT
76103     {
76104       return std::tie( sType, pNext, shaderModuleIdentifier );
76105     }
76106 #endif
76107 
76108 
76109 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76110 auto operator<=>( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & ) const = default;
76111 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT76112     bool operator==( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
76113     {
76114 #if defined( VULKAN_HPP_USE_REFLECT )
76115       return this->reflect() == rhs.reflect();
76116 #else
76117       return ( sType == rhs.sType )
76118           && ( pNext == rhs.pNext )
76119           && ( shaderModuleIdentifier == rhs.shaderModuleIdentifier );
76120 #endif
76121     }
76122 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT76123     bool operator!=( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
76124     {
76125       return !operator==( rhs );
76126     }
76127 #endif
76128 
76129     public:
76130     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderModuleIdentifierFeaturesEXT;
76131     void * pNext = {};
76132     VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier = {};
76133 
76134   };
76135 
76136   template <>
76137   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderModuleIdentifierFeaturesEXT>
76138   {
76139     using Type = PhysicalDeviceShaderModuleIdentifierFeaturesEXT;
76140   };
76141 
76142   struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT
76143   {
76144     using NativeType = VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
76145 
76146     static const bool allowDuplicate = false;
76147     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderModuleIdentifierPropertiesEXT;
76148 
76149 
76150 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderModuleIdentifierPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT76151 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderModuleIdentifierPropertiesEXT(std::array<uint8_t,VK_UUID_SIZE> const & shaderModuleIdentifierAlgorithmUUID_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
76152     : pNext( pNext_ ), shaderModuleIdentifierAlgorithmUUID( shaderModuleIdentifierAlgorithmUUID_ )
76153     {}
76154 
76155     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderModuleIdentifierPropertiesEXT( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76156 
PhysicalDeviceShaderModuleIdentifierPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT76157     PhysicalDeviceShaderModuleIdentifierPropertiesEXT( VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76158       : PhysicalDeviceShaderModuleIdentifierPropertiesEXT( *reinterpret_cast<PhysicalDeviceShaderModuleIdentifierPropertiesEXT const *>( &rhs ) )
76159     {}
76160 
76161 
76162     PhysicalDeviceShaderModuleIdentifierPropertiesEXT & operator=( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76163 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
76164 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT76165     PhysicalDeviceShaderModuleIdentifierPropertiesEXT & operator=( VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76166     {
76167       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT const *>( &rhs );
76168       return *this;
76169     }
76170 
76171 
operator VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT76172     operator VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
76173     {
76174       return *reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT*>( this );
76175     }
76176 
operator VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT76177     operator VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
76178     {
76179       return *reinterpret_cast<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT*>( this );
76180     }
76181 
76182 #if defined( VULKAN_HPP_USE_REFLECT )
76183 #if 14 <= VULKAN_HPP_CPP_VERSION
76184     auto
76185 #else
76186     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
76187 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT76188       reflect() const VULKAN_HPP_NOEXCEPT
76189     {
76190       return std::tie( sType, pNext, shaderModuleIdentifierAlgorithmUUID );
76191     }
76192 #endif
76193 
76194 
76195 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76196 auto operator<=>( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & ) const = default;
76197 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT76198     bool operator==( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
76199     {
76200 #if defined( VULKAN_HPP_USE_REFLECT )
76201       return this->reflect() == rhs.reflect();
76202 #else
76203       return ( sType == rhs.sType )
76204           && ( pNext == rhs.pNext )
76205           && ( shaderModuleIdentifierAlgorithmUUID == rhs.shaderModuleIdentifierAlgorithmUUID );
76206 #endif
76207     }
76208 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT76209     bool operator!=( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
76210     {
76211       return !operator==( rhs );
76212     }
76213 #endif
76214 
76215     public:
76216     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderModuleIdentifierPropertiesEXT;
76217     void * pNext = {};
76218     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> shaderModuleIdentifierAlgorithmUUID = {};
76219 
76220   };
76221 
76222   template <>
76223   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderModuleIdentifierPropertiesEXT>
76224   {
76225     using Type = PhysicalDeviceShaderModuleIdentifierPropertiesEXT;
76226   };
76227 
76228   struct PhysicalDeviceShaderObjectFeaturesEXT
76229   {
76230     using NativeType = VkPhysicalDeviceShaderObjectFeaturesEXT;
76231 
76232     static const bool allowDuplicate = false;
76233     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderObjectFeaturesEXT;
76234 
76235 
76236 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderObjectFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT76237 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderObjectFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderObject_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
76238     : pNext( pNext_ ), shaderObject( shaderObject_ )
76239     {}
76240 
76241     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderObjectFeaturesEXT( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76242 
PhysicalDeviceShaderObjectFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT76243     PhysicalDeviceShaderObjectFeaturesEXT( VkPhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76244       : PhysicalDeviceShaderObjectFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderObjectFeaturesEXT const *>( &rhs ) )
76245     {}
76246 
76247 
76248     PhysicalDeviceShaderObjectFeaturesEXT & operator=( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76249 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
76250 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT76251     PhysicalDeviceShaderObjectFeaturesEXT & operator=( VkPhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76252     {
76253       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT const *>( &rhs );
76254       return *this;
76255     }
76256 
76257 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT76258     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
76259     {
76260       pNext = pNext_;
76261       return *this;
76262     }
76263 
setShaderObjectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT76264     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectFeaturesEXT & setShaderObject( VULKAN_HPP_NAMESPACE::Bool32 shaderObject_ ) VULKAN_HPP_NOEXCEPT
76265     {
76266       shaderObject = shaderObject_;
76267       return *this;
76268     }
76269 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
76270 
76271 
operator VkPhysicalDeviceShaderObjectFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT76272     operator VkPhysicalDeviceShaderObjectFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
76273     {
76274       return *reinterpret_cast<const VkPhysicalDeviceShaderObjectFeaturesEXT*>( this );
76275     }
76276 
operator VkPhysicalDeviceShaderObjectFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT76277     operator VkPhysicalDeviceShaderObjectFeaturesEXT &() VULKAN_HPP_NOEXCEPT
76278     {
76279       return *reinterpret_cast<VkPhysicalDeviceShaderObjectFeaturesEXT*>( this );
76280     }
76281 
76282 #if defined( VULKAN_HPP_USE_REFLECT )
76283 #if 14 <= VULKAN_HPP_CPP_VERSION
76284     auto
76285 #else
76286     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
76287 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT76288       reflect() const VULKAN_HPP_NOEXCEPT
76289     {
76290       return std::tie( sType, pNext, shaderObject );
76291     }
76292 #endif
76293 
76294 
76295 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76296 auto operator<=>( PhysicalDeviceShaderObjectFeaturesEXT const & ) const = default;
76297 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT76298     bool operator==( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
76299     {
76300 #if defined( VULKAN_HPP_USE_REFLECT )
76301       return this->reflect() == rhs.reflect();
76302 #else
76303       return ( sType == rhs.sType )
76304           && ( pNext == rhs.pNext )
76305           && ( shaderObject == rhs.shaderObject );
76306 #endif
76307     }
76308 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT76309     bool operator!=( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
76310     {
76311       return !operator==( rhs );
76312     }
76313 #endif
76314 
76315     public:
76316     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderObjectFeaturesEXT;
76317     void * pNext = {};
76318     VULKAN_HPP_NAMESPACE::Bool32 shaderObject = {};
76319 
76320   };
76321 
76322   template <>
76323   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderObjectFeaturesEXT>
76324   {
76325     using Type = PhysicalDeviceShaderObjectFeaturesEXT;
76326   };
76327 
76328   struct PhysicalDeviceShaderObjectPropertiesEXT
76329   {
76330     using NativeType = VkPhysicalDeviceShaderObjectPropertiesEXT;
76331 
76332     static const bool allowDuplicate = false;
76333     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderObjectPropertiesEXT;
76334 
76335 
76336 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderObjectPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT76337 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectPropertiesEXT(std::array<uint8_t,VK_UUID_SIZE> const & shaderBinaryUUID_ = {}, uint32_t shaderBinaryVersion_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
76338     : pNext( pNext_ ), shaderBinaryUUID( shaderBinaryUUID_ ), shaderBinaryVersion( shaderBinaryVersion_ )
76339     {}
76340 
76341     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectPropertiesEXT( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76342 
PhysicalDeviceShaderObjectPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT76343     PhysicalDeviceShaderObjectPropertiesEXT( VkPhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76344       : PhysicalDeviceShaderObjectPropertiesEXT( *reinterpret_cast<PhysicalDeviceShaderObjectPropertiesEXT const *>( &rhs ) )
76345     {}
76346 
76347 
76348     PhysicalDeviceShaderObjectPropertiesEXT & operator=( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76349 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
76350 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT76351     PhysicalDeviceShaderObjectPropertiesEXT & operator=( VkPhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76352     {
76353       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT const *>( &rhs );
76354       return *this;
76355     }
76356 
76357 
operator VkPhysicalDeviceShaderObjectPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT76358     operator VkPhysicalDeviceShaderObjectPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
76359     {
76360       return *reinterpret_cast<const VkPhysicalDeviceShaderObjectPropertiesEXT*>( this );
76361     }
76362 
operator VkPhysicalDeviceShaderObjectPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT76363     operator VkPhysicalDeviceShaderObjectPropertiesEXT &() VULKAN_HPP_NOEXCEPT
76364     {
76365       return *reinterpret_cast<VkPhysicalDeviceShaderObjectPropertiesEXT*>( this );
76366     }
76367 
76368 #if defined( VULKAN_HPP_USE_REFLECT )
76369 #if 14 <= VULKAN_HPP_CPP_VERSION
76370     auto
76371 #else
76372     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &, uint32_t const &>
76373 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT76374       reflect() const VULKAN_HPP_NOEXCEPT
76375     {
76376       return std::tie( sType, pNext, shaderBinaryUUID, shaderBinaryVersion );
76377     }
76378 #endif
76379 
76380 
76381 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76382 auto operator<=>( PhysicalDeviceShaderObjectPropertiesEXT const & ) const = default;
76383 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT76384     bool operator==( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
76385     {
76386 #if defined( VULKAN_HPP_USE_REFLECT )
76387       return this->reflect() == rhs.reflect();
76388 #else
76389       return ( sType == rhs.sType )
76390           && ( pNext == rhs.pNext )
76391           && ( shaderBinaryUUID == rhs.shaderBinaryUUID )
76392           && ( shaderBinaryVersion == rhs.shaderBinaryVersion );
76393 #endif
76394     }
76395 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT76396     bool operator!=( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
76397     {
76398       return !operator==( rhs );
76399     }
76400 #endif
76401 
76402     public:
76403     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderObjectPropertiesEXT;
76404     void * pNext = {};
76405     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> shaderBinaryUUID = {};
76406     uint32_t shaderBinaryVersion = {};
76407 
76408   };
76409 
76410   template <>
76411   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderObjectPropertiesEXT>
76412   {
76413     using Type = PhysicalDeviceShaderObjectPropertiesEXT;
76414   };
76415 
76416   struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
76417   {
76418     using NativeType = VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
76419 
76420     static const bool allowDuplicate = false;
76421     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
76422 
76423 
76424 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV76425 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
76426     : pNext( pNext_ ), shaderSMBuiltins( shaderSMBuiltins_ )
76427     {}
76428 
76429     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76430 
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV76431     PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
76432       : PhysicalDeviceShaderSMBuiltinsFeaturesNV( *reinterpret_cast<PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs ) )
76433     {}
76434 
76435 
76436     PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76437 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
76438 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV76439     PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
76440     {
76441       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs );
76442       return *this;
76443     }
76444 
76445 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV76446     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
76447     {
76448       pNext = pNext_;
76449       return *this;
76450     }
76451 
setShaderSMBuiltinsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV76452     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT
76453     {
76454       shaderSMBuiltins = shaderSMBuiltins_;
76455       return *this;
76456     }
76457 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
76458 
76459 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV76460     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
76461     {
76462       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
76463     }
76464 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV76465     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT
76466     {
76467       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
76468     }
76469 
76470 #if defined( VULKAN_HPP_USE_REFLECT )
76471 #if 14 <= VULKAN_HPP_CPP_VERSION
76472     auto
76473 #else
76474     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
76475 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV76476       reflect() const VULKAN_HPP_NOEXCEPT
76477     {
76478       return std::tie( sType, pNext, shaderSMBuiltins );
76479     }
76480 #endif
76481 
76482 
76483 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76484 auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & ) const = default;
76485 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV76486     bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
76487     {
76488 #if defined( VULKAN_HPP_USE_REFLECT )
76489       return this->reflect() == rhs.reflect();
76490 #else
76491       return ( sType == rhs.sType )
76492           && ( pNext == rhs.pNext )
76493           && ( shaderSMBuiltins == rhs.shaderSMBuiltins );
76494 #endif
76495     }
76496 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV76497     bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
76498     {
76499       return !operator==( rhs );
76500     }
76501 #endif
76502 
76503     public:
76504     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
76505     void * pNext = {};
76506     VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {};
76507 
76508   };
76509 
76510   template <>
76511   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV>
76512   {
76513     using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV;
76514   };
76515 
76516   struct PhysicalDeviceShaderSMBuiltinsPropertiesNV
76517   {
76518     using NativeType = VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
76519 
76520     static const bool allowDuplicate = false;
76521     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
76522 
76523 
76524 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV76525 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV(uint32_t shaderSMCount_ = {}, uint32_t shaderWarpsPerSM_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
76526     : pNext( pNext_ ), shaderSMCount( shaderSMCount_ ), shaderWarpsPerSM( shaderWarpsPerSM_ )
76527     {}
76528 
76529     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76530 
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV76531     PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
76532       : PhysicalDeviceShaderSMBuiltinsPropertiesNV( *reinterpret_cast<PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs ) )
76533     {}
76534 
76535 
76536     PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76537 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
76538 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV76539     PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
76540     {
76541       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs );
76542       return *this;
76543     }
76544 
76545 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV76546     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
76547     {
76548       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
76549     }
76550 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV76551     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT
76552     {
76553       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
76554     }
76555 
76556 #if defined( VULKAN_HPP_USE_REFLECT )
76557 #if 14 <= VULKAN_HPP_CPP_VERSION
76558     auto
76559 #else
76560     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &>
76561 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV76562       reflect() const VULKAN_HPP_NOEXCEPT
76563     {
76564       return std::tie( sType, pNext, shaderSMCount, shaderWarpsPerSM );
76565     }
76566 #endif
76567 
76568 
76569 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76570 auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & ) const = default;
76571 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV76572     bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
76573     {
76574 #if defined( VULKAN_HPP_USE_REFLECT )
76575       return this->reflect() == rhs.reflect();
76576 #else
76577       return ( sType == rhs.sType )
76578           && ( pNext == rhs.pNext )
76579           && ( shaderSMCount == rhs.shaderSMCount )
76580           && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM );
76581 #endif
76582     }
76583 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV76584     bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
76585     {
76586       return !operator==( rhs );
76587     }
76588 #endif
76589 
76590     public:
76591     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
76592     void * pNext = {};
76593     uint32_t shaderSMCount = {};
76594     uint32_t shaderWarpsPerSM = {};
76595 
76596   };
76597 
76598   template <>
76599   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV>
76600   {
76601     using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV;
76602   };
76603 
76604   struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures
76605   {
76606     using NativeType = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
76607 
76608     static const bool allowDuplicate = false;
76609     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
76610 
76611 
76612 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures76613 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
76614     : pNext( pNext_ ), shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
76615     {}
76616 
76617     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76618 
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures76619     PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
76620       : PhysicalDeviceShaderSubgroupExtendedTypesFeatures( *reinterpret_cast<PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs ) )
76621     {}
76622 
76623 
76624     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76625 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
76626 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures76627     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
76628     {
76629       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs );
76630       return *this;
76631     }
76632 
76633 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures76634     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
76635     {
76636       pNext = pNext_;
76637       return *this;
76638     }
76639 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures76640     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
76641     {
76642       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
76643       return *this;
76644     }
76645 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
76646 
76647 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures76648     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const &() const VULKAN_HPP_NOEXCEPT
76649     {
76650       return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
76651     }
76652 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures76653     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT
76654     {
76655       return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
76656     }
76657 
76658 #if defined( VULKAN_HPP_USE_REFLECT )
76659 #if 14 <= VULKAN_HPP_CPP_VERSION
76660     auto
76661 #else
76662     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
76663 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures76664       reflect() const VULKAN_HPP_NOEXCEPT
76665     {
76666       return std::tie( sType, pNext, shaderSubgroupExtendedTypes );
76667     }
76668 #endif
76669 
76670 
76671 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76672 auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & ) const = default;
76673 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures76674     bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
76675     {
76676 #if defined( VULKAN_HPP_USE_REFLECT )
76677       return this->reflect() == rhs.reflect();
76678 #else
76679       return ( sType == rhs.sType )
76680           && ( pNext == rhs.pNext )
76681           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes );
76682 #endif
76683     }
76684 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures76685     bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
76686     {
76687       return !operator==( rhs );
76688     }
76689 #endif
76690 
76691     public:
76692     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
76693     void * pNext = {};
76694     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
76695 
76696   };
76697 
76698   template <>
76699   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures>
76700   {
76701     using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
76702   };
76703   using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
76704 
76705   struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
76706   {
76707     using NativeType = VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
76708 
76709     static const bool allowDuplicate = false;
76710     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
76711 
76712 
76713 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR76714 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
76715     : pNext( pNext_ ), shaderSubgroupUniformControlFlow( shaderSubgroupUniformControlFlow_ )
76716     {}
76717 
76718     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76719 
PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR76720     PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR( VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76721       : PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR( *reinterpret_cast<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const *>( &rhs ) )
76722     {}
76723 
76724 
76725     PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR & operator=( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76726 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
76727 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR76728     PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR & operator=( VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76729     {
76730       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const *>( &rhs );
76731       return *this;
76732     }
76733 
76734 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR76735     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
76736     {
76737       pNext = pNext_;
76738       return *this;
76739     }
76740 
setShaderSubgroupUniformControlFlowVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR76741     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR & setShaderSubgroupUniformControlFlow( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow_ ) VULKAN_HPP_NOEXCEPT
76742     {
76743       shaderSubgroupUniformControlFlow = shaderSubgroupUniformControlFlow_;
76744       return *this;
76745     }
76746 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
76747 
76748 
operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR76749     operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
76750     {
76751       return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>( this );
76752     }
76753 
operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR76754     operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &() VULKAN_HPP_NOEXCEPT
76755     {
76756       return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>( this );
76757     }
76758 
76759 #if defined( VULKAN_HPP_USE_REFLECT )
76760 #if 14 <= VULKAN_HPP_CPP_VERSION
76761     auto
76762 #else
76763     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
76764 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR76765       reflect() const VULKAN_HPP_NOEXCEPT
76766     {
76767       return std::tie( sType, pNext, shaderSubgroupUniformControlFlow );
76768     }
76769 #endif
76770 
76771 
76772 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76773 auto operator<=>( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & ) const = default;
76774 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR76775     bool operator==( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
76776     {
76777 #if defined( VULKAN_HPP_USE_REFLECT )
76778       return this->reflect() == rhs.reflect();
76779 #else
76780       return ( sType == rhs.sType )
76781           && ( pNext == rhs.pNext )
76782           && ( shaderSubgroupUniformControlFlow == rhs.shaderSubgroupUniformControlFlow );
76783 #endif
76784     }
76785 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR76786     bool operator!=( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
76787     {
76788       return !operator==( rhs );
76789     }
76790 #endif
76791 
76792     public:
76793     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
76794     void * pNext = {};
76795     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow = {};
76796 
76797   };
76798 
76799   template <>
76800   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>
76801   {
76802     using Type = PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
76803   };
76804 
76805   struct PhysicalDeviceShaderTerminateInvocationFeatures
76806   {
76807     using NativeType = VkPhysicalDeviceShaderTerminateInvocationFeatures;
76808 
76809     static const bool allowDuplicate = false;
76810     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeatures;
76811 
76812 
76813 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderTerminateInvocationFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures76814 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
76815     : pNext( pNext_ ), shaderTerminateInvocation( shaderTerminateInvocation_ )
76816     {}
76817 
76818     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeatures( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76819 
PhysicalDeviceShaderTerminateInvocationFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures76820     PhysicalDeviceShaderTerminateInvocationFeatures( VkPhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
76821       : PhysicalDeviceShaderTerminateInvocationFeatures( *reinterpret_cast<PhysicalDeviceShaderTerminateInvocationFeatures const *>( &rhs ) )
76822     {}
76823 
76824 
76825     PhysicalDeviceShaderTerminateInvocationFeatures & operator=( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76826 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
76827 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures76828     PhysicalDeviceShaderTerminateInvocationFeatures & operator=( VkPhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
76829     {
76830       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures const *>( &rhs );
76831       return *this;
76832     }
76833 
76834 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures76835     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTerminateInvocationFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
76836     {
76837       pNext = pNext_;
76838       return *this;
76839     }
76840 
setShaderTerminateInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures76841     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTerminateInvocationFeatures & setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
76842     {
76843       shaderTerminateInvocation = shaderTerminateInvocation_;
76844       return *this;
76845     }
76846 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
76847 
76848 
operator VkPhysicalDeviceShaderTerminateInvocationFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures76849     operator VkPhysicalDeviceShaderTerminateInvocationFeatures const &() const VULKAN_HPP_NOEXCEPT
76850     {
76851       return *reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>( this );
76852     }
76853 
operator VkPhysicalDeviceShaderTerminateInvocationFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures76854     operator VkPhysicalDeviceShaderTerminateInvocationFeatures &() VULKAN_HPP_NOEXCEPT
76855     {
76856       return *reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeatures*>( this );
76857     }
76858 
76859 #if defined( VULKAN_HPP_USE_REFLECT )
76860 #if 14 <= VULKAN_HPP_CPP_VERSION
76861     auto
76862 #else
76863     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
76864 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures76865       reflect() const VULKAN_HPP_NOEXCEPT
76866     {
76867       return std::tie( sType, pNext, shaderTerminateInvocation );
76868     }
76869 #endif
76870 
76871 
76872 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76873 auto operator<=>( PhysicalDeviceShaderTerminateInvocationFeatures const & ) const = default;
76874 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures76875     bool operator==( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
76876     {
76877 #if defined( VULKAN_HPP_USE_REFLECT )
76878       return this->reflect() == rhs.reflect();
76879 #else
76880       return ( sType == rhs.sType )
76881           && ( pNext == rhs.pNext )
76882           && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation );
76883 #endif
76884     }
76885 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures76886     bool operator!=( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
76887     {
76888       return !operator==( rhs );
76889     }
76890 #endif
76891 
76892     public:
76893     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeatures;
76894     void * pNext = {};
76895     VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {};
76896 
76897   };
76898 
76899   template <>
76900   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTerminateInvocationFeatures>
76901   {
76902     using Type = PhysicalDeviceShaderTerminateInvocationFeatures;
76903   };
76904   using PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeatures;
76905 
76906   struct PhysicalDeviceShaderTileImageFeaturesEXT
76907   {
76908     using NativeType = VkPhysicalDeviceShaderTileImageFeaturesEXT;
76909 
76910     static const bool allowDuplicate = false;
76911     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTileImageFeaturesEXT;
76912 
76913 
76914 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderTileImageFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76915 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImageFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageColorReadAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageDepthReadAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageStencilReadAccess_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
76916     : pNext( pNext_ ), shaderTileImageColorReadAccess( shaderTileImageColorReadAccess_ ), shaderTileImageDepthReadAccess( shaderTileImageDepthReadAccess_ ), shaderTileImageStencilReadAccess( shaderTileImageStencilReadAccess_ )
76917     {}
76918 
76919     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImageFeaturesEXT( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76920 
PhysicalDeviceShaderTileImageFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76921     PhysicalDeviceShaderTileImageFeaturesEXT( VkPhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76922       : PhysicalDeviceShaderTileImageFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderTileImageFeaturesEXT const *>( &rhs ) )
76923     {}
76924 
76925 
76926     PhysicalDeviceShaderTileImageFeaturesEXT & operator=( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76927 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
76928 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76929     PhysicalDeviceShaderTileImageFeaturesEXT & operator=( VkPhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
76930     {
76931       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT const *>( &rhs );
76932       return *this;
76933     }
76934 
76935 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76936     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
76937     {
76938       pNext = pNext_;
76939       return *this;
76940     }
76941 
setShaderTileImageColorReadAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76942     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT & setShaderTileImageColorReadAccess( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageColorReadAccess_ ) VULKAN_HPP_NOEXCEPT
76943     {
76944       shaderTileImageColorReadAccess = shaderTileImageColorReadAccess_;
76945       return *this;
76946     }
76947 
setShaderTileImageDepthReadAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76948     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT & setShaderTileImageDepthReadAccess( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageDepthReadAccess_ ) VULKAN_HPP_NOEXCEPT
76949     {
76950       shaderTileImageDepthReadAccess = shaderTileImageDepthReadAccess_;
76951       return *this;
76952     }
76953 
setShaderTileImageStencilReadAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76954     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT & setShaderTileImageStencilReadAccess( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageStencilReadAccess_ ) VULKAN_HPP_NOEXCEPT
76955     {
76956       shaderTileImageStencilReadAccess = shaderTileImageStencilReadAccess_;
76957       return *this;
76958     }
76959 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
76960 
76961 
operator VkPhysicalDeviceShaderTileImageFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76962     operator VkPhysicalDeviceShaderTileImageFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
76963     {
76964       return *reinterpret_cast<const VkPhysicalDeviceShaderTileImageFeaturesEXT*>( this );
76965     }
76966 
operator VkPhysicalDeviceShaderTileImageFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76967     operator VkPhysicalDeviceShaderTileImageFeaturesEXT &() VULKAN_HPP_NOEXCEPT
76968     {
76969       return *reinterpret_cast<VkPhysicalDeviceShaderTileImageFeaturesEXT*>( this );
76970     }
76971 
76972 #if defined( VULKAN_HPP_USE_REFLECT )
76973 #if 14 <= VULKAN_HPP_CPP_VERSION
76974     auto
76975 #else
76976     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
76977 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76978       reflect() const VULKAN_HPP_NOEXCEPT
76979     {
76980       return std::tie( sType, pNext, shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess );
76981     }
76982 #endif
76983 
76984 
76985 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76986 auto operator<=>( PhysicalDeviceShaderTileImageFeaturesEXT const & ) const = default;
76987 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT76988     bool operator==( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
76989     {
76990 #if defined( VULKAN_HPP_USE_REFLECT )
76991       return this->reflect() == rhs.reflect();
76992 #else
76993       return ( sType == rhs.sType )
76994           && ( pNext == rhs.pNext )
76995           && ( shaderTileImageColorReadAccess == rhs.shaderTileImageColorReadAccess )
76996           && ( shaderTileImageDepthReadAccess == rhs.shaderTileImageDepthReadAccess )
76997           && ( shaderTileImageStencilReadAccess == rhs.shaderTileImageStencilReadAccess );
76998 #endif
76999     }
77000 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT77001     bool operator!=( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
77002     {
77003       return !operator==( rhs );
77004     }
77005 #endif
77006 
77007     public:
77008     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTileImageFeaturesEXT;
77009     void * pNext = {};
77010     VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageColorReadAccess = {};
77011     VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageDepthReadAccess = {};
77012     VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageStencilReadAccess = {};
77013 
77014   };
77015 
77016   template <>
77017   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTileImageFeaturesEXT>
77018   {
77019     using Type = PhysicalDeviceShaderTileImageFeaturesEXT;
77020   };
77021 
77022   struct PhysicalDeviceShaderTileImagePropertiesEXT
77023   {
77024     using NativeType = VkPhysicalDeviceShaderTileImagePropertiesEXT;
77025 
77026     static const bool allowDuplicate = false;
77027     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTileImagePropertiesEXT;
77028 
77029 
77030 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderTileImagePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT77031 VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImagePropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageCoherentReadAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadSampleFromPixelRateInvocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadFromHelperInvocation_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
77032     : pNext( pNext_ ), shaderTileImageCoherentReadAccelerated( shaderTileImageCoherentReadAccelerated_ ), shaderTileImageReadSampleFromPixelRateInvocation( shaderTileImageReadSampleFromPixelRateInvocation_ ), shaderTileImageReadFromHelperInvocation( shaderTileImageReadFromHelperInvocation_ )
77033     {}
77034 
77035     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImagePropertiesEXT( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77036 
PhysicalDeviceShaderTileImagePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT77037     PhysicalDeviceShaderTileImagePropertiesEXT( VkPhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77038       : PhysicalDeviceShaderTileImagePropertiesEXT( *reinterpret_cast<PhysicalDeviceShaderTileImagePropertiesEXT const *>( &rhs ) )
77039     {}
77040 
77041 
77042     PhysicalDeviceShaderTileImagePropertiesEXT & operator=( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77043 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
77044 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT77045     PhysicalDeviceShaderTileImagePropertiesEXT & operator=( VkPhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77046     {
77047       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT const *>( &rhs );
77048       return *this;
77049     }
77050 
77051 
operator VkPhysicalDeviceShaderTileImagePropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT77052     operator VkPhysicalDeviceShaderTileImagePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
77053     {
77054       return *reinterpret_cast<const VkPhysicalDeviceShaderTileImagePropertiesEXT*>( this );
77055     }
77056 
operator VkPhysicalDeviceShaderTileImagePropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT77057     operator VkPhysicalDeviceShaderTileImagePropertiesEXT &() VULKAN_HPP_NOEXCEPT
77058     {
77059       return *reinterpret_cast<VkPhysicalDeviceShaderTileImagePropertiesEXT*>( this );
77060     }
77061 
77062 #if defined( VULKAN_HPP_USE_REFLECT )
77063 #if 14 <= VULKAN_HPP_CPP_VERSION
77064     auto
77065 #else
77066     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
77067 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT77068       reflect() const VULKAN_HPP_NOEXCEPT
77069     {
77070       return std::tie( sType, pNext, shaderTileImageCoherentReadAccelerated, shaderTileImageReadSampleFromPixelRateInvocation, shaderTileImageReadFromHelperInvocation );
77071     }
77072 #endif
77073 
77074 
77075 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77076 auto operator<=>( PhysicalDeviceShaderTileImagePropertiesEXT const & ) const = default;
77077 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT77078     bool operator==( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
77079     {
77080 #if defined( VULKAN_HPP_USE_REFLECT )
77081       return this->reflect() == rhs.reflect();
77082 #else
77083       return ( sType == rhs.sType )
77084           && ( pNext == rhs.pNext )
77085           && ( shaderTileImageCoherentReadAccelerated == rhs.shaderTileImageCoherentReadAccelerated )
77086           && ( shaderTileImageReadSampleFromPixelRateInvocation == rhs.shaderTileImageReadSampleFromPixelRateInvocation )
77087           && ( shaderTileImageReadFromHelperInvocation == rhs.shaderTileImageReadFromHelperInvocation );
77088 #endif
77089     }
77090 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT77091     bool operator!=( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
77092     {
77093       return !operator==( rhs );
77094     }
77095 #endif
77096 
77097     public:
77098     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTileImagePropertiesEXT;
77099     void * pNext = {};
77100     VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageCoherentReadAccelerated = {};
77101     VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadSampleFromPixelRateInvocation = {};
77102     VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadFromHelperInvocation = {};
77103 
77104   };
77105 
77106   template <>
77107   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTileImagePropertiesEXT>
77108   {
77109     using Type = PhysicalDeviceShaderTileImagePropertiesEXT;
77110   };
77111 
77112   struct PhysicalDeviceShadingRateImageFeaturesNV
77113   {
77114     using NativeType = VkPhysicalDeviceShadingRateImageFeaturesNV;
77115 
77116     static const bool allowDuplicate = false;
77117     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
77118 
77119 
77120 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77121 VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
77122     : pNext( pNext_ ), shadingRateImage( shadingRateImage_ ), shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
77123     {}
77124 
77125     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77126 
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77127     PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
77128       : PhysicalDeviceShadingRateImageFeaturesNV( *reinterpret_cast<PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs ) )
77129     {}
77130 
77131 
77132     PhysicalDeviceShadingRateImageFeaturesNV & operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77133 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
77134 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77135     PhysicalDeviceShadingRateImageFeaturesNV & operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
77136     {
77137       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs );
77138       return *this;
77139     }
77140 
77141 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77142     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
77143     {
77144       pNext = pNext_;
77145       return *this;
77146     }
77147 
setShadingRateImageVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77148     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT
77149     {
77150       shadingRateImage = shadingRateImage_;
77151       return *this;
77152     }
77153 
setShadingRateCoarseSampleOrderVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77154     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT
77155     {
77156       shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
77157       return *this;
77158     }
77159 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
77160 
77161 
operator VkPhysicalDeviceShadingRateImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77162     operator VkPhysicalDeviceShadingRateImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
77163     {
77164       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
77165     }
77166 
operator VkPhysicalDeviceShadingRateImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77167     operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
77168     {
77169       return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
77170     }
77171 
77172 #if defined( VULKAN_HPP_USE_REFLECT )
77173 #if 14 <= VULKAN_HPP_CPP_VERSION
77174     auto
77175 #else
77176     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
77177 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77178       reflect() const VULKAN_HPP_NOEXCEPT
77179     {
77180       return std::tie( sType, pNext, shadingRateImage, shadingRateCoarseSampleOrder );
77181     }
77182 #endif
77183 
77184 
77185 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77186 auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const & ) const = default;
77187 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77188     bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
77189     {
77190 #if defined( VULKAN_HPP_USE_REFLECT )
77191       return this->reflect() == rhs.reflect();
77192 #else
77193       return ( sType == rhs.sType )
77194           && ( pNext == rhs.pNext )
77195           && ( shadingRateImage == rhs.shadingRateImage )
77196           && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder );
77197 #endif
77198     }
77199 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV77200     bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
77201     {
77202       return !operator==( rhs );
77203     }
77204 #endif
77205 
77206     public:
77207     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
77208     void * pNext = {};
77209     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {};
77210     VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {};
77211 
77212   };
77213 
77214   template <>
77215   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImageFeaturesNV>
77216   {
77217     using Type = PhysicalDeviceShadingRateImageFeaturesNV;
77218   };
77219 
77220   struct PhysicalDeviceShadingRateImagePropertiesNV
77221   {
77222     using NativeType = VkPhysicalDeviceShadingRateImagePropertiesNV;
77223 
77224     static const bool allowDuplicate = false;
77225     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
77226 
77227 
77228 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV77229 VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV(VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {}, uint32_t shadingRatePaletteSize_ = {}, uint32_t shadingRateMaxCoarseSamples_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
77230     : pNext( pNext_ ), shadingRateTexelSize( shadingRateTexelSize_ ), shadingRatePaletteSize( shadingRatePaletteSize_ ), shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ )
77231     {}
77232 
77233     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77234 
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV77235     PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
77236       : PhysicalDeviceShadingRateImagePropertiesNV( *reinterpret_cast<PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs ) )
77237     {}
77238 
77239 
77240     PhysicalDeviceShadingRateImagePropertiesNV & operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77241 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
77242 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV77243     PhysicalDeviceShadingRateImagePropertiesNV & operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
77244     {
77245       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs );
77246       return *this;
77247     }
77248 
77249 
operator VkPhysicalDeviceShadingRateImagePropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV77250     operator VkPhysicalDeviceShadingRateImagePropertiesNV const &() const VULKAN_HPP_NOEXCEPT
77251     {
77252       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
77253     }
77254 
operator VkPhysicalDeviceShadingRateImagePropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV77255     operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT
77256     {
77257       return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
77258     }
77259 
77260 #if defined( VULKAN_HPP_USE_REFLECT )
77261 #if 14 <= VULKAN_HPP_CPP_VERSION
77262     auto
77263 #else
77264     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, uint32_t const &>
77265 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV77266       reflect() const VULKAN_HPP_NOEXCEPT
77267     {
77268       return std::tie( sType, pNext, shadingRateTexelSize, shadingRatePaletteSize, shadingRateMaxCoarseSamples );
77269     }
77270 #endif
77271 
77272 
77273 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77274 auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const & ) const = default;
77275 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV77276     bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
77277     {
77278 #if defined( VULKAN_HPP_USE_REFLECT )
77279       return this->reflect() == rhs.reflect();
77280 #else
77281       return ( sType == rhs.sType )
77282           && ( pNext == rhs.pNext )
77283           && ( shadingRateTexelSize == rhs.shadingRateTexelSize )
77284           && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize )
77285           && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples );
77286 #endif
77287     }
77288 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV77289     bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
77290     {
77291       return !operator==( rhs );
77292     }
77293 #endif
77294 
77295     public:
77296     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
77297     void * pNext = {};
77298     VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {};
77299     uint32_t shadingRatePaletteSize = {};
77300     uint32_t shadingRateMaxCoarseSamples = {};
77301 
77302   };
77303 
77304   template <>
77305   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImagePropertiesNV>
77306   {
77307     using Type = PhysicalDeviceShadingRateImagePropertiesNV;
77308   };
77309 
77310   struct PhysicalDeviceSparseImageFormatInfo2
77311   {
77312     using NativeType = VkPhysicalDeviceSparseImageFormatInfo2;
77313 
77314     static const bool allowDuplicate = false;
77315     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
77316 
77317 
77318 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277319 VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
77320     : pNext( pNext_ ), format( format_ ), type( type_ ), samples( samples_ ), usage( usage_ ), tiling( tiling_ )
77321     {}
77322 
77323     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77324 
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277325     PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
77326       : PhysicalDeviceSparseImageFormatInfo2( *reinterpret_cast<PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs ) )
77327     {}
77328 
77329 
77330     PhysicalDeviceSparseImageFormatInfo2 & operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77331 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
77332 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277333     PhysicalDeviceSparseImageFormatInfo2 & operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
77334     {
77335       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs );
77336       return *this;
77337     }
77338 
77339 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277340     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
77341     {
77342       pNext = pNext_;
77343       return *this;
77344     }
77345 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277346     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
77347     {
77348       format = format_;
77349       return *this;
77350     }
77351 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277352     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
77353     {
77354       type = type_;
77355       return *this;
77356     }
77357 
setSamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277358     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
77359     {
77360       samples = samples_;
77361       return *this;
77362     }
77363 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277364     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
77365     {
77366       usage = usage_;
77367       return *this;
77368     }
77369 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277370     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
77371     {
77372       tiling = tiling_;
77373       return *this;
77374     }
77375 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
77376 
77377 
operator VkPhysicalDeviceSparseImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277378     operator VkPhysicalDeviceSparseImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
77379     {
77380       return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( this );
77381     }
77382 
operator VkPhysicalDeviceSparseImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277383     operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
77384     {
77385       return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>( this );
77386     }
77387 
77388 #if defined( VULKAN_HPP_USE_REFLECT )
77389 #if 14 <= VULKAN_HPP_CPP_VERSION
77390     auto
77391 #else
77392     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::ImageType const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &, VULKAN_HPP_NAMESPACE::ImageTiling const &>
77393 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277394       reflect() const VULKAN_HPP_NOEXCEPT
77395     {
77396       return std::tie( sType, pNext, format, type, samples, usage, tiling );
77397     }
77398 #endif
77399 
77400 
77401 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77402 auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const & ) const = default;
77403 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277404     bool operator==( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
77405     {
77406 #if defined( VULKAN_HPP_USE_REFLECT )
77407       return this->reflect() == rhs.reflect();
77408 #else
77409       return ( sType == rhs.sType )
77410           && ( pNext == rhs.pNext )
77411           && ( format == rhs.format )
77412           && ( type == rhs.type )
77413           && ( samples == rhs.samples )
77414           && ( usage == rhs.usage )
77415           && ( tiling == rhs.tiling );
77416 #endif
77417     }
77418 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo277419     bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
77420     {
77421       return !operator==( rhs );
77422     }
77423 #endif
77424 
77425     public:
77426     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
77427     const void * pNext = {};
77428     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
77429     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
77430     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
77431     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
77432     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
77433 
77434   };
77435 
77436   template <>
77437   struct CppType<StructureType, StructureType::ePhysicalDeviceSparseImageFormatInfo2>
77438   {
77439     using Type = PhysicalDeviceSparseImageFormatInfo2;
77440   };
77441   using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
77442 
77443   struct PhysicalDeviceSubgroupProperties
77444   {
77445     using NativeType = VkPhysicalDeviceSubgroupProperties;
77446 
77447     static const bool allowDuplicate = false;
77448     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties;
77449 
77450 
77451 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties77452 VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties(uint32_t subgroupSize_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages_ = {}, VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
77453     : pNext( pNext_ ), subgroupSize( subgroupSize_ ), supportedStages( supportedStages_ ), supportedOperations( supportedOperations_ ), quadOperationsInAllStages( quadOperationsInAllStages_ )
77454     {}
77455 
77456     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77457 
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties77458     PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
77459       : PhysicalDeviceSubgroupProperties( *reinterpret_cast<PhysicalDeviceSubgroupProperties const *>( &rhs ) )
77460     {}
77461 
77462 
77463     PhysicalDeviceSubgroupProperties & operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77464 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
77465 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties77466     PhysicalDeviceSubgroupProperties & operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
77467     {
77468       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const *>( &rhs );
77469       return *this;
77470     }
77471 
77472 
operator VkPhysicalDeviceSubgroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties77473     operator VkPhysicalDeviceSubgroupProperties const &() const VULKAN_HPP_NOEXCEPT
77474     {
77475       return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>( this );
77476     }
77477 
operator VkPhysicalDeviceSubgroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties77478     operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT
77479     {
77480       return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>( this );
77481     }
77482 
77483 #if defined( VULKAN_HPP_USE_REFLECT )
77484 #if 14 <= VULKAN_HPP_CPP_VERSION
77485     auto
77486 #else
77487     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
77488 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties77489       reflect() const VULKAN_HPP_NOEXCEPT
77490     {
77491       return std::tie( sType, pNext, subgroupSize, supportedStages, supportedOperations, quadOperationsInAllStages );
77492     }
77493 #endif
77494 
77495 
77496 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77497 auto operator<=>( PhysicalDeviceSubgroupProperties const & ) const = default;
77498 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties77499     bool operator==( PhysicalDeviceSubgroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
77500     {
77501 #if defined( VULKAN_HPP_USE_REFLECT )
77502       return this->reflect() == rhs.reflect();
77503 #else
77504       return ( sType == rhs.sType )
77505           && ( pNext == rhs.pNext )
77506           && ( subgroupSize == rhs.subgroupSize )
77507           && ( supportedStages == rhs.supportedStages )
77508           && ( supportedOperations == rhs.supportedOperations )
77509           && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages );
77510 #endif
77511     }
77512 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties77513     bool operator!=( PhysicalDeviceSubgroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
77514     {
77515       return !operator==( rhs );
77516     }
77517 #endif
77518 
77519     public:
77520     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties;
77521     void * pNext = {};
77522     uint32_t subgroupSize = {};
77523     VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {};
77524     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {};
77525     VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {};
77526 
77527   };
77528 
77529   template <>
77530   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupProperties>
77531   {
77532     using Type = PhysicalDeviceSubgroupProperties;
77533   };
77534 
77535   struct PhysicalDeviceSubgroupSizeControlFeatures
77536   {
77537     using NativeType = VkPhysicalDeviceSubgroupSizeControlFeatures;
77538 
77539     static const bool allowDuplicate = false;
77540     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlFeatures;
77541 
77542 
77543 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupSizeControlFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77544 VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeatures(VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
77545     : pNext( pNext_ ), subgroupSizeControl( subgroupSizeControl_ ), computeFullSubgroups( computeFullSubgroups_ )
77546     {}
77547 
77548     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeatures( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77549 
PhysicalDeviceSubgroupSizeControlFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77550     PhysicalDeviceSubgroupSizeControlFeatures( VkPhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
77551       : PhysicalDeviceSubgroupSizeControlFeatures( *reinterpret_cast<PhysicalDeviceSubgroupSizeControlFeatures const *>( &rhs ) )
77552     {}
77553 
77554 
77555     PhysicalDeviceSubgroupSizeControlFeatures & operator=( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77556 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
77557 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77558     PhysicalDeviceSubgroupSizeControlFeatures & operator=( VkPhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
77559     {
77560       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures const *>( &rhs );
77561       return *this;
77562     }
77563 
77564 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77565     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
77566     {
77567       pNext = pNext_;
77568       return *this;
77569     }
77570 
setSubgroupSizeControlVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77571     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
77572     {
77573       subgroupSizeControl = subgroupSizeControl_;
77574       return *this;
77575     }
77576 
setComputeFullSubgroupsVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77577     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
77578     {
77579       computeFullSubgroups = computeFullSubgroups_;
77580       return *this;
77581     }
77582 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
77583 
77584 
operator VkPhysicalDeviceSubgroupSizeControlFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77585     operator VkPhysicalDeviceSubgroupSizeControlFeatures const &() const VULKAN_HPP_NOEXCEPT
77586     {
77587       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>( this );
77588     }
77589 
operator VkPhysicalDeviceSubgroupSizeControlFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77590     operator VkPhysicalDeviceSubgroupSizeControlFeatures &() VULKAN_HPP_NOEXCEPT
77591     {
77592       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeatures*>( this );
77593     }
77594 
77595 #if defined( VULKAN_HPP_USE_REFLECT )
77596 #if 14 <= VULKAN_HPP_CPP_VERSION
77597     auto
77598 #else
77599     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
77600 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77601       reflect() const VULKAN_HPP_NOEXCEPT
77602     {
77603       return std::tie( sType, pNext, subgroupSizeControl, computeFullSubgroups );
77604     }
77605 #endif
77606 
77607 
77608 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77609 auto operator<=>( PhysicalDeviceSubgroupSizeControlFeatures const & ) const = default;
77610 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77611     bool operator==( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
77612     {
77613 #if defined( VULKAN_HPP_USE_REFLECT )
77614       return this->reflect() == rhs.reflect();
77615 #else
77616       return ( sType == rhs.sType )
77617           && ( pNext == rhs.pNext )
77618           && ( subgroupSizeControl == rhs.subgroupSizeControl )
77619           && ( computeFullSubgroups == rhs.computeFullSubgroups );
77620 #endif
77621     }
77622 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures77623     bool operator!=( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
77624     {
77625       return !operator==( rhs );
77626     }
77627 #endif
77628 
77629     public:
77630     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeatures;
77631     void * pNext = {};
77632     VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
77633     VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
77634 
77635   };
77636 
77637   template <>
77638   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlFeatures>
77639   {
77640     using Type = PhysicalDeviceSubgroupSizeControlFeatures;
77641   };
77642   using PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures;
77643 
77644   struct PhysicalDeviceSubgroupSizeControlProperties
77645   {
77646     using NativeType = VkPhysicalDeviceSubgroupSizeControlProperties;
77647 
77648     static const bool allowDuplicate = false;
77649     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlProperties;
77650 
77651 
77652 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupSizeControlPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties77653 VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlProperties(uint32_t minSubgroupSize_ = {}, uint32_t maxSubgroupSize_ = {}, uint32_t maxComputeWorkgroupSubgroups_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
77654     : pNext( pNext_ ), minSubgroupSize( minSubgroupSize_ ), maxSubgroupSize( maxSubgroupSize_ ), maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ ), requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
77655     {}
77656 
77657     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlProperties( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77658 
PhysicalDeviceSubgroupSizeControlPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties77659     PhysicalDeviceSubgroupSizeControlProperties( VkPhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT
77660       : PhysicalDeviceSubgroupSizeControlProperties( *reinterpret_cast<PhysicalDeviceSubgroupSizeControlProperties const *>( &rhs ) )
77661     {}
77662 
77663 
77664     PhysicalDeviceSubgroupSizeControlProperties & operator=( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77665 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
77666 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties77667     PhysicalDeviceSubgroupSizeControlProperties & operator=( VkPhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT
77668     {
77669       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties const *>( &rhs );
77670       return *this;
77671     }
77672 
77673 
operator VkPhysicalDeviceSubgroupSizeControlProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties77674     operator VkPhysicalDeviceSubgroupSizeControlProperties const &() const VULKAN_HPP_NOEXCEPT
77675     {
77676       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties*>( this );
77677     }
77678 
operator VkPhysicalDeviceSubgroupSizeControlProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties77679     operator VkPhysicalDeviceSubgroupSizeControlProperties &() VULKAN_HPP_NOEXCEPT
77680     {
77681       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlProperties*>( this );
77682     }
77683 
77684 #if defined( VULKAN_HPP_USE_REFLECT )
77685 #if 14 <= VULKAN_HPP_CPP_VERSION
77686     auto
77687 #else
77688     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &>
77689 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties77690       reflect() const VULKAN_HPP_NOEXCEPT
77691     {
77692       return std::tie( sType, pNext, minSubgroupSize, maxSubgroupSize, maxComputeWorkgroupSubgroups, requiredSubgroupSizeStages );
77693     }
77694 #endif
77695 
77696 
77697 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77698 auto operator<=>( PhysicalDeviceSubgroupSizeControlProperties const & ) const = default;
77699 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties77700     bool operator==( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
77701     {
77702 #if defined( VULKAN_HPP_USE_REFLECT )
77703       return this->reflect() == rhs.reflect();
77704 #else
77705       return ( sType == rhs.sType )
77706           && ( pNext == rhs.pNext )
77707           && ( minSubgroupSize == rhs.minSubgroupSize )
77708           && ( maxSubgroupSize == rhs.maxSubgroupSize )
77709           && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups )
77710           && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages );
77711 #endif
77712     }
77713 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties77714     bool operator!=( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
77715     {
77716       return !operator==( rhs );
77717     }
77718 #endif
77719 
77720     public:
77721     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlProperties;
77722     void * pNext = {};
77723     uint32_t minSubgroupSize = {};
77724     uint32_t maxSubgroupSize = {};
77725     uint32_t maxComputeWorkgroupSubgroups = {};
77726     VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
77727 
77728   };
77729 
77730   template <>
77731   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlProperties>
77732   {
77733     using Type = PhysicalDeviceSubgroupSizeControlProperties;
77734   };
77735   using PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlProperties;
77736 
77737   struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
77738   {
77739     using NativeType = VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
77740 
77741     static const bool allowDuplicate = false;
77742     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
77743 
77744 
77745 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubpassMergeFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT77746 VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassMergeFeedbackFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
77747     : pNext( pNext_ ), subpassMergeFeedback( subpassMergeFeedback_ )
77748     {}
77749 
77750     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77751 
PhysicalDeviceSubpassMergeFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT77752     PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77753       : PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( *reinterpret_cast<PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const *>( &rhs ) )
77754     {}
77755 
77756 
77757     PhysicalDeviceSubpassMergeFeedbackFeaturesEXT & operator=( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77758 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
77759 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT77760     PhysicalDeviceSubpassMergeFeedbackFeaturesEXT & operator=( VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77761     {
77762       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const *>( &rhs );
77763       return *this;
77764     }
77765 
77766 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT77767     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
77768     {
77769       pNext = pNext_;
77770       return *this;
77771     }
77772 
setSubpassMergeFeedbackVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT77773     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT & setSubpassMergeFeedback( VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback_ ) VULKAN_HPP_NOEXCEPT
77774     {
77775       subpassMergeFeedback = subpassMergeFeedback_;
77776       return *this;
77777     }
77778 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
77779 
77780 
operator VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT77781     operator VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
77782     {
77783       return *reinterpret_cast<const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT*>( this );
77784     }
77785 
operator VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT77786     operator VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
77787     {
77788       return *reinterpret_cast<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT*>( this );
77789     }
77790 
77791 #if defined( VULKAN_HPP_USE_REFLECT )
77792 #if 14 <= VULKAN_HPP_CPP_VERSION
77793     auto
77794 #else
77795     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
77796 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT77797       reflect() const VULKAN_HPP_NOEXCEPT
77798     {
77799       return std::tie( sType, pNext, subpassMergeFeedback );
77800     }
77801 #endif
77802 
77803 
77804 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77805 auto operator<=>( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & ) const = default;
77806 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT77807     bool operator==( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
77808     {
77809 #if defined( VULKAN_HPP_USE_REFLECT )
77810       return this->reflect() == rhs.reflect();
77811 #else
77812       return ( sType == rhs.sType )
77813           && ( pNext == rhs.pNext )
77814           && ( subpassMergeFeedback == rhs.subpassMergeFeedback );
77815 #endif
77816     }
77817 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT77818     bool operator!=( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
77819     {
77820       return !operator==( rhs );
77821     }
77822 #endif
77823 
77824     public:
77825     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
77826     void * pNext = {};
77827     VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback = {};
77828 
77829   };
77830 
77831   template <>
77832   struct CppType<StructureType, StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT>
77833   {
77834     using Type = PhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
77835   };
77836 
77837   struct PhysicalDeviceSubpassShadingFeaturesHUAWEI
77838   {
77839     using NativeType = VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
77840 
77841     static const bool allowDuplicate = false;
77842     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI;
77843 
77844 
77845 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubpassShadingFeaturesHUAWEIVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI77846 VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingFeaturesHUAWEI(VULKAN_HPP_NAMESPACE::Bool32 subpassShading_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
77847     : pNext( pNext_ ), subpassShading( subpassShading_ )
77848     {}
77849 
77850     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingFeaturesHUAWEI( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77851 
PhysicalDeviceSubpassShadingFeaturesHUAWEIVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI77852     PhysicalDeviceSubpassShadingFeaturesHUAWEI( VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
77853       : PhysicalDeviceSubpassShadingFeaturesHUAWEI( *reinterpret_cast<PhysicalDeviceSubpassShadingFeaturesHUAWEI const *>( &rhs ) )
77854     {}
77855 
77856 
77857     PhysicalDeviceSubpassShadingFeaturesHUAWEI & operator=( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77858 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
77859 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI77860     PhysicalDeviceSubpassShadingFeaturesHUAWEI & operator=( VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
77861     {
77862       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI const *>( &rhs );
77863       return *this;
77864     }
77865 
77866 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI77867     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassShadingFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
77868     {
77869       pNext = pNext_;
77870       return *this;
77871     }
77872 
setSubpassShadingVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI77873     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassShadingFeaturesHUAWEI & setSubpassShading( VULKAN_HPP_NAMESPACE::Bool32 subpassShading_ ) VULKAN_HPP_NOEXCEPT
77874     {
77875       subpassShading = subpassShading_;
77876       return *this;
77877     }
77878 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
77879 
77880 
operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI77881     operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
77882     {
77883       return *reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>( this );
77884     }
77885 
operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI77886     operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
77887     {
77888       return *reinterpret_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>( this );
77889     }
77890 
77891 #if defined( VULKAN_HPP_USE_REFLECT )
77892 #if 14 <= VULKAN_HPP_CPP_VERSION
77893     auto
77894 #else
77895     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
77896 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI77897       reflect() const VULKAN_HPP_NOEXCEPT
77898     {
77899       return std::tie( sType, pNext, subpassShading );
77900     }
77901 #endif
77902 
77903 
77904 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77905 auto operator<=>( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & ) const = default;
77906 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI77907     bool operator==( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
77908     {
77909 #if defined( VULKAN_HPP_USE_REFLECT )
77910       return this->reflect() == rhs.reflect();
77911 #else
77912       return ( sType == rhs.sType )
77913           && ( pNext == rhs.pNext )
77914           && ( subpassShading == rhs.subpassShading );
77915 #endif
77916     }
77917 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI77918     bool operator!=( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
77919     {
77920       return !operator==( rhs );
77921     }
77922 #endif
77923 
77924     public:
77925     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI;
77926     void * pNext = {};
77927     VULKAN_HPP_NAMESPACE::Bool32 subpassShading = {};
77928 
77929   };
77930 
77931   template <>
77932   struct CppType<StructureType, StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI>
77933   {
77934     using Type = PhysicalDeviceSubpassShadingFeaturesHUAWEI;
77935   };
77936 
77937   struct PhysicalDeviceSubpassShadingPropertiesHUAWEI
77938   {
77939     using NativeType = VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
77940 
77941     static const bool allowDuplicate = false;
77942     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI;
77943 
77944 
77945 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubpassShadingPropertiesHUAWEIVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI77946 VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingPropertiesHUAWEI(uint32_t maxSubpassShadingWorkgroupSizeAspectRatio_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
77947     : pNext( pNext_ ), maxSubpassShadingWorkgroupSizeAspectRatio( maxSubpassShadingWorkgroupSizeAspectRatio_ )
77948     {}
77949 
77950     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingPropertiesHUAWEI( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77951 
PhysicalDeviceSubpassShadingPropertiesHUAWEIVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI77952     PhysicalDeviceSubpassShadingPropertiesHUAWEI( VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
77953       : PhysicalDeviceSubpassShadingPropertiesHUAWEI( *reinterpret_cast<PhysicalDeviceSubpassShadingPropertiesHUAWEI const *>( &rhs ) )
77954     {}
77955 
77956 
77957     PhysicalDeviceSubpassShadingPropertiesHUAWEI & operator=( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77958 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
77959 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI77960     PhysicalDeviceSubpassShadingPropertiesHUAWEI & operator=( VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
77961     {
77962       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI const *>( &rhs );
77963       return *this;
77964     }
77965 
77966 
operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI77967     operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
77968     {
77969       return *reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>( this );
77970     }
77971 
operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI77972     operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI &() VULKAN_HPP_NOEXCEPT
77973     {
77974       return *reinterpret_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>( this );
77975     }
77976 
77977 #if defined( VULKAN_HPP_USE_REFLECT )
77978 #if 14 <= VULKAN_HPP_CPP_VERSION
77979     auto
77980 #else
77981     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
77982 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI77983       reflect() const VULKAN_HPP_NOEXCEPT
77984     {
77985       return std::tie( sType, pNext, maxSubpassShadingWorkgroupSizeAspectRatio );
77986     }
77987 #endif
77988 
77989 
77990 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77991 auto operator<=>( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & ) const = default;
77992 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI77993     bool operator==( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
77994     {
77995 #if defined( VULKAN_HPP_USE_REFLECT )
77996       return this->reflect() == rhs.reflect();
77997 #else
77998       return ( sType == rhs.sType )
77999           && ( pNext == rhs.pNext )
78000           && ( maxSubpassShadingWorkgroupSizeAspectRatio == rhs.maxSubpassShadingWorkgroupSizeAspectRatio );
78001 #endif
78002     }
78003 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI78004     bool operator!=( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
78005     {
78006       return !operator==( rhs );
78007     }
78008 #endif
78009 
78010     public:
78011     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI;
78012     void * pNext = {};
78013     uint32_t maxSubpassShadingWorkgroupSizeAspectRatio = {};
78014 
78015   };
78016 
78017   template <>
78018   struct CppType<StructureType, StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI>
78019   {
78020     using Type = PhysicalDeviceSubpassShadingPropertiesHUAWEI;
78021   };
78022 
78023   struct PhysicalDeviceSurfaceInfo2KHR
78024   {
78025     using NativeType = VkPhysicalDeviceSurfaceInfo2KHR;
78026 
78027     static const bool allowDuplicate = false;
78028     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
78029 
78030 
78031 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR78032 VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
78033     : pNext( pNext_ ), surface( surface_ )
78034     {}
78035 
78036     VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78037 
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR78038     PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
78039       : PhysicalDeviceSurfaceInfo2KHR( *reinterpret_cast<PhysicalDeviceSurfaceInfo2KHR const *>( &rhs ) )
78040     {}
78041 
78042 
78043     PhysicalDeviceSurfaceInfo2KHR & operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78044 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
78045 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR78046     PhysicalDeviceSurfaceInfo2KHR & operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
78047     {
78048       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const *>( &rhs );
78049       return *this;
78050     }
78051 
78052 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR78053     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSurfaceInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
78054     {
78055       pNext = pNext_;
78056       return *this;
78057     }
78058 
setSurfaceVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR78059     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
78060     {
78061       surface = surface_;
78062       return *this;
78063     }
78064 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
78065 
78066 
operator VkPhysicalDeviceSurfaceInfo2KHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR78067     operator VkPhysicalDeviceSurfaceInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
78068     {
78069       return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( this );
78070     }
78071 
operator VkPhysicalDeviceSurfaceInfo2KHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR78072     operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT
78073     {
78074       return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>( this );
78075     }
78076 
78077 #if defined( VULKAN_HPP_USE_REFLECT )
78078 #if 14 <= VULKAN_HPP_CPP_VERSION
78079     auto
78080 #else
78081     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SurfaceKHR const &>
78082 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR78083       reflect() const VULKAN_HPP_NOEXCEPT
78084     {
78085       return std::tie( sType, pNext, surface );
78086     }
78087 #endif
78088 
78089 
78090 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78091 auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const & ) const = default;
78092 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR78093     bool operator==( PhysicalDeviceSurfaceInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
78094     {
78095 #if defined( VULKAN_HPP_USE_REFLECT )
78096       return this->reflect() == rhs.reflect();
78097 #else
78098       return ( sType == rhs.sType )
78099           && ( pNext == rhs.pNext )
78100           && ( surface == rhs.surface );
78101 #endif
78102     }
78103 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR78104     bool operator!=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
78105     {
78106       return !operator==( rhs );
78107     }
78108 #endif
78109 
78110     public:
78111     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
78112     const void * pNext = {};
78113     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
78114 
78115   };
78116 
78117   template <>
78118   struct CppType<StructureType, StructureType::ePhysicalDeviceSurfaceInfo2KHR>
78119   {
78120     using Type = PhysicalDeviceSurfaceInfo2KHR;
78121   };
78122 
78123   struct PhysicalDeviceSwapchainMaintenance1FeaturesEXT
78124   {
78125     using NativeType = VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
78126 
78127     static const bool allowDuplicate = false;
78128     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSwapchainMaintenance1FeaturesEXT;
78129 
78130 
78131 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSwapchainMaintenance1FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT78132 VULKAN_HPP_CONSTEXPR PhysicalDeviceSwapchainMaintenance1FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 swapchainMaintenance1_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
78133     : pNext( pNext_ ), swapchainMaintenance1( swapchainMaintenance1_ )
78134     {}
78135 
78136     VULKAN_HPP_CONSTEXPR PhysicalDeviceSwapchainMaintenance1FeaturesEXT( PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78137 
PhysicalDeviceSwapchainMaintenance1FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT78138     PhysicalDeviceSwapchainMaintenance1FeaturesEXT( VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78139       : PhysicalDeviceSwapchainMaintenance1FeaturesEXT( *reinterpret_cast<PhysicalDeviceSwapchainMaintenance1FeaturesEXT const *>( &rhs ) )
78140     {}
78141 
78142 
78143     PhysicalDeviceSwapchainMaintenance1FeaturesEXT & operator=( PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78144 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
78145 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT78146     PhysicalDeviceSwapchainMaintenance1FeaturesEXT & operator=( VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78147     {
78148       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT const *>( &rhs );
78149       return *this;
78150     }
78151 
78152 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT78153     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSwapchainMaintenance1FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
78154     {
78155       pNext = pNext_;
78156       return *this;
78157     }
78158 
setSwapchainMaintenance1VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT78159     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSwapchainMaintenance1FeaturesEXT & setSwapchainMaintenance1( VULKAN_HPP_NAMESPACE::Bool32 swapchainMaintenance1_ ) VULKAN_HPP_NOEXCEPT
78160     {
78161       swapchainMaintenance1 = swapchainMaintenance1_;
78162       return *this;
78163     }
78164 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
78165 
78166 
operator VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT78167     operator VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
78168     {
78169       return *reinterpret_cast<const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>( this );
78170     }
78171 
operator VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT78172     operator VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT &() VULKAN_HPP_NOEXCEPT
78173     {
78174       return *reinterpret_cast<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>( this );
78175     }
78176 
78177 #if defined( VULKAN_HPP_USE_REFLECT )
78178 #if 14 <= VULKAN_HPP_CPP_VERSION
78179     auto
78180 #else
78181     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
78182 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT78183       reflect() const VULKAN_HPP_NOEXCEPT
78184     {
78185       return std::tie( sType, pNext, swapchainMaintenance1 );
78186     }
78187 #endif
78188 
78189 
78190 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78191 auto operator<=>( PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & ) const = default;
78192 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT78193     bool operator==( PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
78194     {
78195 #if defined( VULKAN_HPP_USE_REFLECT )
78196       return this->reflect() == rhs.reflect();
78197 #else
78198       return ( sType == rhs.sType )
78199           && ( pNext == rhs.pNext )
78200           && ( swapchainMaintenance1 == rhs.swapchainMaintenance1 );
78201 #endif
78202     }
78203 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT78204     bool operator!=( PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
78205     {
78206       return !operator==( rhs );
78207     }
78208 #endif
78209 
78210     public:
78211     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSwapchainMaintenance1FeaturesEXT;
78212     void * pNext = {};
78213     VULKAN_HPP_NAMESPACE::Bool32 swapchainMaintenance1 = {};
78214 
78215   };
78216 
78217   template <>
78218   struct CppType<StructureType, StructureType::ePhysicalDeviceSwapchainMaintenance1FeaturesEXT>
78219   {
78220     using Type = PhysicalDeviceSwapchainMaintenance1FeaturesEXT;
78221   };
78222 
78223   struct PhysicalDeviceSynchronization2Features
78224   {
78225     using NativeType = VkPhysicalDeviceSynchronization2Features;
78226 
78227     static const bool allowDuplicate = false;
78228     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSynchronization2Features;
78229 
78230 
78231 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSynchronization2FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features78232 VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2Features(VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
78233     : pNext( pNext_ ), synchronization2( synchronization2_ )
78234     {}
78235 
78236     VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2Features( PhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78237 
PhysicalDeviceSynchronization2FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features78238     PhysicalDeviceSynchronization2Features( VkPhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT
78239       : PhysicalDeviceSynchronization2Features( *reinterpret_cast<PhysicalDeviceSynchronization2Features const *>( &rhs ) )
78240     {}
78241 
78242 
78243     PhysicalDeviceSynchronization2Features & operator=( PhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78244 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
78245 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features78246     PhysicalDeviceSynchronization2Features & operator=( VkPhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT
78247     {
78248       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features const *>( &rhs );
78249       return *this;
78250     }
78251 
78252 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features78253     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSynchronization2Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
78254     {
78255       pNext = pNext_;
78256       return *this;
78257     }
78258 
setSynchronization2VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features78259     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSynchronization2Features & setSynchronization2( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ ) VULKAN_HPP_NOEXCEPT
78260     {
78261       synchronization2 = synchronization2_;
78262       return *this;
78263     }
78264 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
78265 
78266 
operator VkPhysicalDeviceSynchronization2Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features78267     operator VkPhysicalDeviceSynchronization2Features const &() const VULKAN_HPP_NOEXCEPT
78268     {
78269       return *reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>( this );
78270     }
78271 
operator VkPhysicalDeviceSynchronization2Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features78272     operator VkPhysicalDeviceSynchronization2Features &() VULKAN_HPP_NOEXCEPT
78273     {
78274       return *reinterpret_cast<VkPhysicalDeviceSynchronization2Features*>( this );
78275     }
78276 
78277 #if defined( VULKAN_HPP_USE_REFLECT )
78278 #if 14 <= VULKAN_HPP_CPP_VERSION
78279     auto
78280 #else
78281     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
78282 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features78283       reflect() const VULKAN_HPP_NOEXCEPT
78284     {
78285       return std::tie( sType, pNext, synchronization2 );
78286     }
78287 #endif
78288 
78289 
78290 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78291 auto operator<=>( PhysicalDeviceSynchronization2Features const & ) const = default;
78292 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features78293     bool operator==( PhysicalDeviceSynchronization2Features const & rhs ) const VULKAN_HPP_NOEXCEPT
78294     {
78295 #if defined( VULKAN_HPP_USE_REFLECT )
78296       return this->reflect() == rhs.reflect();
78297 #else
78298       return ( sType == rhs.sType )
78299           && ( pNext == rhs.pNext )
78300           && ( synchronization2 == rhs.synchronization2 );
78301 #endif
78302     }
78303 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features78304     bool operator!=( PhysicalDeviceSynchronization2Features const & rhs ) const VULKAN_HPP_NOEXCEPT
78305     {
78306       return !operator==( rhs );
78307     }
78308 #endif
78309 
78310     public:
78311     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSynchronization2Features;
78312     void * pNext = {};
78313     VULKAN_HPP_NAMESPACE::Bool32 synchronization2 = {};
78314 
78315   };
78316 
78317   template <>
78318   struct CppType<StructureType, StructureType::ePhysicalDeviceSynchronization2Features>
78319   {
78320     using Type = PhysicalDeviceSynchronization2Features;
78321   };
78322   using PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features;
78323 
78324   struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
78325   {
78326     using NativeType = VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
78327 
78328     static const bool allowDuplicate = false;
78329     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
78330 
78331 
78332 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT78333 VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
78334     : pNext( pNext_ ), texelBufferAlignment( texelBufferAlignment_ )
78335     {}
78336 
78337     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78338 
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT78339     PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78340       : PhysicalDeviceTexelBufferAlignmentFeaturesEXT( *reinterpret_cast<PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs ) )
78341     {}
78342 
78343 
78344     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78345 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
78346 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT78347     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78348     {
78349       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs );
78350       return *this;
78351     }
78352 
78353 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT78354     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
78355     {
78356       pNext = pNext_;
78357       return *this;
78358     }
78359 
setTexelBufferAlignmentVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT78360     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT
78361     {
78362       texelBufferAlignment = texelBufferAlignment_;
78363       return *this;
78364     }
78365 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
78366 
78367 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT78368     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
78369     {
78370       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
78371     }
78372 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT78373     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT
78374     {
78375       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
78376     }
78377 
78378 #if defined( VULKAN_HPP_USE_REFLECT )
78379 #if 14 <= VULKAN_HPP_CPP_VERSION
78380     auto
78381 #else
78382     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
78383 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT78384       reflect() const VULKAN_HPP_NOEXCEPT
78385     {
78386       return std::tie( sType, pNext, texelBufferAlignment );
78387     }
78388 #endif
78389 
78390 
78391 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78392 auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & ) const = default;
78393 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT78394     bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
78395     {
78396 #if defined( VULKAN_HPP_USE_REFLECT )
78397       return this->reflect() == rhs.reflect();
78398 #else
78399       return ( sType == rhs.sType )
78400           && ( pNext == rhs.pNext )
78401           && ( texelBufferAlignment == rhs.texelBufferAlignment );
78402 #endif
78403     }
78404 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT78405     bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
78406     {
78407       return !operator==( rhs );
78408     }
78409 #endif
78410 
78411     public:
78412     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
78413     void * pNext = {};
78414     VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {};
78415 
78416   };
78417 
78418   template <>
78419   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT>
78420   {
78421     using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
78422   };
78423 
78424   struct PhysicalDeviceTexelBufferAlignmentProperties
78425   {
78426     using NativeType = VkPhysicalDeviceTexelBufferAlignmentProperties;
78427 
78428     static const bool allowDuplicate = false;
78429     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentProperties;
78430 
78431 
78432 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTexelBufferAlignmentPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties78433 VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentProperties(VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
78434     : pNext( pNext_ ), storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ ), storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ ), uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ ), uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
78435     {}
78436 
78437     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentProperties( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78438 
PhysicalDeviceTexelBufferAlignmentPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties78439     PhysicalDeviceTexelBufferAlignmentProperties( VkPhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT
78440       : PhysicalDeviceTexelBufferAlignmentProperties( *reinterpret_cast<PhysicalDeviceTexelBufferAlignmentProperties const *>( &rhs ) )
78441     {}
78442 
78443 
78444     PhysicalDeviceTexelBufferAlignmentProperties & operator=( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78445 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
78446 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties78447     PhysicalDeviceTexelBufferAlignmentProperties & operator=( VkPhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT
78448     {
78449       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties const *>( &rhs );
78450       return *this;
78451     }
78452 
78453 
operator VkPhysicalDeviceTexelBufferAlignmentProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties78454     operator VkPhysicalDeviceTexelBufferAlignmentProperties const &() const VULKAN_HPP_NOEXCEPT
78455     {
78456       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties*>( this );
78457     }
78458 
operator VkPhysicalDeviceTexelBufferAlignmentProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties78459     operator VkPhysicalDeviceTexelBufferAlignmentProperties &() VULKAN_HPP_NOEXCEPT
78460     {
78461       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentProperties*>( this );
78462     }
78463 
78464 #if defined( VULKAN_HPP_USE_REFLECT )
78465 #if 14 <= VULKAN_HPP_CPP_VERSION
78466     auto
78467 #else
78468     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
78469 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties78470       reflect() const VULKAN_HPP_NOEXCEPT
78471     {
78472       return std::tie( sType, pNext, storageTexelBufferOffsetAlignmentBytes, storageTexelBufferOffsetSingleTexelAlignment, uniformTexelBufferOffsetAlignmentBytes, uniformTexelBufferOffsetSingleTexelAlignment );
78473     }
78474 #endif
78475 
78476 
78477 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78478 auto operator<=>( PhysicalDeviceTexelBufferAlignmentProperties const & ) const = default;
78479 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties78480     bool operator==( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
78481     {
78482 #if defined( VULKAN_HPP_USE_REFLECT )
78483       return this->reflect() == rhs.reflect();
78484 #else
78485       return ( sType == rhs.sType )
78486           && ( pNext == rhs.pNext )
78487           && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes )
78488           && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment )
78489           && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes )
78490           && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment );
78491 #endif
78492     }
78493 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties78494     bool operator!=( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
78495     {
78496       return !operator==( rhs );
78497     }
78498 #endif
78499 
78500     public:
78501     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentProperties;
78502     void * pNext = {};
78503     VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
78504     VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
78505     VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
78506     VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
78507 
78508   };
78509 
78510   template <>
78511   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentProperties>
78512   {
78513     using Type = PhysicalDeviceTexelBufferAlignmentProperties;
78514   };
78515   using PhysicalDeviceTexelBufferAlignmentPropertiesEXT = PhysicalDeviceTexelBufferAlignmentProperties;
78516 
78517   struct PhysicalDeviceTextureCompressionASTCHDRFeatures
78518   {
78519     using NativeType = VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
78520 
78521     static const bool allowDuplicate = false;
78522     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeatures;
78523 
78524 
78525 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTextureCompressionASTCHDRFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures78526 VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeatures(VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
78527     : pNext( pNext_ ), textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
78528     {}
78529 
78530     VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeatures( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78531 
PhysicalDeviceTextureCompressionASTCHDRFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures78532     PhysicalDeviceTextureCompressionASTCHDRFeatures( VkPhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
78533       : PhysicalDeviceTextureCompressionASTCHDRFeatures( *reinterpret_cast<PhysicalDeviceTextureCompressionASTCHDRFeatures const *>( &rhs ) )
78534     {}
78535 
78536 
78537     PhysicalDeviceTextureCompressionASTCHDRFeatures & operator=( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78538 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
78539 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures78540     PhysicalDeviceTextureCompressionASTCHDRFeatures & operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
78541     {
78542       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures const *>( &rhs );
78543       return *this;
78544     }
78545 
78546 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures78547     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTextureCompressionASTCHDRFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
78548     {
78549       pNext = pNext_;
78550       return *this;
78551     }
78552 
setTextureCompressionASTC_HDRVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures78553     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTextureCompressionASTCHDRFeatures & setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
78554     {
78555       textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
78556       return *this;
78557     }
78558 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
78559 
78560 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures78561     operator VkPhysicalDeviceTextureCompressionASTCHDRFeatures const &() const VULKAN_HPP_NOEXCEPT
78562     {
78563       return *reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>( this );
78564     }
78565 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures78566     operator VkPhysicalDeviceTextureCompressionASTCHDRFeatures &() VULKAN_HPP_NOEXCEPT
78567     {
78568       return *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>( this );
78569     }
78570 
78571 #if defined( VULKAN_HPP_USE_REFLECT )
78572 #if 14 <= VULKAN_HPP_CPP_VERSION
78573     auto
78574 #else
78575     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
78576 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures78577       reflect() const VULKAN_HPP_NOEXCEPT
78578     {
78579       return std::tie( sType, pNext, textureCompressionASTC_HDR );
78580     }
78581 #endif
78582 
78583 
78584 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78585 auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeatures const & ) const = default;
78586 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures78587     bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
78588     {
78589 #if defined( VULKAN_HPP_USE_REFLECT )
78590       return this->reflect() == rhs.reflect();
78591 #else
78592       return ( sType == rhs.sType )
78593           && ( pNext == rhs.pNext )
78594           && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR );
78595 #endif
78596     }
78597 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures78598     bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
78599     {
78600       return !operator==( rhs );
78601     }
78602 #endif
78603 
78604     public:
78605     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeatures;
78606     void * pNext = {};
78607     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
78608 
78609   };
78610 
78611   template <>
78612   struct CppType<StructureType, StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeatures>
78613   {
78614     using Type = PhysicalDeviceTextureCompressionASTCHDRFeatures;
78615   };
78616   using PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = PhysicalDeviceTextureCompressionASTCHDRFeatures;
78617 
78618   struct PhysicalDeviceTilePropertiesFeaturesQCOM
78619   {
78620     using NativeType = VkPhysicalDeviceTilePropertiesFeaturesQCOM;
78621 
78622     static const bool allowDuplicate = false;
78623     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTilePropertiesFeaturesQCOM;
78624 
78625 
78626 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTilePropertiesFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM78627 VULKAN_HPP_CONSTEXPR PhysicalDeviceTilePropertiesFeaturesQCOM(VULKAN_HPP_NAMESPACE::Bool32 tileProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
78628     : pNext( pNext_ ), tileProperties( tileProperties_ )
78629     {}
78630 
78631     VULKAN_HPP_CONSTEXPR PhysicalDeviceTilePropertiesFeaturesQCOM( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78632 
PhysicalDeviceTilePropertiesFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM78633     PhysicalDeviceTilePropertiesFeaturesQCOM( VkPhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
78634       : PhysicalDeviceTilePropertiesFeaturesQCOM( *reinterpret_cast<PhysicalDeviceTilePropertiesFeaturesQCOM const *>( &rhs ) )
78635     {}
78636 
78637 
78638     PhysicalDeviceTilePropertiesFeaturesQCOM & operator=( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78639 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
78640 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM78641     PhysicalDeviceTilePropertiesFeaturesQCOM & operator=( VkPhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
78642     {
78643       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM const *>( &rhs );
78644       return *this;
78645     }
78646 
78647 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM78648     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTilePropertiesFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
78649     {
78650       pNext = pNext_;
78651       return *this;
78652     }
78653 
setTilePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM78654     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTilePropertiesFeaturesQCOM & setTileProperties( VULKAN_HPP_NAMESPACE::Bool32 tileProperties_ ) VULKAN_HPP_NOEXCEPT
78655     {
78656       tileProperties = tileProperties_;
78657       return *this;
78658     }
78659 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
78660 
78661 
operator VkPhysicalDeviceTilePropertiesFeaturesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM78662     operator VkPhysicalDeviceTilePropertiesFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
78663     {
78664       return *reinterpret_cast<const VkPhysicalDeviceTilePropertiesFeaturesQCOM*>( this );
78665     }
78666 
operator VkPhysicalDeviceTilePropertiesFeaturesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM78667     operator VkPhysicalDeviceTilePropertiesFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
78668     {
78669       return *reinterpret_cast<VkPhysicalDeviceTilePropertiesFeaturesQCOM*>( this );
78670     }
78671 
78672 #if defined( VULKAN_HPP_USE_REFLECT )
78673 #if 14 <= VULKAN_HPP_CPP_VERSION
78674     auto
78675 #else
78676     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
78677 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM78678       reflect() const VULKAN_HPP_NOEXCEPT
78679     {
78680       return std::tie( sType, pNext, tileProperties );
78681     }
78682 #endif
78683 
78684 
78685 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78686 auto operator<=>( PhysicalDeviceTilePropertiesFeaturesQCOM const & ) const = default;
78687 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM78688     bool operator==( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
78689     {
78690 #if defined( VULKAN_HPP_USE_REFLECT )
78691       return this->reflect() == rhs.reflect();
78692 #else
78693       return ( sType == rhs.sType )
78694           && ( pNext == rhs.pNext )
78695           && ( tileProperties == rhs.tileProperties );
78696 #endif
78697     }
78698 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM78699     bool operator!=( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
78700     {
78701       return !operator==( rhs );
78702     }
78703 #endif
78704 
78705     public:
78706     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTilePropertiesFeaturesQCOM;
78707     void * pNext = {};
78708     VULKAN_HPP_NAMESPACE::Bool32 tileProperties = {};
78709 
78710   };
78711 
78712   template <>
78713   struct CppType<StructureType, StructureType::ePhysicalDeviceTilePropertiesFeaturesQCOM>
78714   {
78715     using Type = PhysicalDeviceTilePropertiesFeaturesQCOM;
78716   };
78717 
78718   struct PhysicalDeviceTimelineSemaphoreFeatures
78719   {
78720     using NativeType = VkPhysicalDeviceTimelineSemaphoreFeatures;
78721 
78722     static const bool allowDuplicate = false;
78723     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
78724 
78725 
78726 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures78727 VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures(VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
78728     : pNext( pNext_ ), timelineSemaphore( timelineSemaphore_ )
78729     {}
78730 
78731     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78732 
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures78733     PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
78734       : PhysicalDeviceTimelineSemaphoreFeatures( *reinterpret_cast<PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs ) )
78735     {}
78736 
78737 
78738     PhysicalDeviceTimelineSemaphoreFeatures & operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78739 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
78740 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures78741     PhysicalDeviceTimelineSemaphoreFeatures & operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
78742     {
78743       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs );
78744       return *this;
78745     }
78746 
78747 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures78748     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
78749     {
78750       pNext = pNext_;
78751       return *this;
78752     }
78753 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures78754     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreFeatures & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
78755     {
78756       timelineSemaphore = timelineSemaphore_;
78757       return *this;
78758     }
78759 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
78760 
78761 
operator VkPhysicalDeviceTimelineSemaphoreFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures78762     operator VkPhysicalDeviceTimelineSemaphoreFeatures const &() const VULKAN_HPP_NOEXCEPT
78763     {
78764       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
78765     }
78766 
operator VkPhysicalDeviceTimelineSemaphoreFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures78767     operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT
78768     {
78769       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
78770     }
78771 
78772 #if defined( VULKAN_HPP_USE_REFLECT )
78773 #if 14 <= VULKAN_HPP_CPP_VERSION
78774     auto
78775 #else
78776     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
78777 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures78778       reflect() const VULKAN_HPP_NOEXCEPT
78779     {
78780       return std::tie( sType, pNext, timelineSemaphore );
78781     }
78782 #endif
78783 
78784 
78785 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78786 auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const & ) const = default;
78787 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures78788     bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
78789     {
78790 #if defined( VULKAN_HPP_USE_REFLECT )
78791       return this->reflect() == rhs.reflect();
78792 #else
78793       return ( sType == rhs.sType )
78794           && ( pNext == rhs.pNext )
78795           && ( timelineSemaphore == rhs.timelineSemaphore );
78796 #endif
78797     }
78798 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures78799     bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
78800     {
78801       return !operator==( rhs );
78802     }
78803 #endif
78804 
78805     public:
78806     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
78807     void * pNext = {};
78808     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
78809 
78810   };
78811 
78812   template <>
78813   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreFeatures>
78814   {
78815     using Type = PhysicalDeviceTimelineSemaphoreFeatures;
78816   };
78817   using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
78818 
78819   struct PhysicalDeviceTimelineSemaphoreProperties
78820   {
78821     using NativeType = VkPhysicalDeviceTimelineSemaphoreProperties;
78822 
78823     static const bool allowDuplicate = false;
78824     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
78825 
78826 
78827 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties78828 VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties(uint64_t maxTimelineSemaphoreValueDifference_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
78829     : pNext( pNext_ ), maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
78830     {}
78831 
78832     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78833 
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties78834     PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
78835       : PhysicalDeviceTimelineSemaphoreProperties( *reinterpret_cast<PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs ) )
78836     {}
78837 
78838 
78839     PhysicalDeviceTimelineSemaphoreProperties & operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78840 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
78841 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties78842     PhysicalDeviceTimelineSemaphoreProperties & operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
78843     {
78844       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs );
78845       return *this;
78846     }
78847 
78848 
operator VkPhysicalDeviceTimelineSemaphoreProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties78849     operator VkPhysicalDeviceTimelineSemaphoreProperties const &() const VULKAN_HPP_NOEXCEPT
78850     {
78851       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
78852     }
78853 
operator VkPhysicalDeviceTimelineSemaphoreProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties78854     operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
78855     {
78856       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
78857     }
78858 
78859 #if defined( VULKAN_HPP_USE_REFLECT )
78860 #if 14 <= VULKAN_HPP_CPP_VERSION
78861     auto
78862 #else
78863     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
78864 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties78865       reflect() const VULKAN_HPP_NOEXCEPT
78866     {
78867       return std::tie( sType, pNext, maxTimelineSemaphoreValueDifference );
78868     }
78869 #endif
78870 
78871 
78872 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78873 auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const & ) const = default;
78874 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties78875     bool operator==( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
78876     {
78877 #if defined( VULKAN_HPP_USE_REFLECT )
78878       return this->reflect() == rhs.reflect();
78879 #else
78880       return ( sType == rhs.sType )
78881           && ( pNext == rhs.pNext )
78882           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference );
78883 #endif
78884     }
78885 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties78886     bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
78887     {
78888       return !operator==( rhs );
78889     }
78890 #endif
78891 
78892     public:
78893     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
78894     void * pNext = {};
78895     uint64_t maxTimelineSemaphoreValueDifference = {};
78896 
78897   };
78898 
78899   template <>
78900   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreProperties>
78901   {
78902     using Type = PhysicalDeviceTimelineSemaphoreProperties;
78903   };
78904   using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
78905 
78906   struct PhysicalDeviceToolProperties
78907   {
78908     using NativeType = VkPhysicalDeviceToolProperties;
78909 
78910     static const bool allowDuplicate = false;
78911     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolProperties;
78912 
78913 
78914 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceToolPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties78915 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolProperties(std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const & name_ = {}, std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const & version_ = {}, VULKAN_HPP_NAMESPACE::ToolPurposeFlags purposes_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & description_ = {}, std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const & layer_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
78916     : pNext( pNext_ ), name( name_ ), version( version_ ), purposes( purposes_ ), description( description_ ), layer( layer_ )
78917     {}
78918 
78919     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolProperties( PhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78920 
PhysicalDeviceToolPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties78921     PhysicalDeviceToolProperties( VkPhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT
78922       : PhysicalDeviceToolProperties( *reinterpret_cast<PhysicalDeviceToolProperties const *>( &rhs ) )
78923     {}
78924 
78925 
78926     PhysicalDeviceToolProperties & operator=( PhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78927 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
78928 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties78929     PhysicalDeviceToolProperties & operator=( VkPhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT
78930     {
78931       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties const *>( &rhs );
78932       return *this;
78933     }
78934 
78935 
operator VkPhysicalDeviceToolProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties78936     operator VkPhysicalDeviceToolProperties const &() const VULKAN_HPP_NOEXCEPT
78937     {
78938       return *reinterpret_cast<const VkPhysicalDeviceToolProperties*>( this );
78939     }
78940 
operator VkPhysicalDeviceToolProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties78941     operator VkPhysicalDeviceToolProperties &() VULKAN_HPP_NOEXCEPT
78942     {
78943       return *reinterpret_cast<VkPhysicalDeviceToolProperties*>( this );
78944     }
78945 
78946 #if defined( VULKAN_HPP_USE_REFLECT )
78947 #if 14 <= VULKAN_HPP_CPP_VERSION
78948     auto
78949 #else
78950     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &, VULKAN_HPP_NAMESPACE::ToolPurposeFlags const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &>
78951 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties78952       reflect() const VULKAN_HPP_NOEXCEPT
78953     {
78954       return std::tie( sType, pNext, name, version, purposes, description, layer );
78955     }
78956 #endif
78957 
78958 
78959 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78960 auto operator<=>( PhysicalDeviceToolProperties const & ) const = default;
78961 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties78962     bool operator==( PhysicalDeviceToolProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
78963     {
78964 #if defined( VULKAN_HPP_USE_REFLECT )
78965       return this->reflect() == rhs.reflect();
78966 #else
78967       return ( sType == rhs.sType )
78968           && ( pNext == rhs.pNext )
78969           && ( name == rhs.name )
78970           && ( version == rhs.version )
78971           && ( purposes == rhs.purposes )
78972           && ( description == rhs.description )
78973           && ( layer == rhs.layer );
78974 #endif
78975     }
78976 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties78977     bool operator!=( PhysicalDeviceToolProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
78978     {
78979       return !operator==( rhs );
78980     }
78981 #endif
78982 
78983     public:
78984     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolProperties;
78985     void * pNext = {};
78986     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> name = {};
78987     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> version = {};
78988     VULKAN_HPP_NAMESPACE::ToolPurposeFlags purposes = {};
78989     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
78990     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layer = {};
78991 
78992   };
78993 
78994   template <>
78995   struct CppType<StructureType, StructureType::ePhysicalDeviceToolProperties>
78996   {
78997     using Type = PhysicalDeviceToolProperties;
78998   };
78999   using PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties;
79000 
79001   struct PhysicalDeviceTransformFeedbackFeaturesEXT
79002   {
79003     using NativeType = VkPhysicalDeviceTransformFeedbackFeaturesEXT;
79004 
79005     static const bool allowDuplicate = false;
79006     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
79007 
79008 
79009 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79010 VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
79011     : pNext( pNext_ ), transformFeedback( transformFeedback_ ), geometryStreams( geometryStreams_ )
79012     {}
79013 
79014     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79015 
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79016     PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79017       : PhysicalDeviceTransformFeedbackFeaturesEXT( *reinterpret_cast<PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs ) )
79018     {}
79019 
79020 
79021     PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79022 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
79023 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79024     PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79025     {
79026       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs );
79027       return *this;
79028     }
79029 
79030 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79031     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
79032     {
79033       pNext = pNext_;
79034       return *this;
79035     }
79036 
setTransformFeedbackVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79037     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT
79038     {
79039       transformFeedback = transformFeedback_;
79040       return *this;
79041     }
79042 
setGeometryStreamsVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79043     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT
79044     {
79045       geometryStreams = geometryStreams_;
79046       return *this;
79047     }
79048 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
79049 
79050 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79051     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
79052     {
79053       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
79054     }
79055 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79056     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
79057     {
79058       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
79059     }
79060 
79061 #if defined( VULKAN_HPP_USE_REFLECT )
79062 #if 14 <= VULKAN_HPP_CPP_VERSION
79063     auto
79064 #else
79065     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
79066 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79067       reflect() const VULKAN_HPP_NOEXCEPT
79068     {
79069       return std::tie( sType, pNext, transformFeedback, geometryStreams );
79070     }
79071 #endif
79072 
79073 
79074 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79075 auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const & ) const = default;
79076 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79077     bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79078     {
79079 #if defined( VULKAN_HPP_USE_REFLECT )
79080       return this->reflect() == rhs.reflect();
79081 #else
79082       return ( sType == rhs.sType )
79083           && ( pNext == rhs.pNext )
79084           && ( transformFeedback == rhs.transformFeedback )
79085           && ( geometryStreams == rhs.geometryStreams );
79086 #endif
79087     }
79088 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT79089     bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79090     {
79091       return !operator==( rhs );
79092     }
79093 #endif
79094 
79095     public:
79096     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
79097     void * pNext = {};
79098     VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {};
79099     VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {};
79100 
79101   };
79102 
79103   template <>
79104   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT>
79105   {
79106     using Type = PhysicalDeviceTransformFeedbackFeaturesEXT;
79107   };
79108 
79109   struct PhysicalDeviceTransformFeedbackPropertiesEXT
79110   {
79111     using NativeType = VkPhysicalDeviceTransformFeedbackPropertiesEXT;
79112 
79113     static const bool allowDuplicate = false;
79114     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
79115 
79116 
79117 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT79118 VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT(uint32_t maxTransformFeedbackStreams_ = {}, uint32_t maxTransformFeedbackBuffers_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize_ = {}, uint32_t maxTransformFeedbackStreamDataSize_ = {}, uint32_t maxTransformFeedbackBufferDataSize_ = {}, uint32_t maxTransformFeedbackBufferDataStride_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
79119     : pNext( pNext_ ), maxTransformFeedbackStreams( maxTransformFeedbackStreams_ ), maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ ), maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ ), maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ ), maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ ), maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ ), transformFeedbackQueries( transformFeedbackQueries_ ), transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ ), transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ ), transformFeedbackDraw( transformFeedbackDraw_ )
79120     {}
79121 
79122     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79123 
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT79124     PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79125       : PhysicalDeviceTransformFeedbackPropertiesEXT( *reinterpret_cast<PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs ) )
79126     {}
79127 
79128 
79129     PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79130 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
79131 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT79132     PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79133     {
79134       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs );
79135       return *this;
79136     }
79137 
79138 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT79139     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
79140     {
79141       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
79142     }
79143 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT79144     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT
79145     {
79146       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
79147     }
79148 
79149 #if defined( VULKAN_HPP_USE_REFLECT )
79150 #if 14 <= VULKAN_HPP_CPP_VERSION
79151     auto
79152 #else
79153     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
79154 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT79155       reflect() const VULKAN_HPP_NOEXCEPT
79156     {
79157       return std::tie( sType, pNext, maxTransformFeedbackStreams, maxTransformFeedbackBuffers, maxTransformFeedbackBufferSize, maxTransformFeedbackStreamDataSize, maxTransformFeedbackBufferDataSize, maxTransformFeedbackBufferDataStride, transformFeedbackQueries, transformFeedbackStreamsLinesTriangles, transformFeedbackRasterizationStreamSelect, transformFeedbackDraw );
79158     }
79159 #endif
79160 
79161 
79162 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79163 auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const & ) const = default;
79164 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT79165     bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79166     {
79167 #if defined( VULKAN_HPP_USE_REFLECT )
79168       return this->reflect() == rhs.reflect();
79169 #else
79170       return ( sType == rhs.sType )
79171           && ( pNext == rhs.pNext )
79172           && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams )
79173           && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers )
79174           && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize )
79175           && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize )
79176           && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize )
79177           && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride )
79178           && ( transformFeedbackQueries == rhs.transformFeedbackQueries )
79179           && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles )
79180           && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect )
79181           && ( transformFeedbackDraw == rhs.transformFeedbackDraw );
79182 #endif
79183     }
79184 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT79185     bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79186     {
79187       return !operator==( rhs );
79188     }
79189 #endif
79190 
79191     public:
79192     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
79193     void * pNext = {};
79194     uint32_t maxTransformFeedbackStreams = {};
79195     uint32_t maxTransformFeedbackBuffers = {};
79196     VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {};
79197     uint32_t maxTransformFeedbackStreamDataSize = {};
79198     uint32_t maxTransformFeedbackBufferDataSize = {};
79199     uint32_t maxTransformFeedbackBufferDataStride = {};
79200     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {};
79201     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {};
79202     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {};
79203     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {};
79204 
79205   };
79206 
79207   template <>
79208   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT>
79209   {
79210     using Type = PhysicalDeviceTransformFeedbackPropertiesEXT;
79211   };
79212 
79213   struct PhysicalDeviceUniformBufferStandardLayoutFeatures
79214   {
79215     using NativeType = VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
79216 
79217     static const bool allowDuplicate = false;
79218     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
79219 
79220 
79221 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures79222 VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
79223     : pNext( pNext_ ), uniformBufferStandardLayout( uniformBufferStandardLayout_ )
79224     {}
79225 
79226     VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79227 
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures79228     PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
79229       : PhysicalDeviceUniformBufferStandardLayoutFeatures( *reinterpret_cast<PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs ) )
79230     {}
79231 
79232 
79233     PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79234 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
79235 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures79236     PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
79237     {
79238       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs );
79239       return *this;
79240     }
79241 
79242 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures79243     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
79244     {
79245       pNext = pNext_;
79246       return *this;
79247     }
79248 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures79249     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUniformBufferStandardLayoutFeatures & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
79250     {
79251       uniformBufferStandardLayout = uniformBufferStandardLayout_;
79252       return *this;
79253     }
79254 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
79255 
79256 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures79257     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
79258     {
79259       return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
79260     }
79261 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures79262     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT
79263     {
79264       return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
79265     }
79266 
79267 #if defined( VULKAN_HPP_USE_REFLECT )
79268 #if 14 <= VULKAN_HPP_CPP_VERSION
79269     auto
79270 #else
79271     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
79272 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures79273       reflect() const VULKAN_HPP_NOEXCEPT
79274     {
79275       return std::tie( sType, pNext, uniformBufferStandardLayout );
79276     }
79277 #endif
79278 
79279 
79280 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79281 auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const & ) const = default;
79282 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures79283     bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
79284     {
79285 #if defined( VULKAN_HPP_USE_REFLECT )
79286       return this->reflect() == rhs.reflect();
79287 #else
79288       return ( sType == rhs.sType )
79289           && ( pNext == rhs.pNext )
79290           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout );
79291 #endif
79292     }
79293 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures79294     bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
79295     {
79296       return !operator==( rhs );
79297     }
79298 #endif
79299 
79300     public:
79301     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
79302     void * pNext = {};
79303     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
79304 
79305   };
79306 
79307   template <>
79308   struct CppType<StructureType, StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures>
79309   {
79310     using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures;
79311   };
79312   using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
79313 
79314   struct PhysicalDeviceVariablePointersFeatures
79315   {
79316     using NativeType = VkPhysicalDeviceVariablePointersFeatures;
79317 
79318     static const bool allowDuplicate = false;
79319     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVariablePointersFeatures;
79320 
79321 
79322 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79323 VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures(VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
79324     : pNext( pNext_ ), variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ )
79325     {}
79326 
79327     VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79328 
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79329     PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
79330       : PhysicalDeviceVariablePointersFeatures( *reinterpret_cast<PhysicalDeviceVariablePointersFeatures const *>( &rhs ) )
79331     {}
79332 
79333 
79334     PhysicalDeviceVariablePointersFeatures & operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79335 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
79336 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79337     PhysicalDeviceVariablePointersFeatures & operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
79338     {
79339       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const *>( &rhs );
79340       return *this;
79341     }
79342 
79343 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79344     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
79345     {
79346       pNext = pNext_;
79347       return *this;
79348     }
79349 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79350     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
79351     {
79352       variablePointersStorageBuffer = variablePointersStorageBuffer_;
79353       return *this;
79354     }
79355 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79356     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
79357     {
79358       variablePointers = variablePointers_;
79359       return *this;
79360     }
79361 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
79362 
79363 
operator VkPhysicalDeviceVariablePointersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79364     operator VkPhysicalDeviceVariablePointersFeatures const &() const VULKAN_HPP_NOEXCEPT
79365     {
79366       return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>( this );
79367     }
79368 
operator VkPhysicalDeviceVariablePointersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79369     operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT
79370     {
79371       return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>( this );
79372     }
79373 
79374 #if defined( VULKAN_HPP_USE_REFLECT )
79375 #if 14 <= VULKAN_HPP_CPP_VERSION
79376     auto
79377 #else
79378     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
79379 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79380       reflect() const VULKAN_HPP_NOEXCEPT
79381     {
79382       return std::tie( sType, pNext, variablePointersStorageBuffer, variablePointers );
79383     }
79384 #endif
79385 
79386 
79387 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79388 auto operator<=>( PhysicalDeviceVariablePointersFeatures const & ) const = default;
79389 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79390     bool operator==( PhysicalDeviceVariablePointersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
79391     {
79392 #if defined( VULKAN_HPP_USE_REFLECT )
79393       return this->reflect() == rhs.reflect();
79394 #else
79395       return ( sType == rhs.sType )
79396           && ( pNext == rhs.pNext )
79397           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
79398           && ( variablePointers == rhs.variablePointers );
79399 #endif
79400     }
79401 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures79402     bool operator!=( PhysicalDeviceVariablePointersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
79403     {
79404       return !operator==( rhs );
79405     }
79406 #endif
79407 
79408     public:
79409     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures;
79410     void * pNext = {};
79411     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
79412     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
79413 
79414   };
79415 
79416   template <>
79417   struct CppType<StructureType, StructureType::ePhysicalDeviceVariablePointersFeatures>
79418   {
79419     using Type = PhysicalDeviceVariablePointersFeatures;
79420   };
79421   using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
79422   using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
79423   using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
79424 
79425   struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
79426   {
79427     using NativeType = VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
79428 
79429     static const bool allowDuplicate = false;
79430     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
79431 
79432 
79433 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79434 VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
79435     : pNext( pNext_ ), vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ ), vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
79436     {}
79437 
79438     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79439 
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79440     PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79441       : PhysicalDeviceVertexAttributeDivisorFeaturesEXT( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs ) )
79442     {}
79443 
79444 
79445     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79446 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
79447 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79448     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79449     {
79450       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs );
79451       return *this;
79452     }
79453 
79454 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79455     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
79456     {
79457       pNext = pNext_;
79458       return *this;
79459     }
79460 
setVertexAttributeInstanceRateDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79461     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT
79462     {
79463       vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
79464       return *this;
79465     }
79466 
setVertexAttributeInstanceRateZeroDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79467     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT
79468     {
79469       vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
79470       return *this;
79471     }
79472 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
79473 
79474 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79475     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
79476     {
79477       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
79478     }
79479 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79480     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
79481     {
79482       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
79483     }
79484 
79485 #if defined( VULKAN_HPP_USE_REFLECT )
79486 #if 14 <= VULKAN_HPP_CPP_VERSION
79487     auto
79488 #else
79489     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
79490 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79491       reflect() const VULKAN_HPP_NOEXCEPT
79492     {
79493       return std::tie( sType, pNext, vertexAttributeInstanceRateDivisor, vertexAttributeInstanceRateZeroDivisor );
79494     }
79495 #endif
79496 
79497 
79498 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79499 auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & ) const = default;
79500 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79501     bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79502     {
79503 #if defined( VULKAN_HPP_USE_REFLECT )
79504       return this->reflect() == rhs.reflect();
79505 #else
79506       return ( sType == rhs.sType )
79507           && ( pNext == rhs.pNext )
79508           && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor )
79509           && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor );
79510 #endif
79511     }
79512 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT79513     bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79514     {
79515       return !operator==( rhs );
79516     }
79517 #endif
79518 
79519     public:
79520     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
79521     void * pNext = {};
79522     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {};
79523     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {};
79524 
79525   };
79526 
79527   template <>
79528   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT>
79529   {
79530     using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
79531   };
79532 
79533   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
79534   {
79535     using NativeType = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
79536 
79537     static const bool allowDuplicate = false;
79538     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
79539 
79540 
79541 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT79542 VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT(uint32_t maxVertexAttribDivisor_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
79543     : pNext( pNext_ ), maxVertexAttribDivisor( maxVertexAttribDivisor_ )
79544     {}
79545 
79546     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79547 
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT79548     PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79549       : PhysicalDeviceVertexAttributeDivisorPropertiesEXT( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs ) )
79550     {}
79551 
79552 
79553     PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79554 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
79555 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT79556     PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79557     {
79558       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs );
79559       return *this;
79560     }
79561 
79562 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT79563     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
79564     {
79565       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
79566     }
79567 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT79568     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
79569     {
79570       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
79571     }
79572 
79573 #if defined( VULKAN_HPP_USE_REFLECT )
79574 #if 14 <= VULKAN_HPP_CPP_VERSION
79575     auto
79576 #else
79577     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
79578 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT79579       reflect() const VULKAN_HPP_NOEXCEPT
79580     {
79581       return std::tie( sType, pNext, maxVertexAttribDivisor );
79582     }
79583 #endif
79584 
79585 
79586 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79587 auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & ) const = default;
79588 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT79589     bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79590     {
79591 #if defined( VULKAN_HPP_USE_REFLECT )
79592       return this->reflect() == rhs.reflect();
79593 #else
79594       return ( sType == rhs.sType )
79595           && ( pNext == rhs.pNext )
79596           && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor );
79597 #endif
79598     }
79599 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT79600     bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79601     {
79602       return !operator==( rhs );
79603     }
79604 #endif
79605 
79606     public:
79607     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
79608     void * pNext = {};
79609     uint32_t maxVertexAttribDivisor = {};
79610 
79611   };
79612 
79613   template <>
79614   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT>
79615   {
79616     using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
79617   };
79618 
79619   struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT
79620   {
79621     using NativeType = VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
79622 
79623     static const bool allowDuplicate = false;
79624     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT;
79625 
79626 
79627 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexInputDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT79628 VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexInputDynamicStateFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
79629     : pNext( pNext_ ), vertexInputDynamicState( vertexInputDynamicState_ )
79630     {}
79631 
79632     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexInputDynamicStateFeaturesEXT( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79633 
PhysicalDeviceVertexInputDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT79634     PhysicalDeviceVertexInputDynamicStateFeaturesEXT( VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79635       : PhysicalDeviceVertexInputDynamicStateFeaturesEXT( *reinterpret_cast<PhysicalDeviceVertexInputDynamicStateFeaturesEXT const *>( &rhs ) )
79636     {}
79637 
79638 
79639     PhysicalDeviceVertexInputDynamicStateFeaturesEXT & operator=( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79640 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
79641 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT79642     PhysicalDeviceVertexInputDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79643     {
79644       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT const *>( &rhs );
79645       return *this;
79646     }
79647 
79648 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT79649     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexInputDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
79650     {
79651       pNext = pNext_;
79652       return *this;
79653     }
79654 
setVertexInputDynamicStateVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT79655     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexInputDynamicStateFeaturesEXT & setVertexInputDynamicState( VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ ) VULKAN_HPP_NOEXCEPT
79656     {
79657       vertexInputDynamicState = vertexInputDynamicState_;
79658       return *this;
79659     }
79660 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
79661 
79662 
operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT79663     operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
79664     {
79665       return *reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>( this );
79666     }
79667 
operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT79668     operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
79669     {
79670       return *reinterpret_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>( this );
79671     }
79672 
79673 #if defined( VULKAN_HPP_USE_REFLECT )
79674 #if 14 <= VULKAN_HPP_CPP_VERSION
79675     auto
79676 #else
79677     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
79678 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT79679       reflect() const VULKAN_HPP_NOEXCEPT
79680     {
79681       return std::tie( sType, pNext, vertexInputDynamicState );
79682     }
79683 #endif
79684 
79685 
79686 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79687 auto operator<=>( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & ) const = default;
79688 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT79689     bool operator==( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79690     {
79691 #if defined( VULKAN_HPP_USE_REFLECT )
79692       return this->reflect() == rhs.reflect();
79693 #else
79694       return ( sType == rhs.sType )
79695           && ( pNext == rhs.pNext )
79696           && ( vertexInputDynamicState == rhs.vertexInputDynamicState );
79697 #endif
79698     }
79699 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT79700     bool operator!=( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
79701     {
79702       return !operator==( rhs );
79703     }
79704 #endif
79705 
79706     public:
79707     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT;
79708     void * pNext = {};
79709     VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState = {};
79710 
79711   };
79712 
79713   template <>
79714   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT>
79715   {
79716     using Type = PhysicalDeviceVertexInputDynamicStateFeaturesEXT;
79717   };
79718 
79719   struct VideoProfileInfoKHR
79720   {
79721     using NativeType = VkVideoProfileInfoKHR;
79722 
79723     static const bool allowDuplicate = false;
79724     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoProfileInfoKHR;
79725 
79726 
79727 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoProfileInfoKHRVULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79728 VULKAN_HPP_CONSTEXPR VideoProfileInfoKHR(VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ = VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eNone, VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_ = {}, VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ = {}, VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
79729     : pNext( pNext_ ), videoCodecOperation( videoCodecOperation_ ), chromaSubsampling( chromaSubsampling_ ), lumaBitDepth( lumaBitDepth_ ), chromaBitDepth( chromaBitDepth_ )
79730     {}
79731 
79732     VULKAN_HPP_CONSTEXPR VideoProfileInfoKHR( VideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79733 
VideoProfileInfoKHRVULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79734     VideoProfileInfoKHR( VkVideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79735       : VideoProfileInfoKHR( *reinterpret_cast<VideoProfileInfoKHR const *>( &rhs ) )
79736     {}
79737 
79738 
79739     VideoProfileInfoKHR & operator=( VideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79740 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
79741 
operator =VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79742     VideoProfileInfoKHR & operator=( VkVideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79743     {
79744       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR const *>( &rhs );
79745       return *this;
79746     }
79747 
79748 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79749     VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
79750     {
79751       pNext = pNext_;
79752       return *this;
79753     }
79754 
setVideoCodecOperationVULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79755     VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setVideoCodecOperation( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ ) VULKAN_HPP_NOEXCEPT
79756     {
79757       videoCodecOperation = videoCodecOperation_;
79758       return *this;
79759     }
79760 
setChromaSubsamplingVULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79761     VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setChromaSubsampling( VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_ ) VULKAN_HPP_NOEXCEPT
79762     {
79763       chromaSubsampling = chromaSubsampling_;
79764       return *this;
79765     }
79766 
setLumaBitDepthVULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79767     VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setLumaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ ) VULKAN_HPP_NOEXCEPT
79768     {
79769       lumaBitDepth = lumaBitDepth_;
79770       return *this;
79771     }
79772 
setChromaBitDepthVULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79773     VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setChromaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ ) VULKAN_HPP_NOEXCEPT
79774     {
79775       chromaBitDepth = chromaBitDepth_;
79776       return *this;
79777     }
79778 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
79779 
79780 
operator VkVideoProfileInfoKHR const&VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79781     operator VkVideoProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
79782     {
79783       return *reinterpret_cast<const VkVideoProfileInfoKHR*>( this );
79784     }
79785 
operator VkVideoProfileInfoKHR&VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79786     operator VkVideoProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
79787     {
79788       return *reinterpret_cast<VkVideoProfileInfoKHR*>( this );
79789     }
79790 
79791 #if defined( VULKAN_HPP_USE_REFLECT )
79792 #if 14 <= VULKAN_HPP_CPP_VERSION
79793     auto
79794 #else
79795     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR const &, VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR const &, VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR const &, VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR const &>
79796 #endif
reflectVULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79797       reflect() const VULKAN_HPP_NOEXCEPT
79798     {
79799       return std::tie( sType, pNext, videoCodecOperation, chromaSubsampling, lumaBitDepth, chromaBitDepth );
79800     }
79801 #endif
79802 
79803 
79804 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79805 auto operator<=>( VideoProfileInfoKHR const & ) const = default;
79806 #else
operator ==VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79807     bool operator==( VideoProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
79808     {
79809 #if defined( VULKAN_HPP_USE_REFLECT )
79810       return this->reflect() == rhs.reflect();
79811 #else
79812       return ( sType == rhs.sType )
79813           && ( pNext == rhs.pNext )
79814           && ( videoCodecOperation == rhs.videoCodecOperation )
79815           && ( chromaSubsampling == rhs.chromaSubsampling )
79816           && ( lumaBitDepth == rhs.lumaBitDepth )
79817           && ( chromaBitDepth == rhs.chromaBitDepth );
79818 #endif
79819     }
79820 
operator !=VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR79821     bool operator!=( VideoProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
79822     {
79823       return !operator==( rhs );
79824     }
79825 #endif
79826 
79827     public:
79828     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoProfileInfoKHR;
79829     const void * pNext = {};
79830     VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation = VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eNone;
79831     VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling = {};
79832     VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth = {};
79833     VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth = {};
79834 
79835   };
79836 
79837   template <>
79838   struct CppType<StructureType, StructureType::eVideoProfileInfoKHR>
79839   {
79840     using Type = VideoProfileInfoKHR;
79841   };
79842 
79843 #if defined( VK_ENABLE_BETA_EXTENSIONS )
79844   struct PhysicalDeviceVideoEncodeQualityLevelInfoKHR
79845   {
79846     using NativeType = VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
79847 
79848     static const bool allowDuplicate = false;
79849     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVideoEncodeQualityLevelInfoKHR;
79850 
79851 
79852 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVideoEncodeQualityLevelInfoKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79853 VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoEncodeQualityLevelInfoKHR(const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ = {}, uint32_t qualityLevel_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
79854     : pNext( pNext_ ), pVideoProfile( pVideoProfile_ ), qualityLevel( qualityLevel_ )
79855     {}
79856 
79857     VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoEncodeQualityLevelInfoKHR( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79858 
PhysicalDeviceVideoEncodeQualityLevelInfoKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79859     PhysicalDeviceVideoEncodeQualityLevelInfoKHR( VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79860       : PhysicalDeviceVideoEncodeQualityLevelInfoKHR( *reinterpret_cast<PhysicalDeviceVideoEncodeQualityLevelInfoKHR const *>( &rhs ) )
79861     {}
79862 
79863 
79864     PhysicalDeviceVideoEncodeQualityLevelInfoKHR & operator=( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79865 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
79866 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79867     PhysicalDeviceVideoEncodeQualityLevelInfoKHR & operator=( VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79868     {
79869       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR const *>( &rhs );
79870       return *this;
79871     }
79872 
79873 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79874     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoEncodeQualityLevelInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
79875     {
79876       pNext = pNext_;
79877       return *this;
79878     }
79879 
setPVideoProfileVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79880     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoEncodeQualityLevelInfoKHR & setPVideoProfile( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ ) VULKAN_HPP_NOEXCEPT
79881     {
79882       pVideoProfile = pVideoProfile_;
79883       return *this;
79884     }
79885 
setQualityLevelVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79886     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoEncodeQualityLevelInfoKHR & setQualityLevel( uint32_t qualityLevel_ ) VULKAN_HPP_NOEXCEPT
79887     {
79888       qualityLevel = qualityLevel_;
79889       return *this;
79890     }
79891 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
79892 
79893 
operator VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79894     operator VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR const &() const VULKAN_HPP_NOEXCEPT
79895     {
79896       return *reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR*>( this );
79897     }
79898 
operator VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79899     operator VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR &() VULKAN_HPP_NOEXCEPT
79900     {
79901       return *reinterpret_cast<VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR*>( this );
79902     }
79903 
79904 #if defined( VULKAN_HPP_USE_REFLECT )
79905 #if 14 <= VULKAN_HPP_CPP_VERSION
79906     auto
79907 #else
79908     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * const &, uint32_t const &>
79909 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79910       reflect() const VULKAN_HPP_NOEXCEPT
79911     {
79912       return std::tie( sType, pNext, pVideoProfile, qualityLevel );
79913     }
79914 #endif
79915 
79916 
79917 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79918 auto operator<=>( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & ) const = default;
79919 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79920     bool operator==( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
79921     {
79922 #if defined( VULKAN_HPP_USE_REFLECT )
79923       return this->reflect() == rhs.reflect();
79924 #else
79925       return ( sType == rhs.sType )
79926           && ( pNext == rhs.pNext )
79927           && ( pVideoProfile == rhs.pVideoProfile )
79928           && ( qualityLevel == rhs.qualityLevel );
79929 #endif
79930     }
79931 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR79932     bool operator!=( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
79933     {
79934       return !operator==( rhs );
79935     }
79936 #endif
79937 
79938     public:
79939     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVideoEncodeQualityLevelInfoKHR;
79940     const void * pNext = {};
79941     const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile = {};
79942     uint32_t qualityLevel = {};
79943 
79944   };
79945 
79946   template <>
79947   struct CppType<StructureType, StructureType::ePhysicalDeviceVideoEncodeQualityLevelInfoKHR>
79948   {
79949     using Type = PhysicalDeviceVideoEncodeQualityLevelInfoKHR;
79950   };
79951 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
79952 
79953   struct PhysicalDeviceVideoFormatInfoKHR
79954   {
79955     using NativeType = VkPhysicalDeviceVideoFormatInfoKHR;
79956 
79957     static const bool allowDuplicate = false;
79958     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVideoFormatInfoKHR;
79959 
79960 
79961 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVideoFormatInfoKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR79962 VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoFormatInfoKHR(VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
79963     : pNext( pNext_ ), imageUsage( imageUsage_ )
79964     {}
79965 
79966     VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoFormatInfoKHR( PhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79967 
PhysicalDeviceVideoFormatInfoKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR79968     PhysicalDeviceVideoFormatInfoKHR( VkPhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79969       : PhysicalDeviceVideoFormatInfoKHR( *reinterpret_cast<PhysicalDeviceVideoFormatInfoKHR const *>( &rhs ) )
79970     {}
79971 
79972 
79973     PhysicalDeviceVideoFormatInfoKHR & operator=( PhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79974 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
79975 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR79976     PhysicalDeviceVideoFormatInfoKHR & operator=( VkPhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79977     {
79978       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR const *>( &rhs );
79979       return *this;
79980     }
79981 
79982 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR79983     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoFormatInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
79984     {
79985       pNext = pNext_;
79986       return *this;
79987     }
79988 
setImageUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR79989     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoFormatInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
79990     {
79991       imageUsage = imageUsage_;
79992       return *this;
79993     }
79994 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
79995 
79996 
operator VkPhysicalDeviceVideoFormatInfoKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR79997     operator VkPhysicalDeviceVideoFormatInfoKHR const &() const VULKAN_HPP_NOEXCEPT
79998     {
79999       return *reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR*>( this );
80000     }
80001 
operator VkPhysicalDeviceVideoFormatInfoKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR80002     operator VkPhysicalDeviceVideoFormatInfoKHR &() VULKAN_HPP_NOEXCEPT
80003     {
80004       return *reinterpret_cast<VkPhysicalDeviceVideoFormatInfoKHR*>( this );
80005     }
80006 
80007 #if defined( VULKAN_HPP_USE_REFLECT )
80008 #if 14 <= VULKAN_HPP_CPP_VERSION
80009     auto
80010 #else
80011     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
80012 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR80013       reflect() const VULKAN_HPP_NOEXCEPT
80014     {
80015       return std::tie( sType, pNext, imageUsage );
80016     }
80017 #endif
80018 
80019 
80020 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80021 auto operator<=>( PhysicalDeviceVideoFormatInfoKHR const & ) const = default;
80022 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR80023     bool operator==( PhysicalDeviceVideoFormatInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
80024     {
80025 #if defined( VULKAN_HPP_USE_REFLECT )
80026       return this->reflect() == rhs.reflect();
80027 #else
80028       return ( sType == rhs.sType )
80029           && ( pNext == rhs.pNext )
80030           && ( imageUsage == rhs.imageUsage );
80031 #endif
80032     }
80033 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR80034     bool operator!=( PhysicalDeviceVideoFormatInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
80035     {
80036       return !operator==( rhs );
80037     }
80038 #endif
80039 
80040     public:
80041     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVideoFormatInfoKHR;
80042     const void * pNext = {};
80043     VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
80044 
80045   };
80046 
80047   template <>
80048   struct CppType<StructureType, StructureType::ePhysicalDeviceVideoFormatInfoKHR>
80049   {
80050     using Type = PhysicalDeviceVideoFormatInfoKHR;
80051   };
80052 
80053   struct PhysicalDeviceVulkan11Features
80054   {
80055     using NativeType = VkPhysicalDeviceVulkan11Features;
80056 
80057     static const bool allowDuplicate = false;
80058     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features;
80059 
80060 
80061 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80062 VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}, VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
80063     : pNext( pNext_ ), storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ ), multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ ), variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ ), protectedMemory( protectedMemory_ ), samplerYcbcrConversion( samplerYcbcrConversion_ ), shaderDrawParameters( shaderDrawParameters_ )
80064     {}
80065 
80066     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80067 
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80068     PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
80069       : PhysicalDeviceVulkan11Features( *reinterpret_cast<PhysicalDeviceVulkan11Features const *>( &rhs ) )
80070     {}
80071 
80072 
80073     PhysicalDeviceVulkan11Features & operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80074 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
80075 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80076     PhysicalDeviceVulkan11Features & operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
80077     {
80078       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const *>( &rhs );
80079       return *this;
80080     }
80081 
80082 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80083     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
80084     {
80085       pNext = pNext_;
80086       return *this;
80087     }
80088 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80089     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
80090     {
80091       storageBuffer16BitAccess = storageBuffer16BitAccess_;
80092       return *this;
80093     }
80094 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80095     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
80096     {
80097       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
80098       return *this;
80099     }
80100 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80101     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
80102     {
80103       storagePushConstant16 = storagePushConstant16_;
80104       return *this;
80105     }
80106 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80107     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
80108     {
80109       storageInputOutput16 = storageInputOutput16_;
80110       return *this;
80111     }
80112 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80113     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
80114     {
80115       multiview = multiview_;
80116       return *this;
80117     }
80118 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80119     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
80120     {
80121       multiviewGeometryShader = multiviewGeometryShader_;
80122       return *this;
80123     }
80124 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80125     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
80126     {
80127       multiviewTessellationShader = multiviewTessellationShader_;
80128       return *this;
80129     }
80130 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80131     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
80132     {
80133       variablePointersStorageBuffer = variablePointersStorageBuffer_;
80134       return *this;
80135     }
80136 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80137     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
80138     {
80139       variablePointers = variablePointers_;
80140       return *this;
80141     }
80142 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80143     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
80144     {
80145       protectedMemory = protectedMemory_;
80146       return *this;
80147     }
80148 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80149     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
80150     {
80151       samplerYcbcrConversion = samplerYcbcrConversion_;
80152       return *this;
80153     }
80154 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80155     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
80156     {
80157       shaderDrawParameters = shaderDrawParameters_;
80158       return *this;
80159     }
80160 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
80161 
80162 
operator VkPhysicalDeviceVulkan11Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80163     operator VkPhysicalDeviceVulkan11Features const &() const VULKAN_HPP_NOEXCEPT
80164     {
80165       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>( this );
80166     }
80167 
operator VkPhysicalDeviceVulkan11Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80168     operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT
80169     {
80170       return *reinterpret_cast<VkPhysicalDeviceVulkan11Features*>( this );
80171     }
80172 
80173 #if defined( VULKAN_HPP_USE_REFLECT )
80174 #if 14 <= VULKAN_HPP_CPP_VERSION
80175     auto
80176 #else
80177     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
80178 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80179       reflect() const VULKAN_HPP_NOEXCEPT
80180     {
80181       return std::tie( sType, pNext, storageBuffer16BitAccess, uniformAndStorageBuffer16BitAccess, storagePushConstant16, storageInputOutput16, multiview, multiviewGeometryShader, multiviewTessellationShader, variablePointersStorageBuffer, variablePointers, protectedMemory, samplerYcbcrConversion, shaderDrawParameters );
80182     }
80183 #endif
80184 
80185 
80186 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80187 auto operator<=>( PhysicalDeviceVulkan11Features const & ) const = default;
80188 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80189     bool operator==( PhysicalDeviceVulkan11Features const & rhs ) const VULKAN_HPP_NOEXCEPT
80190     {
80191 #if defined( VULKAN_HPP_USE_REFLECT )
80192       return this->reflect() == rhs.reflect();
80193 #else
80194       return ( sType == rhs.sType )
80195           && ( pNext == rhs.pNext )
80196           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
80197           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
80198           && ( storagePushConstant16 == rhs.storagePushConstant16 )
80199           && ( storageInputOutput16 == rhs.storageInputOutput16 )
80200           && ( multiview == rhs.multiview )
80201           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
80202           && ( multiviewTessellationShader == rhs.multiviewTessellationShader )
80203           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
80204           && ( variablePointers == rhs.variablePointers )
80205           && ( protectedMemory == rhs.protectedMemory )
80206           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion )
80207           && ( shaderDrawParameters == rhs.shaderDrawParameters );
80208 #endif
80209     }
80210 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features80211     bool operator!=( PhysicalDeviceVulkan11Features const & rhs ) const VULKAN_HPP_NOEXCEPT
80212     {
80213       return !operator==( rhs );
80214     }
80215 #endif
80216 
80217     public:
80218     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features;
80219     void * pNext = {};
80220     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
80221     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
80222     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
80223     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
80224     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
80225     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
80226     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
80227     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
80228     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
80229     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
80230     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
80231     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
80232 
80233   };
80234 
80235   template <>
80236   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Features>
80237   {
80238     using Type = PhysicalDeviceVulkan11Features;
80239   };
80240 
80241   struct PhysicalDeviceVulkan11Properties
80242   {
80243     using NativeType = VkPhysicalDeviceVulkan11Properties;
80244 
80245     static const bool allowDuplicate = false;
80246     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties;
80247 
80248 
80249 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties80250 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties(std::array<uint8_t,VK_UUID_SIZE> const & deviceUUID_ = {}, std::array<uint8_t,VK_UUID_SIZE> const & driverUUID_ = {}, std::array<uint8_t,VK_LUID_SIZE> const & deviceLUID_ = {}, uint32_t deviceNodeMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {}, uint32_t subgroupSize_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages_ = {}, VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages_ = {}, VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes, uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}, VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}, uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
80251     : pNext( pNext_ ), deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ ), subgroupSize( subgroupSize_ ), subgroupSupportedStages( subgroupSupportedStages_ ), subgroupSupportedOperations( subgroupSupportedOperations_ ), subgroupQuadOperationsInAllStages( subgroupQuadOperationsInAllStages_ ), pointClippingBehavior( pointClippingBehavior_ ), maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ ), protectedNoFault( protectedNoFault_ ), maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ )
80252     {}
80253 
80254     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80255 
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties80256     PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
80257       : PhysicalDeviceVulkan11Properties( *reinterpret_cast<PhysicalDeviceVulkan11Properties const *>( &rhs ) )
80258     {}
80259 
80260 
80261     PhysicalDeviceVulkan11Properties & operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80262 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
80263 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties80264     PhysicalDeviceVulkan11Properties & operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
80265     {
80266       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const *>( &rhs );
80267       return *this;
80268     }
80269 
80270 
operator VkPhysicalDeviceVulkan11Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties80271     operator VkPhysicalDeviceVulkan11Properties const &() const VULKAN_HPP_NOEXCEPT
80272     {
80273       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>( this );
80274     }
80275 
operator VkPhysicalDeviceVulkan11Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties80276     operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT
80277     {
80278       return *reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>( this );
80279     }
80280 
80281 #if defined( VULKAN_HPP_USE_REFLECT )
80282 #if 14 <= VULKAN_HPP_CPP_VERSION
80283     auto
80284 #else
80285     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::PointClippingBehavior const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
80286 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties80287       reflect() const VULKAN_HPP_NOEXCEPT
80288     {
80289       return std::tie( sType, pNext, deviceUUID, driverUUID, deviceLUID, deviceNodeMask, deviceLUIDValid, subgroupSize, subgroupSupportedStages, subgroupSupportedOperations, subgroupQuadOperationsInAllStages, pointClippingBehavior, maxMultiviewViewCount, maxMultiviewInstanceIndex, protectedNoFault, maxPerSetDescriptors, maxMemoryAllocationSize );
80290     }
80291 #endif
80292 
80293 
80294 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80295 auto operator<=>( PhysicalDeviceVulkan11Properties const & ) const = default;
80296 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties80297     bool operator==( PhysicalDeviceVulkan11Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
80298     {
80299 #if defined( VULKAN_HPP_USE_REFLECT )
80300       return this->reflect() == rhs.reflect();
80301 #else
80302       return ( sType == rhs.sType )
80303           && ( pNext == rhs.pNext )
80304           && ( deviceUUID == rhs.deviceUUID )
80305           && ( driverUUID == rhs.driverUUID )
80306           && ( deviceLUID == rhs.deviceLUID )
80307           && ( deviceNodeMask == rhs.deviceNodeMask )
80308           && ( deviceLUIDValid == rhs.deviceLUIDValid )
80309           && ( subgroupSize == rhs.subgroupSize )
80310           && ( subgroupSupportedStages == rhs.subgroupSupportedStages )
80311           && ( subgroupSupportedOperations == rhs.subgroupSupportedOperations )
80312           && ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages )
80313           && ( pointClippingBehavior == rhs.pointClippingBehavior )
80314           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
80315           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex )
80316           && ( protectedNoFault == rhs.protectedNoFault )
80317           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
80318           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
80319 #endif
80320     }
80321 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties80322     bool operator!=( PhysicalDeviceVulkan11Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
80323     {
80324       return !operator==( rhs );
80325     }
80326 #endif
80327 
80328     public:
80329     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties;
80330     void * pNext = {};
80331     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
80332     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
80333     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
80334     uint32_t deviceNodeMask = {};
80335     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
80336     uint32_t subgroupSize = {};
80337     VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {};
80338     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {};
80339     VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {};
80340     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
80341     uint32_t maxMultiviewViewCount = {};
80342     uint32_t maxMultiviewInstanceIndex = {};
80343     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
80344     uint32_t maxPerSetDescriptors = {};
80345     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
80346 
80347   };
80348 
80349   template <>
80350   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Properties>
80351   {
80352     using Type = PhysicalDeviceVulkan11Properties;
80353   };
80354 
80355   struct PhysicalDeviceVulkan12Features
80356   {
80357     using NativeType = VkPhysicalDeviceVulkan12Features;
80358 
80359     static const bool allowDuplicate = false;
80360     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features;
80361 
80362 
80363 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80364 VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features(VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ = {}, VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}, VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}, VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
80365     : pNext( pNext_ ), samplerMirrorClampToEdge( samplerMirrorClampToEdge_ ), drawIndirectCount( drawIndirectCount_ ), storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ ), shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ), shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ ), descriptorIndexing( descriptorIndexing_ ), shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ), shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ), shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ), shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ), shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ), shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ), shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ), shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ), shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ), shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ), descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ), descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ), descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ), descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ), descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ), descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ), descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ), descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ), descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ), runtimeDescriptorArray( runtimeDescriptorArray_ ), samplerFilterMinmax( samplerFilterMinmax_ ), scalarBlockLayout( scalarBlockLayout_ ), imagelessFramebuffer( imagelessFramebuffer_ ), uniformBufferStandardLayout( uniformBufferStandardLayout_ ), shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ ), separateDepthStencilLayouts( separateDepthStencilLayouts_ ), hostQueryReset( hostQueryReset_ ), timelineSemaphore( timelineSemaphore_ ), bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ), vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ ), shaderOutputViewportIndex( shaderOutputViewportIndex_ ), shaderOutputLayer( shaderOutputLayer_ ), subgroupBroadcastDynamicId( subgroupBroadcastDynamicId_ )
80366     {}
80367 
80368     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80369 
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80370     PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
80371       : PhysicalDeviceVulkan12Features( *reinterpret_cast<PhysicalDeviceVulkan12Features const *>( &rhs ) )
80372     {}
80373 
80374 
80375     PhysicalDeviceVulkan12Features & operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80376 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
80377 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80378     PhysicalDeviceVulkan12Features & operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
80379     {
80380       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const *>( &rhs );
80381       return *this;
80382     }
80383 
80384 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80385     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
80386     {
80387       pNext = pNext_;
80388       return *this;
80389     }
80390 
setSamplerMirrorClampToEdgeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80391     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT
80392     {
80393       samplerMirrorClampToEdge = samplerMirrorClampToEdge_;
80394       return *this;
80395     }
80396 
setDrawIndirectCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80397     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT
80398     {
80399       drawIndirectCount = drawIndirectCount_;
80400       return *this;
80401     }
80402 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80403     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
80404     {
80405       storageBuffer8BitAccess = storageBuffer8BitAccess_;
80406       return *this;
80407     }
80408 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80409     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
80410     {
80411       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
80412       return *this;
80413     }
80414 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80415     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
80416     {
80417       storagePushConstant8 = storagePushConstant8_;
80418       return *this;
80419     }
80420 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80421     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
80422     {
80423       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
80424       return *this;
80425     }
80426 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80427     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
80428     {
80429       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
80430       return *this;
80431     }
80432 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80433     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
80434     {
80435       shaderFloat16 = shaderFloat16_;
80436       return *this;
80437     }
80438 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80439     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
80440     {
80441       shaderInt8 = shaderInt8_;
80442       return *this;
80443     }
80444 
setDescriptorIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80445     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT
80446     {
80447       descriptorIndexing = descriptorIndexing_;
80448       return *this;
80449     }
80450 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80451     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
80452     {
80453       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
80454       return *this;
80455     }
80456 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80457     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
80458     {
80459       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
80460       return *this;
80461     }
80462 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80463     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
80464     {
80465       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
80466       return *this;
80467     }
80468 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80469     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
80470     {
80471       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
80472       return *this;
80473     }
80474 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80475     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
80476     {
80477       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
80478       return *this;
80479     }
80480 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80481     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
80482     {
80483       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
80484       return *this;
80485     }
80486 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80487     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
80488     {
80489       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
80490       return *this;
80491     }
80492 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80493     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
80494     {
80495       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
80496       return *this;
80497     }
80498 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80499     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
80500     {
80501       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
80502       return *this;
80503     }
80504 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80505     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
80506     {
80507       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
80508       return *this;
80509     }
80510 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80511     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
80512     {
80513       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
80514       return *this;
80515     }
80516 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80517     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
80518     {
80519       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
80520       return *this;
80521     }
80522 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80523     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
80524     {
80525       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
80526       return *this;
80527     }
80528 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80529     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
80530     {
80531       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
80532       return *this;
80533     }
80534 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80535     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
80536     {
80537       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
80538       return *this;
80539     }
80540 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80541     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
80542     {
80543       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
80544       return *this;
80545     }
80546 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80547     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
80548     {
80549       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
80550       return *this;
80551     }
80552 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80553     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
80554     {
80555       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
80556       return *this;
80557     }
80558 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80559     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
80560     {
80561       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
80562       return *this;
80563     }
80564 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80565     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
80566     {
80567       runtimeDescriptorArray = runtimeDescriptorArray_;
80568       return *this;
80569     }
80570 
setSamplerFilterMinmaxVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80571     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT
80572     {
80573       samplerFilterMinmax = samplerFilterMinmax_;
80574       return *this;
80575     }
80576 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80577     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
80578     {
80579       scalarBlockLayout = scalarBlockLayout_;
80580       return *this;
80581     }
80582 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80583     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
80584     {
80585       imagelessFramebuffer = imagelessFramebuffer_;
80586       return *this;
80587     }
80588 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80589     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
80590     {
80591       uniformBufferStandardLayout = uniformBufferStandardLayout_;
80592       return *this;
80593     }
80594 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80595     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
80596     {
80597       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
80598       return *this;
80599     }
80600 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80601     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
80602     {
80603       separateDepthStencilLayouts = separateDepthStencilLayouts_;
80604       return *this;
80605     }
80606 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80607     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
80608     {
80609       hostQueryReset = hostQueryReset_;
80610       return *this;
80611     }
80612 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80613     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
80614     {
80615       timelineSemaphore = timelineSemaphore_;
80616       return *this;
80617     }
80618 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80619     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
80620     {
80621       bufferDeviceAddress = bufferDeviceAddress_;
80622       return *this;
80623     }
80624 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80625     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
80626     {
80627       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
80628       return *this;
80629     }
80630 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80631     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
80632     {
80633       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
80634       return *this;
80635     }
80636 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80637     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
80638     {
80639       vulkanMemoryModel = vulkanMemoryModel_;
80640       return *this;
80641     }
80642 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80643     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
80644     {
80645       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
80646       return *this;
80647     }
80648 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80649     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
80650     {
80651       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
80652       return *this;
80653     }
80654 
setShaderOutputViewportIndexVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80655     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT
80656     {
80657       shaderOutputViewportIndex = shaderOutputViewportIndex_;
80658       return *this;
80659     }
80660 
setShaderOutputLayerVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80661     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT
80662     {
80663       shaderOutputLayer = shaderOutputLayer_;
80664       return *this;
80665     }
80666 
setSubgroupBroadcastDynamicIdVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80667     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT
80668     {
80669       subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_;
80670       return *this;
80671     }
80672 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
80673 
80674 
operator VkPhysicalDeviceVulkan12Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80675     operator VkPhysicalDeviceVulkan12Features const &() const VULKAN_HPP_NOEXCEPT
80676     {
80677       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>( this );
80678     }
80679 
operator VkPhysicalDeviceVulkan12Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80680     operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT
80681     {
80682       return *reinterpret_cast<VkPhysicalDeviceVulkan12Features*>( this );
80683     }
80684 
80685 #if defined( VULKAN_HPP_USE_REFLECT )
80686 #if 14 <= VULKAN_HPP_CPP_VERSION
80687     auto
80688 #else
80689     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
80690 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80691       reflect() const VULKAN_HPP_NOEXCEPT
80692     {
80693       return std::tie( sType, pNext, samplerMirrorClampToEdge, drawIndirectCount, storageBuffer8BitAccess, uniformAndStorageBuffer8BitAccess, storagePushConstant8, shaderBufferInt64Atomics, shaderSharedInt64Atomics, shaderFloat16, shaderInt8, descriptorIndexing, shaderInputAttachmentArrayDynamicIndexing, shaderUniformTexelBufferArrayDynamicIndexing, shaderStorageTexelBufferArrayDynamicIndexing, shaderUniformBufferArrayNonUniformIndexing, shaderSampledImageArrayNonUniformIndexing, shaderStorageBufferArrayNonUniformIndexing, shaderStorageImageArrayNonUniformIndexing, shaderInputAttachmentArrayNonUniformIndexing, shaderUniformTexelBufferArrayNonUniformIndexing, shaderStorageTexelBufferArrayNonUniformIndexing, descriptorBindingUniformBufferUpdateAfterBind, descriptorBindingSampledImageUpdateAfterBind, descriptorBindingStorageImageUpdateAfterBind, descriptorBindingStorageBufferUpdateAfterBind, descriptorBindingUniformTexelBufferUpdateAfterBind, descriptorBindingStorageTexelBufferUpdateAfterBind, descriptorBindingUpdateUnusedWhilePending, descriptorBindingPartiallyBound, descriptorBindingVariableDescriptorCount, runtimeDescriptorArray, samplerFilterMinmax, scalarBlockLayout, imagelessFramebuffer, uniformBufferStandardLayout, shaderSubgroupExtendedTypes, separateDepthStencilLayouts, hostQueryReset, timelineSemaphore, bufferDeviceAddress, bufferDeviceAddressCaptureReplay, bufferDeviceAddressMultiDevice, vulkanMemoryModel, vulkanMemoryModelDeviceScope, vulkanMemoryModelAvailabilityVisibilityChains, shaderOutputViewportIndex, shaderOutputLayer, subgroupBroadcastDynamicId );
80694     }
80695 #endif
80696 
80697 
80698 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80699 auto operator<=>( PhysicalDeviceVulkan12Features const & ) const = default;
80700 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80701     bool operator==( PhysicalDeviceVulkan12Features const & rhs ) const VULKAN_HPP_NOEXCEPT
80702     {
80703 #if defined( VULKAN_HPP_USE_REFLECT )
80704       return this->reflect() == rhs.reflect();
80705 #else
80706       return ( sType == rhs.sType )
80707           && ( pNext == rhs.pNext )
80708           && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge )
80709           && ( drawIndirectCount == rhs.drawIndirectCount )
80710           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
80711           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
80712           && ( storagePushConstant8 == rhs.storagePushConstant8 )
80713           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
80714           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics )
80715           && ( shaderFloat16 == rhs.shaderFloat16 )
80716           && ( shaderInt8 == rhs.shaderInt8 )
80717           && ( descriptorIndexing == rhs.descriptorIndexing )
80718           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
80719           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
80720           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
80721           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
80722           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
80723           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
80724           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
80725           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
80726           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
80727           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
80728           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
80729           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
80730           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
80731           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
80732           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
80733           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
80734           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
80735           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
80736           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
80737           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray )
80738           && ( samplerFilterMinmax == rhs.samplerFilterMinmax )
80739           && ( scalarBlockLayout == rhs.scalarBlockLayout )
80740           && ( imagelessFramebuffer == rhs.imagelessFramebuffer )
80741           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout )
80742           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes )
80743           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts )
80744           && ( hostQueryReset == rhs.hostQueryReset )
80745           && ( timelineSemaphore == rhs.timelineSemaphore )
80746           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
80747           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
80748           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice )
80749           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
80750           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
80751           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains )
80752           && ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex )
80753           && ( shaderOutputLayer == rhs.shaderOutputLayer )
80754           && ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId );
80755 #endif
80756     }
80757 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features80758     bool operator!=( PhysicalDeviceVulkan12Features const & rhs ) const VULKAN_HPP_NOEXCEPT
80759     {
80760       return !operator==( rhs );
80761     }
80762 #endif
80763 
80764     public:
80765     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features;
80766     void * pNext = {};
80767     VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {};
80768     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {};
80769     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
80770     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
80771     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
80772     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
80773     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
80774     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
80775     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
80776     VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {};
80777     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
80778     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
80779     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
80780     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
80781     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
80782     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
80783     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
80784     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
80785     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
80786     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
80787     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
80788     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
80789     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
80790     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
80791     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
80792     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
80793     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
80794     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
80795     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
80796     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
80797     VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {};
80798     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
80799     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
80800     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
80801     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
80802     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
80803     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
80804     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
80805     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
80806     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
80807     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
80808     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
80809     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
80810     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
80811     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {};
80812     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {};
80813     VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {};
80814 
80815   };
80816 
80817   template <>
80818   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Features>
80819   {
80820     using Type = PhysicalDeviceVulkan12Features;
80821   };
80822 
80823   struct PhysicalDeviceVulkan12Properties
80824   {
80825     using NativeType = VkPhysicalDeviceVulkan12Properties;
80826 
80827     static const bool allowDuplicate = false;
80828     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties;
80829 
80830 
80831 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties80832 VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties(VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, std::array<char,VK_MAX_DRIVER_NAME_SIZE> const & driverName_ = {}, std::array<char,VK_MAX_DRIVER_INFO_SIZE> const & driverInfo_ = {}, VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {}, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {}, uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, uint32_t maxPerStageUpdateAfterBindResources_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}, uint64_t maxTimelineSemaphoreValueDifference_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
80833     : pNext( pNext_ ), driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ ), denormBehaviorIndependence( denormBehaviorIndependence_ ), roundingModeIndependence( roundingModeIndependence_ ), shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ), shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ), shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ), shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ), shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ), shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ), shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ), shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ), shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ), shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ), shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ), shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ), shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ), shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ), shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ ), maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ), shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ), shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ), shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ), shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ), shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ), robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ), quadDivergentImplicitLod( quadDivergentImplicitLod_ ), maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ), maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ), maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ), maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ), maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ), maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ), maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ), maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ), maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ), maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ), maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ), maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ), maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ ), supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ ), filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ ), maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ ), framebufferIntegerColorSampleCounts( framebufferIntegerColorSampleCounts_ )
80834     {}
80835 
80836     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80837 
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties80838     PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
80839       : PhysicalDeviceVulkan12Properties( *reinterpret_cast<PhysicalDeviceVulkan12Properties const *>( &rhs ) )
80840     {}
80841 
80842 
80843     PhysicalDeviceVulkan12Properties & operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80844 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
80845 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties80846     PhysicalDeviceVulkan12Properties & operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
80847     {
80848       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const *>( &rhs );
80849       return *this;
80850     }
80851 
80852 
operator VkPhysicalDeviceVulkan12Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties80853     operator VkPhysicalDeviceVulkan12Properties const &() const VULKAN_HPP_NOEXCEPT
80854     {
80855       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>( this );
80856     }
80857 
operator VkPhysicalDeviceVulkan12Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties80858     operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT
80859     {
80860       return *reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>( this );
80861     }
80862 
80863 #if defined( VULKAN_HPP_USE_REFLECT )
80864 #if 14 <= VULKAN_HPP_CPP_VERSION
80865     auto
80866 #else
80867     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DriverId const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> const &, VULKAN_HPP_NAMESPACE::ConformanceVersion const &, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ResolveModeFlags const &, VULKAN_HPP_NAMESPACE::ResolveModeFlags const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint64_t const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &>
80868 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties80869       reflect() const VULKAN_HPP_NOEXCEPT
80870     {
80871       return std::tie( sType, pNext, driverID, driverName, driverInfo, conformanceVersion, denormBehaviorIndependence, roundingModeIndependence, shaderSignedZeroInfNanPreserveFloat16, shaderSignedZeroInfNanPreserveFloat32, shaderSignedZeroInfNanPreserveFloat64, shaderDenormPreserveFloat16, shaderDenormPreserveFloat32, shaderDenormPreserveFloat64, shaderDenormFlushToZeroFloat16, shaderDenormFlushToZeroFloat32, shaderDenormFlushToZeroFloat64, shaderRoundingModeRTEFloat16, shaderRoundingModeRTEFloat32, shaderRoundingModeRTEFloat64, shaderRoundingModeRTZFloat16, shaderRoundingModeRTZFloat32, shaderRoundingModeRTZFloat64, maxUpdateAfterBindDescriptorsInAllPools, shaderUniformBufferArrayNonUniformIndexingNative, shaderSampledImageArrayNonUniformIndexingNative, shaderStorageBufferArrayNonUniformIndexingNative, shaderStorageImageArrayNonUniformIndexingNative, shaderInputAttachmentArrayNonUniformIndexingNative, robustBufferAccessUpdateAfterBind, quadDivergentImplicitLod, maxPerStageDescriptorUpdateAfterBindSamplers, maxPerStageDescriptorUpdateAfterBindUniformBuffers, maxPerStageDescriptorUpdateAfterBindStorageBuffers, maxPerStageDescriptorUpdateAfterBindSampledImages, maxPerStageDescriptorUpdateAfterBindStorageImages, maxPerStageDescriptorUpdateAfterBindInputAttachments, maxPerStageUpdateAfterBindResources, maxDescriptorSetUpdateAfterBindSamplers, maxDescriptorSetUpdateAfterBindUniformBuffers, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, maxDescriptorSetUpdateAfterBindStorageBuffers, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, maxDescriptorSetUpdateAfterBindSampledImages, maxDescriptorSetUpdateAfterBindStorageImages, maxDescriptorSetUpdateAfterBindInputAttachments, supportedDepthResolveModes, supportedStencilResolveModes, independentResolveNone, independentResolve, filterMinmaxSingleComponentFormats, filterMinmaxImageComponentMapping, maxTimelineSemaphoreValueDifference, framebufferIntegerColorSampleCounts );
80872     }
80873 #endif
80874 
80875 
80876 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80877 auto operator<=>( PhysicalDeviceVulkan12Properties const & ) const = default;
80878 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties80879     bool operator==( PhysicalDeviceVulkan12Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
80880     {
80881 #if defined( VULKAN_HPP_USE_REFLECT )
80882       return this->reflect() == rhs.reflect();
80883 #else
80884       return ( sType == rhs.sType )
80885           && ( pNext == rhs.pNext )
80886           && ( driverID == rhs.driverID )
80887           && ( driverName == rhs.driverName )
80888           && ( driverInfo == rhs.driverInfo )
80889           && ( conformanceVersion == rhs.conformanceVersion )
80890           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
80891           && ( roundingModeIndependence == rhs.roundingModeIndependence )
80892           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
80893           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
80894           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
80895           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
80896           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
80897           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
80898           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
80899           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
80900           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
80901           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
80902           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
80903           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
80904           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
80905           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
80906           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 )
80907           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
80908           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
80909           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
80910           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
80911           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
80912           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
80913           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
80914           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
80915           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
80916           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
80917           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
80918           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
80919           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
80920           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
80921           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
80922           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
80923           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
80924           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
80925           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
80926           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
80927           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
80928           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
80929           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments )
80930           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
80931           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
80932           && ( independentResolveNone == rhs.independentResolveNone )
80933           && ( independentResolve == rhs.independentResolve )
80934           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
80935           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping )
80936           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference )
80937           && ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts );
80938 #endif
80939     }
80940 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties80941     bool operator!=( PhysicalDeviceVulkan12Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
80942     {
80943       return !operator==( rhs );
80944     }
80945 #endif
80946 
80947     public:
80948     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties;
80949     void * pNext = {};
80950     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
80951     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
80952     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
80953     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
80954     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
80955     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
80956     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
80957     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
80958     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
80959     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
80960     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
80961     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
80962     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
80963     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
80964     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
80965     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
80966     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
80967     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
80968     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
80969     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
80970     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
80971     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
80972     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
80973     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
80974     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
80975     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
80976     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
80977     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
80978     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
80979     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
80980     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
80981     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
80982     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
80983     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
80984     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
80985     uint32_t maxPerStageUpdateAfterBindResources = {};
80986     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
80987     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
80988     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
80989     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
80990     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
80991     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
80992     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
80993     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
80994     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
80995     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
80996     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
80997     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
80998     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
80999     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
81000     uint64_t maxTimelineSemaphoreValueDifference = {};
81001     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {};
81002 
81003   };
81004 
81005   template <>
81006   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Properties>
81007   {
81008     using Type = PhysicalDeviceVulkan12Properties;
81009   };
81010 
81011   struct PhysicalDeviceVulkan13Features
81012   {
81013     using NativeType = VkPhysicalDeviceVulkan13Features;
81014 
81015     static const bool allowDuplicate = false;
81016     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan13Features;
81017 
81018 
81019 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan13FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81020 VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan13Features(VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {}, VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {}, VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ = {}, VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ = {}, VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
81021     : pNext( pNext_ ), robustImageAccess( robustImageAccess_ ), inlineUniformBlock( inlineUniformBlock_ ), descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ ), pipelineCreationCacheControl( pipelineCreationCacheControl_ ), privateData( privateData_ ), shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ ), shaderTerminateInvocation( shaderTerminateInvocation_ ), subgroupSizeControl( subgroupSizeControl_ ), computeFullSubgroups( computeFullSubgroups_ ), synchronization2( synchronization2_ ), textureCompressionASTC_HDR( textureCompressionASTC_HDR_ ), shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ ), dynamicRendering( dynamicRendering_ ), shaderIntegerDotProduct( shaderIntegerDotProduct_ ), maintenance4( maintenance4_ )
81022     {}
81023 
81024     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan13Features( PhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81025 
PhysicalDeviceVulkan13FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81026     PhysicalDeviceVulkan13Features( VkPhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT
81027       : PhysicalDeviceVulkan13Features( *reinterpret_cast<PhysicalDeviceVulkan13Features const *>( &rhs ) )
81028     {}
81029 
81030 
81031     PhysicalDeviceVulkan13Features & operator=( PhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81032 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
81033 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81034     PhysicalDeviceVulkan13Features & operator=( VkPhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT
81035     {
81036       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features const *>( &rhs );
81037       return *this;
81038     }
81039 
81040 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81041     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
81042     {
81043       pNext = pNext_;
81044       return *this;
81045     }
81046 
setRobustImageAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81047     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT
81048     {
81049       robustImageAccess = robustImageAccess_;
81050       return *this;
81051     }
81052 
setInlineUniformBlockVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81053     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
81054     {
81055       inlineUniformBlock = inlineUniformBlock_;
81056       return *this;
81057     }
81058 
setDescriptorBindingInlineUniformBlockUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81059     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setDescriptorBindingInlineUniformBlockUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
81060     {
81061       descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
81062       return *this;
81063     }
81064 
setPipelineCreationCacheControlVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81065     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
81066     {
81067       pipelineCreationCacheControl = pipelineCreationCacheControl_;
81068       return *this;
81069     }
81070 
setPrivateDataVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81071     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
81072     {
81073       privateData = privateData_;
81074       return *this;
81075     }
81076 
setShaderDemoteToHelperInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81077     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
81078     {
81079       shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
81080       return *this;
81081     }
81082 
setShaderTerminateInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81083     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
81084     {
81085       shaderTerminateInvocation = shaderTerminateInvocation_;
81086       return *this;
81087     }
81088 
setSubgroupSizeControlVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81089     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
81090     {
81091       subgroupSizeControl = subgroupSizeControl_;
81092       return *this;
81093     }
81094 
setComputeFullSubgroupsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81095     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
81096     {
81097       computeFullSubgroups = computeFullSubgroups_;
81098       return *this;
81099     }
81100 
setSynchronization2VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81101     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setSynchronization2( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ ) VULKAN_HPP_NOEXCEPT
81102     {
81103       synchronization2 = synchronization2_;
81104       return *this;
81105     }
81106 
setTextureCompressionASTC_HDRVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81107     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
81108     {
81109       textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
81110       return *this;
81111     }
81112 
setShaderZeroInitializeWorkgroupMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81113     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
81114     {
81115       shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_;
81116       return *this;
81117     }
81118 
setDynamicRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81119     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setDynamicRendering( VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ ) VULKAN_HPP_NOEXCEPT
81120     {
81121       dynamicRendering = dynamicRendering_;
81122       return *this;
81123     }
81124 
setShaderIntegerDotProductVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81125     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
81126     {
81127       shaderIntegerDotProduct = shaderIntegerDotProduct_;
81128       return *this;
81129     }
81130 
setMaintenance4VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81131     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setMaintenance4( VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ ) VULKAN_HPP_NOEXCEPT
81132     {
81133       maintenance4 = maintenance4_;
81134       return *this;
81135     }
81136 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
81137 
81138 
operator VkPhysicalDeviceVulkan13Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81139     operator VkPhysicalDeviceVulkan13Features const &() const VULKAN_HPP_NOEXCEPT
81140     {
81141       return *reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>( this );
81142     }
81143 
operator VkPhysicalDeviceVulkan13Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81144     operator VkPhysicalDeviceVulkan13Features &() VULKAN_HPP_NOEXCEPT
81145     {
81146       return *reinterpret_cast<VkPhysicalDeviceVulkan13Features*>( this );
81147     }
81148 
81149 #if defined( VULKAN_HPP_USE_REFLECT )
81150 #if 14 <= VULKAN_HPP_CPP_VERSION
81151     auto
81152 #else
81153     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
81154 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81155       reflect() const VULKAN_HPP_NOEXCEPT
81156     {
81157       return std::tie( sType, pNext, robustImageAccess, inlineUniformBlock, descriptorBindingInlineUniformBlockUpdateAfterBind, pipelineCreationCacheControl, privateData, shaderDemoteToHelperInvocation, shaderTerminateInvocation, subgroupSizeControl, computeFullSubgroups, synchronization2, textureCompressionASTC_HDR, shaderZeroInitializeWorkgroupMemory, dynamicRendering, shaderIntegerDotProduct, maintenance4 );
81158     }
81159 #endif
81160 
81161 
81162 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81163 auto operator<=>( PhysicalDeviceVulkan13Features const & ) const = default;
81164 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81165     bool operator==( PhysicalDeviceVulkan13Features const & rhs ) const VULKAN_HPP_NOEXCEPT
81166     {
81167 #if defined( VULKAN_HPP_USE_REFLECT )
81168       return this->reflect() == rhs.reflect();
81169 #else
81170       return ( sType == rhs.sType )
81171           && ( pNext == rhs.pNext )
81172           && ( robustImageAccess == rhs.robustImageAccess )
81173           && ( inlineUniformBlock == rhs.inlineUniformBlock )
81174           && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind )
81175           && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl )
81176           && ( privateData == rhs.privateData )
81177           && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation )
81178           && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation )
81179           && ( subgroupSizeControl == rhs.subgroupSizeControl )
81180           && ( computeFullSubgroups == rhs.computeFullSubgroups )
81181           && ( synchronization2 == rhs.synchronization2 )
81182           && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR )
81183           && ( shaderZeroInitializeWorkgroupMemory == rhs.shaderZeroInitializeWorkgroupMemory )
81184           && ( dynamicRendering == rhs.dynamicRendering )
81185           && ( shaderIntegerDotProduct == rhs.shaderIntegerDotProduct )
81186           && ( maintenance4 == rhs.maintenance4 );
81187 #endif
81188     }
81189 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features81190     bool operator!=( PhysicalDeviceVulkan13Features const & rhs ) const VULKAN_HPP_NOEXCEPT
81191     {
81192       return !operator==( rhs );
81193     }
81194 #endif
81195 
81196     public:
81197     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan13Features;
81198     void * pNext = {};
81199     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {};
81200     VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
81201     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
81202     VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
81203     VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
81204     VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
81205     VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {};
81206     VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
81207     VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
81208     VULKAN_HPP_NAMESPACE::Bool32 synchronization2 = {};
81209     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
81210     VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory = {};
81211     VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering = {};
81212     VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct = {};
81213     VULKAN_HPP_NAMESPACE::Bool32 maintenance4 = {};
81214 
81215   };
81216 
81217   template <>
81218   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan13Features>
81219   {
81220     using Type = PhysicalDeviceVulkan13Features;
81221   };
81222 
81223   struct PhysicalDeviceVulkan13Properties
81224   {
81225     using NativeType = VkPhysicalDeviceVulkan13Properties;
81226 
81227     static const bool allowDuplicate = false;
81228     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan13Properties;
81229 
81230 
81231 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan13PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties81232 VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan13Properties(uint32_t minSubgroupSize_ = {}, uint32_t maxSubgroupSize_ = {}, uint32_t maxComputeWorkgroupSubgroups_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {}, uint32_t maxInlineUniformBlockSize_ = {}, uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {}, uint32_t maxInlineUniformTotalSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated_ = {}, VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
81233     : pNext( pNext_ ), minSubgroupSize( minSubgroupSize_ ), maxSubgroupSize( maxSubgroupSize_ ), maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ ), requiredSubgroupSizeStages( requiredSubgroupSizeStages_ ), maxInlineUniformBlockSize( maxInlineUniformBlockSize_ ), maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ ), maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ ), maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ ), maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ ), maxInlineUniformTotalSize( maxInlineUniformTotalSize_ ), integerDotProduct8BitUnsignedAccelerated( integerDotProduct8BitUnsignedAccelerated_ ), integerDotProduct8BitSignedAccelerated( integerDotProduct8BitSignedAccelerated_ ), integerDotProduct8BitMixedSignednessAccelerated( integerDotProduct8BitMixedSignednessAccelerated_ ), integerDotProduct4x8BitPackedUnsignedAccelerated( integerDotProduct4x8BitPackedUnsignedAccelerated_ ), integerDotProduct4x8BitPackedSignedAccelerated( integerDotProduct4x8BitPackedSignedAccelerated_ ), integerDotProduct4x8BitPackedMixedSignednessAccelerated( integerDotProduct4x8BitPackedMixedSignednessAccelerated_ ), integerDotProduct16BitUnsignedAccelerated( integerDotProduct16BitUnsignedAccelerated_ ), integerDotProduct16BitSignedAccelerated( integerDotProduct16BitSignedAccelerated_ ), integerDotProduct16BitMixedSignednessAccelerated( integerDotProduct16BitMixedSignednessAccelerated_ ), integerDotProduct32BitUnsignedAccelerated( integerDotProduct32BitUnsignedAccelerated_ ), integerDotProduct32BitSignedAccelerated( integerDotProduct32BitSignedAccelerated_ ), integerDotProduct32BitMixedSignednessAccelerated( integerDotProduct32BitMixedSignednessAccelerated_ ), integerDotProduct64BitUnsignedAccelerated( integerDotProduct64BitUnsignedAccelerated_ ), integerDotProduct64BitSignedAccelerated( integerDotProduct64BitSignedAccelerated_ ), integerDotProduct64BitMixedSignednessAccelerated( integerDotProduct64BitMixedSignednessAccelerated_ ), integerDotProductAccumulatingSaturating8BitUnsignedAccelerated( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ ), integerDotProductAccumulatingSaturating8BitSignedAccelerated( integerDotProductAccumulatingSaturating8BitSignedAccelerated_ ), integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ ), integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ ), integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ ), integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ ), integerDotProductAccumulatingSaturating16BitUnsignedAccelerated( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ ), integerDotProductAccumulatingSaturating16BitSignedAccelerated( integerDotProductAccumulatingSaturating16BitSignedAccelerated_ ), integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ ), integerDotProductAccumulatingSaturating32BitUnsignedAccelerated( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ ), integerDotProductAccumulatingSaturating32BitSignedAccelerated( integerDotProductAccumulatingSaturating32BitSignedAccelerated_ ), integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ ), integerDotProductAccumulatingSaturating64BitUnsignedAccelerated( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ ), integerDotProductAccumulatingSaturating64BitSignedAccelerated( integerDotProductAccumulatingSaturating64BitSignedAccelerated_ ), integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ ), storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ ), storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ ), uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ ), uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ ), maxBufferSize( maxBufferSize_ )
81234     {}
81235 
81236     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan13Properties( PhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81237 
PhysicalDeviceVulkan13PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties81238     PhysicalDeviceVulkan13Properties( VkPhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT
81239       : PhysicalDeviceVulkan13Properties( *reinterpret_cast<PhysicalDeviceVulkan13Properties const *>( &rhs ) )
81240     {}
81241 
81242 
81243     PhysicalDeviceVulkan13Properties & operator=( PhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81244 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
81245 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties81246     PhysicalDeviceVulkan13Properties & operator=( VkPhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT
81247     {
81248       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties const *>( &rhs );
81249       return *this;
81250     }
81251 
81252 
operator VkPhysicalDeviceVulkan13Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties81253     operator VkPhysicalDeviceVulkan13Properties const &() const VULKAN_HPP_NOEXCEPT
81254     {
81255       return *reinterpret_cast<const VkPhysicalDeviceVulkan13Properties*>( this );
81256     }
81257 
operator VkPhysicalDeviceVulkan13Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties81258     operator VkPhysicalDeviceVulkan13Properties &() VULKAN_HPP_NOEXCEPT
81259     {
81260       return *reinterpret_cast<VkPhysicalDeviceVulkan13Properties*>( this );
81261     }
81262 
81263 #if defined( VULKAN_HPP_USE_REFLECT )
81264 #if 14 <= VULKAN_HPP_CPP_VERSION
81265     auto
81266 #else
81267     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
81268 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties81269       reflect() const VULKAN_HPP_NOEXCEPT
81270     {
81271       return std::tie( sType, pNext, minSubgroupSize, maxSubgroupSize, maxComputeWorkgroupSubgroups, requiredSubgroupSizeStages, maxInlineUniformBlockSize, maxPerStageDescriptorInlineUniformBlocks, maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks, maxDescriptorSetInlineUniformBlocks, maxDescriptorSetUpdateAfterBindInlineUniformBlocks, maxInlineUniformTotalSize, integerDotProduct8BitUnsignedAccelerated, integerDotProduct8BitSignedAccelerated, integerDotProduct8BitMixedSignednessAccelerated, integerDotProduct4x8BitPackedUnsignedAccelerated, integerDotProduct4x8BitPackedSignedAccelerated, integerDotProduct4x8BitPackedMixedSignednessAccelerated, integerDotProduct16BitUnsignedAccelerated, integerDotProduct16BitSignedAccelerated, integerDotProduct16BitMixedSignednessAccelerated, integerDotProduct32BitUnsignedAccelerated, integerDotProduct32BitSignedAccelerated, integerDotProduct32BitMixedSignednessAccelerated, integerDotProduct64BitUnsignedAccelerated, integerDotProduct64BitSignedAccelerated, integerDotProduct64BitMixedSignednessAccelerated, integerDotProductAccumulatingSaturating8BitUnsignedAccelerated, integerDotProductAccumulatingSaturating8BitSignedAccelerated, integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated, integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated, integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated, integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated, integerDotProductAccumulatingSaturating16BitUnsignedAccelerated, integerDotProductAccumulatingSaturating16BitSignedAccelerated, integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated, integerDotProductAccumulatingSaturating32BitUnsignedAccelerated, integerDotProductAccumulatingSaturating32BitSignedAccelerated, integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated, integerDotProductAccumulatingSaturating64BitUnsignedAccelerated, integerDotProductAccumulatingSaturating64BitSignedAccelerated, integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated, storageTexelBufferOffsetAlignmentBytes, storageTexelBufferOffsetSingleTexelAlignment, uniformTexelBufferOffsetAlignmentBytes, uniformTexelBufferOffsetSingleTexelAlignment, maxBufferSize );
81272     }
81273 #endif
81274 
81275 
81276 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81277 auto operator<=>( PhysicalDeviceVulkan13Properties const & ) const = default;
81278 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties81279     bool operator==( PhysicalDeviceVulkan13Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
81280     {
81281 #if defined( VULKAN_HPP_USE_REFLECT )
81282       return this->reflect() == rhs.reflect();
81283 #else
81284       return ( sType == rhs.sType )
81285           && ( pNext == rhs.pNext )
81286           && ( minSubgroupSize == rhs.minSubgroupSize )
81287           && ( maxSubgroupSize == rhs.maxSubgroupSize )
81288           && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups )
81289           && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages )
81290           && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize )
81291           && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks )
81292           && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks )
81293           && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks )
81294           && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks )
81295           && ( maxInlineUniformTotalSize == rhs.maxInlineUniformTotalSize )
81296           && ( integerDotProduct8BitUnsignedAccelerated == rhs.integerDotProduct8BitUnsignedAccelerated )
81297           && ( integerDotProduct8BitSignedAccelerated == rhs.integerDotProduct8BitSignedAccelerated )
81298           && ( integerDotProduct8BitMixedSignednessAccelerated == rhs.integerDotProduct8BitMixedSignednessAccelerated )
81299           && ( integerDotProduct4x8BitPackedUnsignedAccelerated == rhs.integerDotProduct4x8BitPackedUnsignedAccelerated )
81300           && ( integerDotProduct4x8BitPackedSignedAccelerated == rhs.integerDotProduct4x8BitPackedSignedAccelerated )
81301           && ( integerDotProduct4x8BitPackedMixedSignednessAccelerated == rhs.integerDotProduct4x8BitPackedMixedSignednessAccelerated )
81302           && ( integerDotProduct16BitUnsignedAccelerated == rhs.integerDotProduct16BitUnsignedAccelerated )
81303           && ( integerDotProduct16BitSignedAccelerated == rhs.integerDotProduct16BitSignedAccelerated )
81304           && ( integerDotProduct16BitMixedSignednessAccelerated == rhs.integerDotProduct16BitMixedSignednessAccelerated )
81305           && ( integerDotProduct32BitUnsignedAccelerated == rhs.integerDotProduct32BitUnsignedAccelerated )
81306           && ( integerDotProduct32BitSignedAccelerated == rhs.integerDotProduct32BitSignedAccelerated )
81307           && ( integerDotProduct32BitMixedSignednessAccelerated == rhs.integerDotProduct32BitMixedSignednessAccelerated )
81308           && ( integerDotProduct64BitUnsignedAccelerated == rhs.integerDotProduct64BitUnsignedAccelerated )
81309           && ( integerDotProduct64BitSignedAccelerated == rhs.integerDotProduct64BitSignedAccelerated )
81310           && ( integerDotProduct64BitMixedSignednessAccelerated == rhs.integerDotProduct64BitMixedSignednessAccelerated )
81311           && ( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated )
81312           && ( integerDotProductAccumulatingSaturating8BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitSignedAccelerated )
81313           && ( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated == rhs.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated )
81314           && ( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated )
81315           && ( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated == rhs.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated )
81316           && ( integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated == rhs.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated )
81317           && ( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated )
81318           && ( integerDotProductAccumulatingSaturating16BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitSignedAccelerated )
81319           && ( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated == rhs.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated )
81320           && ( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated )
81321           && ( integerDotProductAccumulatingSaturating32BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitSignedAccelerated )
81322           && ( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated == rhs.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated )
81323           && ( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated )
81324           && ( integerDotProductAccumulatingSaturating64BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitSignedAccelerated )
81325           && ( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated == rhs.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated )
81326           && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes )
81327           && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment )
81328           && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes )
81329           && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment )
81330           && ( maxBufferSize == rhs.maxBufferSize );
81331 #endif
81332     }
81333 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties81334     bool operator!=( PhysicalDeviceVulkan13Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
81335     {
81336       return !operator==( rhs );
81337     }
81338 #endif
81339 
81340     public:
81341     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan13Properties;
81342     void * pNext = {};
81343     uint32_t minSubgroupSize = {};
81344     uint32_t maxSubgroupSize = {};
81345     uint32_t maxComputeWorkgroupSubgroups = {};
81346     VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
81347     uint32_t maxInlineUniformBlockSize = {};
81348     uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
81349     uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
81350     uint32_t maxDescriptorSetInlineUniformBlocks = {};
81351     uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
81352     uint32_t maxInlineUniformTotalSize = {};
81353     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated = {};
81354     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated = {};
81355     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated = {};
81356     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated = {};
81357     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated = {};
81358     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated = {};
81359     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated = {};
81360     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated = {};
81361     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated = {};
81362     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated = {};
81363     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated = {};
81364     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated = {};
81365     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated = {};
81366     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated = {};
81367     VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated = {};
81368     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = {};
81369     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated = {};
81370     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = {};
81371     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = {};
81372     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = {};
81373     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = {};
81374     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = {};
81375     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated = {};
81376     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = {};
81377     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = {};
81378     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated = {};
81379     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = {};
81380     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = {};
81381     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated = {};
81382     VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = {};
81383     VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
81384     VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
81385     VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
81386     VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
81387     VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize = {};
81388 
81389   };
81390 
81391   template <>
81392   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan13Properties>
81393   {
81394     using Type = PhysicalDeviceVulkan13Properties;
81395   };
81396 
81397   struct PhysicalDeviceVulkanMemoryModelFeatures
81398   {
81399     using NativeType = VkPhysicalDeviceVulkanMemoryModelFeatures;
81400 
81401     static const bool allowDuplicate = false;
81402     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
81403 
81404 
81405 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81406 VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures(VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
81407     : pNext( pNext_ ), vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
81408     {}
81409 
81410     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81411 
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81412     PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
81413       : PhysicalDeviceVulkanMemoryModelFeatures( *reinterpret_cast<PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs ) )
81414     {}
81415 
81416 
81417     PhysicalDeviceVulkanMemoryModelFeatures & operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81418 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
81419 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81420     PhysicalDeviceVulkanMemoryModelFeatures & operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
81421     {
81422       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs );
81423       return *this;
81424     }
81425 
81426 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81427     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
81428     {
81429       pNext = pNext_;
81430       return *this;
81431     }
81432 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81433     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
81434     {
81435       vulkanMemoryModel = vulkanMemoryModel_;
81436       return *this;
81437     }
81438 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81439     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
81440     {
81441       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
81442       return *this;
81443     }
81444 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81445     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
81446     {
81447       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
81448       return *this;
81449     }
81450 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
81451 
81452 
operator VkPhysicalDeviceVulkanMemoryModelFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81453     operator VkPhysicalDeviceVulkanMemoryModelFeatures const &() const VULKAN_HPP_NOEXCEPT
81454     {
81455       return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
81456     }
81457 
operator VkPhysicalDeviceVulkanMemoryModelFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81458     operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT
81459     {
81460       return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
81461     }
81462 
81463 #if defined( VULKAN_HPP_USE_REFLECT )
81464 #if 14 <= VULKAN_HPP_CPP_VERSION
81465     auto
81466 #else
81467     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
81468 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81469       reflect() const VULKAN_HPP_NOEXCEPT
81470     {
81471       return std::tie( sType, pNext, vulkanMemoryModel, vulkanMemoryModelDeviceScope, vulkanMemoryModelAvailabilityVisibilityChains );
81472     }
81473 #endif
81474 
81475 
81476 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81477 auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const & ) const = default;
81478 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81479     bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
81480     {
81481 #if defined( VULKAN_HPP_USE_REFLECT )
81482       return this->reflect() == rhs.reflect();
81483 #else
81484       return ( sType == rhs.sType )
81485           && ( pNext == rhs.pNext )
81486           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
81487           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
81488           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains );
81489 #endif
81490     }
81491 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures81492     bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
81493     {
81494       return !operator==( rhs );
81495     }
81496 #endif
81497 
81498     public:
81499     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
81500     void * pNext = {};
81501     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
81502     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
81503     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
81504 
81505   };
81506 
81507   template <>
81508   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkanMemoryModelFeatures>
81509   {
81510     using Type = PhysicalDeviceVulkanMemoryModelFeatures;
81511   };
81512   using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
81513 
81514   struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
81515   {
81516     using NativeType = VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
81517 
81518     static const bool allowDuplicate = false;
81519     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
81520 
81521 
81522 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81523 VULKAN_HPP_CONSTEXPR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
81524     : pNext( pNext_ ), workgroupMemoryExplicitLayout( workgroupMemoryExplicitLayout_ ), workgroupMemoryExplicitLayoutScalarBlockLayout( workgroupMemoryExplicitLayoutScalarBlockLayout_ ), workgroupMemoryExplicitLayout8BitAccess( workgroupMemoryExplicitLayout8BitAccess_ ), workgroupMemoryExplicitLayout16BitAccess( workgroupMemoryExplicitLayout16BitAccess_ )
81525     {}
81526 
81527     VULKAN_HPP_CONSTEXPR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81528 
PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81529     PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
81530       : PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( *reinterpret_cast<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const *>( &rhs ) )
81531     {}
81532 
81533 
81534     PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & operator=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81535 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
81536 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81537     PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & operator=( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
81538     {
81539       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const *>( &rhs );
81540       return *this;
81541     }
81542 
81543 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81544     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
81545     {
81546       pNext = pNext_;
81547       return *this;
81548     }
81549 
setWorkgroupMemoryExplicitLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81550     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ ) VULKAN_HPP_NOEXCEPT
81551     {
81552       workgroupMemoryExplicitLayout = workgroupMemoryExplicitLayout_;
81553       return *this;
81554     }
81555 
setWorkgroupMemoryExplicitLayoutScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81556     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayoutScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
81557     {
81558       workgroupMemoryExplicitLayoutScalarBlockLayout = workgroupMemoryExplicitLayoutScalarBlockLayout_;
81559       return *this;
81560     }
81561 
setWorkgroupMemoryExplicitLayout8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81562     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ ) VULKAN_HPP_NOEXCEPT
81563     {
81564       workgroupMemoryExplicitLayout8BitAccess = workgroupMemoryExplicitLayout8BitAccess_;
81565       return *this;
81566     }
81567 
setWorkgroupMemoryExplicitLayout16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81568     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ ) VULKAN_HPP_NOEXCEPT
81569     {
81570       workgroupMemoryExplicitLayout16BitAccess = workgroupMemoryExplicitLayout16BitAccess_;
81571       return *this;
81572     }
81573 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
81574 
81575 
operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81576     operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
81577     {
81578       return *reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>( this );
81579     }
81580 
operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81581     operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &() VULKAN_HPP_NOEXCEPT
81582     {
81583       return *reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>( this );
81584     }
81585 
81586 #if defined( VULKAN_HPP_USE_REFLECT )
81587 #if 14 <= VULKAN_HPP_CPP_VERSION
81588     auto
81589 #else
81590     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
81591 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81592       reflect() const VULKAN_HPP_NOEXCEPT
81593     {
81594       return std::tie( sType, pNext, workgroupMemoryExplicitLayout, workgroupMemoryExplicitLayoutScalarBlockLayout, workgroupMemoryExplicitLayout8BitAccess, workgroupMemoryExplicitLayout16BitAccess );
81595     }
81596 #endif
81597 
81598 
81599 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81600 auto operator<=>( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & ) const = default;
81601 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81602     bool operator==( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
81603     {
81604 #if defined( VULKAN_HPP_USE_REFLECT )
81605       return this->reflect() == rhs.reflect();
81606 #else
81607       return ( sType == rhs.sType )
81608           && ( pNext == rhs.pNext )
81609           && ( workgroupMemoryExplicitLayout == rhs.workgroupMemoryExplicitLayout )
81610           && ( workgroupMemoryExplicitLayoutScalarBlockLayout == rhs.workgroupMemoryExplicitLayoutScalarBlockLayout )
81611           && ( workgroupMemoryExplicitLayout8BitAccess == rhs.workgroupMemoryExplicitLayout8BitAccess )
81612           && ( workgroupMemoryExplicitLayout16BitAccess == rhs.workgroupMemoryExplicitLayout16BitAccess );
81613 #endif
81614     }
81615 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR81616     bool operator!=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
81617     {
81618       return !operator==( rhs );
81619     }
81620 #endif
81621 
81622     public:
81623     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
81624     void * pNext = {};
81625     VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout = {};
81626     VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout = {};
81627     VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess = {};
81628     VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess = {};
81629 
81630   };
81631 
81632   template <>
81633   struct CppType<StructureType, StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>
81634   {
81635     using Type = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
81636   };
81637 
81638   struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
81639   {
81640     using NativeType = VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
81641 
81642     static const bool allowDuplicate = false;
81643     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
81644 
81645 
81646 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT81647 VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
81648     : pNext( pNext_ ), ycbcr2plane444Formats( ycbcr2plane444Formats_ )
81649     {}
81650 
81651     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81652 
PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT81653     PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
81654       : PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( *reinterpret_cast<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const *>( &rhs ) )
81655     {}
81656 
81657 
81658     PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & operator=( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81659 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
81660 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT81661     PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & operator=( VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
81662     {
81663       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const *>( &rhs );
81664       return *this;
81665     }
81666 
81667 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT81668     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
81669     {
81670       pNext = pNext_;
81671       return *this;
81672     }
81673 
setYcbcr2plane444FormatsVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT81674     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & setYcbcr2plane444Formats( VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ ) VULKAN_HPP_NOEXCEPT
81675     {
81676       ycbcr2plane444Formats = ycbcr2plane444Formats_;
81677       return *this;
81678     }
81679 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
81680 
81681 
operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT81682     operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
81683     {
81684       return *reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>( this );
81685     }
81686 
operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT81687     operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
81688     {
81689       return *reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>( this );
81690     }
81691 
81692 #if defined( VULKAN_HPP_USE_REFLECT )
81693 #if 14 <= VULKAN_HPP_CPP_VERSION
81694     auto
81695 #else
81696     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
81697 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT81698       reflect() const VULKAN_HPP_NOEXCEPT
81699     {
81700       return std::tie( sType, pNext, ycbcr2plane444Formats );
81701     }
81702 #endif
81703 
81704 
81705 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81706 auto operator<=>( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & ) const = default;
81707 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT81708     bool operator==( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81709     {
81710 #if defined( VULKAN_HPP_USE_REFLECT )
81711       return this->reflect() == rhs.reflect();
81712 #else
81713       return ( sType == rhs.sType )
81714           && ( pNext == rhs.pNext )
81715           && ( ycbcr2plane444Formats == rhs.ycbcr2plane444Formats );
81716 #endif
81717     }
81718 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT81719     bool operator!=( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81720     {
81721       return !operator==( rhs );
81722     }
81723 #endif
81724 
81725     public:
81726     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
81727     void * pNext = {};
81728     VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats = {};
81729 
81730   };
81731 
81732   template <>
81733   struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>
81734   {
81735     using Type = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
81736   };
81737 
81738   struct PhysicalDeviceYcbcrDegammaFeaturesQCOM
81739   {
81740     using NativeType = VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
81741 
81742     static const bool allowDuplicate = false;
81743     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM;
81744 
81745 
81746 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceYcbcrDegammaFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM81747 VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrDegammaFeaturesQCOM(VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
81748     : pNext( pNext_ ), ycbcrDegamma( ycbcrDegamma_ )
81749     {}
81750 
81751     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrDegammaFeaturesQCOM( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81752 
PhysicalDeviceYcbcrDegammaFeaturesQCOMVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM81753     PhysicalDeviceYcbcrDegammaFeaturesQCOM( VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
81754       : PhysicalDeviceYcbcrDegammaFeaturesQCOM( *reinterpret_cast<PhysicalDeviceYcbcrDegammaFeaturesQCOM const *>( &rhs ) )
81755     {}
81756 
81757 
81758     PhysicalDeviceYcbcrDegammaFeaturesQCOM & operator=( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81759 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
81760 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM81761     PhysicalDeviceYcbcrDegammaFeaturesQCOM & operator=( VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
81762     {
81763       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM const *>( &rhs );
81764       return *this;
81765     }
81766 
81767 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM81768     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrDegammaFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
81769     {
81770       pNext = pNext_;
81771       return *this;
81772     }
81773 
setYcbcrDegammaVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM81774     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrDegammaFeaturesQCOM & setYcbcrDegamma( VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma_ ) VULKAN_HPP_NOEXCEPT
81775     {
81776       ycbcrDegamma = ycbcrDegamma_;
81777       return *this;
81778     }
81779 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
81780 
81781 
operator VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM81782     operator VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
81783     {
81784       return *reinterpret_cast<const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM*>( this );
81785     }
81786 
operator VkPhysicalDeviceYcbcrDegammaFeaturesQCOM&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM81787     operator VkPhysicalDeviceYcbcrDegammaFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
81788     {
81789       return *reinterpret_cast<VkPhysicalDeviceYcbcrDegammaFeaturesQCOM*>( this );
81790     }
81791 
81792 #if defined( VULKAN_HPP_USE_REFLECT )
81793 #if 14 <= VULKAN_HPP_CPP_VERSION
81794     auto
81795 #else
81796     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
81797 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM81798       reflect() const VULKAN_HPP_NOEXCEPT
81799     {
81800       return std::tie( sType, pNext, ycbcrDegamma );
81801     }
81802 #endif
81803 
81804 
81805 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81806 auto operator<=>( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & ) const = default;
81807 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM81808     bool operator==( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
81809     {
81810 #if defined( VULKAN_HPP_USE_REFLECT )
81811       return this->reflect() == rhs.reflect();
81812 #else
81813       return ( sType == rhs.sType )
81814           && ( pNext == rhs.pNext )
81815           && ( ycbcrDegamma == rhs.ycbcrDegamma );
81816 #endif
81817     }
81818 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM81819     bool operator!=( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
81820     {
81821       return !operator==( rhs );
81822     }
81823 #endif
81824 
81825     public:
81826     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM;
81827     void * pNext = {};
81828     VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma = {};
81829 
81830   };
81831 
81832   template <>
81833   struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM>
81834   {
81835     using Type = PhysicalDeviceYcbcrDegammaFeaturesQCOM;
81836   };
81837 
81838   struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
81839   {
81840     using NativeType = VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
81841 
81842     static const bool allowDuplicate = false;
81843     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
81844 
81845 
81846 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT81847 VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
81848     : pNext( pNext_ ), ycbcrImageArrays( ycbcrImageArrays_ )
81849     {}
81850 
81851     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81852 
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT81853     PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
81854       : PhysicalDeviceYcbcrImageArraysFeaturesEXT( *reinterpret_cast<PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs ) )
81855     {}
81856 
81857 
81858     PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81859 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
81860 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT81861     PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
81862     {
81863       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs );
81864       return *this;
81865     }
81866 
81867 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT81868     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
81869     {
81870       pNext = pNext_;
81871       return *this;
81872     }
81873 
setYcbcrImageArraysVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT81874     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT
81875     {
81876       ycbcrImageArrays = ycbcrImageArrays_;
81877       return *this;
81878     }
81879 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
81880 
81881 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT81882     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
81883     {
81884       return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
81885     }
81886 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT81887     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT
81888     {
81889       return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
81890     }
81891 
81892 #if defined( VULKAN_HPP_USE_REFLECT )
81893 #if 14 <= VULKAN_HPP_CPP_VERSION
81894     auto
81895 #else
81896     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
81897 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT81898       reflect() const VULKAN_HPP_NOEXCEPT
81899     {
81900       return std::tie( sType, pNext, ycbcrImageArrays );
81901     }
81902 #endif
81903 
81904 
81905 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81906 auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & ) const = default;
81907 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT81908     bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81909     {
81910 #if defined( VULKAN_HPP_USE_REFLECT )
81911       return this->reflect() == rhs.reflect();
81912 #else
81913       return ( sType == rhs.sType )
81914           && ( pNext == rhs.pNext )
81915           && ( ycbcrImageArrays == rhs.ycbcrImageArrays );
81916 #endif
81917     }
81918 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT81919     bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81920     {
81921       return !operator==( rhs );
81922     }
81923 #endif
81924 
81925     public:
81926     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
81927     void * pNext = {};
81928     VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {};
81929 
81930   };
81931 
81932   template <>
81933   struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT>
81934   {
81935     using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT;
81936   };
81937 
81938   struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
81939   {
81940     using NativeType = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
81941 
81942     static const bool allowDuplicate = false;
81943     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
81944 
81945 
81946 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures81947 VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
81948     : pNext( pNext_ ), shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ )
81949     {}
81950 
81951     VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81952 
PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures81953     PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
81954       : PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( *reinterpret_cast<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const *>( &rhs ) )
81955     {}
81956 
81957 
81958     PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures & operator=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
81959 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
81960 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures81961     PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures & operator=( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
81962     {
81963       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const *>( &rhs );
81964       return *this;
81965     }
81966 
81967 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures81968     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
81969     {
81970       pNext = pNext_;
81971       return *this;
81972     }
81973 
setShaderZeroInitializeWorkgroupMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures81974     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures & setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
81975     {
81976       shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_;
81977       return *this;
81978     }
81979 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
81980 
81981 
operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures81982     operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const &() const VULKAN_HPP_NOEXCEPT
81983     {
81984       return *reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>( this );
81985     }
81986 
operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures81987     operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures &() VULKAN_HPP_NOEXCEPT
81988     {
81989       return *reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>( this );
81990     }
81991 
81992 #if defined( VULKAN_HPP_USE_REFLECT )
81993 #if 14 <= VULKAN_HPP_CPP_VERSION
81994     auto
81995 #else
81996     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
81997 #endif
reflectVULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures81998       reflect() const VULKAN_HPP_NOEXCEPT
81999     {
82000       return std::tie( sType, pNext, shaderZeroInitializeWorkgroupMemory );
82001     }
82002 #endif
82003 
82004 
82005 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
82006 auto operator<=>( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & ) const = default;
82007 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures82008     bool operator==( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
82009     {
82010 #if defined( VULKAN_HPP_USE_REFLECT )
82011       return this->reflect() == rhs.reflect();
82012 #else
82013       return ( sType == rhs.sType )
82014           && ( pNext == rhs.pNext )
82015           && ( shaderZeroInitializeWorkgroupMemory == rhs.shaderZeroInitializeWorkgroupMemory );
82016 #endif
82017     }
82018 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures82019     bool operator!=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
82020     {
82021       return !operator==( rhs );
82022     }
82023 #endif
82024 
82025     public:
82026     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
82027     void * pNext = {};
82028     VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory = {};
82029 
82030   };
82031 
82032   template <>
82033   struct CppType<StructureType, StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>
82034   {
82035     using Type = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
82036   };
82037   using PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
82038 
82039   struct PipelineCacheCreateInfo
82040   {
82041     using NativeType = VkPipelineCacheCreateInfo;
82042 
82043     static const bool allowDuplicate = false;
82044     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo;
82045 
82046 
82047 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82048 VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {}, size_t initialDataSize_ = {}, const void * pInitialData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
82049     : pNext( pNext_ ), flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ )
82050     {}
82051 
82052     VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82053 
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82054     PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
82055       : PipelineCacheCreateInfo( *reinterpret_cast<PipelineCacheCreateInfo const *>( &rhs ) )
82056     {}
82057 
82058 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
82059     template <typename T>
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82060     PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_, const void * pNext_ = nullptr )
82061     : pNext( pNext_ ), flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() )
82062     {}
82063 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82064 
82065 
82066     PipelineCacheCreateInfo & operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82067 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
82068 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82069     PipelineCacheCreateInfo & operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
82070     {
82071       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const *>( &rhs );
82072       return *this;
82073     }
82074 
82075 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82076     VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
82077     {
82078       pNext = pNext_;
82079       return *this;
82080     }
82081 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82082     VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
82083     {
82084       flags = flags_;
82085       return *this;
82086     }
82087 
setInitialDataSizeVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82088     VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
82089     {
82090       initialDataSize = initialDataSize_;
82091       return *this;
82092     }
82093 
setPInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82094     VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setPInitialData( const void * pInitialData_ ) VULKAN_HPP_NOEXCEPT
82095     {
82096       pInitialData = pInitialData_;
82097       return *this;
82098     }
82099 
82100 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
82101     template <typename T>
setInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82102     PipelineCacheCreateInfo & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
82103     {
82104       initialDataSize = initialData_.size() * sizeof(T);
82105       pInitialData = initialData_.data();
82106       return *this;
82107     }
82108 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82109 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
82110 
82111 
operator VkPipelineCacheCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82112     operator VkPipelineCacheCreateInfo const &() const VULKAN_HPP_NOEXCEPT
82113     {
82114       return *reinterpret_cast<const VkPipelineCacheCreateInfo*>( this );
82115     }
82116 
operator VkPipelineCacheCreateInfo&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82117     operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT
82118     {
82119       return *reinterpret_cast<VkPipelineCacheCreateInfo*>( this );
82120     }
82121 
82122 #if defined( VULKAN_HPP_USE_REFLECT )
82123 #if 14 <= VULKAN_HPP_CPP_VERSION
82124     auto
82125 #else
82126     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags const &, size_t const &, const void * const &>
82127 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82128       reflect() const VULKAN_HPP_NOEXCEPT
82129     {
82130       return std::tie( sType, pNext, flags, initialDataSize, pInitialData );
82131     }
82132 #endif
82133 
82134 
82135 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
82136 auto operator<=>( PipelineCacheCreateInfo const & ) const = default;
82137 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82138     bool operator==( PipelineCacheCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
82139     {
82140 #if defined( VULKAN_HPP_USE_REFLECT )
82141       return this->reflect() == rhs.reflect();
82142 #else
82143       return ( sType == rhs.sType )
82144           && ( pNext == rhs.pNext )
82145           && ( flags == rhs.flags )
82146           && ( initialDataSize == rhs.initialDataSize )
82147           && ( pInitialData == rhs.pInitialData );
82148 #endif
82149     }
82150 
operator !=VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo82151     bool operator!=( PipelineCacheCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
82152     {
82153       return !operator==( rhs );
82154     }
82155 #endif
82156 
82157     public:
82158     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo;
82159     const void * pNext = {};
82160     VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {};
82161     size_t initialDataSize = {};
82162     const void * pInitialData = {};
82163 
82164   };
82165 
82166   template <>
82167   struct CppType<StructureType, StructureType::ePipelineCacheCreateInfo>
82168   {
82169     using Type = PipelineCacheCreateInfo;
82170   };
82171 
82172   struct PipelineCacheHeaderVersionOne
82173   {
82174     using NativeType = VkPipelineCacheHeaderVersionOne;
82175 
82176 
82177 
82178 
82179 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCacheHeaderVersionOneVULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82180 VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne(uint32_t headerSize_ = {}, VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion_ = VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion::eOne, uint32_t vendorID_ = {}, uint32_t deviceID_ = {}, std::array<uint8_t,VK_UUID_SIZE> const & pipelineCacheUUID_ = {}) VULKAN_HPP_NOEXCEPT
82181     : headerSize( headerSize_ ), headerVersion( headerVersion_ ), vendorID( vendorID_ ), deviceID( deviceID_ ), pipelineCacheUUID( pipelineCacheUUID_ )
82182     {}
82183 
82184     VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne( PipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82185 
PipelineCacheHeaderVersionOneVULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82186     PipelineCacheHeaderVersionOne( VkPipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT
82187       : PipelineCacheHeaderVersionOne( *reinterpret_cast<PipelineCacheHeaderVersionOne const *>( &rhs ) )
82188     {}
82189 
82190 
82191     PipelineCacheHeaderVersionOne & operator=( PipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82192 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
82193 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82194     PipelineCacheHeaderVersionOne & operator=( VkPipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT
82195     {
82196       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne const *>( &rhs );
82197       return *this;
82198     }
82199 
82200 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setHeaderSizeVULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82201     VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setHeaderSize( uint32_t headerSize_ ) VULKAN_HPP_NOEXCEPT
82202     {
82203       headerSize = headerSize_;
82204       return *this;
82205     }
82206 
setHeaderVersionVULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82207     VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setHeaderVersion( VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion_ ) VULKAN_HPP_NOEXCEPT
82208     {
82209       headerVersion = headerVersion_;
82210       return *this;
82211     }
82212 
setVendorIDVULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82213     VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setVendorID( uint32_t vendorID_ ) VULKAN_HPP_NOEXCEPT
82214     {
82215       vendorID = vendorID_;
82216       return *this;
82217     }
82218 
setDeviceIDVULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82219     VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setDeviceID( uint32_t deviceID_ ) VULKAN_HPP_NOEXCEPT
82220     {
82221       deviceID = deviceID_;
82222       return *this;
82223     }
82224 
setPipelineCacheUUIDVULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82225     VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setPipelineCacheUUID( std::array<uint8_t,VK_UUID_SIZE> pipelineCacheUUID_ ) VULKAN_HPP_NOEXCEPT
82226     {
82227       pipelineCacheUUID = pipelineCacheUUID_;
82228       return *this;
82229     }
82230 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
82231 
82232 
operator VkPipelineCacheHeaderVersionOne const&VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82233     operator VkPipelineCacheHeaderVersionOne const &() const VULKAN_HPP_NOEXCEPT
82234     {
82235       return *reinterpret_cast<const VkPipelineCacheHeaderVersionOne*>( this );
82236     }
82237 
operator VkPipelineCacheHeaderVersionOne&VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82238     operator VkPipelineCacheHeaderVersionOne &() VULKAN_HPP_NOEXCEPT
82239     {
82240       return *reinterpret_cast<VkPipelineCacheHeaderVersionOne*>( this );
82241     }
82242 
82243 #if defined( VULKAN_HPP_USE_REFLECT )
82244 #if 14 <= VULKAN_HPP_CPP_VERSION
82245     auto
82246 #else
82247     std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
82248 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82249       reflect() const VULKAN_HPP_NOEXCEPT
82250     {
82251       return std::tie( headerSize, headerVersion, vendorID, deviceID, pipelineCacheUUID );
82252     }
82253 #endif
82254 
82255 
82256 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
82257 auto operator<=>( PipelineCacheHeaderVersionOne const & ) const = default;
82258 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82259     bool operator==( PipelineCacheHeaderVersionOne const & rhs ) const VULKAN_HPP_NOEXCEPT
82260     {
82261 #if defined( VULKAN_HPP_USE_REFLECT )
82262       return this->reflect() == rhs.reflect();
82263 #else
82264       return ( headerSize == rhs.headerSize )
82265           && ( headerVersion == rhs.headerVersion )
82266           && ( vendorID == rhs.vendorID )
82267           && ( deviceID == rhs.deviceID )
82268           && ( pipelineCacheUUID == rhs.pipelineCacheUUID );
82269 #endif
82270     }
82271 
operator !=VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne82272     bool operator!=( PipelineCacheHeaderVersionOne const & rhs ) const VULKAN_HPP_NOEXCEPT
82273     {
82274       return !operator==( rhs );
82275     }
82276 #endif
82277 
82278     public:
82279     uint32_t headerSize = {};
82280     VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion = VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion::eOne;
82281     uint32_t vendorID = {};
82282     uint32_t deviceID = {};
82283     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
82284 
82285   };
82286 
82287   struct PipelineColorBlendAdvancedStateCreateInfoEXT
82288   {
82289     using NativeType = VkPipelineColorBlendAdvancedStateCreateInfoEXT;
82290 
82291     static const bool allowDuplicate = false;
82292     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
82293 
82294 
82295 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82296 VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {}, VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {}, VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
82297     : pNext( pNext_ ), srcPremultiplied( srcPremultiplied_ ), dstPremultiplied( dstPremultiplied_ ), blendOverlap( blendOverlap_ )
82298     {}
82299 
82300     VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82301 
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82302     PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
82303       : PipelineColorBlendAdvancedStateCreateInfoEXT( *reinterpret_cast<PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs ) )
82304     {}
82305 
82306 
82307     PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82308 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
82309 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82310     PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
82311     {
82312       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs );
82313       return *this;
82314     }
82315 
82316 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82317     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
82318     {
82319       pNext = pNext_;
82320       return *this;
82321     }
82322 
setSrcPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82323     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
82324     {
82325       srcPremultiplied = srcPremultiplied_;
82326       return *this;
82327     }
82328 
setDstPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82329     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
82330     {
82331       dstPremultiplied = dstPremultiplied_;
82332       return *this;
82333     }
82334 
setBlendOverlapVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82335     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
82336     {
82337       blendOverlap = blendOverlap_;
82338       return *this;
82339     }
82340 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
82341 
82342 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82343     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
82344     {
82345       return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
82346     }
82347 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82348     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
82349     {
82350       return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
82351     }
82352 
82353 #if defined( VULKAN_HPP_USE_REFLECT )
82354 #if 14 <= VULKAN_HPP_CPP_VERSION
82355     auto
82356 #else
82357     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::BlendOverlapEXT const &>
82358 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82359       reflect() const VULKAN_HPP_NOEXCEPT
82360     {
82361       return std::tie( sType, pNext, srcPremultiplied, dstPremultiplied, blendOverlap );
82362     }
82363 #endif
82364 
82365 
82366 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
82367 auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const & ) const = default;
82368 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82369     bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
82370     {
82371 #if defined( VULKAN_HPP_USE_REFLECT )
82372       return this->reflect() == rhs.reflect();
82373 #else
82374       return ( sType == rhs.sType )
82375           && ( pNext == rhs.pNext )
82376           && ( srcPremultiplied == rhs.srcPremultiplied )
82377           && ( dstPremultiplied == rhs.dstPremultiplied )
82378           && ( blendOverlap == rhs.blendOverlap );
82379 #endif
82380     }
82381 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT82382     bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
82383     {
82384       return !operator==( rhs );
82385     }
82386 #endif
82387 
82388     public:
82389     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
82390     const void * pNext = {};
82391     VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {};
82392     VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {};
82393     VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated;
82394 
82395   };
82396 
82397   template <>
82398   struct CppType<StructureType, StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT>
82399   {
82400     using Type = PipelineColorBlendAdvancedStateCreateInfoEXT;
82401   };
82402 
82403   struct PipelineColorWriteCreateInfoEXT
82404   {
82405     using NativeType = VkPipelineColorWriteCreateInfoEXT;
82406 
82407     static const bool allowDuplicate = false;
82408     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorWriteCreateInfoEXT;
82409 
82410 
82411 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorWriteCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82412 VULKAN_HPP_CONSTEXPR PipelineColorWriteCreateInfoEXT(uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
82413     : pNext( pNext_ ), attachmentCount( attachmentCount_ ), pColorWriteEnables( pColorWriteEnables_ )
82414     {}
82415 
82416     VULKAN_HPP_CONSTEXPR PipelineColorWriteCreateInfoEXT( PipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82417 
PipelineColorWriteCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82418     PipelineColorWriteCreateInfoEXT( VkPipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
82419       : PipelineColorWriteCreateInfoEXT( *reinterpret_cast<PipelineColorWriteCreateInfoEXT const *>( &rhs ) )
82420     {}
82421 
82422 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineColorWriteCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82423     PipelineColorWriteCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables_, const void * pNext_ = nullptr )
82424     : pNext( pNext_ ), attachmentCount( static_cast<uint32_t>( colorWriteEnables_.size() ) ), pColorWriteEnables( colorWriteEnables_.data() )
82425     {}
82426 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82427 
82428 
82429     PipelineColorWriteCreateInfoEXT & operator=( PipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82430 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
82431 
operator =VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82432     PipelineColorWriteCreateInfoEXT & operator=( VkPipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
82433     {
82434       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT const *>( &rhs );
82435       return *this;
82436     }
82437 
82438 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82439     VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
82440     {
82441       pNext = pNext_;
82442       return *this;
82443     }
82444 
setAttachmentCountVULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82445     VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
82446     {
82447       attachmentCount = attachmentCount_;
82448       return *this;
82449     }
82450 
setPColorWriteEnablesVULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82451     VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT & setPColorWriteEnables( const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ ) VULKAN_HPP_NOEXCEPT
82452     {
82453       pColorWriteEnables = pColorWriteEnables_;
82454       return *this;
82455     }
82456 
82457 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setColorWriteEnablesVULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82458     PipelineColorWriteCreateInfoEXT & setColorWriteEnables( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables_ ) VULKAN_HPP_NOEXCEPT
82459     {
82460       attachmentCount = static_cast<uint32_t>( colorWriteEnables_.size() );
82461       pColorWriteEnables = colorWriteEnables_.data();
82462       return *this;
82463     }
82464 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82465 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
82466 
82467 
operator VkPipelineColorWriteCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82468     operator VkPipelineColorWriteCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
82469     {
82470       return *reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>( this );
82471     }
82472 
operator VkPipelineColorWriteCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82473     operator VkPipelineColorWriteCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
82474     {
82475       return *reinterpret_cast<VkPipelineColorWriteCreateInfoEXT*>( this );
82476     }
82477 
82478 #if defined( VULKAN_HPP_USE_REFLECT )
82479 #if 14 <= VULKAN_HPP_CPP_VERSION
82480     auto
82481 #else
82482     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Bool32 * const &>
82483 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82484       reflect() const VULKAN_HPP_NOEXCEPT
82485     {
82486       return std::tie( sType, pNext, attachmentCount, pColorWriteEnables );
82487     }
82488 #endif
82489 
82490 
82491 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
82492 auto operator<=>( PipelineColorWriteCreateInfoEXT const & ) const = default;
82493 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82494     bool operator==( PipelineColorWriteCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
82495     {
82496 #if defined( VULKAN_HPP_USE_REFLECT )
82497       return this->reflect() == rhs.reflect();
82498 #else
82499       return ( sType == rhs.sType )
82500           && ( pNext == rhs.pNext )
82501           && ( attachmentCount == rhs.attachmentCount )
82502           && ( pColorWriteEnables == rhs.pColorWriteEnables );
82503 #endif
82504     }
82505 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT82506     bool operator!=( PipelineColorWriteCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
82507     {
82508       return !operator==( rhs );
82509     }
82510 #endif
82511 
82512     public:
82513     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorWriteCreateInfoEXT;
82514     const void * pNext = {};
82515     uint32_t attachmentCount = {};
82516     const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables = {};
82517 
82518   };
82519 
82520   template <>
82521   struct CppType<StructureType, StructureType::ePipelineColorWriteCreateInfoEXT>
82522   {
82523     using Type = PipelineColorWriteCreateInfoEXT;
82524   };
82525 
82526   struct PipelineCompilerControlCreateInfoAMD
82527   {
82528     using NativeType = VkPipelineCompilerControlCreateInfoAMD;
82529 
82530     static const bool allowDuplicate = false;
82531     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCompilerControlCreateInfoAMD;
82532 
82533 
82534 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD82535 VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD(VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
82536     : pNext( pNext_ ), compilerControlFlags( compilerControlFlags_ )
82537     {}
82538 
82539     VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82540 
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD82541     PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
82542       : PipelineCompilerControlCreateInfoAMD( *reinterpret_cast<PipelineCompilerControlCreateInfoAMD const *>( &rhs ) )
82543     {}
82544 
82545 
82546     PipelineCompilerControlCreateInfoAMD & operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82547 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
82548 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD82549     PipelineCompilerControlCreateInfoAMD & operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
82550     {
82551       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const *>( &rhs );
82552       return *this;
82553     }
82554 
82555 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD82556     VULKAN_HPP_CONSTEXPR_14 PipelineCompilerControlCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
82557     {
82558       pNext = pNext_;
82559       return *this;
82560     }
82561 
setCompilerControlFlagsVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD82562     VULKAN_HPP_CONSTEXPR_14 PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT
82563     {
82564       compilerControlFlags = compilerControlFlags_;
82565       return *this;
82566     }
82567 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
82568 
82569 
operator VkPipelineCompilerControlCreateInfoAMD const&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD82570     operator VkPipelineCompilerControlCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
82571     {
82572       return *reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>( this );
82573     }
82574 
operator VkPipelineCompilerControlCreateInfoAMD&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD82575     operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
82576     {
82577       return *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>( this );
82578     }
82579 
82580 #if defined( VULKAN_HPP_USE_REFLECT )
82581 #if 14 <= VULKAN_HPP_CPP_VERSION
82582     auto
82583 #else
82584     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD const &>
82585 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD82586       reflect() const VULKAN_HPP_NOEXCEPT
82587     {
82588       return std::tie( sType, pNext, compilerControlFlags );
82589     }
82590 #endif
82591 
82592 
82593 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
82594 auto operator<=>( PipelineCompilerControlCreateInfoAMD const & ) const = default;
82595 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD82596     bool operator==( PipelineCompilerControlCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
82597     {
82598 #if defined( VULKAN_HPP_USE_REFLECT )
82599       return this->reflect() == rhs.reflect();
82600 #else
82601       return ( sType == rhs.sType )
82602           && ( pNext == rhs.pNext )
82603           && ( compilerControlFlags == rhs.compilerControlFlags );
82604 #endif
82605     }
82606 
operator !=VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD82607     bool operator!=( PipelineCompilerControlCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
82608     {
82609       return !operator==( rhs );
82610     }
82611 #endif
82612 
82613     public:
82614     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD;
82615     const void * pNext = {};
82616     VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {};
82617 
82618   };
82619 
82620   template <>
82621   struct CppType<StructureType, StructureType::ePipelineCompilerControlCreateInfoAMD>
82622   {
82623     using Type = PipelineCompilerControlCreateInfoAMD;
82624   };
82625 
82626   struct PipelineCoverageModulationStateCreateInfoNV
82627   {
82628     using NativeType = VkPipelineCoverageModulationStateCreateInfoNV;
82629 
82630     static const bool allowDuplicate = false;
82631     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
82632 
82633 
82634 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82635 VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ = {}, uint32_t coverageModulationTableCount_ = {}, const float * pCoverageModulationTable_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
82636     : pNext( pNext_ ), flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( coverageModulationTableCount_ ), pCoverageModulationTable( pCoverageModulationTable_ )
82637     {}
82638 
82639     VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82640 
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82641     PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
82642       : PipelineCoverageModulationStateCreateInfoNV( *reinterpret_cast<PipelineCoverageModulationStateCreateInfoNV const *>( &rhs ) )
82643     {}
82644 
82645 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82646     PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_, const void * pNext_ = nullptr )
82647     : pNext( pNext_ ), flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( static_cast<uint32_t>( coverageModulationTable_.size() ) ), pCoverageModulationTable( coverageModulationTable_.data() )
82648     {}
82649 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82650 
82651 
82652     PipelineCoverageModulationStateCreateInfoNV & operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82653 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
82654 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82655     PipelineCoverageModulationStateCreateInfoNV & operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
82656     {
82657       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const *>( &rhs );
82658       return *this;
82659     }
82660 
82661 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82662     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
82663     {
82664       pNext = pNext_;
82665       return *this;
82666     }
82667 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82668     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
82669     {
82670       flags = flags_;
82671       return *this;
82672     }
82673 
setCoverageModulationModeVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82674     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
82675     {
82676       coverageModulationMode = coverageModulationMode_;
82677       return *this;
82678     }
82679 
setCoverageModulationTableEnableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82680     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
82681     {
82682       coverageModulationTableEnable = coverageModulationTableEnable_;
82683       return *this;
82684     }
82685 
setCoverageModulationTableCountVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82686     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT
82687     {
82688       coverageModulationTableCount = coverageModulationTableCount_;
82689       return *this;
82690     }
82691 
setPCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82692     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float * pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
82693     {
82694       pCoverageModulationTable = pCoverageModulationTable_;
82695       return *this;
82696     }
82697 
82698 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82699     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTable( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
82700     {
82701       coverageModulationTableCount = static_cast<uint32_t>( coverageModulationTable_.size() );
82702       pCoverageModulationTable = coverageModulationTable_.data();
82703       return *this;
82704     }
82705 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82706 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
82707 
82708 
operator VkPipelineCoverageModulationStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82709     operator VkPipelineCoverageModulationStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
82710     {
82711       return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>( this );
82712     }
82713 
operator VkPipelineCoverageModulationStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82714     operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
82715     {
82716       return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>( this );
82717     }
82718 
82719 #if defined( VULKAN_HPP_USE_REFLECT )
82720 #if 14 <= VULKAN_HPP_CPP_VERSION
82721     auto
82722 #else
82723     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV const &, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, const float * const &>
82724 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82725       reflect() const VULKAN_HPP_NOEXCEPT
82726     {
82727       return std::tie( sType, pNext, flags, coverageModulationMode, coverageModulationTableEnable, coverageModulationTableCount, pCoverageModulationTable );
82728     }
82729 #endif
82730 
82731 
82732 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
82733 auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const & ) const = default;
82734 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82735     bool operator==( PipelineCoverageModulationStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
82736     {
82737 #if defined( VULKAN_HPP_USE_REFLECT )
82738       return this->reflect() == rhs.reflect();
82739 #else
82740       return ( sType == rhs.sType )
82741           && ( pNext == rhs.pNext )
82742           && ( flags == rhs.flags )
82743           && ( coverageModulationMode == rhs.coverageModulationMode )
82744           && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable )
82745           && ( coverageModulationTableCount == rhs.coverageModulationTableCount )
82746           && ( pCoverageModulationTable == rhs.pCoverageModulationTable );
82747 #endif
82748     }
82749 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV82750     bool operator!=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
82751     {
82752       return !operator==( rhs );
82753     }
82754 #endif
82755 
82756     public:
82757     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
82758     const void * pNext = {};
82759     VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {};
82760     VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone;
82761     VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {};
82762     uint32_t coverageModulationTableCount = {};
82763     const float * pCoverageModulationTable = {};
82764 
82765   };
82766 
82767   template <>
82768   struct CppType<StructureType, StructureType::ePipelineCoverageModulationStateCreateInfoNV>
82769   {
82770     using Type = PipelineCoverageModulationStateCreateInfoNV;
82771   };
82772 
82773   struct PipelineCoverageReductionStateCreateInfoNV
82774   {
82775     using NativeType = VkPipelineCoverageReductionStateCreateInfoNV;
82776 
82777     static const bool allowDuplicate = false;
82778     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
82779 
82780 
82781 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82782 VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
82783     : pNext( pNext_ ), flags( flags_ ), coverageReductionMode( coverageReductionMode_ )
82784     {}
82785 
82786     VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82787 
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82788     PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
82789       : PipelineCoverageReductionStateCreateInfoNV( *reinterpret_cast<PipelineCoverageReductionStateCreateInfoNV const *>( &rhs ) )
82790     {}
82791 
82792 
82793     PipelineCoverageReductionStateCreateInfoNV & operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82794 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
82795 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82796     PipelineCoverageReductionStateCreateInfoNV & operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
82797     {
82798       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const *>( &rhs );
82799       return *this;
82800     }
82801 
82802 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82803     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
82804     {
82805       pNext = pNext_;
82806       return *this;
82807     }
82808 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82809     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
82810     {
82811       flags = flags_;
82812       return *this;
82813     }
82814 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82815     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
82816     {
82817       coverageReductionMode = coverageReductionMode_;
82818       return *this;
82819     }
82820 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
82821 
82822 
operator VkPipelineCoverageReductionStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82823     operator VkPipelineCoverageReductionStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
82824     {
82825       return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>( this );
82826     }
82827 
operator VkPipelineCoverageReductionStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82828     operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
82829     {
82830       return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>( this );
82831     }
82832 
82833 #if defined( VULKAN_HPP_USE_REFLECT )
82834 #if 14 <= VULKAN_HPP_CPP_VERSION
82835     auto
82836 #else
82837     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV const &, VULKAN_HPP_NAMESPACE::CoverageReductionModeNV const &>
82838 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82839       reflect() const VULKAN_HPP_NOEXCEPT
82840     {
82841       return std::tie( sType, pNext, flags, coverageReductionMode );
82842     }
82843 #endif
82844 
82845 
82846 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
82847 auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const & ) const = default;
82848 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82849     bool operator==( PipelineCoverageReductionStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
82850     {
82851 #if defined( VULKAN_HPP_USE_REFLECT )
82852       return this->reflect() == rhs.reflect();
82853 #else
82854       return ( sType == rhs.sType )
82855           && ( pNext == rhs.pNext )
82856           && ( flags == rhs.flags )
82857           && ( coverageReductionMode == rhs.coverageReductionMode );
82858 #endif
82859     }
82860 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV82861     bool operator!=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
82862     {
82863       return !operator==( rhs );
82864     }
82865 #endif
82866 
82867     public:
82868     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
82869     const void * pNext = {};
82870     VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {};
82871     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
82872 
82873   };
82874 
82875   template <>
82876   struct CppType<StructureType, StructureType::ePipelineCoverageReductionStateCreateInfoNV>
82877   {
82878     using Type = PipelineCoverageReductionStateCreateInfoNV;
82879   };
82880 
82881   struct PipelineCoverageToColorStateCreateInfoNV
82882   {
82883     using NativeType = VkPipelineCoverageToColorStateCreateInfoNV;
82884 
82885     static const bool allowDuplicate = false;
82886     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
82887 
82888 
82889 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82890 VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {}, uint32_t coverageToColorLocation_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
82891     : pNext( pNext_ ), flags( flags_ ), coverageToColorEnable( coverageToColorEnable_ ), coverageToColorLocation( coverageToColorLocation_ )
82892     {}
82893 
82894     VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82895 
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82896     PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
82897       : PipelineCoverageToColorStateCreateInfoNV( *reinterpret_cast<PipelineCoverageToColorStateCreateInfoNV const *>( &rhs ) )
82898     {}
82899 
82900 
82901     PipelineCoverageToColorStateCreateInfoNV & operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
82902 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
82903 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82904     PipelineCoverageToColorStateCreateInfoNV & operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
82905     {
82906       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const *>( &rhs );
82907       return *this;
82908     }
82909 
82910 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82911     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
82912     {
82913       pNext = pNext_;
82914       return *this;
82915     }
82916 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82917     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
82918     {
82919       flags = flags_;
82920       return *this;
82921     }
82922 
setCoverageToColorEnableVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82923     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
82924     {
82925       coverageToColorEnable = coverageToColorEnable_;
82926       return *this;
82927     }
82928 
setCoverageToColorLocationVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82929     VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT
82930     {
82931       coverageToColorLocation = coverageToColorLocation_;
82932       return *this;
82933     }
82934 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
82935 
82936 
operator VkPipelineCoverageToColorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82937     operator VkPipelineCoverageToColorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
82938     {
82939       return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>( this );
82940     }
82941 
operator VkPipelineCoverageToColorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82942     operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
82943     {
82944       return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>( this );
82945     }
82946 
82947 #if defined( VULKAN_HPP_USE_REFLECT )
82948 #if 14 <= VULKAN_HPP_CPP_VERSION
82949     auto
82950 #else
82951     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &>
82952 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82953       reflect() const VULKAN_HPP_NOEXCEPT
82954     {
82955       return std::tie( sType, pNext, flags, coverageToColorEnable, coverageToColorLocation );
82956     }
82957 #endif
82958 
82959 
82960 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
82961 auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const & ) const = default;
82962 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82963     bool operator==( PipelineCoverageToColorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
82964     {
82965 #if defined( VULKAN_HPP_USE_REFLECT )
82966       return this->reflect() == rhs.reflect();
82967 #else
82968       return ( sType == rhs.sType )
82969           && ( pNext == rhs.pNext )
82970           && ( flags == rhs.flags )
82971           && ( coverageToColorEnable == rhs.coverageToColorEnable )
82972           && ( coverageToColorLocation == rhs.coverageToColorLocation );
82973 #endif
82974     }
82975 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV82976     bool operator!=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
82977     {
82978       return !operator==( rhs );
82979     }
82980 #endif
82981 
82982     public:
82983     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
82984     const void * pNext = {};
82985     VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {};
82986     VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {};
82987     uint32_t coverageToColorLocation = {};
82988 
82989   };
82990 
82991   template <>
82992   struct CppType<StructureType, StructureType::ePipelineCoverageToColorStateCreateInfoNV>
82993   {
82994     using Type = PipelineCoverageToColorStateCreateInfoNV;
82995   };
82996 
82997   struct PipelineCreateFlags2CreateInfoKHR
82998   {
82999     using NativeType = VkPipelineCreateFlags2CreateInfoKHR;
83000 
83001     static const bool allowDuplicate = false;
83002     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreateFlags2CreateInfoKHR;
83003 
83004 
83005 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreateFlags2CreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR83006 VULKAN_HPP_CONSTEXPR PipelineCreateFlags2CreateInfoKHR(VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
83007     : pNext( pNext_ ), flags( flags_ )
83008     {}
83009 
83010     VULKAN_HPP_CONSTEXPR PipelineCreateFlags2CreateInfoKHR( PipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83011 
PipelineCreateFlags2CreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR83012     PipelineCreateFlags2CreateInfoKHR( VkPipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
83013       : PipelineCreateFlags2CreateInfoKHR( *reinterpret_cast<PipelineCreateFlags2CreateInfoKHR const *>( &rhs ) )
83014     {}
83015 
83016 
83017     PipelineCreateFlags2CreateInfoKHR & operator=( PipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83018 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
83019 
operator =VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR83020     PipelineCreateFlags2CreateInfoKHR & operator=( VkPipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
83021     {
83022       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR const *>( &rhs );
83023       return *this;
83024     }
83025 
83026 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR83027     VULKAN_HPP_CONSTEXPR_14 PipelineCreateFlags2CreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
83028     {
83029       pNext = pNext_;
83030       return *this;
83031     }
83032 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR83033     VULKAN_HPP_CONSTEXPR_14 PipelineCreateFlags2CreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR flags_ ) VULKAN_HPP_NOEXCEPT
83034     {
83035       flags = flags_;
83036       return *this;
83037     }
83038 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
83039 
83040 
operator VkPipelineCreateFlags2CreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR83041     operator VkPipelineCreateFlags2CreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
83042     {
83043       return *reinterpret_cast<const VkPipelineCreateFlags2CreateInfoKHR*>( this );
83044     }
83045 
operator VkPipelineCreateFlags2CreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR83046     operator VkPipelineCreateFlags2CreateInfoKHR &() VULKAN_HPP_NOEXCEPT
83047     {
83048       return *reinterpret_cast<VkPipelineCreateFlags2CreateInfoKHR*>( this );
83049     }
83050 
83051 #if defined( VULKAN_HPP_USE_REFLECT )
83052 #if 14 <= VULKAN_HPP_CPP_VERSION
83053     auto
83054 #else
83055     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR const &>
83056 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR83057       reflect() const VULKAN_HPP_NOEXCEPT
83058     {
83059       return std::tie( sType, pNext, flags );
83060     }
83061 #endif
83062 
83063 
83064 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
83065 auto operator<=>( PipelineCreateFlags2CreateInfoKHR const & ) const = default;
83066 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR83067     bool operator==( PipelineCreateFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
83068     {
83069 #if defined( VULKAN_HPP_USE_REFLECT )
83070       return this->reflect() == rhs.reflect();
83071 #else
83072       return ( sType == rhs.sType )
83073           && ( pNext == rhs.pNext )
83074           && ( flags == rhs.flags );
83075 #endif
83076     }
83077 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR83078     bool operator!=( PipelineCreateFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
83079     {
83080       return !operator==( rhs );
83081     }
83082 #endif
83083 
83084     public:
83085     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreateFlags2CreateInfoKHR;
83086     const void * pNext = {};
83087     VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR flags = {};
83088 
83089   };
83090 
83091   template <>
83092   struct CppType<StructureType, StructureType::ePipelineCreateFlags2CreateInfoKHR>
83093   {
83094     using Type = PipelineCreateFlags2CreateInfoKHR;
83095   };
83096 
83097   struct PipelineCreationFeedback
83098   {
83099     using NativeType = VkPipelineCreationFeedback;
83100 
83101 
83102 
83103 
83104 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreationFeedbackVULKAN_HPP_NAMESPACE::PipelineCreationFeedback83105 VULKAN_HPP_CONSTEXPR PipelineCreationFeedback(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags flags_ = {}, uint64_t duration_ = {}) VULKAN_HPP_NOEXCEPT
83106     : flags( flags_ ), duration( duration_ )
83107     {}
83108 
83109     VULKAN_HPP_CONSTEXPR PipelineCreationFeedback( PipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83110 
PipelineCreationFeedbackVULKAN_HPP_NAMESPACE::PipelineCreationFeedback83111     PipelineCreationFeedback( VkPipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT
83112       : PipelineCreationFeedback( *reinterpret_cast<PipelineCreationFeedback const *>( &rhs ) )
83113     {}
83114 
83115 
83116     PipelineCreationFeedback & operator=( PipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83117 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
83118 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedback83119     PipelineCreationFeedback & operator=( VkPipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT
83120     {
83121       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback const *>( &rhs );
83122       return *this;
83123     }
83124 
83125 
operator VkPipelineCreationFeedback const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedback83126     operator VkPipelineCreationFeedback const &() const VULKAN_HPP_NOEXCEPT
83127     {
83128       return *reinterpret_cast<const VkPipelineCreationFeedback*>( this );
83129     }
83130 
operator VkPipelineCreationFeedback&VULKAN_HPP_NAMESPACE::PipelineCreationFeedback83131     operator VkPipelineCreationFeedback &() VULKAN_HPP_NOEXCEPT
83132     {
83133       return *reinterpret_cast<VkPipelineCreationFeedback*>( this );
83134     }
83135 
83136 #if defined( VULKAN_HPP_USE_REFLECT )
83137 #if 14 <= VULKAN_HPP_CPP_VERSION
83138     auto
83139 #else
83140     std::tuple<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags const &, uint64_t const &>
83141 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineCreationFeedback83142       reflect() const VULKAN_HPP_NOEXCEPT
83143     {
83144       return std::tie( flags, duration );
83145     }
83146 #endif
83147 
83148 
83149 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
83150 auto operator<=>( PipelineCreationFeedback const & ) const = default;
83151 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedback83152     bool operator==( PipelineCreationFeedback const & rhs ) const VULKAN_HPP_NOEXCEPT
83153     {
83154 #if defined( VULKAN_HPP_USE_REFLECT )
83155       return this->reflect() == rhs.reflect();
83156 #else
83157       return ( flags == rhs.flags )
83158           && ( duration == rhs.duration );
83159 #endif
83160     }
83161 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedback83162     bool operator!=( PipelineCreationFeedback const & rhs ) const VULKAN_HPP_NOEXCEPT
83163     {
83164       return !operator==( rhs );
83165     }
83166 #endif
83167 
83168     public:
83169     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags flags = {};
83170     uint64_t duration = {};
83171 
83172   };
83173   using PipelineCreationFeedbackEXT = PipelineCreationFeedback;
83174 
83175   struct PipelineCreationFeedbackCreateInfo
83176   {
83177     using NativeType = VkPipelineCreationFeedbackCreateInfo;
83178 
83179     static const bool allowDuplicate = false;
83180     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreationFeedbackCreateInfo;
83181 
83182 
83183 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreationFeedbackCreateInfoVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83184 VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_ = {}, uint32_t pipelineStageCreationFeedbackCount_ = {}, VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineStageCreationFeedbacks_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
83185     : pNext( pNext_ ), pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ ), pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
83186     {}
83187 
83188     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfo( PipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83189 
PipelineCreationFeedbackCreateInfoVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83190     PipelineCreationFeedbackCreateInfo( VkPipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
83191       : PipelineCreationFeedbackCreateInfo( *reinterpret_cast<PipelineCreationFeedbackCreateInfo const *>( &rhs ) )
83192     {}
83193 
83194 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineCreationFeedbackCreateInfoVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83195     PipelineCreationFeedbackCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback> const & pipelineStageCreationFeedbacks_, const void * pNext_ = nullptr )
83196     : pNext( pNext_ ), pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() ) ), pPipelineStageCreationFeedbacks( pipelineStageCreationFeedbacks_.data() )
83197     {}
83198 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83199 
83200 
83201     PipelineCreationFeedbackCreateInfo & operator=( PipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83202 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
83203 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83204     PipelineCreationFeedbackCreateInfo & operator=( VkPipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
83205     {
83206       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo const *>( &rhs );
83207       return *this;
83208     }
83209 
83210 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83211     VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
83212     {
83213       pNext = pNext_;
83214       return *this;
83215     }
83216 
setPPipelineCreationFeedbackVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83217     VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo & setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT
83218     {
83219       pPipelineCreationFeedback = pPipelineCreationFeedback_;
83220       return *this;
83221     }
83222 
setPipelineStageCreationFeedbackCountVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83223     VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT
83224     {
83225       pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
83226       return *this;
83227     }
83228 
setPPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83229     VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo & setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
83230     {
83231       pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_;
83232       return *this;
83233     }
83234 
83235 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83236     PipelineCreationFeedbackCreateInfo & setPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback> const & pipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
83237     {
83238       pipelineStageCreationFeedbackCount = static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() );
83239       pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data();
83240       return *this;
83241     }
83242 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83243 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
83244 
83245 
operator VkPipelineCreationFeedbackCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83246     operator VkPipelineCreationFeedbackCreateInfo const &() const VULKAN_HPP_NOEXCEPT
83247     {
83248       return *reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo*>( this );
83249     }
83250 
operator VkPipelineCreationFeedbackCreateInfo&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83251     operator VkPipelineCreationFeedbackCreateInfo &() VULKAN_HPP_NOEXCEPT
83252     {
83253       return *reinterpret_cast<VkPipelineCreationFeedbackCreateInfo*>( this );
83254     }
83255 
83256 #if defined( VULKAN_HPP_USE_REFLECT )
83257 #if 14 <= VULKAN_HPP_CPP_VERSION
83258     auto
83259 #else
83260     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * const &>
83261 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83262       reflect() const VULKAN_HPP_NOEXCEPT
83263     {
83264       return std::tie( sType, pNext, pPipelineCreationFeedback, pipelineStageCreationFeedbackCount, pPipelineStageCreationFeedbacks );
83265     }
83266 #endif
83267 
83268 
83269 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
83270 auto operator<=>( PipelineCreationFeedbackCreateInfo const & ) const = default;
83271 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83272     bool operator==( PipelineCreationFeedbackCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
83273     {
83274 #if defined( VULKAN_HPP_USE_REFLECT )
83275       return this->reflect() == rhs.reflect();
83276 #else
83277       return ( sType == rhs.sType )
83278           && ( pNext == rhs.pNext )
83279           && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback )
83280           && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount )
83281           && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks );
83282 #endif
83283     }
83284 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo83285     bool operator!=( PipelineCreationFeedbackCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
83286     {
83287       return !operator==( rhs );
83288     }
83289 #endif
83290 
83291     public:
83292     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfo;
83293     const void * pNext = {};
83294     VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback = {};
83295     uint32_t pipelineStageCreationFeedbackCount = {};
83296     VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineStageCreationFeedbacks = {};
83297 
83298   };
83299 
83300   template <>
83301   struct CppType<StructureType, StructureType::ePipelineCreationFeedbackCreateInfo>
83302   {
83303     using Type = PipelineCreationFeedbackCreateInfo;
83304   };
83305   using PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo;
83306 
83307   struct PipelineDiscardRectangleStateCreateInfoEXT
83308   {
83309     using NativeType = VkPipelineDiscardRectangleStateCreateInfoEXT;
83310 
83311     static const bool allowDuplicate = false;
83312     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
83313 
83314 
83315 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83316 VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive, uint32_t discardRectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
83317     : pNext( pNext_ ), flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( discardRectangleCount_ ), pDiscardRectangles( pDiscardRectangles_ )
83318     {}
83319 
83320     VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83321 
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83322     PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
83323       : PipelineDiscardRectangleStateCreateInfoEXT( *reinterpret_cast<PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs ) )
83324     {}
83325 
83326 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83327     PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_, const void * pNext_ = nullptr )
83328     : pNext( pNext_ ), flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( static_cast<uint32_t>( discardRectangles_.size() ) ), pDiscardRectangles( discardRectangles_.data() )
83329     {}
83330 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83331 
83332 
83333     PipelineDiscardRectangleStateCreateInfoEXT & operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83334 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
83335 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83336     PipelineDiscardRectangleStateCreateInfoEXT & operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
83337     {
83338       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs );
83339       return *this;
83340     }
83341 
83342 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83343     VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
83344     {
83345       pNext = pNext_;
83346       return *this;
83347     }
83348 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83349     VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
83350     {
83351       flags = flags_;
83352       return *this;
83353     }
83354 
setDiscardRectangleModeVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83355     VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT
83356     {
83357       discardRectangleMode = discardRectangleMode_;
83358       return *this;
83359     }
83360 
setDiscardRectangleCountVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83361     VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT
83362     {
83363       discardRectangleCount = discardRectangleCount_;
83364       return *this;
83365     }
83366 
setPDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83367     VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT
83368     {
83369       pDiscardRectangles = pDiscardRectangles_;
83370       return *this;
83371     }
83372 
83373 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83374     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ ) VULKAN_HPP_NOEXCEPT
83375     {
83376       discardRectangleCount = static_cast<uint32_t>( discardRectangles_.size() );
83377       pDiscardRectangles = discardRectangles_.data();
83378       return *this;
83379     }
83380 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83381 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
83382 
83383 
operator VkPipelineDiscardRectangleStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83384     operator VkPipelineDiscardRectangleStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
83385     {
83386       return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
83387     }
83388 
operator VkPipelineDiscardRectangleStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83389     operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
83390     {
83391       return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
83392     }
83393 
83394 #if defined( VULKAN_HPP_USE_REFLECT )
83395 #if 14 <= VULKAN_HPP_CPP_VERSION
83396     auto
83397 #else
83398     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT const &, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
83399 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83400       reflect() const VULKAN_HPP_NOEXCEPT
83401     {
83402       return std::tie( sType, pNext, flags, discardRectangleMode, discardRectangleCount, pDiscardRectangles );
83403     }
83404 #endif
83405 
83406 
83407 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
83408 auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const & ) const = default;
83409 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83410     bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
83411     {
83412 #if defined( VULKAN_HPP_USE_REFLECT )
83413       return this->reflect() == rhs.reflect();
83414 #else
83415       return ( sType == rhs.sType )
83416           && ( pNext == rhs.pNext )
83417           && ( flags == rhs.flags )
83418           && ( discardRectangleMode == rhs.discardRectangleMode )
83419           && ( discardRectangleCount == rhs.discardRectangleCount )
83420           && ( pDiscardRectangles == rhs.pDiscardRectangles );
83421 #endif
83422     }
83423 
operator !=VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT83424     bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
83425     {
83426       return !operator==( rhs );
83427     }
83428 #endif
83429 
83430     public:
83431     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
83432     const void * pNext = {};
83433     VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {};
83434     VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive;
83435     uint32_t discardRectangleCount = {};
83436     const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles = {};
83437 
83438   };
83439 
83440   template <>
83441   struct CppType<StructureType, StructureType::ePipelineDiscardRectangleStateCreateInfoEXT>
83442   {
83443     using Type = PipelineDiscardRectangleStateCreateInfoEXT;
83444   };
83445 
83446   struct PipelineExecutableInfoKHR
83447   {
83448     using NativeType = VkPipelineExecutableInfoKHR;
83449 
83450     static const bool allowDuplicate = false;
83451     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR;
83452 
83453 
83454 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83455 VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, uint32_t executableIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
83456     : pNext( pNext_ ), pipeline( pipeline_ ), executableIndex( executableIndex_ )
83457     {}
83458 
83459     VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83460 
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83461     PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
83462       : PipelineExecutableInfoKHR( *reinterpret_cast<PipelineExecutableInfoKHR const *>( &rhs ) )
83463     {}
83464 
83465 
83466     PipelineExecutableInfoKHR & operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83467 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
83468 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83469     PipelineExecutableInfoKHR & operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
83470     {
83471       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const *>( &rhs );
83472       return *this;
83473     }
83474 
83475 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83476     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
83477     {
83478       pNext = pNext_;
83479       return *this;
83480     }
83481 
setPipelineVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83482     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
83483     {
83484       pipeline = pipeline_;
83485       return *this;
83486     }
83487 
setExecutableIndexVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83488     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT
83489     {
83490       executableIndex = executableIndex_;
83491       return *this;
83492     }
83493 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
83494 
83495 
operator VkPipelineExecutableInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83496     operator VkPipelineExecutableInfoKHR const &() const VULKAN_HPP_NOEXCEPT
83497     {
83498       return *reinterpret_cast<const VkPipelineExecutableInfoKHR*>( this );
83499     }
83500 
operator VkPipelineExecutableInfoKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83501     operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT
83502     {
83503       return *reinterpret_cast<VkPipelineExecutableInfoKHR*>( this );
83504     }
83505 
83506 #if defined( VULKAN_HPP_USE_REFLECT )
83507 #if 14 <= VULKAN_HPP_CPP_VERSION
83508     auto
83509 #else
83510     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Pipeline const &, uint32_t const &>
83511 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83512       reflect() const VULKAN_HPP_NOEXCEPT
83513     {
83514       return std::tie( sType, pNext, pipeline, executableIndex );
83515     }
83516 #endif
83517 
83518 
83519 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
83520 auto operator<=>( PipelineExecutableInfoKHR const & ) const = default;
83521 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83522     bool operator==( PipelineExecutableInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
83523     {
83524 #if defined( VULKAN_HPP_USE_REFLECT )
83525       return this->reflect() == rhs.reflect();
83526 #else
83527       return ( sType == rhs.sType )
83528           && ( pNext == rhs.pNext )
83529           && ( pipeline == rhs.pipeline )
83530           && ( executableIndex == rhs.executableIndex );
83531 #endif
83532     }
83533 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR83534     bool operator!=( PipelineExecutableInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
83535     {
83536       return !operator==( rhs );
83537     }
83538 #endif
83539 
83540     public:
83541     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR;
83542     const void * pNext = {};
83543     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
83544     uint32_t executableIndex = {};
83545 
83546   };
83547 
83548   template <>
83549   struct CppType<StructureType, StructureType::ePipelineExecutableInfoKHR>
83550   {
83551     using Type = PipelineExecutableInfoKHR;
83552   };
83553 
83554   struct PipelineExecutableInternalRepresentationKHR
83555   {
83556     using NativeType = VkPipelineExecutableInternalRepresentationKHR;
83557 
83558     static const bool allowDuplicate = false;
83559     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInternalRepresentationKHR;
83560 
83561 
83562 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR83563 VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR(std::array<char,VK_MAX_DESCRIPTION_SIZE> const & name_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & description_ = {}, VULKAN_HPP_NAMESPACE::Bool32 isText_ = {}, size_t dataSize_ = {}, void * pData_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
83564     : pNext( pNext_ ), name( name_ ), description( description_ ), isText( isText_ ), dataSize( dataSize_ ), pData( pData_ )
83565     {}
83566 
83567     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83568 
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR83569     PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
83570       : PipelineExecutableInternalRepresentationKHR( *reinterpret_cast<PipelineExecutableInternalRepresentationKHR const *>( &rhs ) )
83571     {}
83572 
83573 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
83574     template <typename T>
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR83575     PipelineExecutableInternalRepresentationKHR( std::array<char,VK_MAX_DESCRIPTION_SIZE> const & name_, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & description_, VULKAN_HPP_NAMESPACE::Bool32 isText_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<T> const & data_, void * pNext_ = nullptr )
83576     : pNext( pNext_ ), name( name_ ), description( description_ ), isText( isText_ ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
83577     {}
83578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83579 
83580 
83581     PipelineExecutableInternalRepresentationKHR & operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83582 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
83583 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR83584     PipelineExecutableInternalRepresentationKHR & operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
83585     {
83586       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const *>( &rhs );
83587       return *this;
83588     }
83589 
83590 
operator VkPipelineExecutableInternalRepresentationKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR83591     operator VkPipelineExecutableInternalRepresentationKHR const &() const VULKAN_HPP_NOEXCEPT
83592     {
83593       return *reinterpret_cast<const VkPipelineExecutableInternalRepresentationKHR*>( this );
83594     }
83595 
operator VkPipelineExecutableInternalRepresentationKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR83596     operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT
83597     {
83598       return *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( this );
83599     }
83600 
83601 #if defined( VULKAN_HPP_USE_REFLECT )
83602 #if 14 <= VULKAN_HPP_CPP_VERSION
83603     auto
83604 #else
83605     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, VULKAN_HPP_NAMESPACE::Bool32 const &, size_t const &, void * const &>
83606 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR83607       reflect() const VULKAN_HPP_NOEXCEPT
83608     {
83609       return std::tie( sType, pNext, name, description, isText, dataSize, pData );
83610     }
83611 #endif
83612 
83613 
83614 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
83615 auto operator<=>( PipelineExecutableInternalRepresentationKHR const & ) const = default;
83616 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR83617     bool operator==( PipelineExecutableInternalRepresentationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
83618     {
83619 #if defined( VULKAN_HPP_USE_REFLECT )
83620       return this->reflect() == rhs.reflect();
83621 #else
83622       return ( sType == rhs.sType )
83623           && ( pNext == rhs.pNext )
83624           && ( name == rhs.name )
83625           && ( description == rhs.description )
83626           && ( isText == rhs.isText )
83627           && ( dataSize == rhs.dataSize )
83628           && ( pData == rhs.pData );
83629 #endif
83630     }
83631 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR83632     bool operator!=( PipelineExecutableInternalRepresentationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
83633     {
83634       return !operator==( rhs );
83635     }
83636 #endif
83637 
83638     public:
83639     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR;
83640     void * pNext = {};
83641     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
83642     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
83643     VULKAN_HPP_NAMESPACE::Bool32 isText = {};
83644     size_t dataSize = {};
83645     void * pData = {};
83646 
83647   };
83648 
83649   template <>
83650   struct CppType<StructureType, StructureType::ePipelineExecutableInternalRepresentationKHR>
83651   {
83652     using Type = PipelineExecutableInternalRepresentationKHR;
83653   };
83654 
83655   struct PipelineExecutablePropertiesKHR
83656   {
83657     using NativeType = VkPipelineExecutablePropertiesKHR;
83658 
83659     static const bool allowDuplicate = false;
83660     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR;
83661 
83662 
83663 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR83664 VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR(VULKAN_HPP_NAMESPACE::ShaderStageFlags stages_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & name_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & description_ = {}, uint32_t subgroupSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
83665     : pNext( pNext_ ), stages( stages_ ), name( name_ ), description( description_ ), subgroupSize( subgroupSize_ )
83666     {}
83667 
83668     VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83669 
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR83670     PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
83671       : PipelineExecutablePropertiesKHR( *reinterpret_cast<PipelineExecutablePropertiesKHR const *>( &rhs ) )
83672     {}
83673 
83674 
83675     PipelineExecutablePropertiesKHR & operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83676 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
83677 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR83678     PipelineExecutablePropertiesKHR & operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
83679     {
83680       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const *>( &rhs );
83681       return *this;
83682     }
83683 
83684 
operator VkPipelineExecutablePropertiesKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR83685     operator VkPipelineExecutablePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
83686     {
83687       return *reinterpret_cast<const VkPipelineExecutablePropertiesKHR*>( this );
83688     }
83689 
operator VkPipelineExecutablePropertiesKHR&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR83690     operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT
83691     {
83692       return *reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( this );
83693     }
83694 
83695 #if defined( VULKAN_HPP_USE_REFLECT )
83696 #if 14 <= VULKAN_HPP_CPP_VERSION
83697     auto
83698 #else
83699     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, uint32_t const &>
83700 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR83701       reflect() const VULKAN_HPP_NOEXCEPT
83702     {
83703       return std::tie( sType, pNext, stages, name, description, subgroupSize );
83704     }
83705 #endif
83706 
83707 
83708 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
83709 auto operator<=>( PipelineExecutablePropertiesKHR const & ) const = default;
83710 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR83711     bool operator==( PipelineExecutablePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
83712     {
83713 #if defined( VULKAN_HPP_USE_REFLECT )
83714       return this->reflect() == rhs.reflect();
83715 #else
83716       return ( sType == rhs.sType )
83717           && ( pNext == rhs.pNext )
83718           && ( stages == rhs.stages )
83719           && ( name == rhs.name )
83720           && ( description == rhs.description )
83721           && ( subgroupSize == rhs.subgroupSize );
83722 #endif
83723     }
83724 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR83725     bool operator!=( PipelineExecutablePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
83726     {
83727       return !operator==( rhs );
83728     }
83729 #endif
83730 
83731     public:
83732     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR;
83733     void * pNext = {};
83734     VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {};
83735     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
83736     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
83737     uint32_t subgroupSize = {};
83738 
83739   };
83740 
83741   template <>
83742   struct CppType<StructureType, StructureType::ePipelineExecutablePropertiesKHR>
83743   {
83744     using Type = PipelineExecutablePropertiesKHR;
83745   };
83746 
83747   union PipelineExecutableStatisticValueKHR
83748   {
83749     using NativeType = VkPipelineExecutableStatisticValueKHR;
83750 #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
83751 
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::Bool32 b32_={} )83752     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} )
83753       : b32( b32_ )
83754     {}
83755 
PipelineExecutableStatisticValueKHR(int64_t i64_)83756     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( int64_t i64_ )
83757       : i64( i64_ )
83758     {}
83759 
PipelineExecutableStatisticValueKHR(uint64_t u64_)83760     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( uint64_t u64_ )
83761       : u64( u64_ )
83762     {}
83763 
PipelineExecutableStatisticValueKHR(double f64_)83764     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( double f64_ )
83765       : f64( f64_ )
83766     {}
83767 #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
83768 
83769 #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
setB32(VULKAN_HPP_NAMESPACE::Bool32 b32_)83770     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT
83771     {
83772       b32 = b32_;
83773       return *this;
83774     }
83775 
setI64(int64_t i64_)83776     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT
83777     {
83778       i64 = i64_;
83779       return *this;
83780     }
83781 
setU64(uint64_t u64_)83782     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT
83783     {
83784       u64 = u64_;
83785       return *this;
83786     }
83787 
setF64(double f64_)83788     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT
83789     {
83790       f64 = f64_;
83791       return *this;
83792     }
83793 #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
83794 
operator VkPipelineExecutableStatisticValueKHR const&() const83795     operator VkPipelineExecutableStatisticValueKHR const &() const
83796     {
83797       return *reinterpret_cast<const VkPipelineExecutableStatisticValueKHR*>( this );
83798     }
83799 
operator VkPipelineExecutableStatisticValueKHR&()83800     operator VkPipelineExecutableStatisticValueKHR &()
83801     {
83802       return *reinterpret_cast<VkPipelineExecutableStatisticValueKHR*>( this );
83803     }
83804 
83805 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
83806     VULKAN_HPP_NAMESPACE::Bool32 b32;
83807     int64_t i64;
83808     uint64_t u64;
83809     double f64;
83810 #else
83811     VkBool32 b32;
83812     int64_t i64;
83813     uint64_t u64;
83814     double f64;
83815 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
83816 
83817   };
83818 
83819   struct PipelineExecutableStatisticKHR
83820   {
83821     using NativeType = VkPipelineExecutableStatisticKHR;
83822 
83823     static const bool allowDuplicate = false;
83824     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR;
83825 
83826 
83827 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR83828 VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticKHR(std::array<char,VK_MAX_DESCRIPTION_SIZE> const & name_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & description_ = {}, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format_ = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
83829     : pNext( pNext_ ), name( name_ ), description( description_ ), format( format_ ), value( value_ )
83830     {}
83831 
83832     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticKHR( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83833 
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR83834     PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
83835       : PipelineExecutableStatisticKHR( *reinterpret_cast<PipelineExecutableStatisticKHR const *>( &rhs ) )
83836     {}
83837 
83838 
83839     PipelineExecutableStatisticKHR & operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83840 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
83841 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR83842     PipelineExecutableStatisticKHR & operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
83843     {
83844       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR const *>( &rhs );
83845       return *this;
83846     }
83847 
83848 
operator VkPipelineExecutableStatisticKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR83849     operator VkPipelineExecutableStatisticKHR const &() const VULKAN_HPP_NOEXCEPT
83850     {
83851       return *reinterpret_cast<const VkPipelineExecutableStatisticKHR*>( this );
83852     }
83853 
operator VkPipelineExecutableStatisticKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR83854     operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT
83855     {
83856       return *reinterpret_cast<VkPipelineExecutableStatisticKHR*>( this );
83857     }
83858 
83859 #if defined( VULKAN_HPP_USE_REFLECT )
83860 #if 14 <= VULKAN_HPP_CPP_VERSION
83861     auto
83862 #else
83863     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR const &, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const &>
83864 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR83865       reflect() const VULKAN_HPP_NOEXCEPT
83866     {
83867       return std::tie( sType, pNext, name, description, format, value );
83868     }
83869 #endif
83870 
83871 
83872     public:
83873     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR;
83874     void * pNext = {};
83875     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
83876     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
83877     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32;
83878     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {};
83879 
83880   };
83881 
83882   template <>
83883   struct CppType<StructureType, StructureType::ePipelineExecutableStatisticKHR>
83884   {
83885     using Type = PipelineExecutableStatisticKHR;
83886   };
83887 
83888   struct PipelineFragmentShadingRateEnumStateCreateInfoNV
83889   {
83890     using NativeType = VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
83891 
83892     static const bool allowDuplicate = false;
83893     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV;
83894 
83895 
83896 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineFragmentShadingRateEnumStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83897 VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize, VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel, std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> const & combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } }, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
83898     : pNext( pNext_ ), shadingRateType( shadingRateType_ ), shadingRate( shadingRate_ ), combinerOps( combinerOps_ )
83899     {}
83900 
83901     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83902 
PipelineFragmentShadingRateEnumStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83903     PipelineFragmentShadingRateEnumStateCreateInfoNV( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
83904       : PipelineFragmentShadingRateEnumStateCreateInfoNV( *reinterpret_cast<PipelineFragmentShadingRateEnumStateCreateInfoNV const *>( &rhs ) )
83905     {}
83906 
83907 
83908     PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
83909 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
83910 
operator =VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83911     PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
83912     {
83913       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV const *>( &rhs );
83914       return *this;
83915     }
83916 
83917 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83918     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
83919     {
83920       pNext = pNext_;
83921       return *this;
83922     }
83923 
setShadingRateTypeVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83924     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV & setShadingRateType( VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ ) VULKAN_HPP_NOEXCEPT
83925     {
83926       shadingRateType = shadingRateType_;
83927       return *this;
83928     }
83929 
setShadingRateVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83930     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV & setShadingRate( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
83931     {
83932       shadingRate = shadingRate_;
83933       return *this;
83934     }
83935 
setCombinerOpsVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83936     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV & setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
83937     {
83938       combinerOps = combinerOps_;
83939       return *this;
83940     }
83941 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
83942 
83943 
operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83944     operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
83945     {
83946       return *reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>( this );
83947     }
83948 
operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83949     operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
83950     {
83951       return *reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>( this );
83952     }
83953 
83954 #if defined( VULKAN_HPP_USE_REFLECT )
83955 #if 14 <= VULKAN_HPP_CPP_VERSION
83956     auto
83957 #else
83958     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV const &, VULKAN_HPP_NAMESPACE::FragmentShadingRateNV const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &>
83959 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83960       reflect() const VULKAN_HPP_NOEXCEPT
83961     {
83962       return std::tie( sType, pNext, shadingRateType, shadingRate, combinerOps );
83963     }
83964 #endif
83965 
83966 
83967 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
83968 auto operator<=>( PipelineFragmentShadingRateEnumStateCreateInfoNV const & ) const = default;
83969 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83970     bool operator==( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
83971     {
83972 #if defined( VULKAN_HPP_USE_REFLECT )
83973       return this->reflect() == rhs.reflect();
83974 #else
83975       return ( sType == rhs.sType )
83976           && ( pNext == rhs.pNext )
83977           && ( shadingRateType == rhs.shadingRateType )
83978           && ( shadingRate == rhs.shadingRate )
83979           && ( combinerOps == rhs.combinerOps );
83980 #endif
83981     }
83982 
operator !=VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV83983     bool operator!=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
83984     {
83985       return !operator==( rhs );
83986     }
83987 #endif
83988 
83989     public:
83990     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV;
83991     const void * pNext = {};
83992     VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize;
83993     VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel;
83994     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = {};
83995 
83996   };
83997 
83998   template <>
83999   struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV>
84000   {
84001     using Type = PipelineFragmentShadingRateEnumStateCreateInfoNV;
84002   };
84003 
84004   struct PipelineFragmentShadingRateStateCreateInfoKHR
84005   {
84006     using NativeType = VkPipelineFragmentShadingRateStateCreateInfoKHR;
84007 
84008     static const bool allowDuplicate = false;
84009     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
84010 
84011 
84012 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineFragmentShadingRateStateCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84013 VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR(VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}, std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> const & combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } }, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
84014     : pNext( pNext_ ), fragmentSize( fragmentSize_ ), combinerOps( combinerOps_ )
84015     {}
84016 
84017     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84018 
PipelineFragmentShadingRateStateCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84019     PipelineFragmentShadingRateStateCreateInfoKHR( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
84020       : PipelineFragmentShadingRateStateCreateInfoKHR( *reinterpret_cast<PipelineFragmentShadingRateStateCreateInfoKHR const *>( &rhs ) )
84021     {}
84022 
84023 
84024     PipelineFragmentShadingRateStateCreateInfoKHR & operator=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84025 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
84026 
operator =VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84027     PipelineFragmentShadingRateStateCreateInfoKHR & operator=( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
84028     {
84029       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR const *>( &rhs );
84030       return *this;
84031     }
84032 
84033 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84034     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
84035     {
84036       pNext = pNext_;
84037       return *this;
84038     }
84039 
setFragmentSizeVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84040     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR & setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT
84041     {
84042       fragmentSize = fragmentSize_;
84043       return *this;
84044     }
84045 
setCombinerOpsVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84046     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR & setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
84047     {
84048       combinerOps = combinerOps_;
84049       return *this;
84050     }
84051 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
84052 
84053 
operator VkPipelineFragmentShadingRateStateCreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84054     operator VkPipelineFragmentShadingRateStateCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
84055     {
84056       return *reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>( this );
84057     }
84058 
operator VkPipelineFragmentShadingRateStateCreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84059     operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
84060     {
84061       return *reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>( this );
84062     }
84063 
84064 #if defined( VULKAN_HPP_USE_REFLECT )
84065 #if 14 <= VULKAN_HPP_CPP_VERSION
84066     auto
84067 #else
84068     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &>
84069 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84070       reflect() const VULKAN_HPP_NOEXCEPT
84071     {
84072       return std::tie( sType, pNext, fragmentSize, combinerOps );
84073     }
84074 #endif
84075 
84076 
84077 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
84078 auto operator<=>( PipelineFragmentShadingRateStateCreateInfoKHR const & ) const = default;
84079 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84080     bool operator==( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
84081     {
84082 #if defined( VULKAN_HPP_USE_REFLECT )
84083       return this->reflect() == rhs.reflect();
84084 #else
84085       return ( sType == rhs.sType )
84086           && ( pNext == rhs.pNext )
84087           && ( fragmentSize == rhs.fragmentSize )
84088           && ( combinerOps == rhs.combinerOps );
84089 #endif
84090     }
84091 
operator !=VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR84092     bool operator!=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
84093     {
84094       return !operator==( rhs );
84095     }
84096 #endif
84097 
84098     public:
84099     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
84100     const void * pNext = {};
84101     VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
84102     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = {};
84103 
84104   };
84105 
84106   template <>
84107   struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR>
84108   {
84109     using Type = PipelineFragmentShadingRateStateCreateInfoKHR;
84110   };
84111 
84112   struct PipelineIndirectDeviceAddressInfoNV
84113   {
84114     using NativeType = VkPipelineIndirectDeviceAddressInfoNV;
84115 
84116     static const bool allowDuplicate = false;
84117     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineIndirectDeviceAddressInfoNV;
84118 
84119 
84120 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineIndirectDeviceAddressInfoNVVULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84121 VULKAN_HPP_CONSTEXPR PipelineIndirectDeviceAddressInfoNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
84122     : pNext( pNext_ ), pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ )
84123     {}
84124 
84125     VULKAN_HPP_CONSTEXPR PipelineIndirectDeviceAddressInfoNV( PipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84126 
PipelineIndirectDeviceAddressInfoNVVULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84127     PipelineIndirectDeviceAddressInfoNV( VkPipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
84128       : PipelineIndirectDeviceAddressInfoNV( *reinterpret_cast<PipelineIndirectDeviceAddressInfoNV const *>( &rhs ) )
84129     {}
84130 
84131 
84132     PipelineIndirectDeviceAddressInfoNV & operator=( PipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84133 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
84134 
operator =VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84135     PipelineIndirectDeviceAddressInfoNV & operator=( VkPipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
84136     {
84137       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV const *>( &rhs );
84138       return *this;
84139     }
84140 
84141 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84142     VULKAN_HPP_CONSTEXPR_14 PipelineIndirectDeviceAddressInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
84143     {
84144       pNext = pNext_;
84145       return *this;
84146     }
84147 
setPipelineBindPointVULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84148     VULKAN_HPP_CONSTEXPR_14 PipelineIndirectDeviceAddressInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
84149     {
84150       pipelineBindPoint = pipelineBindPoint_;
84151       return *this;
84152     }
84153 
setPipelineVULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84154     VULKAN_HPP_CONSTEXPR_14 PipelineIndirectDeviceAddressInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
84155     {
84156       pipeline = pipeline_;
84157       return *this;
84158     }
84159 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
84160 
84161 
operator VkPipelineIndirectDeviceAddressInfoNV const&VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84162     operator VkPipelineIndirectDeviceAddressInfoNV const &() const VULKAN_HPP_NOEXCEPT
84163     {
84164       return *reinterpret_cast<const VkPipelineIndirectDeviceAddressInfoNV*>( this );
84165     }
84166 
operator VkPipelineIndirectDeviceAddressInfoNV&VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84167     operator VkPipelineIndirectDeviceAddressInfoNV &() VULKAN_HPP_NOEXCEPT
84168     {
84169       return *reinterpret_cast<VkPipelineIndirectDeviceAddressInfoNV*>( this );
84170     }
84171 
84172 #if defined( VULKAN_HPP_USE_REFLECT )
84173 #if 14 <= VULKAN_HPP_CPP_VERSION
84174     auto
84175 #else
84176     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineBindPoint const &, VULKAN_HPP_NAMESPACE::Pipeline const &>
84177 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84178       reflect() const VULKAN_HPP_NOEXCEPT
84179     {
84180       return std::tie( sType, pNext, pipelineBindPoint, pipeline );
84181     }
84182 #endif
84183 
84184 
84185 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
84186 auto operator<=>( PipelineIndirectDeviceAddressInfoNV const & ) const = default;
84187 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84188     bool operator==( PipelineIndirectDeviceAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
84189     {
84190 #if defined( VULKAN_HPP_USE_REFLECT )
84191       return this->reflect() == rhs.reflect();
84192 #else
84193       return ( sType == rhs.sType )
84194           && ( pNext == rhs.pNext )
84195           && ( pipelineBindPoint == rhs.pipelineBindPoint )
84196           && ( pipeline == rhs.pipeline );
84197 #endif
84198     }
84199 
operator !=VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV84200     bool operator!=( PipelineIndirectDeviceAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
84201     {
84202       return !operator==( rhs );
84203     }
84204 #endif
84205 
84206     public:
84207     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineIndirectDeviceAddressInfoNV;
84208     const void * pNext = {};
84209     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
84210     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
84211 
84212   };
84213 
84214   template <>
84215   struct CppType<StructureType, StructureType::ePipelineIndirectDeviceAddressInfoNV>
84216   {
84217     using Type = PipelineIndirectDeviceAddressInfoNV;
84218   };
84219 
84220   struct PipelineInfoKHR
84221   {
84222     using NativeType = VkPipelineInfoKHR;
84223 
84224     static const bool allowDuplicate = false;
84225     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR;
84226 
84227 
84228 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR84229 VULKAN_HPP_CONSTEXPR PipelineInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
84230     : pNext( pNext_ ), pipeline( pipeline_ )
84231     {}
84232 
84233     VULKAN_HPP_CONSTEXPR PipelineInfoKHR( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84234 
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR84235     PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
84236       : PipelineInfoKHR( *reinterpret_cast<PipelineInfoKHR const *>( &rhs ) )
84237     {}
84238 
84239 
84240     PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84241 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
84242 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR84243     PipelineInfoKHR & operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
84244     {
84245       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInfoKHR const *>( &rhs );
84246       return *this;
84247     }
84248 
84249 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineInfoKHR84250     VULKAN_HPP_CONSTEXPR_14 PipelineInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
84251     {
84252       pNext = pNext_;
84253       return *this;
84254     }
84255 
setPipelineVULKAN_HPP_NAMESPACE::PipelineInfoKHR84256     VULKAN_HPP_CONSTEXPR_14 PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
84257     {
84258       pipeline = pipeline_;
84259       return *this;
84260     }
84261 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
84262 
84263 
operator VkPipelineInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineInfoKHR84264     operator VkPipelineInfoKHR const &() const VULKAN_HPP_NOEXCEPT
84265     {
84266       return *reinterpret_cast<const VkPipelineInfoKHR*>( this );
84267     }
84268 
operator VkPipelineInfoKHR&VULKAN_HPP_NAMESPACE::PipelineInfoKHR84269     operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT
84270     {
84271       return *reinterpret_cast<VkPipelineInfoKHR*>( this );
84272     }
84273 
84274 #if defined( VULKAN_HPP_USE_REFLECT )
84275 #if 14 <= VULKAN_HPP_CPP_VERSION
84276     auto
84277 #else
84278     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Pipeline const &>
84279 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineInfoKHR84280       reflect() const VULKAN_HPP_NOEXCEPT
84281     {
84282       return std::tie( sType, pNext, pipeline );
84283     }
84284 #endif
84285 
84286 
84287 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
84288 auto operator<=>( PipelineInfoKHR const & ) const = default;
84289 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInfoKHR84290     bool operator==( PipelineInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
84291     {
84292 #if defined( VULKAN_HPP_USE_REFLECT )
84293       return this->reflect() == rhs.reflect();
84294 #else
84295       return ( sType == rhs.sType )
84296           && ( pNext == rhs.pNext )
84297           && ( pipeline == rhs.pipeline );
84298 #endif
84299     }
84300 
operator !=VULKAN_HPP_NAMESPACE::PipelineInfoKHR84301     bool operator!=( PipelineInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
84302     {
84303       return !operator==( rhs );
84304     }
84305 #endif
84306 
84307     public:
84308     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR;
84309     const void * pNext = {};
84310     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
84311 
84312   };
84313 
84314   template <>
84315   struct CppType<StructureType, StructureType::ePipelineInfoKHR>
84316   {
84317     using Type = PipelineInfoKHR;
84318   };
84319   using PipelineInfoEXT = PipelineInfoKHR;
84320 
84321   struct PushConstantRange
84322   {
84323     using NativeType = VkPushConstantRange;
84324 
84325 
84326 
84327 
84328 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange84329 VULKAN_HPP_CONSTEXPR PushConstantRange(VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {}) VULKAN_HPP_NOEXCEPT
84330     : stageFlags( stageFlags_ ), offset( offset_ ), size( size_ )
84331     {}
84332 
84333     VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84334 
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange84335     PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
84336       : PushConstantRange( *reinterpret_cast<PushConstantRange const *>( &rhs ) )
84337     {}
84338 
84339 
84340     PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84341 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
84342 
operator =VULKAN_HPP_NAMESPACE::PushConstantRange84343     PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
84344     {
84345       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantRange const *>( &rhs );
84346       return *this;
84347     }
84348 
84349 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setStageFlagsVULKAN_HPP_NAMESPACE::PushConstantRange84350     VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
84351     {
84352       stageFlags = stageFlags_;
84353       return *this;
84354     }
84355 
setOffsetVULKAN_HPP_NAMESPACE::PushConstantRange84356     VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
84357     {
84358       offset = offset_;
84359       return *this;
84360     }
84361 
setSizeVULKAN_HPP_NAMESPACE::PushConstantRange84362     VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
84363     {
84364       size = size_;
84365       return *this;
84366     }
84367 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
84368 
84369 
operator VkPushConstantRange const&VULKAN_HPP_NAMESPACE::PushConstantRange84370     operator VkPushConstantRange const &() const VULKAN_HPP_NOEXCEPT
84371     {
84372       return *reinterpret_cast<const VkPushConstantRange*>( this );
84373     }
84374 
operator VkPushConstantRange&VULKAN_HPP_NAMESPACE::PushConstantRange84375     operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
84376     {
84377       return *reinterpret_cast<VkPushConstantRange*>( this );
84378     }
84379 
84380 #if defined( VULKAN_HPP_USE_REFLECT )
84381 #if 14 <= VULKAN_HPP_CPP_VERSION
84382     auto
84383 #else
84384     std::tuple<VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, uint32_t const &, uint32_t const &>
84385 #endif
reflectVULKAN_HPP_NAMESPACE::PushConstantRange84386       reflect() const VULKAN_HPP_NOEXCEPT
84387     {
84388       return std::tie( stageFlags, offset, size );
84389     }
84390 #endif
84391 
84392 
84393 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
84394 auto operator<=>( PushConstantRange const & ) const = default;
84395 #else
operator ==VULKAN_HPP_NAMESPACE::PushConstantRange84396     bool operator==( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT
84397     {
84398 #if defined( VULKAN_HPP_USE_REFLECT )
84399       return this->reflect() == rhs.reflect();
84400 #else
84401       return ( stageFlags == rhs.stageFlags )
84402           && ( offset == rhs.offset )
84403           && ( size == rhs.size );
84404 #endif
84405     }
84406 
operator !=VULKAN_HPP_NAMESPACE::PushConstantRange84407     bool operator!=( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT
84408     {
84409       return !operator==( rhs );
84410     }
84411 #endif
84412 
84413     public:
84414     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
84415     uint32_t offset = {};
84416     uint32_t size = {};
84417 
84418   };
84419 
84420   struct PipelineLayoutCreateInfo
84421   {
84422     using NativeType = VkPipelineLayoutCreateInfo;
84423 
84424     static const bool allowDuplicate = false;
84425     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo;
84426 
84427 
84428 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84429 VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo(VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ = {}, uint32_t setLayoutCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {}, uint32_t pushConstantRangeCount_ = {}, const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
84430     : pNext( pNext_ ), flags( flags_ ), setLayoutCount( setLayoutCount_ ), pSetLayouts( pSetLayouts_ ), pushConstantRangeCount( pushConstantRangeCount_ ), pPushConstantRanges( pPushConstantRanges_ )
84431     {}
84432 
84433     VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84434 
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84435     PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
84436       : PipelineLayoutCreateInfo( *reinterpret_cast<PipelineLayoutCreateInfo const *>( &rhs ) )
84437     {}
84438 
84439 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84440     PipelineLayoutCreateInfo( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ = {}, const void * pNext_ = nullptr )
84441     : pNext( pNext_ ), flags( flags_ ), setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ), pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) ), pPushConstantRanges( pushConstantRanges_.data() )
84442     {}
84443 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84444 
84445 
84446     PipelineLayoutCreateInfo & operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84447 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
84448 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84449     PipelineLayoutCreateInfo & operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
84450     {
84451       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const *>( &rhs );
84452       return *this;
84453     }
84454 
84455 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84456     VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
84457     {
84458       pNext = pNext_;
84459       return *this;
84460     }
84461 
setFlagsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84462     VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
84463     {
84464       flags = flags_;
84465       return *this;
84466     }
84467 
setSetLayoutCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84468     VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
84469     {
84470       setLayoutCount = setLayoutCount_;
84471       return *this;
84472     }
84473 
setPSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84474     VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
84475     {
84476       pSetLayouts = pSetLayouts_;
84477       return *this;
84478     }
84479 
84480 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84481     PipelineLayoutCreateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
84482     {
84483       setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
84484       pSetLayouts = setLayouts_.data();
84485       return *this;
84486     }
84487 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84488 
setPushConstantRangeCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84489     VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
84490     {
84491       pushConstantRangeCount = pushConstantRangeCount_;
84492       return *this;
84493     }
84494 
setPPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84495     VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
84496     {
84497       pPushConstantRanges = pPushConstantRanges_;
84498       return *this;
84499     }
84500 
84501 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84502     PipelineLayoutCreateInfo & setPushConstantRanges( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
84503     {
84504       pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
84505       pPushConstantRanges = pushConstantRanges_.data();
84506       return *this;
84507     }
84508 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84509 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
84510 
84511 
operator VkPipelineLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84512     operator VkPipelineLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
84513     {
84514       return *reinterpret_cast<const VkPipelineLayoutCreateInfo*>( this );
84515     }
84516 
operator VkPipelineLayoutCreateInfo&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84517     operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
84518     {
84519       return *reinterpret_cast<VkPipelineLayoutCreateInfo*>( this );
84520     }
84521 
84522 #if defined( VULKAN_HPP_USE_REFLECT )
84523 #if 14 <= VULKAN_HPP_CPP_VERSION
84524     auto
84525 #else
84526     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PushConstantRange * const &>
84527 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84528       reflect() const VULKAN_HPP_NOEXCEPT
84529     {
84530       return std::tie( sType, pNext, flags, setLayoutCount, pSetLayouts, pushConstantRangeCount, pPushConstantRanges );
84531     }
84532 #endif
84533 
84534 
84535 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
84536 auto operator<=>( PipelineLayoutCreateInfo const & ) const = default;
84537 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84538     bool operator==( PipelineLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
84539     {
84540 #if defined( VULKAN_HPP_USE_REFLECT )
84541       return this->reflect() == rhs.reflect();
84542 #else
84543       return ( sType == rhs.sType )
84544           && ( pNext == rhs.pNext )
84545           && ( flags == rhs.flags )
84546           && ( setLayoutCount == rhs.setLayoutCount )
84547           && ( pSetLayouts == rhs.pSetLayouts )
84548           && ( pushConstantRangeCount == rhs.pushConstantRangeCount )
84549           && ( pPushConstantRanges == rhs.pPushConstantRanges );
84550 #endif
84551     }
84552 
operator !=VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo84553     bool operator!=( PipelineLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
84554     {
84555       return !operator==( rhs );
84556     }
84557 #endif
84558 
84559     public:
84560     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo;
84561     const void * pNext = {};
84562     VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {};
84563     uint32_t setLayoutCount = {};
84564     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts = {};
84565     uint32_t pushConstantRangeCount = {};
84566     const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges = {};
84567 
84568   };
84569 
84570   template <>
84571   struct CppType<StructureType, StructureType::ePipelineLayoutCreateInfo>
84572   {
84573     using Type = PipelineLayoutCreateInfo;
84574   };
84575 
84576   struct PipelinePropertiesIdentifierEXT
84577   {
84578     using NativeType = VkPipelinePropertiesIdentifierEXT;
84579 
84580     static const bool allowDuplicate = false;
84581     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelinePropertiesIdentifierEXT;
84582 
84583 
84584 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelinePropertiesIdentifierEXTVULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT84585 VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT(std::array<uint8_t,VK_UUID_SIZE> const & pipelineIdentifier_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
84586     : pNext( pNext_ ), pipelineIdentifier( pipelineIdentifier_ )
84587     {}
84588 
84589     VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT( PipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84590 
PipelinePropertiesIdentifierEXTVULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT84591     PipelinePropertiesIdentifierEXT( VkPipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
84592       : PipelinePropertiesIdentifierEXT( *reinterpret_cast<PipelinePropertiesIdentifierEXT const *>( &rhs ) )
84593     {}
84594 
84595 
84596     PipelinePropertiesIdentifierEXT & operator=( PipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84597 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
84598 
operator =VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT84599     PipelinePropertiesIdentifierEXT & operator=( VkPipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
84600     {
84601       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT const *>( &rhs );
84602       return *this;
84603     }
84604 
84605 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT84606     VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
84607     {
84608       pNext = pNext_;
84609       return *this;
84610     }
84611 
setPipelineIdentifierVULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT84612     VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT & setPipelineIdentifier( std::array<uint8_t,VK_UUID_SIZE> pipelineIdentifier_ ) VULKAN_HPP_NOEXCEPT
84613     {
84614       pipelineIdentifier = pipelineIdentifier_;
84615       return *this;
84616     }
84617 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
84618 
84619 
operator VkPipelinePropertiesIdentifierEXT const&VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT84620     operator VkPipelinePropertiesIdentifierEXT const &() const VULKAN_HPP_NOEXCEPT
84621     {
84622       return *reinterpret_cast<const VkPipelinePropertiesIdentifierEXT*>( this );
84623     }
84624 
operator VkPipelinePropertiesIdentifierEXT&VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT84625     operator VkPipelinePropertiesIdentifierEXT &() VULKAN_HPP_NOEXCEPT
84626     {
84627       return *reinterpret_cast<VkPipelinePropertiesIdentifierEXT*>( this );
84628     }
84629 
84630 #if defined( VULKAN_HPP_USE_REFLECT )
84631 #if 14 <= VULKAN_HPP_CPP_VERSION
84632     auto
84633 #else
84634     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
84635 #endif
reflectVULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT84636       reflect() const VULKAN_HPP_NOEXCEPT
84637     {
84638       return std::tie( sType, pNext, pipelineIdentifier );
84639     }
84640 #endif
84641 
84642 
84643 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
84644 auto operator<=>( PipelinePropertiesIdentifierEXT const & ) const = default;
84645 #else
operator ==VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT84646     bool operator==( PipelinePropertiesIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
84647     {
84648 #if defined( VULKAN_HPP_USE_REFLECT )
84649       return this->reflect() == rhs.reflect();
84650 #else
84651       return ( sType == rhs.sType )
84652           && ( pNext == rhs.pNext )
84653           && ( pipelineIdentifier == rhs.pipelineIdentifier );
84654 #endif
84655     }
84656 
operator !=VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT84657     bool operator!=( PipelinePropertiesIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
84658     {
84659       return !operator==( rhs );
84660     }
84661 #endif
84662 
84663     public:
84664     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelinePropertiesIdentifierEXT;
84665     void * pNext = {};
84666     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineIdentifier = {};
84667 
84668   };
84669 
84670   template <>
84671   struct CppType<StructureType, StructureType::ePipelinePropertiesIdentifierEXT>
84672   {
84673     using Type = PipelinePropertiesIdentifierEXT;
84674   };
84675 
84676   struct PipelineRasterizationConservativeStateCreateInfoEXT
84677   {
84678     using NativeType = VkPipelineRasterizationConservativeStateCreateInfoEXT;
84679 
84680     static const bool allowDuplicate = false;
84681     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
84682 
84683 
84684 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84685 VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled, float extraPrimitiveOverestimationSize_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
84686     : pNext( pNext_ ), flags( flags_ ), conservativeRasterizationMode( conservativeRasterizationMode_ ), extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
84687     {}
84688 
84689     VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84690 
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84691     PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
84692       : PipelineRasterizationConservativeStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs ) )
84693     {}
84694 
84695 
84696     PipelineRasterizationConservativeStateCreateInfoEXT & operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84697 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
84698 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84699     PipelineRasterizationConservativeStateCreateInfoEXT & operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
84700     {
84701       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs );
84702       return *this;
84703     }
84704 
84705 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84706     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
84707     {
84708       pNext = pNext_;
84709       return *this;
84710     }
84711 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84712     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
84713     {
84714       flags = flags_;
84715       return *this;
84716     }
84717 
setConservativeRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84718     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
84719     {
84720       conservativeRasterizationMode = conservativeRasterizationMode_;
84721       return *this;
84722     }
84723 
setExtraPrimitiveOverestimationSizeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84724     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
84725     {
84726       extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
84727       return *this;
84728     }
84729 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
84730 
84731 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84732     operator VkPipelineRasterizationConservativeStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
84733     {
84734       return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
84735     }
84736 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84737     operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
84738     {
84739       return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
84740     }
84741 
84742 #if defined( VULKAN_HPP_USE_REFLECT )
84743 #if 14 <= VULKAN_HPP_CPP_VERSION
84744     auto
84745 #else
84746     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT const &, VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT const &, float const &>
84747 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84748       reflect() const VULKAN_HPP_NOEXCEPT
84749     {
84750       return std::tie( sType, pNext, flags, conservativeRasterizationMode, extraPrimitiveOverestimationSize );
84751     }
84752 #endif
84753 
84754 
84755 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
84756 auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const & ) const = default;
84757 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84758     bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
84759     {
84760 #if defined( VULKAN_HPP_USE_REFLECT )
84761       return this->reflect() == rhs.reflect();
84762 #else
84763       return ( sType == rhs.sType )
84764           && ( pNext == rhs.pNext )
84765           && ( flags == rhs.flags )
84766           && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode )
84767           && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize );
84768 #endif
84769     }
84770 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT84771     bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
84772     {
84773       return !operator==( rhs );
84774     }
84775 #endif
84776 
84777     public:
84778     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
84779     const void * pNext = {};
84780     VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {};
84781     VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled;
84782     float extraPrimitiveOverestimationSize = {};
84783 
84784   };
84785 
84786   template <>
84787   struct CppType<StructureType, StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT>
84788   {
84789     using Type = PipelineRasterizationConservativeStateCreateInfoEXT;
84790   };
84791 
84792   struct PipelineRasterizationDepthClipStateCreateInfoEXT
84793   {
84794     using NativeType = VkPipelineRasterizationDepthClipStateCreateInfoEXT;
84795 
84796     static const bool allowDuplicate = false;
84797     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
84798 
84799 
84800 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84801 VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
84802     : pNext( pNext_ ), flags( flags_ ), depthClipEnable( depthClipEnable_ )
84803     {}
84804 
84805     VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84806 
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84807     PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
84808       : PipelineRasterizationDepthClipStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs ) )
84809     {}
84810 
84811 
84812     PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84813 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
84814 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84815     PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
84816     {
84817       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs );
84818       return *this;
84819     }
84820 
84821 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84822     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
84823     {
84824       pNext = pNext_;
84825       return *this;
84826     }
84827 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84828     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
84829     {
84830       flags = flags_;
84831       return *this;
84832     }
84833 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84834     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
84835     {
84836       depthClipEnable = depthClipEnable_;
84837       return *this;
84838     }
84839 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
84840 
84841 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84842     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
84843     {
84844       return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
84845     }
84846 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84847     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
84848     {
84849       return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
84850     }
84851 
84852 #if defined( VULKAN_HPP_USE_REFLECT )
84853 #if 14 <= VULKAN_HPP_CPP_VERSION
84854     auto
84855 #else
84856     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
84857 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84858       reflect() const VULKAN_HPP_NOEXCEPT
84859     {
84860       return std::tie( sType, pNext, flags, depthClipEnable );
84861     }
84862 #endif
84863 
84864 
84865 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
84866 auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const & ) const = default;
84867 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84868     bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
84869     {
84870 #if defined( VULKAN_HPP_USE_REFLECT )
84871       return this->reflect() == rhs.reflect();
84872 #else
84873       return ( sType == rhs.sType )
84874           && ( pNext == rhs.pNext )
84875           && ( flags == rhs.flags )
84876           && ( depthClipEnable == rhs.depthClipEnable );
84877 #endif
84878     }
84879 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT84880     bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
84881     {
84882       return !operator==( rhs );
84883     }
84884 #endif
84885 
84886     public:
84887     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
84888     const void * pNext = {};
84889     VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {};
84890     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
84891 
84892   };
84893 
84894   template <>
84895   struct CppType<StructureType, StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT>
84896   {
84897     using Type = PipelineRasterizationDepthClipStateCreateInfoEXT;
84898   };
84899 
84900   struct PipelineRasterizationLineStateCreateInfoEXT
84901   {
84902     using NativeType = VkPipelineRasterizationLineStateCreateInfoEXT;
84903 
84904     static const bool allowDuplicate = false;
84905     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
84906 
84907 
84908 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84909 VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault, VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ = {}, uint32_t lineStippleFactor_ = {}, uint16_t lineStipplePattern_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
84910     : pNext( pNext_ ), lineRasterizationMode( lineRasterizationMode_ ), stippledLineEnable( stippledLineEnable_ ), lineStippleFactor( lineStippleFactor_ ), lineStipplePattern( lineStipplePattern_ )
84911     {}
84912 
84913     VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84914 
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84915     PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
84916       : PipelineRasterizationLineStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs ) )
84917     {}
84918 
84919 
84920     PipelineRasterizationLineStateCreateInfoEXT & operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
84921 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
84922 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84923     PipelineRasterizationLineStateCreateInfoEXT & operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
84924     {
84925       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs );
84926       return *this;
84927     }
84928 
84929 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84930     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
84931     {
84932       pNext = pNext_;
84933       return *this;
84934     }
84935 
setLineRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84936     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
84937     {
84938       lineRasterizationMode = lineRasterizationMode_;
84939       return *this;
84940     }
84941 
setStippledLineEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84942     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT
84943     {
84944       stippledLineEnable = stippledLineEnable_;
84945       return *this;
84946     }
84947 
setLineStippleFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84948     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT
84949     {
84950       lineStippleFactor = lineStippleFactor_;
84951       return *this;
84952     }
84953 
setLineStipplePatternVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84954     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT
84955     {
84956       lineStipplePattern = lineStipplePattern_;
84957       return *this;
84958     }
84959 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
84960 
84961 
operator VkPipelineRasterizationLineStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84962     operator VkPipelineRasterizationLineStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
84963     {
84964       return *reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
84965     }
84966 
operator VkPipelineRasterizationLineStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84967     operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
84968     {
84969       return *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
84970     }
84971 
84972 #if defined( VULKAN_HPP_USE_REFLECT )
84973 #if 14 <= VULKAN_HPP_CPP_VERSION
84974     auto
84975 #else
84976     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, uint16_t const &>
84977 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84978       reflect() const VULKAN_HPP_NOEXCEPT
84979     {
84980       return std::tie( sType, pNext, lineRasterizationMode, stippledLineEnable, lineStippleFactor, lineStipplePattern );
84981     }
84982 #endif
84983 
84984 
84985 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
84986 auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const & ) const = default;
84987 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT84988     bool operator==( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
84989     {
84990 #if defined( VULKAN_HPP_USE_REFLECT )
84991       return this->reflect() == rhs.reflect();
84992 #else
84993       return ( sType == rhs.sType )
84994           && ( pNext == rhs.pNext )
84995           && ( lineRasterizationMode == rhs.lineRasterizationMode )
84996           && ( stippledLineEnable == rhs.stippledLineEnable )
84997           && ( lineStippleFactor == rhs.lineStippleFactor )
84998           && ( lineStipplePattern == rhs.lineStipplePattern );
84999 #endif
85000     }
85001 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT85002     bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85003     {
85004       return !operator==( rhs );
85005     }
85006 #endif
85007 
85008     public:
85009     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
85010     const void * pNext = {};
85011     VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault;
85012     VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {};
85013     uint32_t lineStippleFactor = {};
85014     uint16_t lineStipplePattern = {};
85015 
85016   };
85017 
85018   template <>
85019   struct CppType<StructureType, StructureType::ePipelineRasterizationLineStateCreateInfoEXT>
85020   {
85021     using Type = PipelineRasterizationLineStateCreateInfoEXT;
85022   };
85023 
85024   struct PipelineRasterizationProvokingVertexStateCreateInfoEXT
85025   {
85026     using NativeType = VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
85027 
85028     static const bool allowDuplicate = false;
85029     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT;
85030 
85031 
85032 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationProvokingVertexStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT85033 VULKAN_HPP_CONSTEXPR PipelineRasterizationProvokingVertexStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode_ = VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT::eFirstVertex, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
85034     : pNext( pNext_ ), provokingVertexMode( provokingVertexMode_ )
85035     {}
85036 
85037     VULKAN_HPP_CONSTEXPR PipelineRasterizationProvokingVertexStateCreateInfoEXT( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85038 
PipelineRasterizationProvokingVertexStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT85039     PipelineRasterizationProvokingVertexStateCreateInfoEXT( VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
85040       : PipelineRasterizationProvokingVertexStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationProvokingVertexStateCreateInfoEXT const *>( &rhs ) )
85041     {}
85042 
85043 
85044     PipelineRasterizationProvokingVertexStateCreateInfoEXT & operator=( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85045 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
85046 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT85047     PipelineRasterizationProvokingVertexStateCreateInfoEXT & operator=( VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
85048     {
85049       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT const *>( &rhs );
85050       return *this;
85051     }
85052 
85053 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT85054     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationProvokingVertexStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
85055     {
85056       pNext = pNext_;
85057       return *this;
85058     }
85059 
setProvokingVertexModeVULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT85060     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationProvokingVertexStateCreateInfoEXT & setProvokingVertexMode( VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode_ ) VULKAN_HPP_NOEXCEPT
85061     {
85062       provokingVertexMode = provokingVertexMode_;
85063       return *this;
85064     }
85065 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
85066 
85067 
operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT85068     operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
85069     {
85070       return *reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>( this );
85071     }
85072 
operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT85073     operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
85074     {
85075       return *reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>( this );
85076     }
85077 
85078 #if defined( VULKAN_HPP_USE_REFLECT )
85079 #if 14 <= VULKAN_HPP_CPP_VERSION
85080     auto
85081 #else
85082     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT const &>
85083 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT85084       reflect() const VULKAN_HPP_NOEXCEPT
85085     {
85086       return std::tie( sType, pNext, provokingVertexMode );
85087     }
85088 #endif
85089 
85090 
85091 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
85092 auto operator<=>( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & ) const = default;
85093 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT85094     bool operator==( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85095     {
85096 #if defined( VULKAN_HPP_USE_REFLECT )
85097       return this->reflect() == rhs.reflect();
85098 #else
85099       return ( sType == rhs.sType )
85100           && ( pNext == rhs.pNext )
85101           && ( provokingVertexMode == rhs.provokingVertexMode );
85102 #endif
85103     }
85104 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT85105     bool operator!=( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85106     {
85107       return !operator==( rhs );
85108     }
85109 #endif
85110 
85111     public:
85112     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT;
85113     const void * pNext = {};
85114     VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode = VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT::eFirstVertex;
85115 
85116   };
85117 
85118   template <>
85119   struct CppType<StructureType, StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT>
85120   {
85121     using Type = PipelineRasterizationProvokingVertexStateCreateInfoEXT;
85122   };
85123 
85124   struct PipelineRasterizationStateRasterizationOrderAMD
85125   {
85126     using NativeType = VkPipelineRasterizationStateRasterizationOrderAMD;
85127 
85128     static const bool allowDuplicate = false;
85129     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
85130 
85131 
85132 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD85133 VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD(VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
85134     : pNext( pNext_ ), rasterizationOrder( rasterizationOrder_ )
85135     {}
85136 
85137     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85138 
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD85139     PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
85140       : PipelineRasterizationStateRasterizationOrderAMD( *reinterpret_cast<PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs ) )
85141     {}
85142 
85143 
85144     PipelineRasterizationStateRasterizationOrderAMD & operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85145 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
85146 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD85147     PipelineRasterizationStateRasterizationOrderAMD & operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
85148     {
85149       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs );
85150       return *this;
85151     }
85152 
85153 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD85154     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
85155     {
85156       pNext = pNext_;
85157       return *this;
85158     }
85159 
setRasterizationOrderVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD85160     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT
85161     {
85162       rasterizationOrder = rasterizationOrder_;
85163       return *this;
85164     }
85165 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
85166 
85167 
operator VkPipelineRasterizationStateRasterizationOrderAMD const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD85168     operator VkPipelineRasterizationStateRasterizationOrderAMD const &() const VULKAN_HPP_NOEXCEPT
85169     {
85170       return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
85171     }
85172 
operator VkPipelineRasterizationStateRasterizationOrderAMD&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD85173     operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT
85174     {
85175       return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
85176     }
85177 
85178 #if defined( VULKAN_HPP_USE_REFLECT )
85179 #if 14 <= VULKAN_HPP_CPP_VERSION
85180     auto
85181 #else
85182     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RasterizationOrderAMD const &>
85183 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD85184       reflect() const VULKAN_HPP_NOEXCEPT
85185     {
85186       return std::tie( sType, pNext, rasterizationOrder );
85187     }
85188 #endif
85189 
85190 
85191 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
85192 auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const & ) const = default;
85193 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD85194     bool operator==( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
85195     {
85196 #if defined( VULKAN_HPP_USE_REFLECT )
85197       return this->reflect() == rhs.reflect();
85198 #else
85199       return ( sType == rhs.sType )
85200           && ( pNext == rhs.pNext )
85201           && ( rasterizationOrder == rhs.rasterizationOrder );
85202 #endif
85203     }
85204 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD85205     bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
85206     {
85207       return !operator==( rhs );
85208     }
85209 #endif
85210 
85211     public:
85212     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
85213     const void * pNext = {};
85214     VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict;
85215 
85216   };
85217 
85218   template <>
85219   struct CppType<StructureType, StructureType::ePipelineRasterizationStateRasterizationOrderAMD>
85220   {
85221     using Type = PipelineRasterizationStateRasterizationOrderAMD;
85222   };
85223 
85224   struct PipelineRasterizationStateStreamCreateInfoEXT
85225   {
85226     using NativeType = VkPipelineRasterizationStateStreamCreateInfoEXT;
85227 
85228     static const bool allowDuplicate = false;
85229     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
85230 
85231 
85232 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85233 VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {}, uint32_t rasterizationStream_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
85234     : pNext( pNext_ ), flags( flags_ ), rasterizationStream( rasterizationStream_ )
85235     {}
85236 
85237     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85238 
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85239     PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
85240       : PipelineRasterizationStateStreamCreateInfoEXT( *reinterpret_cast<PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs ) )
85241     {}
85242 
85243 
85244     PipelineRasterizationStateStreamCreateInfoEXT & operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85245 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
85246 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85247     PipelineRasterizationStateStreamCreateInfoEXT & operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
85248     {
85249       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs );
85250       return *this;
85251     }
85252 
85253 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85254     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
85255     {
85256       pNext = pNext_;
85257       return *this;
85258     }
85259 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85260     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
85261     {
85262       flags = flags_;
85263       return *this;
85264     }
85265 
setRasterizationStreamVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85266     VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT
85267     {
85268       rasterizationStream = rasterizationStream_;
85269       return *this;
85270     }
85271 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
85272 
85273 
operator VkPipelineRasterizationStateStreamCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85274     operator VkPipelineRasterizationStateStreamCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
85275     {
85276       return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
85277     }
85278 
operator VkPipelineRasterizationStateStreamCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85279     operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
85280     {
85281       return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
85282     }
85283 
85284 #if defined( VULKAN_HPP_USE_REFLECT )
85285 #if 14 <= VULKAN_HPP_CPP_VERSION
85286     auto
85287 #else
85288     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT const &, uint32_t const &>
85289 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85290       reflect() const VULKAN_HPP_NOEXCEPT
85291     {
85292       return std::tie( sType, pNext, flags, rasterizationStream );
85293     }
85294 #endif
85295 
85296 
85297 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
85298 auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const & ) const = default;
85299 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85300     bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85301     {
85302 #if defined( VULKAN_HPP_USE_REFLECT )
85303       return this->reflect() == rhs.reflect();
85304 #else
85305       return ( sType == rhs.sType )
85306           && ( pNext == rhs.pNext )
85307           && ( flags == rhs.flags )
85308           && ( rasterizationStream == rhs.rasterizationStream );
85309 #endif
85310     }
85311 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT85312     bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85313     {
85314       return !operator==( rhs );
85315     }
85316 #endif
85317 
85318     public:
85319     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
85320     const void * pNext = {};
85321     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {};
85322     uint32_t rasterizationStream = {};
85323 
85324   };
85325 
85326   template <>
85327   struct CppType<StructureType, StructureType::ePipelineRasterizationStateStreamCreateInfoEXT>
85328   {
85329     using Type = PipelineRasterizationStateStreamCreateInfoEXT;
85330   };
85331 
85332   struct PipelineRenderingCreateInfo
85333   {
85334     using NativeType = VkPipelineRenderingCreateInfo;
85335 
85336     static const bool allowDuplicate = false;
85337     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRenderingCreateInfo;
85338 
85339 
85340 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRenderingCreateInfoVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85341 VULKAN_HPP_CONSTEXPR PipelineRenderingCreateInfo(uint32_t viewMask_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ = {}, VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
85342     : pNext( pNext_ ), viewMask( viewMask_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachmentFormats( pColorAttachmentFormats_ ), depthAttachmentFormat( depthAttachmentFormat_ ), stencilAttachmentFormat( stencilAttachmentFormat_ )
85343     {}
85344 
85345     VULKAN_HPP_CONSTEXPR PipelineRenderingCreateInfo( PipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85346 
PipelineRenderingCreateInfoVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85347     PipelineRenderingCreateInfo( VkPipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
85348       : PipelineRenderingCreateInfo( *reinterpret_cast<PipelineRenderingCreateInfo const *>( &rhs ) )
85349     {}
85350 
85351 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineRenderingCreateInfoVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85352     PipelineRenderingCreateInfo( uint32_t viewMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_, VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, const void * pNext_ = nullptr )
85353     : pNext( pNext_ ), viewMask( viewMask_ ), colorAttachmentCount( static_cast<uint32_t>( colorAttachmentFormats_.size() ) ), pColorAttachmentFormats( colorAttachmentFormats_.data() ), depthAttachmentFormat( depthAttachmentFormat_ ), stencilAttachmentFormat( stencilAttachmentFormat_ )
85354     {}
85355 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85356 
85357 
85358     PipelineRenderingCreateInfo & operator=( PipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85359 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
85360 
operator =VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85361     PipelineRenderingCreateInfo & operator=( VkPipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
85362     {
85363       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo const *>( &rhs );
85364       return *this;
85365     }
85366 
85367 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85368     VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
85369     {
85370       pNext = pNext_;
85371       return *this;
85372     }
85373 
setViewMaskVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85374     VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
85375     {
85376       viewMask = viewMask_;
85377       return *this;
85378     }
85379 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85380     VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
85381     {
85382       colorAttachmentCount = colorAttachmentCount_;
85383       return *this;
85384     }
85385 
setPColorAttachmentFormatsVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85386     VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
85387     {
85388       pColorAttachmentFormats = pColorAttachmentFormats_;
85389       return *this;
85390     }
85391 
85392 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setColorAttachmentFormatsVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85393     PipelineRenderingCreateInfo & setColorAttachmentFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
85394     {
85395       colorAttachmentCount = static_cast<uint32_t>( colorAttachmentFormats_.size() );
85396       pColorAttachmentFormats = colorAttachmentFormats_.data();
85397       return *this;
85398     }
85399 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85400 
setDepthAttachmentFormatVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85401     VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
85402     {
85403       depthAttachmentFormat = depthAttachmentFormat_;
85404       return *this;
85405     }
85406 
setStencilAttachmentFormatVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85407     VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
85408     {
85409       stencilAttachmentFormat = stencilAttachmentFormat_;
85410       return *this;
85411     }
85412 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
85413 
85414 
operator VkPipelineRenderingCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85415     operator VkPipelineRenderingCreateInfo const &() const VULKAN_HPP_NOEXCEPT
85416     {
85417       return *reinterpret_cast<const VkPipelineRenderingCreateInfo*>( this );
85418     }
85419 
operator VkPipelineRenderingCreateInfo&VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85420     operator VkPipelineRenderingCreateInfo &() VULKAN_HPP_NOEXCEPT
85421     {
85422       return *reinterpret_cast<VkPipelineRenderingCreateInfo*>( this );
85423     }
85424 
85425 #if defined( VULKAN_HPP_USE_REFLECT )
85426 #if 14 <= VULKAN_HPP_CPP_VERSION
85427     auto
85428 #else
85429     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Format * const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::Format const &>
85430 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85431       reflect() const VULKAN_HPP_NOEXCEPT
85432     {
85433       return std::tie( sType, pNext, viewMask, colorAttachmentCount, pColorAttachmentFormats, depthAttachmentFormat, stencilAttachmentFormat );
85434     }
85435 #endif
85436 
85437 
85438 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
85439 auto operator<=>( PipelineRenderingCreateInfo const & ) const = default;
85440 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85441     bool operator==( PipelineRenderingCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
85442     {
85443 #if defined( VULKAN_HPP_USE_REFLECT )
85444       return this->reflect() == rhs.reflect();
85445 #else
85446       return ( sType == rhs.sType )
85447           && ( pNext == rhs.pNext )
85448           && ( viewMask == rhs.viewMask )
85449           && ( colorAttachmentCount == rhs.colorAttachmentCount )
85450           && ( pColorAttachmentFormats == rhs.pColorAttachmentFormats )
85451           && ( depthAttachmentFormat == rhs.depthAttachmentFormat )
85452           && ( stencilAttachmentFormat == rhs.stencilAttachmentFormat );
85453 #endif
85454     }
85455 
operator !=VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo85456     bool operator!=( PipelineRenderingCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
85457     {
85458       return !operator==( rhs );
85459     }
85460 #endif
85461 
85462     public:
85463     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRenderingCreateInfo;
85464     const void * pNext = {};
85465     uint32_t viewMask = {};
85466     uint32_t colorAttachmentCount = {};
85467     const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats = {};
85468     VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
85469     VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
85470 
85471   };
85472 
85473   template <>
85474   struct CppType<StructureType, StructureType::ePipelineRenderingCreateInfo>
85475   {
85476     using Type = PipelineRenderingCreateInfo;
85477   };
85478   using PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo;
85479 
85480   struct PipelineRepresentativeFragmentTestStateCreateInfoNV
85481   {
85482     using NativeType = VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
85483 
85484     static const bool allowDuplicate = false;
85485     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
85486 
85487 
85488 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV85489 VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
85490     : pNext( pNext_ ), representativeFragmentTestEnable( representativeFragmentTestEnable_ )
85491     {}
85492 
85493     VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85494 
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV85495     PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
85496       : PipelineRepresentativeFragmentTestStateCreateInfoNV( *reinterpret_cast<PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs ) )
85497     {}
85498 
85499 
85500     PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85501 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
85502 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV85503     PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
85504     {
85505       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs );
85506       return *this;
85507     }
85508 
85509 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV85510     VULKAN_HPP_CONSTEXPR_14 PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
85511     {
85512       pNext = pNext_;
85513       return *this;
85514     }
85515 
setRepresentativeFragmentTestEnableVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV85516     VULKAN_HPP_CONSTEXPR_14 PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
85517     {
85518       representativeFragmentTestEnable = representativeFragmentTestEnable_;
85519       return *this;
85520     }
85521 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
85522 
85523 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV85524     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
85525     {
85526       return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
85527     }
85528 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV85529     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
85530     {
85531       return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
85532     }
85533 
85534 #if defined( VULKAN_HPP_USE_REFLECT )
85535 #if 14 <= VULKAN_HPP_CPP_VERSION
85536     auto
85537 #else
85538     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
85539 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV85540       reflect() const VULKAN_HPP_NOEXCEPT
85541     {
85542       return std::tie( sType, pNext, representativeFragmentTestEnable );
85543     }
85544 #endif
85545 
85546 
85547 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
85548 auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const & ) const = default;
85549 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV85550     bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
85551     {
85552 #if defined( VULKAN_HPP_USE_REFLECT )
85553       return this->reflect() == rhs.reflect();
85554 #else
85555       return ( sType == rhs.sType )
85556           && ( pNext == rhs.pNext )
85557           && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable );
85558 #endif
85559     }
85560 
operator !=VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV85561     bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
85562     {
85563       return !operator==( rhs );
85564     }
85565 #endif
85566 
85567     public:
85568     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
85569     const void * pNext = {};
85570     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {};
85571 
85572   };
85573 
85574   template <>
85575   struct CppType<StructureType, StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV>
85576   {
85577     using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV;
85578   };
85579 
85580   struct PipelineRobustnessCreateInfoEXT
85581   {
85582     using NativeType = VkPipelineRobustnessCreateInfoEXT;
85583 
85584     static const bool allowDuplicate = false;
85585     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRobustnessCreateInfoEXT;
85586 
85587 
85588 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRobustnessCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85589 VULKAN_HPP_CONSTEXPR PipelineRobustnessCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault, VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault, VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault, VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT images_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
85590     : pNext( pNext_ ), storageBuffers( storageBuffers_ ), uniformBuffers( uniformBuffers_ ), vertexInputs( vertexInputs_ ), images( images_ )
85591     {}
85592 
85593     VULKAN_HPP_CONSTEXPR PipelineRobustnessCreateInfoEXT( PipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85594 
PipelineRobustnessCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85595     PipelineRobustnessCreateInfoEXT( VkPipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
85596       : PipelineRobustnessCreateInfoEXT( *reinterpret_cast<PipelineRobustnessCreateInfoEXT const *>( &rhs ) )
85597     {}
85598 
85599 
85600     PipelineRobustnessCreateInfoEXT & operator=( PipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85601 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
85602 
operator =VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85603     PipelineRobustnessCreateInfoEXT & operator=( VkPipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
85604     {
85605       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT const *>( &rhs );
85606       return *this;
85607     }
85608 
85609 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85610     VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
85611     {
85612       pNext = pNext_;
85613       return *this;
85614     }
85615 
setStorageBuffersVULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85616     VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT & setStorageBuffers( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers_ ) VULKAN_HPP_NOEXCEPT
85617     {
85618       storageBuffers = storageBuffers_;
85619       return *this;
85620     }
85621 
setUniformBuffersVULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85622     VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT & setUniformBuffers( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers_ ) VULKAN_HPP_NOEXCEPT
85623     {
85624       uniformBuffers = uniformBuffers_;
85625       return *this;
85626     }
85627 
setVertexInputsVULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85628     VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT & setVertexInputs( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs_ ) VULKAN_HPP_NOEXCEPT
85629     {
85630       vertexInputs = vertexInputs_;
85631       return *this;
85632     }
85633 
setImagesVULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85634     VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT & setImages( VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT images_ ) VULKAN_HPP_NOEXCEPT
85635     {
85636       images = images_;
85637       return *this;
85638     }
85639 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
85640 
85641 
operator VkPipelineRobustnessCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85642     operator VkPipelineRobustnessCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
85643     {
85644       return *reinterpret_cast<const VkPipelineRobustnessCreateInfoEXT*>( this );
85645     }
85646 
operator VkPipelineRobustnessCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85647     operator VkPipelineRobustnessCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
85648     {
85649       return *reinterpret_cast<VkPipelineRobustnessCreateInfoEXT*>( this );
85650     }
85651 
85652 #if defined( VULKAN_HPP_USE_REFLECT )
85653 #if 14 <= VULKAN_HPP_CPP_VERSION
85654     auto
85655 #else
85656     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &, VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &, VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &, VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT const &>
85657 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85658       reflect() const VULKAN_HPP_NOEXCEPT
85659     {
85660       return std::tie( sType, pNext, storageBuffers, uniformBuffers, vertexInputs, images );
85661     }
85662 #endif
85663 
85664 
85665 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
85666 auto operator<=>( PipelineRobustnessCreateInfoEXT const & ) const = default;
85667 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85668     bool operator==( PipelineRobustnessCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85669     {
85670 #if defined( VULKAN_HPP_USE_REFLECT )
85671       return this->reflect() == rhs.reflect();
85672 #else
85673       return ( sType == rhs.sType )
85674           && ( pNext == rhs.pNext )
85675           && ( storageBuffers == rhs.storageBuffers )
85676           && ( uniformBuffers == rhs.uniformBuffers )
85677           && ( vertexInputs == rhs.vertexInputs )
85678           && ( images == rhs.images );
85679 #endif
85680     }
85681 
operator !=VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT85682     bool operator!=( PipelineRobustnessCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85683     {
85684       return !operator==( rhs );
85685     }
85686 #endif
85687 
85688     public:
85689     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRobustnessCreateInfoEXT;
85690     const void * pNext = {};
85691     VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
85692     VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
85693     VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
85694     VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT images = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault;
85695 
85696   };
85697 
85698   template <>
85699   struct CppType<StructureType, StructureType::ePipelineRobustnessCreateInfoEXT>
85700   {
85701     using Type = PipelineRobustnessCreateInfoEXT;
85702   };
85703 
85704   struct PipelineSampleLocationsStateCreateInfoEXT
85705   {
85706     using NativeType = VkPipelineSampleLocationsStateCreateInfoEXT;
85707 
85708     static const bool allowDuplicate = false;
85709     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
85710 
85711 
85712 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85713 VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
85714     : pNext( pNext_ ), sampleLocationsEnable( sampleLocationsEnable_ ), sampleLocationsInfo( sampleLocationsInfo_ )
85715     {}
85716 
85717     VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85718 
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85719     PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
85720       : PipelineSampleLocationsStateCreateInfoEXT( *reinterpret_cast<PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs ) )
85721     {}
85722 
85723 
85724     PipelineSampleLocationsStateCreateInfoEXT & operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85725 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
85726 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85727     PipelineSampleLocationsStateCreateInfoEXT & operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
85728     {
85729       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs );
85730       return *this;
85731     }
85732 
85733 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85734     VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
85735     {
85736       pNext = pNext_;
85737       return *this;
85738     }
85739 
setSampleLocationsEnableVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85740     VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
85741     {
85742       sampleLocationsEnable = sampleLocationsEnable_;
85743       return *this;
85744     }
85745 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85746     VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
85747     {
85748       sampleLocationsInfo = sampleLocationsInfo_;
85749       return *this;
85750     }
85751 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
85752 
85753 
operator VkPipelineSampleLocationsStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85754     operator VkPipelineSampleLocationsStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
85755     {
85756       return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
85757     }
85758 
operator VkPipelineSampleLocationsStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85759     operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
85760     {
85761       return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
85762     }
85763 
85764 #if defined( VULKAN_HPP_USE_REFLECT )
85765 #if 14 <= VULKAN_HPP_CPP_VERSION
85766     auto
85767 #else
85768     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const &>
85769 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85770       reflect() const VULKAN_HPP_NOEXCEPT
85771     {
85772       return std::tie( sType, pNext, sampleLocationsEnable, sampleLocationsInfo );
85773     }
85774 #endif
85775 
85776 
85777 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
85778 auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const & ) const = default;
85779 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85780     bool operator==( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85781     {
85782 #if defined( VULKAN_HPP_USE_REFLECT )
85783       return this->reflect() == rhs.reflect();
85784 #else
85785       return ( sType == rhs.sType )
85786           && ( pNext == rhs.pNext )
85787           && ( sampleLocationsEnable == rhs.sampleLocationsEnable )
85788           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
85789 #endif
85790     }
85791 
operator !=VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT85792     bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85793     {
85794       return !operator==( rhs );
85795     }
85796 #endif
85797 
85798     public:
85799     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
85800     const void * pNext = {};
85801     VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {};
85802     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
85803 
85804   };
85805 
85806   template <>
85807   struct CppType<StructureType, StructureType::ePipelineSampleLocationsStateCreateInfoEXT>
85808   {
85809     using Type = PipelineSampleLocationsStateCreateInfoEXT;
85810   };
85811 
85812   struct PipelineShaderStageModuleIdentifierCreateInfoEXT
85813   {
85814     using NativeType = VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
85815 
85816     static const bool allowDuplicate = false;
85817     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageModuleIdentifierCreateInfoEXT;
85818 
85819 
85820 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageModuleIdentifierCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85821 VULKAN_HPP_CONSTEXPR PipelineShaderStageModuleIdentifierCreateInfoEXT(uint32_t identifierSize_ = {}, const uint8_t * pIdentifier_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
85822     : pNext( pNext_ ), identifierSize( identifierSize_ ), pIdentifier( pIdentifier_ )
85823     {}
85824 
85825     VULKAN_HPP_CONSTEXPR PipelineShaderStageModuleIdentifierCreateInfoEXT( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85826 
PipelineShaderStageModuleIdentifierCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85827     PipelineShaderStageModuleIdentifierCreateInfoEXT( VkPipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
85828       : PipelineShaderStageModuleIdentifierCreateInfoEXT( *reinterpret_cast<PipelineShaderStageModuleIdentifierCreateInfoEXT const *>( &rhs ) )
85829     {}
85830 
85831 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineShaderStageModuleIdentifierCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85832     PipelineShaderStageModuleIdentifierCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & identifier_, const void * pNext_ = nullptr )
85833     : pNext( pNext_ ), identifierSize( static_cast<uint32_t>( identifier_.size() ) ), pIdentifier( identifier_.data() )
85834     {}
85835 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85836 
85837 
85838     PipelineShaderStageModuleIdentifierCreateInfoEXT & operator=( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85839 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
85840 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85841     PipelineShaderStageModuleIdentifierCreateInfoEXT & operator=( VkPipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
85842     {
85843       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT const *>( &rhs );
85844       return *this;
85845     }
85846 
85847 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85848     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageModuleIdentifierCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
85849     {
85850       pNext = pNext_;
85851       return *this;
85852     }
85853 
setIdentifierSizeVULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85854     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageModuleIdentifierCreateInfoEXT & setIdentifierSize( uint32_t identifierSize_ ) VULKAN_HPP_NOEXCEPT
85855     {
85856       identifierSize = identifierSize_;
85857       return *this;
85858     }
85859 
setPIdentifierVULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85860     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageModuleIdentifierCreateInfoEXT & setPIdentifier( const uint8_t * pIdentifier_ ) VULKAN_HPP_NOEXCEPT
85861     {
85862       pIdentifier = pIdentifier_;
85863       return *this;
85864     }
85865 
85866 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setIdentifierVULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85867     PipelineShaderStageModuleIdentifierCreateInfoEXT & setIdentifier( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & identifier_ ) VULKAN_HPP_NOEXCEPT
85868     {
85869       identifierSize = static_cast<uint32_t>( identifier_.size() );
85870       pIdentifier = identifier_.data();
85871       return *this;
85872     }
85873 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85874 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
85875 
85876 
operator VkPipelineShaderStageModuleIdentifierCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85877     operator VkPipelineShaderStageModuleIdentifierCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
85878     {
85879       return *reinterpret_cast<const VkPipelineShaderStageModuleIdentifierCreateInfoEXT*>( this );
85880     }
85881 
operator VkPipelineShaderStageModuleIdentifierCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85882     operator VkPipelineShaderStageModuleIdentifierCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
85883     {
85884       return *reinterpret_cast<VkPipelineShaderStageModuleIdentifierCreateInfoEXT*>( this );
85885     }
85886 
85887 #if defined( VULKAN_HPP_USE_REFLECT )
85888 #if 14 <= VULKAN_HPP_CPP_VERSION
85889     auto
85890 #else
85891     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint8_t * const &>
85892 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85893       reflect() const VULKAN_HPP_NOEXCEPT
85894     {
85895       return std::tie( sType, pNext, identifierSize, pIdentifier );
85896     }
85897 #endif
85898 
85899 
85900 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
85901 auto operator<=>( PipelineShaderStageModuleIdentifierCreateInfoEXT const & ) const = default;
85902 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85903     bool operator==( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85904     {
85905 #if defined( VULKAN_HPP_USE_REFLECT )
85906       return this->reflect() == rhs.reflect();
85907 #else
85908       return ( sType == rhs.sType )
85909           && ( pNext == rhs.pNext )
85910           && ( identifierSize == rhs.identifierSize )
85911           && ( pIdentifier == rhs.pIdentifier );
85912 #endif
85913     }
85914 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT85915     bool operator!=( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
85916     {
85917       return !operator==( rhs );
85918     }
85919 #endif
85920 
85921     public:
85922     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageModuleIdentifierCreateInfoEXT;
85923     const void * pNext = {};
85924     uint32_t identifierSize = {};
85925     const uint8_t * pIdentifier = {};
85926 
85927   };
85928 
85929   template <>
85930   struct CppType<StructureType, StructureType::ePipelineShaderStageModuleIdentifierCreateInfoEXT>
85931   {
85932     using Type = PipelineShaderStageModuleIdentifierCreateInfoEXT;
85933   };
85934 
85935 #if defined( VK_ENABLE_BETA_EXTENSIONS )
85936   struct PipelineShaderStageNodeCreateInfoAMDX
85937   {
85938     using NativeType = VkPipelineShaderStageNodeCreateInfoAMDX;
85939 
85940     static const bool allowDuplicate = false;
85941     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageNodeCreateInfoAMDX;
85942 
85943 
85944 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageNodeCreateInfoAMDXVULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX85945 VULKAN_HPP_CONSTEXPR PipelineShaderStageNodeCreateInfoAMDX(const char * pName_ = {}, uint32_t index_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
85946     : pNext( pNext_ ), pName( pName_ ), index( index_ )
85947     {}
85948 
85949     VULKAN_HPP_CONSTEXPR PipelineShaderStageNodeCreateInfoAMDX( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85950 
PipelineShaderStageNodeCreateInfoAMDXVULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX85951     PipelineShaderStageNodeCreateInfoAMDX( VkPipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
85952       : PipelineShaderStageNodeCreateInfoAMDX( *reinterpret_cast<PipelineShaderStageNodeCreateInfoAMDX const *>( &rhs ) )
85953     {}
85954 
85955 
85956     PipelineShaderStageNodeCreateInfoAMDX & operator=( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
85957 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
85958 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX85959     PipelineShaderStageNodeCreateInfoAMDX & operator=( VkPipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
85960     {
85961       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX const *>( &rhs );
85962       return *this;
85963     }
85964 
85965 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX85966     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageNodeCreateInfoAMDX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
85967     {
85968       pNext = pNext_;
85969       return *this;
85970     }
85971 
setPNameVULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX85972     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageNodeCreateInfoAMDX & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
85973     {
85974       pName = pName_;
85975       return *this;
85976     }
85977 
setIndexVULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX85978     VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageNodeCreateInfoAMDX & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
85979     {
85980       index = index_;
85981       return *this;
85982     }
85983 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
85984 
85985 
operator VkPipelineShaderStageNodeCreateInfoAMDX const&VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX85986     operator VkPipelineShaderStageNodeCreateInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
85987     {
85988       return *reinterpret_cast<const VkPipelineShaderStageNodeCreateInfoAMDX*>( this );
85989     }
85990 
operator VkPipelineShaderStageNodeCreateInfoAMDX&VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX85991     operator VkPipelineShaderStageNodeCreateInfoAMDX &() VULKAN_HPP_NOEXCEPT
85992     {
85993       return *reinterpret_cast<VkPipelineShaderStageNodeCreateInfoAMDX*>( this );
85994     }
85995 
85996 #if defined( VULKAN_HPP_USE_REFLECT )
85997 #if 14 <= VULKAN_HPP_CPP_VERSION
85998     auto
85999 #else
86000     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const char * const &, uint32_t const &>
86001 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX86002       reflect() const VULKAN_HPP_NOEXCEPT
86003     {
86004       return std::tie( sType, pNext, pName, index );
86005     }
86006 #endif
86007 
86008 
86009 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX86010     std::strong_ordering operator<=>( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
86011     {
86012       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
86013       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
86014      if ( pName != rhs.pName )
86015         if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
86016           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
86017       if ( auto cmp = index <=> rhs.index; cmp != 0 ) return cmp;
86018 
86019       return std::strong_ordering::equivalent;
86020     }
86021 #endif
86022 
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX86023     bool operator==( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
86024     {
86025       return ( sType == rhs.sType )
86026           && ( pNext == rhs.pNext )
86027           && ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) )
86028           && ( index == rhs.index );
86029     }
86030 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX86031     bool operator!=( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
86032     {
86033       return !operator==( rhs );
86034     }
86035 
86036     public:
86037     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageNodeCreateInfoAMDX;
86038     const void * pNext = {};
86039     const char * pName = {};
86040     uint32_t index = {};
86041 
86042   };
86043 
86044   template <>
86045   struct CppType<StructureType, StructureType::ePipelineShaderStageNodeCreateInfoAMDX>
86046   {
86047     using Type = PipelineShaderStageNodeCreateInfoAMDX;
86048   };
86049 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
86050 
86051   struct PipelineShaderStageRequiredSubgroupSizeCreateInfo
86052   {
86053     using NativeType = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
86054 
86055     static const bool allowDuplicate = false;
86056     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfo;
86057 
86058 
86059 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageRequiredSubgroupSizeCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo86060 VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfo(uint32_t requiredSubgroupSize_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
86061     : pNext( pNext_ ), requiredSubgroupSize( requiredSubgroupSize_ )
86062     {}
86063 
86064     VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfo( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86065 
PipelineShaderStageRequiredSubgroupSizeCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo86066     PipelineShaderStageRequiredSubgroupSizeCreateInfo( VkPipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
86067       : PipelineShaderStageRequiredSubgroupSizeCreateInfo( *reinterpret_cast<PipelineShaderStageRequiredSubgroupSizeCreateInfo const *>( &rhs ) )
86068     {}
86069 
86070 
86071     PipelineShaderStageRequiredSubgroupSizeCreateInfo & operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86072 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
86073 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo86074     PipelineShaderStageRequiredSubgroupSizeCreateInfo & operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
86075     {
86076       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo const *>( &rhs );
86077       return *this;
86078     }
86079 
86080 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo86081     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
86082     {
86083       return *reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>( this );
86084     }
86085 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfo&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo86086     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfo &() VULKAN_HPP_NOEXCEPT
86087     {
86088       return *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>( this );
86089     }
86090 
86091 #if defined( VULKAN_HPP_USE_REFLECT )
86092 #if 14 <= VULKAN_HPP_CPP_VERSION
86093     auto
86094 #else
86095     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
86096 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo86097       reflect() const VULKAN_HPP_NOEXCEPT
86098     {
86099       return std::tie( sType, pNext, requiredSubgroupSize );
86100     }
86101 #endif
86102 
86103 
86104 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
86105 auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & ) const = default;
86106 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo86107     bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
86108     {
86109 #if defined( VULKAN_HPP_USE_REFLECT )
86110       return this->reflect() == rhs.reflect();
86111 #else
86112       return ( sType == rhs.sType )
86113           && ( pNext == rhs.pNext )
86114           && ( requiredSubgroupSize == rhs.requiredSubgroupSize );
86115 #endif
86116     }
86117 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo86118     bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
86119     {
86120       return !operator==( rhs );
86121     }
86122 #endif
86123 
86124     public:
86125     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfo;
86126     void * pNext = {};
86127     uint32_t requiredSubgroupSize = {};
86128 
86129   };
86130 
86131   template <>
86132   struct CppType<StructureType, StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfo>
86133   {
86134     using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
86135   };
86136   using PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
86137   using ShaderRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
86138 
86139   struct PipelineTessellationDomainOriginStateCreateInfo
86140   {
86141     using NativeType = VkPipelineTessellationDomainOriginStateCreateInfo;
86142 
86143     static const bool allowDuplicate = false;
86144     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
86145 
86146 
86147 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo86148 VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo(VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
86149     : pNext( pNext_ ), domainOrigin( domainOrigin_ )
86150     {}
86151 
86152     VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86153 
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo86154     PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
86155       : PipelineTessellationDomainOriginStateCreateInfo( *reinterpret_cast<PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs ) )
86156     {}
86157 
86158 
86159     PipelineTessellationDomainOriginStateCreateInfo & operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86160 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
86161 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo86162     PipelineTessellationDomainOriginStateCreateInfo & operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
86163     {
86164       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs );
86165       return *this;
86166     }
86167 
86168 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo86169     VULKAN_HPP_CONSTEXPR_14 PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
86170     {
86171       pNext = pNext_;
86172       return *this;
86173     }
86174 
setDomainOriginVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo86175     VULKAN_HPP_CONSTEXPR_14 PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT
86176     {
86177       domainOrigin = domainOrigin_;
86178       return *this;
86179     }
86180 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
86181 
86182 
operator VkPipelineTessellationDomainOriginStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo86183     operator VkPipelineTessellationDomainOriginStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
86184     {
86185       return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
86186     }
86187 
operator VkPipelineTessellationDomainOriginStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo86188     operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT
86189     {
86190       return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
86191     }
86192 
86193 #if defined( VULKAN_HPP_USE_REFLECT )
86194 #if 14 <= VULKAN_HPP_CPP_VERSION
86195     auto
86196 #else
86197     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::TessellationDomainOrigin const &>
86198 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo86199       reflect() const VULKAN_HPP_NOEXCEPT
86200     {
86201       return std::tie( sType, pNext, domainOrigin );
86202     }
86203 #endif
86204 
86205 
86206 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
86207 auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const & ) const = default;
86208 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo86209     bool operator==( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
86210     {
86211 #if defined( VULKAN_HPP_USE_REFLECT )
86212       return this->reflect() == rhs.reflect();
86213 #else
86214       return ( sType == rhs.sType )
86215           && ( pNext == rhs.pNext )
86216           && ( domainOrigin == rhs.domainOrigin );
86217 #endif
86218     }
86219 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo86220     bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
86221     {
86222       return !operator==( rhs );
86223     }
86224 #endif
86225 
86226     public:
86227     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
86228     const void * pNext = {};
86229     VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft;
86230 
86231   };
86232 
86233   template <>
86234   struct CppType<StructureType, StructureType::ePipelineTessellationDomainOriginStateCreateInfo>
86235   {
86236     using Type = PipelineTessellationDomainOriginStateCreateInfo;
86237   };
86238   using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
86239 
86240   struct VertexInputBindingDivisorDescriptionEXT
86241   {
86242     using NativeType = VkVertexInputBindingDivisorDescriptionEXT;
86243 
86244 
86245 
86246 
86247 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT86248 VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT(uint32_t binding_ = {}, uint32_t divisor_ = {}) VULKAN_HPP_NOEXCEPT
86249     : binding( binding_ ), divisor( divisor_ )
86250     {}
86251 
86252     VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86253 
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT86254     VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
86255       : VertexInputBindingDivisorDescriptionEXT( *reinterpret_cast<VertexInputBindingDivisorDescriptionEXT const *>( &rhs ) )
86256     {}
86257 
86258 
86259     VertexInputBindingDivisorDescriptionEXT & operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86260 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
86261 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT86262     VertexInputBindingDivisorDescriptionEXT & operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
86263     {
86264       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const *>( &rhs );
86265       return *this;
86266     }
86267 
86268 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT86269     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
86270     {
86271       binding = binding_;
86272       return *this;
86273     }
86274 
setDivisorVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT86275     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
86276     {
86277       divisor = divisor_;
86278       return *this;
86279     }
86280 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
86281 
86282 
operator VkVertexInputBindingDivisorDescriptionEXT const&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT86283     operator VkVertexInputBindingDivisorDescriptionEXT const &() const VULKAN_HPP_NOEXCEPT
86284     {
86285       return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT*>( this );
86286     }
86287 
operator VkVertexInputBindingDivisorDescriptionEXT&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT86288     operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT
86289     {
86290       return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>( this );
86291     }
86292 
86293 #if defined( VULKAN_HPP_USE_REFLECT )
86294 #if 14 <= VULKAN_HPP_CPP_VERSION
86295     auto
86296 #else
86297     std::tuple<uint32_t const &, uint32_t const &>
86298 #endif
reflectVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT86299       reflect() const VULKAN_HPP_NOEXCEPT
86300     {
86301       return std::tie( binding, divisor );
86302     }
86303 #endif
86304 
86305 
86306 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
86307 auto operator<=>( VertexInputBindingDivisorDescriptionEXT const & ) const = default;
86308 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT86309     bool operator==( VertexInputBindingDivisorDescriptionEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
86310     {
86311 #if defined( VULKAN_HPP_USE_REFLECT )
86312       return this->reflect() == rhs.reflect();
86313 #else
86314       return ( binding == rhs.binding )
86315           && ( divisor == rhs.divisor );
86316 #endif
86317     }
86318 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT86319     bool operator!=( VertexInputBindingDivisorDescriptionEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
86320     {
86321       return !operator==( rhs );
86322     }
86323 #endif
86324 
86325     public:
86326     uint32_t binding = {};
86327     uint32_t divisor = {};
86328 
86329   };
86330 
86331   struct PipelineVertexInputDivisorStateCreateInfoEXT
86332   {
86333     using NativeType = VkPipelineVertexInputDivisorStateCreateInfoEXT;
86334 
86335     static const bool allowDuplicate = false;
86336     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
86337 
86338 
86339 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86340 VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT(uint32_t vertexBindingDivisorCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
86341     : pNext( pNext_ ), vertexBindingDivisorCount( vertexBindingDivisorCount_ ), pVertexBindingDivisors( pVertexBindingDivisors_ )
86342     {}
86343 
86344     VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86345 
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86346     PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
86347       : PipelineVertexInputDivisorStateCreateInfoEXT( *reinterpret_cast<PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs ) )
86348     {}
86349 
86350 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86351     PipelineVertexInputDivisorStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_, const void * pNext_ = nullptr )
86352     : pNext( pNext_ ), vertexBindingDivisorCount( static_cast<uint32_t>( vertexBindingDivisors_.size() ) ), pVertexBindingDivisors( vertexBindingDivisors_.data() )
86353     {}
86354 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86355 
86356 
86357     PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86358 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
86359 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86360     PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
86361     {
86362       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs );
86363       return *this;
86364     }
86365 
86366 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86367     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
86368     {
86369       pNext = pNext_;
86370       return *this;
86371     }
86372 
setVertexBindingDivisorCountVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86373     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT
86374     {
86375       vertexBindingDivisorCount = vertexBindingDivisorCount_;
86376       return *this;
86377     }
86378 
setPVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86379     VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
86380     {
86381       pVertexBindingDivisors = pVertexBindingDivisors_;
86382       return *this;
86383     }
86384 
86385 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86386     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
86387     {
86388       vertexBindingDivisorCount = static_cast<uint32_t>( vertexBindingDivisors_.size() );
86389       pVertexBindingDivisors = vertexBindingDivisors_.data();
86390       return *this;
86391     }
86392 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86393 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
86394 
86395 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86396     operator VkPipelineVertexInputDivisorStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
86397     {
86398       return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
86399     }
86400 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86401     operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
86402     {
86403       return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
86404     }
86405 
86406 #if defined( VULKAN_HPP_USE_REFLECT )
86407 #if 14 <= VULKAN_HPP_CPP_VERSION
86408     auto
86409 #else
86410     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * const &>
86411 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86412       reflect() const VULKAN_HPP_NOEXCEPT
86413     {
86414       return std::tie( sType, pNext, vertexBindingDivisorCount, pVertexBindingDivisors );
86415     }
86416 #endif
86417 
86418 
86419 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
86420 auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const & ) const = default;
86421 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86422     bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
86423     {
86424 #if defined( VULKAN_HPP_USE_REFLECT )
86425       return this->reflect() == rhs.reflect();
86426 #else
86427       return ( sType == rhs.sType )
86428           && ( pNext == rhs.pNext )
86429           && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount )
86430           && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors );
86431 #endif
86432     }
86433 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT86434     bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
86435     {
86436       return !operator==( rhs );
86437     }
86438 #endif
86439 
86440     public:
86441     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
86442     const void * pNext = {};
86443     uint32_t vertexBindingDivisorCount = {};
86444     const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors = {};
86445 
86446   };
86447 
86448   template <>
86449   struct CppType<StructureType, StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT>
86450   {
86451     using Type = PipelineVertexInputDivisorStateCreateInfoEXT;
86452   };
86453 
86454   struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
86455   {
86456     using NativeType = VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
86457 
86458     static const bool allowDuplicate = false;
86459     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
86460 
86461 
86462 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86463 VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault, uint32_t customSampleOrderCount_ = {}, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
86464     : pNext( pNext_ ), sampleOrderType( sampleOrderType_ ), customSampleOrderCount( customSampleOrderCount_ ), pCustomSampleOrders( pCustomSampleOrders_ )
86465     {}
86466 
86467     VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86468 
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86469     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
86470       : PipelineViewportCoarseSampleOrderStateCreateInfoNV( *reinterpret_cast<PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs ) )
86471     {}
86472 
86473 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86474     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_, const void * pNext_ = nullptr )
86475     : pNext( pNext_ ), sampleOrderType( sampleOrderType_ ), customSampleOrderCount( static_cast<uint32_t>( customSampleOrders_.size() ) ), pCustomSampleOrders( customSampleOrders_.data() )
86476     {}
86477 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86478 
86479 
86480     PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86481 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
86482 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86483     PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
86484     {
86485       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs );
86486       return *this;
86487     }
86488 
86489 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86490     VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
86491     {
86492       pNext = pNext_;
86493       return *this;
86494     }
86495 
setSampleOrderTypeVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86496     VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT
86497     {
86498       sampleOrderType = sampleOrderType_;
86499       return *this;
86500     }
86501 
setCustomSampleOrderCountVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86502     VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT
86503     {
86504       customSampleOrderCount = customSampleOrderCount_;
86505       return *this;
86506     }
86507 
setPCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86508     VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT
86509     {
86510       pCustomSampleOrders = pCustomSampleOrders_;
86511       return *this;
86512     }
86513 
86514 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86515     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ ) VULKAN_HPP_NOEXCEPT
86516     {
86517       customSampleOrderCount = static_cast<uint32_t>( customSampleOrders_.size() );
86518       pCustomSampleOrders = customSampleOrders_.data();
86519       return *this;
86520     }
86521 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86522 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
86523 
86524 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86525     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
86526     {
86527       return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
86528     }
86529 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86530     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
86531     {
86532       return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
86533     }
86534 
86535 #if defined( VULKAN_HPP_USE_REFLECT )
86536 #if 14 <= VULKAN_HPP_CPP_VERSION
86537     auto
86538 #else
86539     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * const &>
86540 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86541       reflect() const VULKAN_HPP_NOEXCEPT
86542     {
86543       return std::tie( sType, pNext, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
86544     }
86545 #endif
86546 
86547 
86548 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
86549 auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & ) const = default;
86550 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86551     bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
86552     {
86553 #if defined( VULKAN_HPP_USE_REFLECT )
86554       return this->reflect() == rhs.reflect();
86555 #else
86556       return ( sType == rhs.sType )
86557           && ( pNext == rhs.pNext )
86558           && ( sampleOrderType == rhs.sampleOrderType )
86559           && ( customSampleOrderCount == rhs.customSampleOrderCount )
86560           && ( pCustomSampleOrders == rhs.pCustomSampleOrders );
86561 #endif
86562     }
86563 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV86564     bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
86565     {
86566       return !operator==( rhs );
86567     }
86568 #endif
86569 
86570     public:
86571     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
86572     const void * pNext = {};
86573     VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault;
86574     uint32_t customSampleOrderCount = {};
86575     const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders = {};
86576 
86577   };
86578 
86579   template <>
86580   struct CppType<StructureType, StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV>
86581   {
86582     using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV;
86583   };
86584 
86585   struct PipelineViewportDepthClipControlCreateInfoEXT
86586   {
86587     using NativeType = VkPipelineViewportDepthClipControlCreateInfoEXT;
86588 
86589     static const bool allowDuplicate = false;
86590     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportDepthClipControlCreateInfoEXT;
86591 
86592 
86593 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportDepthClipControlCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT86594 VULKAN_HPP_CONSTEXPR PipelineViewportDepthClipControlCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
86595     : pNext( pNext_ ), negativeOneToOne( negativeOneToOne_ )
86596     {}
86597 
86598     VULKAN_HPP_CONSTEXPR PipelineViewportDepthClipControlCreateInfoEXT( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86599 
PipelineViewportDepthClipControlCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT86600     PipelineViewportDepthClipControlCreateInfoEXT( VkPipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
86601       : PipelineViewportDepthClipControlCreateInfoEXT( *reinterpret_cast<PipelineViewportDepthClipControlCreateInfoEXT const *>( &rhs ) )
86602     {}
86603 
86604 
86605     PipelineViewportDepthClipControlCreateInfoEXT & operator=( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86606 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
86607 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT86608     PipelineViewportDepthClipControlCreateInfoEXT & operator=( VkPipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
86609     {
86610       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT const *>( &rhs );
86611       return *this;
86612     }
86613 
86614 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT86615     VULKAN_HPP_CONSTEXPR_14 PipelineViewportDepthClipControlCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
86616     {
86617       pNext = pNext_;
86618       return *this;
86619     }
86620 
setNegativeOneToOneVULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT86621     VULKAN_HPP_CONSTEXPR_14 PipelineViewportDepthClipControlCreateInfoEXT & setNegativeOneToOne( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne_ ) VULKAN_HPP_NOEXCEPT
86622     {
86623       negativeOneToOne = negativeOneToOne_;
86624       return *this;
86625     }
86626 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
86627 
86628 
operator VkPipelineViewportDepthClipControlCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT86629     operator VkPipelineViewportDepthClipControlCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
86630     {
86631       return *reinterpret_cast<const VkPipelineViewportDepthClipControlCreateInfoEXT*>( this );
86632     }
86633 
operator VkPipelineViewportDepthClipControlCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT86634     operator VkPipelineViewportDepthClipControlCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
86635     {
86636       return *reinterpret_cast<VkPipelineViewportDepthClipControlCreateInfoEXT*>( this );
86637     }
86638 
86639 #if defined( VULKAN_HPP_USE_REFLECT )
86640 #if 14 <= VULKAN_HPP_CPP_VERSION
86641     auto
86642 #else
86643     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
86644 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT86645       reflect() const VULKAN_HPP_NOEXCEPT
86646     {
86647       return std::tie( sType, pNext, negativeOneToOne );
86648     }
86649 #endif
86650 
86651 
86652 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
86653 auto operator<=>( PipelineViewportDepthClipControlCreateInfoEXT const & ) const = default;
86654 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT86655     bool operator==( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
86656     {
86657 #if defined( VULKAN_HPP_USE_REFLECT )
86658       return this->reflect() == rhs.reflect();
86659 #else
86660       return ( sType == rhs.sType )
86661           && ( pNext == rhs.pNext )
86662           && ( negativeOneToOne == rhs.negativeOneToOne );
86663 #endif
86664     }
86665 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT86666     bool operator!=( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
86667     {
86668       return !operator==( rhs );
86669     }
86670 #endif
86671 
86672     public:
86673     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportDepthClipControlCreateInfoEXT;
86674     const void * pNext = {};
86675     VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne = {};
86676 
86677   };
86678 
86679   template <>
86680   struct CppType<StructureType, StructureType::ePipelineViewportDepthClipControlCreateInfoEXT>
86681   {
86682     using Type = PipelineViewportDepthClipControlCreateInfoEXT;
86683   };
86684 
86685   struct PipelineViewportExclusiveScissorStateCreateInfoNV
86686   {
86687     using NativeType = VkPipelineViewportExclusiveScissorStateCreateInfoNV;
86688 
86689     static const bool allowDuplicate = false;
86690     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
86691 
86692 
86693 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86694 VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV(uint32_t exclusiveScissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
86695     : pNext( pNext_ ), exclusiveScissorCount( exclusiveScissorCount_ ), pExclusiveScissors( pExclusiveScissors_ )
86696     {}
86697 
86698     VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86699 
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86700     PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
86701       : PipelineViewportExclusiveScissorStateCreateInfoNV( *reinterpret_cast<PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs ) )
86702     {}
86703 
86704 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86705     PipelineViewportExclusiveScissorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_, const void * pNext_ = nullptr )
86706     : pNext( pNext_ ), exclusiveScissorCount( static_cast<uint32_t>( exclusiveScissors_.size() ) ), pExclusiveScissors( exclusiveScissors_.data() )
86707     {}
86708 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86709 
86710 
86711     PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86712 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
86713 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86714     PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
86715     {
86716       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs );
86717       return *this;
86718     }
86719 
86720 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86721     VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
86722     {
86723       pNext = pNext_;
86724       return *this;
86725     }
86726 
setExclusiveScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86727     VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT
86728     {
86729       exclusiveScissorCount = exclusiveScissorCount_;
86730       return *this;
86731     }
86732 
setPExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86733     VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
86734     {
86735       pExclusiveScissors = pExclusiveScissors_;
86736       return *this;
86737     }
86738 
86739 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86740     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
86741     {
86742       exclusiveScissorCount = static_cast<uint32_t>( exclusiveScissors_.size() );
86743       pExclusiveScissors = exclusiveScissors_.data();
86744       return *this;
86745     }
86746 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86747 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
86748 
86749 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86750     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
86751     {
86752       return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
86753     }
86754 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86755     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
86756     {
86757       return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
86758     }
86759 
86760 #if defined( VULKAN_HPP_USE_REFLECT )
86761 #if 14 <= VULKAN_HPP_CPP_VERSION
86762     auto
86763 #else
86764     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
86765 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86766       reflect() const VULKAN_HPP_NOEXCEPT
86767     {
86768       return std::tie( sType, pNext, exclusiveScissorCount, pExclusiveScissors );
86769     }
86770 #endif
86771 
86772 
86773 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
86774 auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const & ) const = default;
86775 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86776     bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
86777     {
86778 #if defined( VULKAN_HPP_USE_REFLECT )
86779       return this->reflect() == rhs.reflect();
86780 #else
86781       return ( sType == rhs.sType )
86782           && ( pNext == rhs.pNext )
86783           && ( exclusiveScissorCount == rhs.exclusiveScissorCount )
86784           && ( pExclusiveScissors == rhs.pExclusiveScissors );
86785 #endif
86786     }
86787 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV86788     bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
86789     {
86790       return !operator==( rhs );
86791     }
86792 #endif
86793 
86794     public:
86795     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
86796     const void * pNext = {};
86797     uint32_t exclusiveScissorCount = {};
86798     const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors = {};
86799 
86800   };
86801 
86802   template <>
86803   struct CppType<StructureType, StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV>
86804   {
86805     using Type = PipelineViewportExclusiveScissorStateCreateInfoNV;
86806   };
86807 
86808   struct ShadingRatePaletteNV
86809   {
86810     using NativeType = VkShadingRatePaletteNV;
86811 
86812 
86813 
86814 
86815 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86816 VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV(uint32_t shadingRatePaletteEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries_ = {}) VULKAN_HPP_NOEXCEPT
86817     : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ ), pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
86818     {}
86819 
86820     VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86821 
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86822     ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
86823       : ShadingRatePaletteNV( *reinterpret_cast<ShadingRatePaletteNV const *>( &rhs ) )
86824     {}
86825 
86826 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86827     ShadingRatePaletteNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ )
86828     : shadingRatePaletteEntryCount( static_cast<uint32_t>( shadingRatePaletteEntries_.size() ) ), pShadingRatePaletteEntries( shadingRatePaletteEntries_.data() )
86829     {}
86830 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86831 
86832 
86833     ShadingRatePaletteNV & operator=( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86834 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
86835 
operator =VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86836     ShadingRatePaletteNV & operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
86837     {
86838       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV const *>( &rhs );
86839       return *this;
86840     }
86841 
86842 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setShadingRatePaletteEntryCountVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86843     VULKAN_HPP_CONSTEXPR_14 ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT
86844     {
86845       shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
86846       return *this;
86847     }
86848 
setPShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86849     VULKAN_HPP_CONSTEXPR_14 ShadingRatePaletteNV & setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
86850     {
86851       pShadingRatePaletteEntries = pShadingRatePaletteEntries_;
86852       return *this;
86853     }
86854 
86855 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86856     ShadingRatePaletteNV & setShadingRatePaletteEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
86857     {
86858       shadingRatePaletteEntryCount = static_cast<uint32_t>( shadingRatePaletteEntries_.size() );
86859       pShadingRatePaletteEntries = shadingRatePaletteEntries_.data();
86860       return *this;
86861     }
86862 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86863 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
86864 
86865 
operator VkShadingRatePaletteNV const&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86866     operator VkShadingRatePaletteNV const &() const VULKAN_HPP_NOEXCEPT
86867     {
86868       return *reinterpret_cast<const VkShadingRatePaletteNV*>( this );
86869     }
86870 
operator VkShadingRatePaletteNV&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86871     operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT
86872     {
86873       return *reinterpret_cast<VkShadingRatePaletteNV*>( this );
86874     }
86875 
86876 #if defined( VULKAN_HPP_USE_REFLECT )
86877 #if 14 <= VULKAN_HPP_CPP_VERSION
86878     auto
86879 #else
86880     std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * const &>
86881 #endif
reflectVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86882       reflect() const VULKAN_HPP_NOEXCEPT
86883     {
86884       return std::tie( shadingRatePaletteEntryCount, pShadingRatePaletteEntries );
86885     }
86886 #endif
86887 
86888 
86889 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
86890 auto operator<=>( ShadingRatePaletteNV const & ) const = default;
86891 #else
operator ==VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86892     bool operator==( ShadingRatePaletteNV const & rhs ) const VULKAN_HPP_NOEXCEPT
86893     {
86894 #if defined( VULKAN_HPP_USE_REFLECT )
86895       return this->reflect() == rhs.reflect();
86896 #else
86897       return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount )
86898           && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries );
86899 #endif
86900     }
86901 
operator !=VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV86902     bool operator!=( ShadingRatePaletteNV const & rhs ) const VULKAN_HPP_NOEXCEPT
86903     {
86904       return !operator==( rhs );
86905     }
86906 #endif
86907 
86908     public:
86909     uint32_t shadingRatePaletteEntryCount = {};
86910     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries = {};
86911 
86912   };
86913 
86914   struct PipelineViewportShadingRateImageStateCreateInfoNV
86915   {
86916     using NativeType = VkPipelineViewportShadingRateImageStateCreateInfoNV;
86917 
86918     static const bool allowDuplicate = false;
86919     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
86920 
86921 
86922 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86923 VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
86924     : pNext( pNext_ ), shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( viewportCount_ ), pShadingRatePalettes( pShadingRatePalettes_ )
86925     {}
86926 
86927     VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86928 
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86929     PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
86930       : PipelineViewportShadingRateImageStateCreateInfoNV( *reinterpret_cast<PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs ) )
86931     {}
86932 
86933 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86934     PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_, const void * pNext_ = nullptr )
86935     : pNext( pNext_ ), shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( static_cast<uint32_t>( shadingRatePalettes_.size() ) ), pShadingRatePalettes( shadingRatePalettes_.data() )
86936     {}
86937 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86938 
86939 
86940     PipelineViewportShadingRateImageStateCreateInfoNV & operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
86941 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
86942 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86943     PipelineViewportShadingRateImageStateCreateInfoNV & operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
86944     {
86945       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs );
86946       return *this;
86947     }
86948 
86949 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86950     VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
86951     {
86952       pNext = pNext_;
86953       return *this;
86954     }
86955 
setShadingRateImageEnableVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86956     VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
86957     {
86958       shadingRateImageEnable = shadingRateImageEnable_;
86959       return *this;
86960     }
86961 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86962     VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
86963     {
86964       viewportCount = viewportCount_;
86965       return *this;
86966     }
86967 
setPShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86968     VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
86969     {
86970       pShadingRatePalettes = pShadingRatePalettes_;
86971       return *this;
86972     }
86973 
86974 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86975     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
86976     {
86977       viewportCount = static_cast<uint32_t>( shadingRatePalettes_.size() );
86978       pShadingRatePalettes = shadingRatePalettes_.data();
86979       return *this;
86980     }
86981 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86982 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
86983 
86984 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86985     operator VkPipelineViewportShadingRateImageStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
86986     {
86987       return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
86988     }
86989 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV86990     operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
86991     {
86992       return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
86993     }
86994 
86995 #if defined( VULKAN_HPP_USE_REFLECT )
86996 #if 14 <= VULKAN_HPP_CPP_VERSION
86997     auto
86998 #else
86999     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * const &>
87000 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV87001       reflect() const VULKAN_HPP_NOEXCEPT
87002     {
87003       return std::tie( sType, pNext, shadingRateImageEnable, viewportCount, pShadingRatePalettes );
87004     }
87005 #endif
87006 
87007 
87008 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
87009 auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const & ) const = default;
87010 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV87011     bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
87012     {
87013 #if defined( VULKAN_HPP_USE_REFLECT )
87014       return this->reflect() == rhs.reflect();
87015 #else
87016       return ( sType == rhs.sType )
87017           && ( pNext == rhs.pNext )
87018           && ( shadingRateImageEnable == rhs.shadingRateImageEnable )
87019           && ( viewportCount == rhs.viewportCount )
87020           && ( pShadingRatePalettes == rhs.pShadingRatePalettes );
87021 #endif
87022     }
87023 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV87024     bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
87025     {
87026       return !operator==( rhs );
87027     }
87028 #endif
87029 
87030     public:
87031     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
87032     const void * pNext = {};
87033     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {};
87034     uint32_t viewportCount = {};
87035     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes = {};
87036 
87037   };
87038 
87039   template <>
87040   struct CppType<StructureType, StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV>
87041   {
87042     using Type = PipelineViewportShadingRateImageStateCreateInfoNV;
87043   };
87044 
87045   struct ViewportSwizzleNV
87046   {
87047     using NativeType = VkViewportSwizzleNV;
87048 
87049 
87050 
87051 
87052 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV87053 VULKAN_HPP_CONSTEXPR ViewportSwizzleNV(VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX) VULKAN_HPP_NOEXCEPT
87054     : x( x_ ), y( y_ ), z( z_ ), w( w_ )
87055     {}
87056 
87057     VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87058 
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV87059     ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
87060       : ViewportSwizzleNV( *reinterpret_cast<ViewportSwizzleNV const *>( &rhs ) )
87061     {}
87062 
87063 
87064     ViewportSwizzleNV & operator=( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87065 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
87066 
operator =VULKAN_HPP_NAMESPACE::ViewportSwizzleNV87067     ViewportSwizzleNV & operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
87068     {
87069       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportSwizzleNV const *>( &rhs );
87070       return *this;
87071     }
87072 
87073 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setXVULKAN_HPP_NAMESPACE::ViewportSwizzleNV87074     VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT
87075     {
87076       x = x_;
87077       return *this;
87078     }
87079 
setYVULKAN_HPP_NAMESPACE::ViewportSwizzleNV87080     VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT
87081     {
87082       y = y_;
87083       return *this;
87084     }
87085 
setZVULKAN_HPP_NAMESPACE::ViewportSwizzleNV87086     VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT
87087     {
87088       z = z_;
87089       return *this;
87090     }
87091 
setWVULKAN_HPP_NAMESPACE::ViewportSwizzleNV87092     VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT
87093     {
87094       w = w_;
87095       return *this;
87096     }
87097 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
87098 
87099 
operator VkViewportSwizzleNV const&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV87100     operator VkViewportSwizzleNV const &() const VULKAN_HPP_NOEXCEPT
87101     {
87102       return *reinterpret_cast<const VkViewportSwizzleNV*>( this );
87103     }
87104 
operator VkViewportSwizzleNV&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV87105     operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT
87106     {
87107       return *reinterpret_cast<VkViewportSwizzleNV*>( this );
87108     }
87109 
87110 #if defined( VULKAN_HPP_USE_REFLECT )
87111 #if 14 <= VULKAN_HPP_CPP_VERSION
87112     auto
87113 #else
87114     std::tuple<VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &>
87115 #endif
reflectVULKAN_HPP_NAMESPACE::ViewportSwizzleNV87116       reflect() const VULKAN_HPP_NOEXCEPT
87117     {
87118       return std::tie( x, y, z, w );
87119     }
87120 #endif
87121 
87122 
87123 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
87124 auto operator<=>( ViewportSwizzleNV const & ) const = default;
87125 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportSwizzleNV87126     bool operator==( ViewportSwizzleNV const & rhs ) const VULKAN_HPP_NOEXCEPT
87127     {
87128 #if defined( VULKAN_HPP_USE_REFLECT )
87129       return this->reflect() == rhs.reflect();
87130 #else
87131       return ( x == rhs.x )
87132           && ( y == rhs.y )
87133           && ( z == rhs.z )
87134           && ( w == rhs.w );
87135 #endif
87136     }
87137 
operator !=VULKAN_HPP_NAMESPACE::ViewportSwizzleNV87138     bool operator!=( ViewportSwizzleNV const & rhs ) const VULKAN_HPP_NOEXCEPT
87139     {
87140       return !operator==( rhs );
87141     }
87142 #endif
87143 
87144     public:
87145     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
87146     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
87147     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
87148     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
87149 
87150   };
87151 
87152   struct PipelineViewportSwizzleStateCreateInfoNV
87153   {
87154     using NativeType = VkPipelineViewportSwizzleStateCreateInfoNV;
87155 
87156     static const bool allowDuplicate = false;
87157     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
87158 
87159 
87160 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87161 VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
87162     : pNext( pNext_ ), flags( flags_ ), viewportCount( viewportCount_ ), pViewportSwizzles( pViewportSwizzles_ )
87163     {}
87164 
87165     VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87166 
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87167     PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
87168       : PipelineViewportSwizzleStateCreateInfoNV( *reinterpret_cast<PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs ) )
87169     {}
87170 
87171 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87172     PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_, const void * pNext_ = nullptr )
87173     : pNext( pNext_ ), flags( flags_ ), viewportCount( static_cast<uint32_t>( viewportSwizzles_.size() ) ), pViewportSwizzles( viewportSwizzles_.data() )
87174     {}
87175 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87176 
87177 
87178     PipelineViewportSwizzleStateCreateInfoNV & operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87179 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
87180 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87181     PipelineViewportSwizzleStateCreateInfoNV & operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
87182     {
87183       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs );
87184       return *this;
87185     }
87186 
87187 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87188     VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
87189     {
87190       pNext = pNext_;
87191       return *this;
87192     }
87193 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87194     VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
87195     {
87196       flags = flags_;
87197       return *this;
87198     }
87199 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87200     VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
87201     {
87202       viewportCount = viewportCount_;
87203       return *this;
87204     }
87205 
setPViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87206     VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
87207     {
87208       pViewportSwizzles = pViewportSwizzles_;
87209       return *this;
87210     }
87211 
87212 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87213     PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
87214     {
87215       viewportCount = static_cast<uint32_t>( viewportSwizzles_.size() );
87216       pViewportSwizzles = viewportSwizzles_.data();
87217       return *this;
87218     }
87219 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87220 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
87221 
87222 
operator VkPipelineViewportSwizzleStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87223     operator VkPipelineViewportSwizzleStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
87224     {
87225       return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
87226     }
87227 
operator VkPipelineViewportSwizzleStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87228     operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
87229     {
87230       return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
87231     }
87232 
87233 #if defined( VULKAN_HPP_USE_REFLECT )
87234 #if 14 <= VULKAN_HPP_CPP_VERSION
87235     auto
87236 #else
87237     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * const &>
87238 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87239       reflect() const VULKAN_HPP_NOEXCEPT
87240     {
87241       return std::tie( sType, pNext, flags, viewportCount, pViewportSwizzles );
87242     }
87243 #endif
87244 
87245 
87246 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
87247 auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const & ) const = default;
87248 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87249     bool operator==( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
87250     {
87251 #if defined( VULKAN_HPP_USE_REFLECT )
87252       return this->reflect() == rhs.reflect();
87253 #else
87254       return ( sType == rhs.sType )
87255           && ( pNext == rhs.pNext )
87256           && ( flags == rhs.flags )
87257           && ( viewportCount == rhs.viewportCount )
87258           && ( pViewportSwizzles == rhs.pViewportSwizzles );
87259 #endif
87260     }
87261 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV87262     bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
87263     {
87264       return !operator==( rhs );
87265     }
87266 #endif
87267 
87268     public:
87269     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
87270     const void * pNext = {};
87271     VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {};
87272     uint32_t viewportCount = {};
87273     const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles = {};
87274 
87275   };
87276 
87277   template <>
87278   struct CppType<StructureType, StructureType::ePipelineViewportSwizzleStateCreateInfoNV>
87279   {
87280     using Type = PipelineViewportSwizzleStateCreateInfoNV;
87281   };
87282 
87283   struct ViewportWScalingNV
87284   {
87285     using NativeType = VkViewportWScalingNV;
87286 
87287 
87288 
87289 
87290 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV87291 VULKAN_HPP_CONSTEXPR ViewportWScalingNV(float xcoeff_ = {}, float ycoeff_ = {}) VULKAN_HPP_NOEXCEPT
87292     : xcoeff( xcoeff_ ), ycoeff( ycoeff_ )
87293     {}
87294 
87295     VULKAN_HPP_CONSTEXPR ViewportWScalingNV( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87296 
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV87297     ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
87298       : ViewportWScalingNV( *reinterpret_cast<ViewportWScalingNV const *>( &rhs ) )
87299     {}
87300 
87301 
87302     ViewportWScalingNV & operator=( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87303 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
87304 
operator =VULKAN_HPP_NAMESPACE::ViewportWScalingNV87305     ViewportWScalingNV & operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
87306     {
87307       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportWScalingNV const *>( &rhs );
87308       return *this;
87309     }
87310 
87311 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setXcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV87312     VULKAN_HPP_CONSTEXPR_14 ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT
87313     {
87314       xcoeff = xcoeff_;
87315       return *this;
87316     }
87317 
setYcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV87318     VULKAN_HPP_CONSTEXPR_14 ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT
87319     {
87320       ycoeff = ycoeff_;
87321       return *this;
87322     }
87323 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
87324 
87325 
operator VkViewportWScalingNV const&VULKAN_HPP_NAMESPACE::ViewportWScalingNV87326     operator VkViewportWScalingNV const &() const VULKAN_HPP_NOEXCEPT
87327     {
87328       return *reinterpret_cast<const VkViewportWScalingNV*>( this );
87329     }
87330 
operator VkViewportWScalingNV&VULKAN_HPP_NAMESPACE::ViewportWScalingNV87331     operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT
87332     {
87333       return *reinterpret_cast<VkViewportWScalingNV*>( this );
87334     }
87335 
87336 #if defined( VULKAN_HPP_USE_REFLECT )
87337 #if 14 <= VULKAN_HPP_CPP_VERSION
87338     auto
87339 #else
87340     std::tuple<float const &, float const &>
87341 #endif
reflectVULKAN_HPP_NAMESPACE::ViewportWScalingNV87342       reflect() const VULKAN_HPP_NOEXCEPT
87343     {
87344       return std::tie( xcoeff, ycoeff );
87345     }
87346 #endif
87347 
87348 
87349 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
87350 auto operator<=>( ViewportWScalingNV const & ) const = default;
87351 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportWScalingNV87352     bool operator==( ViewportWScalingNV const & rhs ) const VULKAN_HPP_NOEXCEPT
87353     {
87354 #if defined( VULKAN_HPP_USE_REFLECT )
87355       return this->reflect() == rhs.reflect();
87356 #else
87357       return ( xcoeff == rhs.xcoeff )
87358           && ( ycoeff == rhs.ycoeff );
87359 #endif
87360     }
87361 
operator !=VULKAN_HPP_NAMESPACE::ViewportWScalingNV87362     bool operator!=( ViewportWScalingNV const & rhs ) const VULKAN_HPP_NOEXCEPT
87363     {
87364       return !operator==( rhs );
87365     }
87366 #endif
87367 
87368     public:
87369     float xcoeff = {};
87370     float ycoeff = {};
87371 
87372   };
87373 
87374   struct PipelineViewportWScalingStateCreateInfoNV
87375   {
87376     using NativeType = VkPipelineViewportWScalingStateCreateInfoNV;
87377 
87378     static const bool allowDuplicate = false;
87379     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
87380 
87381 
87382 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87383 VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
87384     : pNext( pNext_ ), viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( viewportCount_ ), pViewportWScalings( pViewportWScalings_ )
87385     {}
87386 
87387     VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87388 
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87389     PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
87390       : PipelineViewportWScalingStateCreateInfoNV( *reinterpret_cast<PipelineViewportWScalingStateCreateInfoNV const *>( &rhs ) )
87391     {}
87392 
87393 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87394     PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_, const void * pNext_ = nullptr )
87395     : pNext( pNext_ ), viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( static_cast<uint32_t>( viewportWScalings_.size() ) ), pViewportWScalings( viewportWScalings_.data() )
87396     {}
87397 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87398 
87399 
87400     PipelineViewportWScalingStateCreateInfoNV & operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87401 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
87402 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87403     PipelineViewportWScalingStateCreateInfoNV & operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
87404     {
87405       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const *>( &rhs );
87406       return *this;
87407     }
87408 
87409 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87410     VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
87411     {
87412       pNext = pNext_;
87413       return *this;
87414     }
87415 
setViewportWScalingEnableVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87416     VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
87417     {
87418       viewportWScalingEnable = viewportWScalingEnable_;
87419       return *this;
87420     }
87421 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87422     VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
87423     {
87424       viewportCount = viewportCount_;
87425       return *this;
87426     }
87427 
setPViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87428     VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT
87429     {
87430       pViewportWScalings = pViewportWScalings_;
87431       return *this;
87432     }
87433 
87434 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87435     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ ) VULKAN_HPP_NOEXCEPT
87436     {
87437       viewportCount = static_cast<uint32_t>( viewportWScalings_.size() );
87438       pViewportWScalings = viewportWScalings_.data();
87439       return *this;
87440     }
87441 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87442 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
87443 
87444 
operator VkPipelineViewportWScalingStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87445     operator VkPipelineViewportWScalingStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
87446     {
87447       return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>( this );
87448     }
87449 
operator VkPipelineViewportWScalingStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87450     operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
87451     {
87452       return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>( this );
87453     }
87454 
87455 #if defined( VULKAN_HPP_USE_REFLECT )
87456 #if 14 <= VULKAN_HPP_CPP_VERSION
87457     auto
87458 #else
87459     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * const &>
87460 #endif
reflectVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87461       reflect() const VULKAN_HPP_NOEXCEPT
87462     {
87463       return std::tie( sType, pNext, viewportWScalingEnable, viewportCount, pViewportWScalings );
87464     }
87465 #endif
87466 
87467 
87468 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
87469 auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const & ) const = default;
87470 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87471     bool operator==( PipelineViewportWScalingStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
87472     {
87473 #if defined( VULKAN_HPP_USE_REFLECT )
87474       return this->reflect() == rhs.reflect();
87475 #else
87476       return ( sType == rhs.sType )
87477           && ( pNext == rhs.pNext )
87478           && ( viewportWScalingEnable == rhs.viewportWScalingEnable )
87479           && ( viewportCount == rhs.viewportCount )
87480           && ( pViewportWScalings == rhs.pViewportWScalings );
87481 #endif
87482     }
87483 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV87484     bool operator!=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
87485     {
87486       return !operator==( rhs );
87487     }
87488 #endif
87489 
87490     public:
87491     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
87492     const void * pNext = {};
87493     VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {};
87494     uint32_t viewportCount = {};
87495     const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings = {};
87496 
87497   };
87498 
87499   template <>
87500   struct CppType<StructureType, StructureType::ePipelineViewportWScalingStateCreateInfoNV>
87501   {
87502     using Type = PipelineViewportWScalingStateCreateInfoNV;
87503   };
87504 
87505 #if defined( VK_USE_PLATFORM_GGP )
87506   struct PresentFrameTokenGGP
87507   {
87508     using NativeType = VkPresentFrameTokenGGP;
87509 
87510     static const bool allowDuplicate = false;
87511     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP;
87512 
87513 
87514 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87515 VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP(GgpFrameToken frameToken_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
87516     : pNext( pNext_ ), frameToken( frameToken_ )
87517     {}
87518 
87519     VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87520 
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87521     PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
87522       : PresentFrameTokenGGP( *reinterpret_cast<PresentFrameTokenGGP const *>( &rhs ) )
87523     {}
87524 
87525 
87526     PresentFrameTokenGGP & operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87527 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
87528 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87529     PresentFrameTokenGGP & operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
87530     {
87531       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const *>( &rhs );
87532       return *this;
87533     }
87534 
87535 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87536     VULKAN_HPP_CONSTEXPR_14 PresentFrameTokenGGP & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
87537     {
87538       pNext = pNext_;
87539       return *this;
87540     }
87541 
setFrameTokenVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87542     VULKAN_HPP_CONSTEXPR_14 PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT
87543     {
87544       frameToken = frameToken_;
87545       return *this;
87546     }
87547 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
87548 
87549 
operator VkPresentFrameTokenGGP const&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87550     operator VkPresentFrameTokenGGP const &() const VULKAN_HPP_NOEXCEPT
87551     {
87552       return *reinterpret_cast<const VkPresentFrameTokenGGP*>( this );
87553     }
87554 
operator VkPresentFrameTokenGGP&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87555     operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT
87556     {
87557       return *reinterpret_cast<VkPresentFrameTokenGGP*>( this );
87558     }
87559 
87560 #if defined( VULKAN_HPP_USE_REFLECT )
87561 #if 14 <= VULKAN_HPP_CPP_VERSION
87562     auto
87563 #else
87564     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, GgpFrameToken const &>
87565 #endif
reflectVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87566       reflect() const VULKAN_HPP_NOEXCEPT
87567     {
87568       return std::tie( sType, pNext, frameToken );
87569     }
87570 #endif
87571 
87572 
87573 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87574     std::strong_ordering operator<=>( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
87575     {
87576       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
87577       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
87578       if ( auto cmp = memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ); cmp != 0 )
87579         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
87580 
87581       return std::strong_ordering::equivalent;
87582     }
87583 #endif
87584 
operator ==VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87585     bool operator==( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
87586     {
87587       return ( sType == rhs.sType )
87588           && ( pNext == rhs.pNext )
87589           && ( memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ) == 0 );
87590     }
87591 
operator !=VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP87592     bool operator!=( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
87593     {
87594       return !operator==( rhs );
87595     }
87596 
87597     public:
87598     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP;
87599     const void * pNext = {};
87600     GgpFrameToken frameToken = {};
87601 
87602   };
87603 
87604   template <>
87605   struct CppType<StructureType, StructureType::ePresentFrameTokenGGP>
87606   {
87607     using Type = PresentFrameTokenGGP;
87608   };
87609 #endif /*VK_USE_PLATFORM_GGP*/
87610 
87611   struct PresentIdKHR
87612   {
87613     using NativeType = VkPresentIdKHR;
87614 
87615     static const bool allowDuplicate = false;
87616     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentIdKHR;
87617 
87618 
87619 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentIdKHRVULKAN_HPP_NAMESPACE::PresentIdKHR87620 VULKAN_HPP_CONSTEXPR PresentIdKHR(uint32_t swapchainCount_ = {}, const uint64_t * pPresentIds_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
87621     : pNext( pNext_ ), swapchainCount( swapchainCount_ ), pPresentIds( pPresentIds_ )
87622     {}
87623 
87624     VULKAN_HPP_CONSTEXPR PresentIdKHR( PresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87625 
PresentIdKHRVULKAN_HPP_NAMESPACE::PresentIdKHR87626     PresentIdKHR( VkPresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT
87627       : PresentIdKHR( *reinterpret_cast<PresentIdKHR const *>( &rhs ) )
87628     {}
87629 
87630 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentIdKHRVULKAN_HPP_NAMESPACE::PresentIdKHR87631     PresentIdKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & presentIds_, const void * pNext_ = nullptr )
87632     : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( presentIds_.size() ) ), pPresentIds( presentIds_.data() )
87633     {}
87634 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87635 
87636 
87637     PresentIdKHR & operator=( PresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87638 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
87639 
operator =VULKAN_HPP_NAMESPACE::PresentIdKHR87640     PresentIdKHR & operator=( VkPresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT
87641     {
87642       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentIdKHR const *>( &rhs );
87643       return *this;
87644     }
87645 
87646 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PresentIdKHR87647     VULKAN_HPP_CONSTEXPR_14 PresentIdKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
87648     {
87649       pNext = pNext_;
87650       return *this;
87651     }
87652 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentIdKHR87653     VULKAN_HPP_CONSTEXPR_14 PresentIdKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
87654     {
87655       swapchainCount = swapchainCount_;
87656       return *this;
87657     }
87658 
setPPresentIdsVULKAN_HPP_NAMESPACE::PresentIdKHR87659     VULKAN_HPP_CONSTEXPR_14 PresentIdKHR & setPPresentIds( const uint64_t * pPresentIds_ ) VULKAN_HPP_NOEXCEPT
87660     {
87661       pPresentIds = pPresentIds_;
87662       return *this;
87663     }
87664 
87665 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPresentIdsVULKAN_HPP_NAMESPACE::PresentIdKHR87666     PresentIdKHR & setPresentIds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & presentIds_ ) VULKAN_HPP_NOEXCEPT
87667     {
87668       swapchainCount = static_cast<uint32_t>( presentIds_.size() );
87669       pPresentIds = presentIds_.data();
87670       return *this;
87671     }
87672 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87673 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
87674 
87675 
operator VkPresentIdKHR const&VULKAN_HPP_NAMESPACE::PresentIdKHR87676     operator VkPresentIdKHR const &() const VULKAN_HPP_NOEXCEPT
87677     {
87678       return *reinterpret_cast<const VkPresentIdKHR*>( this );
87679     }
87680 
operator VkPresentIdKHR&VULKAN_HPP_NAMESPACE::PresentIdKHR87681     operator VkPresentIdKHR &() VULKAN_HPP_NOEXCEPT
87682     {
87683       return *reinterpret_cast<VkPresentIdKHR*>( this );
87684     }
87685 
87686 #if defined( VULKAN_HPP_USE_REFLECT )
87687 #if 14 <= VULKAN_HPP_CPP_VERSION
87688     auto
87689 #else
87690     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint64_t * const &>
87691 #endif
reflectVULKAN_HPP_NAMESPACE::PresentIdKHR87692       reflect() const VULKAN_HPP_NOEXCEPT
87693     {
87694       return std::tie( sType, pNext, swapchainCount, pPresentIds );
87695     }
87696 #endif
87697 
87698 
87699 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
87700 auto operator<=>( PresentIdKHR const & ) const = default;
87701 #else
operator ==VULKAN_HPP_NAMESPACE::PresentIdKHR87702     bool operator==( PresentIdKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
87703     {
87704 #if defined( VULKAN_HPP_USE_REFLECT )
87705       return this->reflect() == rhs.reflect();
87706 #else
87707       return ( sType == rhs.sType )
87708           && ( pNext == rhs.pNext )
87709           && ( swapchainCount == rhs.swapchainCount )
87710           && ( pPresentIds == rhs.pPresentIds );
87711 #endif
87712     }
87713 
operator !=VULKAN_HPP_NAMESPACE::PresentIdKHR87714     bool operator!=( PresentIdKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
87715     {
87716       return !operator==( rhs );
87717     }
87718 #endif
87719 
87720     public:
87721     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentIdKHR;
87722     const void * pNext = {};
87723     uint32_t swapchainCount = {};
87724     const uint64_t * pPresentIds = {};
87725 
87726   };
87727 
87728   template <>
87729   struct CppType<StructureType, StructureType::ePresentIdKHR>
87730   {
87731     using Type = PresentIdKHR;
87732   };
87733 
87734   struct PresentInfoKHR
87735   {
87736     using NativeType = VkPresentInfoKHR;
87737 
87738     static const bool allowDuplicate = false;
87739     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR;
87740 
87741 
87742 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR87743 VULKAN_HPP_CONSTEXPR PresentInfoKHR(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {}, uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains_ = {}, const uint32_t * pImageIndices_ = {}, VULKAN_HPP_NAMESPACE::Result * pResults_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
87744     : pNext( pNext_ ), waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), swapchainCount( swapchainCount_ ), pSwapchains( pSwapchains_ ), pImageIndices( pImageIndices_ ), pResults( pResults_ )
87745     {}
87746 
87747     VULKAN_HPP_CONSTEXPR PresentInfoKHR( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87748 
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR87749     PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
87750       : PresentInfoKHR( *reinterpret_cast<PresentInfoKHR const *>( &rhs ) )
87751     {}
87752 
87753 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR87754     PresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ = {}, const void * pNext_ = nullptr )
87755     : pNext( pNext_ ), waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), swapchainCount( static_cast<uint32_t>( swapchains_.size() ) ), pSwapchains( swapchains_.data() ), pImageIndices( imageIndices_.data() ), pResults( results_.data() )
87756     {
87757 #ifdef VULKAN_HPP_NO_EXCEPTIONS
87758       VULKAN_HPP_ASSERT( swapchains_.size() == imageIndices_.size() );
87759       VULKAN_HPP_ASSERT( results_.empty() || ( swapchains_.size() == results_.size() ) );
87760       VULKAN_HPP_ASSERT( results_.empty() || ( imageIndices_.size() == results_.size() ) );
87761 #else
87762       if ( swapchains_.size() != imageIndices_.size() )
87763       {
87764         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::PresentInfoKHR::PresentInfoKHR: swapchains_.size() != imageIndices_.size()" );
87765       }
87766       if ( !results_.empty() && ( swapchains_.size() != results_.size() ) )
87767       {
87768         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( swapchains_.size() != results_.size() )" );
87769       }
87770       if ( !results_.empty() && ( imageIndices_.size() != results_.size() ) )
87771       {
87772         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( imageIndices_.size() != results_.size() )" );
87773       }
87774 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
87775     }
87776 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87777 
87778 
87779     PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87780 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
87781 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR87782     PresentInfoKHR & operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
87783     {
87784       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentInfoKHR const *>( &rhs );
87785       return *this;
87786     }
87787 
87788 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PresentInfoKHR87789     VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
87790     {
87791       pNext = pNext_;
87792       return *this;
87793     }
87794 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::PresentInfoKHR87795     VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
87796     {
87797       waitSemaphoreCount = waitSemaphoreCount_;
87798       return *this;
87799     }
87800 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR87801     VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
87802     {
87803       pWaitSemaphores = pWaitSemaphores_;
87804       return *this;
87805     }
87806 
87807 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR87808     PresentInfoKHR & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
87809     {
87810       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
87811       pWaitSemaphores = waitSemaphores_.data();
87812       return *this;
87813     }
87814 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87815 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentInfoKHR87816     VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
87817     {
87818       swapchainCount = swapchainCount_;
87819       return *this;
87820     }
87821 
setPSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR87822     VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains_ ) VULKAN_HPP_NOEXCEPT
87823     {
87824       pSwapchains = pSwapchains_;
87825       return *this;
87826     }
87827 
87828 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR87829     PresentInfoKHR & setSwapchains( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ ) VULKAN_HPP_NOEXCEPT
87830     {
87831       swapchainCount = static_cast<uint32_t>( swapchains_.size() );
87832       pSwapchains = swapchains_.data();
87833       return *this;
87834     }
87835 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87836 
setPImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR87837     VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPImageIndices( const uint32_t * pImageIndices_ ) VULKAN_HPP_NOEXCEPT
87838     {
87839       pImageIndices = pImageIndices_;
87840       return *this;
87841     }
87842 
87843 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR87844     PresentInfoKHR & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ ) VULKAN_HPP_NOEXCEPT
87845     {
87846       swapchainCount = static_cast<uint32_t>( imageIndices_.size() );
87847       pImageIndices = imageIndices_.data();
87848       return *this;
87849     }
87850 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87851 
setPResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR87852     VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result * pResults_ ) VULKAN_HPP_NOEXCEPT
87853     {
87854       pResults = pResults_;
87855       return *this;
87856     }
87857 
87858 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR87859     PresentInfoKHR & setResults( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ ) VULKAN_HPP_NOEXCEPT
87860     {
87861       swapchainCount = static_cast<uint32_t>( results_.size() );
87862       pResults = results_.data();
87863       return *this;
87864     }
87865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87866 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
87867 
87868 
operator VkPresentInfoKHR const&VULKAN_HPP_NAMESPACE::PresentInfoKHR87869     operator VkPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
87870     {
87871       return *reinterpret_cast<const VkPresentInfoKHR*>( this );
87872     }
87873 
operator VkPresentInfoKHR&VULKAN_HPP_NAMESPACE::PresentInfoKHR87874     operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
87875     {
87876       return *reinterpret_cast<VkPresentInfoKHR*>( this );
87877     }
87878 
87879 #if defined( VULKAN_HPP_USE_REFLECT )
87880 #if 14 <= VULKAN_HPP_CPP_VERSION
87881     auto
87882 #else
87883     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Semaphore * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SwapchainKHR * const &, const uint32_t * const &, VULKAN_HPP_NAMESPACE::Result * const &>
87884 #endif
reflectVULKAN_HPP_NAMESPACE::PresentInfoKHR87885       reflect() const VULKAN_HPP_NOEXCEPT
87886     {
87887       return std::tie( sType, pNext, waitSemaphoreCount, pWaitSemaphores, swapchainCount, pSwapchains, pImageIndices, pResults );
87888     }
87889 #endif
87890 
87891 
87892 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
87893 auto operator<=>( PresentInfoKHR const & ) const = default;
87894 #else
operator ==VULKAN_HPP_NAMESPACE::PresentInfoKHR87895     bool operator==( PresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
87896     {
87897 #if defined( VULKAN_HPP_USE_REFLECT )
87898       return this->reflect() == rhs.reflect();
87899 #else
87900       return ( sType == rhs.sType )
87901           && ( pNext == rhs.pNext )
87902           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
87903           && ( pWaitSemaphores == rhs.pWaitSemaphores )
87904           && ( swapchainCount == rhs.swapchainCount )
87905           && ( pSwapchains == rhs.pSwapchains )
87906           && ( pImageIndices == rhs.pImageIndices )
87907           && ( pResults == rhs.pResults );
87908 #endif
87909     }
87910 
operator !=VULKAN_HPP_NAMESPACE::PresentInfoKHR87911     bool operator!=( PresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
87912     {
87913       return !operator==( rhs );
87914     }
87915 #endif
87916 
87917     public:
87918     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR;
87919     const void * pNext = {};
87920     uint32_t waitSemaphoreCount = {};
87921     const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {};
87922     uint32_t swapchainCount = {};
87923     const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains = {};
87924     const uint32_t * pImageIndices = {};
87925     VULKAN_HPP_NAMESPACE::Result * pResults = {};
87926 
87927   };
87928 
87929   template <>
87930   struct CppType<StructureType, StructureType::ePresentInfoKHR>
87931   {
87932     using Type = PresentInfoKHR;
87933   };
87934 
87935   struct RectLayerKHR
87936   {
87937     using NativeType = VkRectLayerKHR;
87938 
87939 
87940 
87941 
87942 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR87943 VULKAN_HPP_CONSTEXPR RectLayerKHR(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, uint32_t layer_ = {}) VULKAN_HPP_NOEXCEPT
87944     : offset( offset_ ), extent( extent_ ), layer( layer_ )
87945     {}
87946 
87947     VULKAN_HPP_CONSTEXPR RectLayerKHR( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87948 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR87949     RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
87950       : RectLayerKHR( *reinterpret_cast<RectLayerKHR const *>( &rhs ) )
87951     {}
87952 
87953 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR87954     explicit RectLayerKHR( Rect2D const & rect2D, uint32_t layer_ = {} )
87955       : offset( rect2D.offset )
87956       , extent( rect2D.extent )
87957     , layer( layer_ )
87958     {}
87959 
87960     RectLayerKHR & operator=( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
87961 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
87962 
operator =VULKAN_HPP_NAMESPACE::RectLayerKHR87963     RectLayerKHR & operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
87964     {
87965       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RectLayerKHR const *>( &rhs );
87966       return *this;
87967     }
87968 
87969 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setOffsetVULKAN_HPP_NAMESPACE::RectLayerKHR87970     VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
87971     {
87972       offset = offset_;
87973       return *this;
87974     }
87975 
setExtentVULKAN_HPP_NAMESPACE::RectLayerKHR87976     VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
87977     {
87978       extent = extent_;
87979       return *this;
87980     }
87981 
setLayerVULKAN_HPP_NAMESPACE::RectLayerKHR87982     VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT
87983     {
87984       layer = layer_;
87985       return *this;
87986     }
87987 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
87988 
87989 
operator VkRectLayerKHR const&VULKAN_HPP_NAMESPACE::RectLayerKHR87990     operator VkRectLayerKHR const &() const VULKAN_HPP_NOEXCEPT
87991     {
87992       return *reinterpret_cast<const VkRectLayerKHR*>( this );
87993     }
87994 
operator VkRectLayerKHR&VULKAN_HPP_NAMESPACE::RectLayerKHR87995     operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT
87996     {
87997       return *reinterpret_cast<VkRectLayerKHR*>( this );
87998     }
87999 
88000 #if defined( VULKAN_HPP_USE_REFLECT )
88001 #if 14 <= VULKAN_HPP_CPP_VERSION
88002     auto
88003 #else
88004     std::tuple<VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &>
88005 #endif
reflectVULKAN_HPP_NAMESPACE::RectLayerKHR88006       reflect() const VULKAN_HPP_NOEXCEPT
88007     {
88008       return std::tie( offset, extent, layer );
88009     }
88010 #endif
88011 
88012 
88013 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
88014 auto operator<=>( RectLayerKHR const & ) const = default;
88015 #else
operator ==VULKAN_HPP_NAMESPACE::RectLayerKHR88016     bool operator==( RectLayerKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
88017     {
88018 #if defined( VULKAN_HPP_USE_REFLECT )
88019       return this->reflect() == rhs.reflect();
88020 #else
88021       return ( offset == rhs.offset )
88022           && ( extent == rhs.extent )
88023           && ( layer == rhs.layer );
88024 #endif
88025     }
88026 
operator !=VULKAN_HPP_NAMESPACE::RectLayerKHR88027     bool operator!=( RectLayerKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
88028     {
88029       return !operator==( rhs );
88030     }
88031 #endif
88032 
88033     public:
88034     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
88035     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
88036     uint32_t layer = {};
88037 
88038   };
88039 
88040   struct PresentRegionKHR
88041   {
88042     using NativeType = VkPresentRegionKHR;
88043 
88044 
88045 
88046 
88047 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR88048 VULKAN_HPP_CONSTEXPR PresentRegionKHR(uint32_t rectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles_ = {}) VULKAN_HPP_NOEXCEPT
88049     : rectangleCount( rectangleCount_ ), pRectangles( pRectangles_ )
88050     {}
88051 
88052     VULKAN_HPP_CONSTEXPR PresentRegionKHR( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88053 
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR88054     PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
88055       : PresentRegionKHR( *reinterpret_cast<PresentRegionKHR const *>( &rhs ) )
88056     {}
88057 
88058 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR88059     PresentRegionKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ )
88060     : rectangleCount( static_cast<uint32_t>( rectangles_.size() ) ), pRectangles( rectangles_.data() )
88061     {}
88062 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88063 
88064 
88065     PresentRegionKHR & operator=( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88066 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
88067 
operator =VULKAN_HPP_NAMESPACE::PresentRegionKHR88068     PresentRegionKHR & operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
88069     {
88070       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionKHR const *>( &rhs );
88071       return *this;
88072     }
88073 
88074 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setRectangleCountVULKAN_HPP_NAMESPACE::PresentRegionKHR88075     VULKAN_HPP_CONSTEXPR_14 PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT
88076     {
88077       rectangleCount = rectangleCount_;
88078       return *this;
88079     }
88080 
setPRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR88081     VULKAN_HPP_CONSTEXPR_14 PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles_ ) VULKAN_HPP_NOEXCEPT
88082     {
88083       pRectangles = pRectangles_;
88084       return *this;
88085     }
88086 
88087 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR88088     PresentRegionKHR & setRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ ) VULKAN_HPP_NOEXCEPT
88089     {
88090       rectangleCount = static_cast<uint32_t>( rectangles_.size() );
88091       pRectangles = rectangles_.data();
88092       return *this;
88093     }
88094 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88095 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
88096 
88097 
operator VkPresentRegionKHR const&VULKAN_HPP_NAMESPACE::PresentRegionKHR88098     operator VkPresentRegionKHR const &() const VULKAN_HPP_NOEXCEPT
88099     {
88100       return *reinterpret_cast<const VkPresentRegionKHR*>( this );
88101     }
88102 
operator VkPresentRegionKHR&VULKAN_HPP_NAMESPACE::PresentRegionKHR88103     operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT
88104     {
88105       return *reinterpret_cast<VkPresentRegionKHR*>( this );
88106     }
88107 
88108 #if defined( VULKAN_HPP_USE_REFLECT )
88109 #if 14 <= VULKAN_HPP_CPP_VERSION
88110     auto
88111 #else
88112     std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::RectLayerKHR * const &>
88113 #endif
reflectVULKAN_HPP_NAMESPACE::PresentRegionKHR88114       reflect() const VULKAN_HPP_NOEXCEPT
88115     {
88116       return std::tie( rectangleCount, pRectangles );
88117     }
88118 #endif
88119 
88120 
88121 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
88122 auto operator<=>( PresentRegionKHR const & ) const = default;
88123 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionKHR88124     bool operator==( PresentRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
88125     {
88126 #if defined( VULKAN_HPP_USE_REFLECT )
88127       return this->reflect() == rhs.reflect();
88128 #else
88129       return ( rectangleCount == rhs.rectangleCount )
88130           && ( pRectangles == rhs.pRectangles );
88131 #endif
88132     }
88133 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionKHR88134     bool operator!=( PresentRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
88135     {
88136       return !operator==( rhs );
88137     }
88138 #endif
88139 
88140     public:
88141     uint32_t rectangleCount = {};
88142     const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles = {};
88143 
88144   };
88145 
88146   struct PresentRegionsKHR
88147   {
88148     using NativeType = VkPresentRegionsKHR;
88149 
88150     static const bool allowDuplicate = false;
88151     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR;
88152 
88153 
88154 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR88155 VULKAN_HPP_CONSTEXPR PresentRegionsKHR(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
88156     : pNext( pNext_ ), swapchainCount( swapchainCount_ ), pRegions( pRegions_ )
88157     {}
88158 
88159     VULKAN_HPP_CONSTEXPR PresentRegionsKHR( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88160 
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR88161     PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
88162       : PresentRegionsKHR( *reinterpret_cast<PresentRegionsKHR const *>( &rhs ) )
88163     {}
88164 
88165 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR88166     PresentRegionsKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_, const void * pNext_ = nullptr )
88167     : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
88168     {}
88169 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88170 
88171 
88172     PresentRegionsKHR & operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88173 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
88174 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR88175     PresentRegionsKHR & operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
88176     {
88177       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionsKHR const *>( &rhs );
88178       return *this;
88179     }
88180 
88181 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PresentRegionsKHR88182     VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
88183     {
88184       pNext = pNext_;
88185       return *this;
88186     }
88187 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentRegionsKHR88188     VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
88189     {
88190       swapchainCount = swapchainCount_;
88191       return *this;
88192     }
88193 
setPRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR88194     VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions_ ) VULKAN_HPP_NOEXCEPT
88195     {
88196       pRegions = pRegions_;
88197       return *this;
88198     }
88199 
88200 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR88201     PresentRegionsKHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
88202     {
88203       swapchainCount = static_cast<uint32_t>( regions_.size() );
88204       pRegions = regions_.data();
88205       return *this;
88206     }
88207 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88208 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
88209 
88210 
operator VkPresentRegionsKHR const&VULKAN_HPP_NAMESPACE::PresentRegionsKHR88211     operator VkPresentRegionsKHR const &() const VULKAN_HPP_NOEXCEPT
88212     {
88213       return *reinterpret_cast<const VkPresentRegionsKHR*>( this );
88214     }
88215 
operator VkPresentRegionsKHR&VULKAN_HPP_NAMESPACE::PresentRegionsKHR88216     operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT
88217     {
88218       return *reinterpret_cast<VkPresentRegionsKHR*>( this );
88219     }
88220 
88221 #if defined( VULKAN_HPP_USE_REFLECT )
88222 #if 14 <= VULKAN_HPP_CPP_VERSION
88223     auto
88224 #else
88225     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentRegionKHR * const &>
88226 #endif
reflectVULKAN_HPP_NAMESPACE::PresentRegionsKHR88227       reflect() const VULKAN_HPP_NOEXCEPT
88228     {
88229       return std::tie( sType, pNext, swapchainCount, pRegions );
88230     }
88231 #endif
88232 
88233 
88234 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
88235 auto operator<=>( PresentRegionsKHR const & ) const = default;
88236 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionsKHR88237     bool operator==( PresentRegionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
88238     {
88239 #if defined( VULKAN_HPP_USE_REFLECT )
88240       return this->reflect() == rhs.reflect();
88241 #else
88242       return ( sType == rhs.sType )
88243           && ( pNext == rhs.pNext )
88244           && ( swapchainCount == rhs.swapchainCount )
88245           && ( pRegions == rhs.pRegions );
88246 #endif
88247     }
88248 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionsKHR88249     bool operator!=( PresentRegionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
88250     {
88251       return !operator==( rhs );
88252     }
88253 #endif
88254 
88255     public:
88256     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR;
88257     const void * pNext = {};
88258     uint32_t swapchainCount = {};
88259     const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions = {};
88260 
88261   };
88262 
88263   template <>
88264   struct CppType<StructureType, StructureType::ePresentRegionsKHR>
88265   {
88266     using Type = PresentRegionsKHR;
88267   };
88268 
88269   struct PresentTimeGOOGLE
88270   {
88271     using NativeType = VkPresentTimeGOOGLE;
88272 
88273 
88274 
88275 
88276 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE88277 VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}) VULKAN_HPP_NOEXCEPT
88278     : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ )
88279     {}
88280 
88281     VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88282 
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE88283     PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
88284       : PresentTimeGOOGLE( *reinterpret_cast<PresentTimeGOOGLE const *>( &rhs ) )
88285     {}
88286 
88287 
88288     PresentTimeGOOGLE & operator=( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88289 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
88290 
operator =VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE88291     PresentTimeGOOGLE & operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
88292     {
88293       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE const *>( &rhs );
88294       return *this;
88295     }
88296 
88297 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPresentIDVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE88298     VULKAN_HPP_CONSTEXPR_14 PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT
88299     {
88300       presentID = presentID_;
88301       return *this;
88302     }
88303 
setDesiredPresentTimeVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE88304     VULKAN_HPP_CONSTEXPR_14 PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT
88305     {
88306       desiredPresentTime = desiredPresentTime_;
88307       return *this;
88308     }
88309 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
88310 
88311 
operator VkPresentTimeGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE88312     operator VkPresentTimeGOOGLE const &() const VULKAN_HPP_NOEXCEPT
88313     {
88314       return *reinterpret_cast<const VkPresentTimeGOOGLE*>( this );
88315     }
88316 
operator VkPresentTimeGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE88317     operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT
88318     {
88319       return *reinterpret_cast<VkPresentTimeGOOGLE*>( this );
88320     }
88321 
88322 #if defined( VULKAN_HPP_USE_REFLECT )
88323 #if 14 <= VULKAN_HPP_CPP_VERSION
88324     auto
88325 #else
88326     std::tuple<uint32_t const &, uint64_t const &>
88327 #endif
reflectVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE88328       reflect() const VULKAN_HPP_NOEXCEPT
88329     {
88330       return std::tie( presentID, desiredPresentTime );
88331     }
88332 #endif
88333 
88334 
88335 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
88336 auto operator<=>( PresentTimeGOOGLE const & ) const = default;
88337 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE88338     bool operator==( PresentTimeGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
88339     {
88340 #if defined( VULKAN_HPP_USE_REFLECT )
88341       return this->reflect() == rhs.reflect();
88342 #else
88343       return ( presentID == rhs.presentID )
88344           && ( desiredPresentTime == rhs.desiredPresentTime );
88345 #endif
88346     }
88347 
operator !=VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE88348     bool operator!=( PresentTimeGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
88349     {
88350       return !operator==( rhs );
88351     }
88352 #endif
88353 
88354     public:
88355     uint32_t presentID = {};
88356     uint64_t desiredPresentTime = {};
88357 
88358   };
88359 
88360   struct PresentTimesInfoGOOGLE
88361   {
88362     using NativeType = VkPresentTimesInfoGOOGLE;
88363 
88364     static const bool allowDuplicate = false;
88365     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE;
88366 
88367 
88368 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88369 VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
88370     : pNext( pNext_ ), swapchainCount( swapchainCount_ ), pTimes( pTimes_ )
88371     {}
88372 
88373     VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88374 
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88375     PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
88376       : PresentTimesInfoGOOGLE( *reinterpret_cast<PresentTimesInfoGOOGLE const *>( &rhs ) )
88377     {}
88378 
88379 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88380     PresentTimesInfoGOOGLE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_, const void * pNext_ = nullptr )
88381     : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( times_.size() ) ), pTimes( times_.data() )
88382     {}
88383 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88384 
88385 
88386     PresentTimesInfoGOOGLE & operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88387 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
88388 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88389     PresentTimesInfoGOOGLE & operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
88390     {
88391       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const *>( &rhs );
88392       return *this;
88393     }
88394 
88395 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88396     VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
88397     {
88398       pNext = pNext_;
88399       return *this;
88400     }
88401 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88402     VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
88403     {
88404       swapchainCount = swapchainCount_;
88405       return *this;
88406     }
88407 
setPTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88408     VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes_ ) VULKAN_HPP_NOEXCEPT
88409     {
88410       pTimes = pTimes_;
88411       return *this;
88412     }
88413 
88414 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88415     PresentTimesInfoGOOGLE & setTimes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ ) VULKAN_HPP_NOEXCEPT
88416     {
88417       swapchainCount = static_cast<uint32_t>( times_.size() );
88418       pTimes = times_.data();
88419       return *this;
88420     }
88421 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88422 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
88423 
88424 
operator VkPresentTimesInfoGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88425     operator VkPresentTimesInfoGOOGLE const &() const VULKAN_HPP_NOEXCEPT
88426     {
88427       return *reinterpret_cast<const VkPresentTimesInfoGOOGLE*>( this );
88428     }
88429 
operator VkPresentTimesInfoGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88430     operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT
88431     {
88432       return *reinterpret_cast<VkPresentTimesInfoGOOGLE*>( this );
88433     }
88434 
88435 #if defined( VULKAN_HPP_USE_REFLECT )
88436 #if 14 <= VULKAN_HPP_CPP_VERSION
88437     auto
88438 #else
88439     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * const &>
88440 #endif
reflectVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88441       reflect() const VULKAN_HPP_NOEXCEPT
88442     {
88443       return std::tie( sType, pNext, swapchainCount, pTimes );
88444     }
88445 #endif
88446 
88447 
88448 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
88449 auto operator<=>( PresentTimesInfoGOOGLE const & ) const = default;
88450 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88451     bool operator==( PresentTimesInfoGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
88452     {
88453 #if defined( VULKAN_HPP_USE_REFLECT )
88454       return this->reflect() == rhs.reflect();
88455 #else
88456       return ( sType == rhs.sType )
88457           && ( pNext == rhs.pNext )
88458           && ( swapchainCount == rhs.swapchainCount )
88459           && ( pTimes == rhs.pTimes );
88460 #endif
88461     }
88462 
operator !=VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE88463     bool operator!=( PresentTimesInfoGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
88464     {
88465       return !operator==( rhs );
88466     }
88467 #endif
88468 
88469     public:
88470     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE;
88471     const void * pNext = {};
88472     uint32_t swapchainCount = {};
88473     const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes = {};
88474 
88475   };
88476 
88477   template <>
88478   struct CppType<StructureType, StructureType::ePresentTimesInfoGOOGLE>
88479   {
88480     using Type = PresentTimesInfoGOOGLE;
88481   };
88482 
88483   struct PrivateDataSlotCreateInfo
88484   {
88485     using NativeType = VkPrivateDataSlotCreateInfo;
88486 
88487     static const bool allowDuplicate = false;
88488     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfo;
88489 
88490 
88491 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PrivateDataSlotCreateInfoVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo88492 VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfo(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
88493     : pNext( pNext_ ), flags( flags_ )
88494     {}
88495 
88496     VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfo( PrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88497 
PrivateDataSlotCreateInfoVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo88498     PrivateDataSlotCreateInfo( VkPrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
88499       : PrivateDataSlotCreateInfo( *reinterpret_cast<PrivateDataSlotCreateInfo const *>( &rhs ) )
88500     {}
88501 
88502 
88503     PrivateDataSlotCreateInfo & operator=( PrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88504 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
88505 
operator =VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo88506     PrivateDataSlotCreateInfo & operator=( VkPrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
88507     {
88508       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const *>( &rhs );
88509       return *this;
88510     }
88511 
88512 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo88513     VULKAN_HPP_CONSTEXPR_14 PrivateDataSlotCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
88514     {
88515       pNext = pNext_;
88516       return *this;
88517     }
88518 
setFlagsVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo88519     VULKAN_HPP_CONSTEXPR_14 PrivateDataSlotCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
88520     {
88521       flags = flags_;
88522       return *this;
88523     }
88524 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
88525 
88526 
operator VkPrivateDataSlotCreateInfo const&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo88527     operator VkPrivateDataSlotCreateInfo const &() const VULKAN_HPP_NOEXCEPT
88528     {
88529       return *reinterpret_cast<const VkPrivateDataSlotCreateInfo*>( this );
88530     }
88531 
operator VkPrivateDataSlotCreateInfo&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo88532     operator VkPrivateDataSlotCreateInfo &() VULKAN_HPP_NOEXCEPT
88533     {
88534       return *reinterpret_cast<VkPrivateDataSlotCreateInfo*>( this );
88535     }
88536 
88537 #if defined( VULKAN_HPP_USE_REFLECT )
88538 #if 14 <= VULKAN_HPP_CPP_VERSION
88539     auto
88540 #else
88541     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags const &>
88542 #endif
reflectVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo88543       reflect() const VULKAN_HPP_NOEXCEPT
88544     {
88545       return std::tie( sType, pNext, flags );
88546     }
88547 #endif
88548 
88549 
88550 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
88551 auto operator<=>( PrivateDataSlotCreateInfo const & ) const = default;
88552 #else
operator ==VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo88553     bool operator==( PrivateDataSlotCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
88554     {
88555 #if defined( VULKAN_HPP_USE_REFLECT )
88556       return this->reflect() == rhs.reflect();
88557 #else
88558       return ( sType == rhs.sType )
88559           && ( pNext == rhs.pNext )
88560           && ( flags == rhs.flags );
88561 #endif
88562     }
88563 
operator !=VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo88564     bool operator!=( PrivateDataSlotCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
88565     {
88566       return !operator==( rhs );
88567     }
88568 #endif
88569 
88570     public:
88571     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfo;
88572     const void * pNext = {};
88573     VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags flags = {};
88574 
88575   };
88576 
88577   template <>
88578   struct CppType<StructureType, StructureType::ePrivateDataSlotCreateInfo>
88579   {
88580     using Type = PrivateDataSlotCreateInfo;
88581   };
88582   using PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo;
88583 
88584   struct ProtectedSubmitInfo
88585   {
88586     using NativeType = VkProtectedSubmitInfo;
88587 
88588     static const bool allowDuplicate = false;
88589     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo;
88590 
88591 
88592 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo88593 VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo(VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
88594     : pNext( pNext_ ), protectedSubmit( protectedSubmit_ )
88595     {}
88596 
88597     VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88598 
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo88599     ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
88600       : ProtectedSubmitInfo( *reinterpret_cast<ProtectedSubmitInfo const *>( &rhs ) )
88601     {}
88602 
88603 
88604     ProtectedSubmitInfo & operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88605 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
88606 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo88607     ProtectedSubmitInfo & operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
88608     {
88609       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const *>( &rhs );
88610       return *this;
88611     }
88612 
88613 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo88614     VULKAN_HPP_CONSTEXPR_14 ProtectedSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
88615     {
88616       pNext = pNext_;
88617       return *this;
88618     }
88619 
setProtectedSubmitVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo88620     VULKAN_HPP_CONSTEXPR_14 ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT
88621     {
88622       protectedSubmit = protectedSubmit_;
88623       return *this;
88624     }
88625 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
88626 
88627 
operator VkProtectedSubmitInfo const&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo88628     operator VkProtectedSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
88629     {
88630       return *reinterpret_cast<const VkProtectedSubmitInfo*>( this );
88631     }
88632 
operator VkProtectedSubmitInfo&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo88633     operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT
88634     {
88635       return *reinterpret_cast<VkProtectedSubmitInfo*>( this );
88636     }
88637 
88638 #if defined( VULKAN_HPP_USE_REFLECT )
88639 #if 14 <= VULKAN_HPP_CPP_VERSION
88640     auto
88641 #else
88642     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
88643 #endif
reflectVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo88644       reflect() const VULKAN_HPP_NOEXCEPT
88645     {
88646       return std::tie( sType, pNext, protectedSubmit );
88647     }
88648 #endif
88649 
88650 
88651 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
88652 auto operator<=>( ProtectedSubmitInfo const & ) const = default;
88653 #else
operator ==VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo88654     bool operator==( ProtectedSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
88655     {
88656 #if defined( VULKAN_HPP_USE_REFLECT )
88657       return this->reflect() == rhs.reflect();
88658 #else
88659       return ( sType == rhs.sType )
88660           && ( pNext == rhs.pNext )
88661           && ( protectedSubmit == rhs.protectedSubmit );
88662 #endif
88663     }
88664 
operator !=VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo88665     bool operator!=( ProtectedSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
88666     {
88667       return !operator==( rhs );
88668     }
88669 #endif
88670 
88671     public:
88672     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo;
88673     const void * pNext = {};
88674     VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {};
88675 
88676   };
88677 
88678   template <>
88679   struct CppType<StructureType, StructureType::eProtectedSubmitInfo>
88680   {
88681     using Type = ProtectedSubmitInfo;
88682   };
88683 
88684   struct QueryLowLatencySupportNV
88685   {
88686     using NativeType = VkQueryLowLatencySupportNV;
88687 
88688     static const bool allowDuplicate = false;
88689     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryLowLatencySupportNV;
88690 
88691 
88692 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryLowLatencySupportNVVULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV88693 VULKAN_HPP_CONSTEXPR QueryLowLatencySupportNV(void * pQueriedLowLatencyData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
88694     : pNext( pNext_ ), pQueriedLowLatencyData( pQueriedLowLatencyData_ )
88695     {}
88696 
88697     VULKAN_HPP_CONSTEXPR QueryLowLatencySupportNV( QueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88698 
QueryLowLatencySupportNVVULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV88699     QueryLowLatencySupportNV( VkQueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT
88700       : QueryLowLatencySupportNV( *reinterpret_cast<QueryLowLatencySupportNV const *>( &rhs ) )
88701     {}
88702 
88703 
88704     QueryLowLatencySupportNV & operator=( QueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88705 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
88706 
operator =VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV88707     QueryLowLatencySupportNV & operator=( VkQueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT
88708     {
88709       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV const *>( &rhs );
88710       return *this;
88711     }
88712 
88713 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV88714     VULKAN_HPP_CONSTEXPR_14 QueryLowLatencySupportNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
88715     {
88716       pNext = pNext_;
88717       return *this;
88718     }
88719 
setPQueriedLowLatencyDataVULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV88720     VULKAN_HPP_CONSTEXPR_14 QueryLowLatencySupportNV & setPQueriedLowLatencyData( void * pQueriedLowLatencyData_ ) VULKAN_HPP_NOEXCEPT
88721     {
88722       pQueriedLowLatencyData = pQueriedLowLatencyData_;
88723       return *this;
88724     }
88725 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
88726 
88727 
operator VkQueryLowLatencySupportNV const&VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV88728     operator VkQueryLowLatencySupportNV const &() const VULKAN_HPP_NOEXCEPT
88729     {
88730       return *reinterpret_cast<const VkQueryLowLatencySupportNV*>( this );
88731     }
88732 
operator VkQueryLowLatencySupportNV&VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV88733     operator VkQueryLowLatencySupportNV &() VULKAN_HPP_NOEXCEPT
88734     {
88735       return *reinterpret_cast<VkQueryLowLatencySupportNV*>( this );
88736     }
88737 
88738 #if defined( VULKAN_HPP_USE_REFLECT )
88739 #if 14 <= VULKAN_HPP_CPP_VERSION
88740     auto
88741 #else
88742     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, void * const &>
88743 #endif
reflectVULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV88744       reflect() const VULKAN_HPP_NOEXCEPT
88745     {
88746       return std::tie( sType, pNext, pQueriedLowLatencyData );
88747     }
88748 #endif
88749 
88750 
88751 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
88752 auto operator<=>( QueryLowLatencySupportNV const & ) const = default;
88753 #else
operator ==VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV88754     bool operator==( QueryLowLatencySupportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
88755     {
88756 #if defined( VULKAN_HPP_USE_REFLECT )
88757       return this->reflect() == rhs.reflect();
88758 #else
88759       return ( sType == rhs.sType )
88760           && ( pNext == rhs.pNext )
88761           && ( pQueriedLowLatencyData == rhs.pQueriedLowLatencyData );
88762 #endif
88763     }
88764 
operator !=VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV88765     bool operator!=( QueryLowLatencySupportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
88766     {
88767       return !operator==( rhs );
88768     }
88769 #endif
88770 
88771     public:
88772     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryLowLatencySupportNV;
88773     const void * pNext = {};
88774     void * pQueriedLowLatencyData = {};
88775 
88776   };
88777 
88778   template <>
88779   struct CppType<StructureType, StructureType::eQueryLowLatencySupportNV>
88780   {
88781     using Type = QueryLowLatencySupportNV;
88782   };
88783 
88784   struct QueryPoolCreateInfo
88785   {
88786     using NativeType = VkQueryPoolCreateInfo;
88787 
88788     static const bool allowDuplicate = false;
88789     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo;
88790 
88791 
88792 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88793 VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo(VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::QueryType queryType_ = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion, uint32_t queryCount_ = {}, VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
88794     : pNext( pNext_ ), flags( flags_ ), queryType( queryType_ ), queryCount( queryCount_ ), pipelineStatistics( pipelineStatistics_ )
88795     {}
88796 
88797     VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88798 
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88799     QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
88800       : QueryPoolCreateInfo( *reinterpret_cast<QueryPoolCreateInfo const *>( &rhs ) )
88801     {}
88802 
88803 
88804     QueryPoolCreateInfo & operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88805 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
88806 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88807     QueryPoolCreateInfo & operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
88808     {
88809       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const *>( &rhs );
88810       return *this;
88811     }
88812 
88813 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88814     VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
88815     {
88816       pNext = pNext_;
88817       return *this;
88818     }
88819 
setFlagsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88820     VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
88821     {
88822       flags = flags_;
88823       return *this;
88824     }
88825 
setQueryTypeVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88826     VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT
88827     {
88828       queryType = queryType_;
88829       return *this;
88830     }
88831 
setQueryCountVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88832     VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT
88833     {
88834       queryCount = queryCount_;
88835       return *this;
88836     }
88837 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88838     VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
88839     {
88840       pipelineStatistics = pipelineStatistics_;
88841       return *this;
88842     }
88843 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
88844 
88845 
operator VkQueryPoolCreateInfo const&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88846     operator VkQueryPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
88847     {
88848       return *reinterpret_cast<const VkQueryPoolCreateInfo*>( this );
88849     }
88850 
operator VkQueryPoolCreateInfo&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88851     operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
88852     {
88853       return *reinterpret_cast<VkQueryPoolCreateInfo*>( this );
88854     }
88855 
88856 #if defined( VULKAN_HPP_USE_REFLECT )
88857 #if 14 <= VULKAN_HPP_CPP_VERSION
88858     auto
88859 #else
88860     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags const &, VULKAN_HPP_NAMESPACE::QueryType const &, uint32_t const &, VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags const &>
88861 #endif
reflectVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88862       reflect() const VULKAN_HPP_NOEXCEPT
88863     {
88864       return std::tie( sType, pNext, flags, queryType, queryCount, pipelineStatistics );
88865     }
88866 #endif
88867 
88868 
88869 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
88870 auto operator<=>( QueryPoolCreateInfo const & ) const = default;
88871 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88872     bool operator==( QueryPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
88873     {
88874 #if defined( VULKAN_HPP_USE_REFLECT )
88875       return this->reflect() == rhs.reflect();
88876 #else
88877       return ( sType == rhs.sType )
88878           && ( pNext == rhs.pNext )
88879           && ( flags == rhs.flags )
88880           && ( queryType == rhs.queryType )
88881           && ( queryCount == rhs.queryCount )
88882           && ( pipelineStatistics == rhs.pipelineStatistics );
88883 #endif
88884     }
88885 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo88886     bool operator!=( QueryPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
88887     {
88888       return !operator==( rhs );
88889     }
88890 #endif
88891 
88892     public:
88893     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo;
88894     const void * pNext = {};
88895     VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {};
88896     VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion;
88897     uint32_t queryCount = {};
88898     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
88899 
88900   };
88901 
88902   template <>
88903   struct CppType<StructureType, StructureType::eQueryPoolCreateInfo>
88904   {
88905     using Type = QueryPoolCreateInfo;
88906   };
88907 
88908   struct QueryPoolPerformanceCreateInfoKHR
88909   {
88910     using NativeType = VkQueryPoolPerformanceCreateInfoKHR;
88911 
88912     static const bool allowDuplicate = false;
88913     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
88914 
88915 
88916 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88917 VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR(uint32_t queueFamilyIndex_ = {}, uint32_t counterIndexCount_ = {}, const uint32_t * pCounterIndices_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
88918     : pNext( pNext_ ), queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( counterIndexCount_ ), pCounterIndices( pCounterIndices_ )
88919     {}
88920 
88921     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88922 
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88923     QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
88924       : QueryPoolPerformanceCreateInfoKHR( *reinterpret_cast<QueryPoolPerformanceCreateInfoKHR const *>( &rhs ) )
88925     {}
88926 
88927 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88928     QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_, const void * pNext_ = nullptr )
88929     : pNext( pNext_ ), queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( static_cast<uint32_t>( counterIndices_.size() ) ), pCounterIndices( counterIndices_.data() )
88930     {}
88931 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88932 
88933 
88934     QueryPoolPerformanceCreateInfoKHR & operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
88935 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
88936 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88937     QueryPoolPerformanceCreateInfoKHR & operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
88938     {
88939       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const *>( &rhs );
88940       return *this;
88941     }
88942 
88943 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88944     VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
88945     {
88946       pNext = pNext_;
88947       return *this;
88948     }
88949 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88950     VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
88951     {
88952       queueFamilyIndex = queueFamilyIndex_;
88953       return *this;
88954     }
88955 
setCounterIndexCountVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88956     VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT
88957     {
88958       counterIndexCount = counterIndexCount_;
88959       return *this;
88960     }
88961 
setPCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88962     VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t * pCounterIndices_ ) VULKAN_HPP_NOEXCEPT
88963     {
88964       pCounterIndices = pCounterIndices_;
88965       return *this;
88966     }
88967 
88968 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88969     QueryPoolPerformanceCreateInfoKHR & setCounterIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ ) VULKAN_HPP_NOEXCEPT
88970     {
88971       counterIndexCount = static_cast<uint32_t>( counterIndices_.size() );
88972       pCounterIndices = counterIndices_.data();
88973       return *this;
88974     }
88975 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88976 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
88977 
88978 
operator VkQueryPoolPerformanceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88979     operator VkQueryPoolPerformanceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
88980     {
88981       return *reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>( this );
88982     }
88983 
operator VkQueryPoolPerformanceCreateInfoKHR&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88984     operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
88985     {
88986       return *reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>( this );
88987     }
88988 
88989 #if defined( VULKAN_HPP_USE_REFLECT )
88990 #if 14 <= VULKAN_HPP_CPP_VERSION
88991     auto
88992 #else
88993     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, const uint32_t * const &>
88994 #endif
reflectVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR88995       reflect() const VULKAN_HPP_NOEXCEPT
88996     {
88997       return std::tie( sType, pNext, queueFamilyIndex, counterIndexCount, pCounterIndices );
88998     }
88999 #endif
89000 
89001 
89002 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89003 auto operator<=>( QueryPoolPerformanceCreateInfoKHR const & ) const = default;
89004 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR89005     bool operator==( QueryPoolPerformanceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89006     {
89007 #if defined( VULKAN_HPP_USE_REFLECT )
89008       return this->reflect() == rhs.reflect();
89009 #else
89010       return ( sType == rhs.sType )
89011           && ( pNext == rhs.pNext )
89012           && ( queueFamilyIndex == rhs.queueFamilyIndex )
89013           && ( counterIndexCount == rhs.counterIndexCount )
89014           && ( pCounterIndices == rhs.pCounterIndices );
89015 #endif
89016     }
89017 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR89018     bool operator!=( QueryPoolPerformanceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89019     {
89020       return !operator==( rhs );
89021     }
89022 #endif
89023 
89024     public:
89025     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
89026     const void * pNext = {};
89027     uint32_t queueFamilyIndex = {};
89028     uint32_t counterIndexCount = {};
89029     const uint32_t * pCounterIndices = {};
89030 
89031   };
89032 
89033   template <>
89034   struct CppType<StructureType, StructureType::eQueryPoolPerformanceCreateInfoKHR>
89035   {
89036     using Type = QueryPoolPerformanceCreateInfoKHR;
89037   };
89038 
89039   struct QueryPoolPerformanceQueryCreateInfoINTEL
89040   {
89041     using NativeType = VkQueryPoolPerformanceQueryCreateInfoINTEL;
89042 
89043     static const bool allowDuplicate = false;
89044     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
89045 
89046 
89047 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL89048 VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL(VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
89049     : pNext( pNext_ ), performanceCountersSampling( performanceCountersSampling_ )
89050     {}
89051 
89052     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89053 
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL89054     QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
89055       : QueryPoolPerformanceQueryCreateInfoINTEL( *reinterpret_cast<QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs ) )
89056     {}
89057 
89058 
89059     QueryPoolPerformanceQueryCreateInfoINTEL & operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89060 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
89061 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL89062     QueryPoolPerformanceQueryCreateInfoINTEL & operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
89063     {
89064       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs );
89065       return *this;
89066     }
89067 
89068 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL89069     VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
89070     {
89071       pNext = pNext_;
89072       return *this;
89073     }
89074 
setPerformanceCountersSamplingVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL89075     VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceQueryCreateInfoINTEL & setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT
89076     {
89077       performanceCountersSampling = performanceCountersSampling_;
89078       return *this;
89079     }
89080 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
89081 
89082 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL89083     operator VkQueryPoolPerformanceQueryCreateInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
89084     {
89085       return *reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
89086     }
89087 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL89088     operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT
89089     {
89090       return *reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
89091     }
89092 
89093 #if defined( VULKAN_HPP_USE_REFLECT )
89094 #if 14 <= VULKAN_HPP_CPP_VERSION
89095     auto
89096 #else
89097     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL const &>
89098 #endif
reflectVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL89099       reflect() const VULKAN_HPP_NOEXCEPT
89100     {
89101       return std::tie( sType, pNext, performanceCountersSampling );
89102     }
89103 #endif
89104 
89105 
89106 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89107 auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const & ) const = default;
89108 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL89109     bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
89110     {
89111 #if defined( VULKAN_HPP_USE_REFLECT )
89112       return this->reflect() == rhs.reflect();
89113 #else
89114       return ( sType == rhs.sType )
89115           && ( pNext == rhs.pNext )
89116           && ( performanceCountersSampling == rhs.performanceCountersSampling );
89117 #endif
89118     }
89119 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL89120     bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
89121     {
89122       return !operator==( rhs );
89123     }
89124 #endif
89125 
89126     public:
89127     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
89128     const void * pNext = {};
89129     VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual;
89130 
89131   };
89132 
89133   template <>
89134   struct CppType<StructureType, StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL>
89135   {
89136     using Type = QueryPoolPerformanceQueryCreateInfoINTEL;
89137   };
89138   using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
89139 
89140 #if defined( VK_ENABLE_BETA_EXTENSIONS )
89141   struct QueryPoolVideoEncodeFeedbackCreateInfoKHR
89142   {
89143     using NativeType = VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
89144 
89145     static const bool allowDuplicate = false;
89146     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolVideoEncodeFeedbackCreateInfoKHR;
89147 
89148 
89149 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolVideoEncodeFeedbackCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR89150 VULKAN_HPP_CONSTEXPR QueryPoolVideoEncodeFeedbackCreateInfoKHR(VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR encodeFeedbackFlags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
89151     : pNext( pNext_ ), encodeFeedbackFlags( encodeFeedbackFlags_ )
89152     {}
89153 
89154     VULKAN_HPP_CONSTEXPR QueryPoolVideoEncodeFeedbackCreateInfoKHR( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89155 
QueryPoolVideoEncodeFeedbackCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR89156     QueryPoolVideoEncodeFeedbackCreateInfoKHR( VkQueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
89157       : QueryPoolVideoEncodeFeedbackCreateInfoKHR( *reinterpret_cast<QueryPoolVideoEncodeFeedbackCreateInfoKHR const *>( &rhs ) )
89158     {}
89159 
89160 
89161     QueryPoolVideoEncodeFeedbackCreateInfoKHR & operator=( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89162 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
89163 
operator =VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR89164     QueryPoolVideoEncodeFeedbackCreateInfoKHR & operator=( VkQueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
89165     {
89166       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR const *>( &rhs );
89167       return *this;
89168     }
89169 
89170 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR89171     VULKAN_HPP_CONSTEXPR_14 QueryPoolVideoEncodeFeedbackCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
89172     {
89173       pNext = pNext_;
89174       return *this;
89175     }
89176 
setEncodeFeedbackFlagsVULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR89177     VULKAN_HPP_CONSTEXPR_14 QueryPoolVideoEncodeFeedbackCreateInfoKHR & setEncodeFeedbackFlags( VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR encodeFeedbackFlags_ ) VULKAN_HPP_NOEXCEPT
89178     {
89179       encodeFeedbackFlags = encodeFeedbackFlags_;
89180       return *this;
89181     }
89182 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
89183 
89184 
operator VkQueryPoolVideoEncodeFeedbackCreateInfoKHR const&VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR89185     operator VkQueryPoolVideoEncodeFeedbackCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
89186     {
89187       return *reinterpret_cast<const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR*>( this );
89188     }
89189 
operator VkQueryPoolVideoEncodeFeedbackCreateInfoKHR&VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR89190     operator VkQueryPoolVideoEncodeFeedbackCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
89191     {
89192       return *reinterpret_cast<VkQueryPoolVideoEncodeFeedbackCreateInfoKHR*>( this );
89193     }
89194 
89195 #if defined( VULKAN_HPP_USE_REFLECT )
89196 #if 14 <= VULKAN_HPP_CPP_VERSION
89197     auto
89198 #else
89199     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR const &>
89200 #endif
reflectVULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR89201       reflect() const VULKAN_HPP_NOEXCEPT
89202     {
89203       return std::tie( sType, pNext, encodeFeedbackFlags );
89204     }
89205 #endif
89206 
89207 
89208 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89209 auto operator<=>( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & ) const = default;
89210 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR89211     bool operator==( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89212     {
89213 #if defined( VULKAN_HPP_USE_REFLECT )
89214       return this->reflect() == rhs.reflect();
89215 #else
89216       return ( sType == rhs.sType )
89217           && ( pNext == rhs.pNext )
89218           && ( encodeFeedbackFlags == rhs.encodeFeedbackFlags );
89219 #endif
89220     }
89221 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR89222     bool operator!=( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89223     {
89224       return !operator==( rhs );
89225     }
89226 #endif
89227 
89228     public:
89229     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolVideoEncodeFeedbackCreateInfoKHR;
89230     const void * pNext = {};
89231     VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR encodeFeedbackFlags = {};
89232 
89233   };
89234 
89235   template <>
89236   struct CppType<StructureType, StructureType::eQueryPoolVideoEncodeFeedbackCreateInfoKHR>
89237   {
89238     using Type = QueryPoolVideoEncodeFeedbackCreateInfoKHR;
89239   };
89240 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
89241 
89242   struct QueueFamilyCheckpointProperties2NV
89243   {
89244     using NativeType = VkQueueFamilyCheckpointProperties2NV;
89245 
89246     static const bool allowDuplicate = false;
89247     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointProperties2NV;
89248 
89249 
89250 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyCheckpointProperties2NVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV89251 VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 checkpointExecutionStageMask_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
89252     : pNext( pNext_ ), checkpointExecutionStageMask( checkpointExecutionStageMask_ )
89253     {}
89254 
89255     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89256 
QueueFamilyCheckpointProperties2NVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV89257     QueueFamilyCheckpointProperties2NV( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT
89258       : QueueFamilyCheckpointProperties2NV( *reinterpret_cast<QueueFamilyCheckpointProperties2NV const *>( &rhs ) )
89259     {}
89260 
89261 
89262     QueueFamilyCheckpointProperties2NV & operator=( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89263 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
89264 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV89265     QueueFamilyCheckpointProperties2NV & operator=( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT
89266     {
89267       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV const *>( &rhs );
89268       return *this;
89269     }
89270 
89271 
operator VkQueueFamilyCheckpointProperties2NV const&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV89272     operator VkQueueFamilyCheckpointProperties2NV const &() const VULKAN_HPP_NOEXCEPT
89273     {
89274       return *reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>( this );
89275     }
89276 
operator VkQueueFamilyCheckpointProperties2NV&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV89277     operator VkQueueFamilyCheckpointProperties2NV &() VULKAN_HPP_NOEXCEPT
89278     {
89279       return *reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>( this );
89280     }
89281 
89282 #if defined( VULKAN_HPP_USE_REFLECT )
89283 #if 14 <= VULKAN_HPP_CPP_VERSION
89284     auto
89285 #else
89286     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &>
89287 #endif
reflectVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV89288       reflect() const VULKAN_HPP_NOEXCEPT
89289     {
89290       return std::tie( sType, pNext, checkpointExecutionStageMask );
89291     }
89292 #endif
89293 
89294 
89295 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89296 auto operator<=>( QueueFamilyCheckpointProperties2NV const & ) const = default;
89297 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV89298     bool operator==( QueueFamilyCheckpointProperties2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
89299     {
89300 #if defined( VULKAN_HPP_USE_REFLECT )
89301       return this->reflect() == rhs.reflect();
89302 #else
89303       return ( sType == rhs.sType )
89304           && ( pNext == rhs.pNext )
89305           && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
89306 #endif
89307     }
89308 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV89309     bool operator!=( QueueFamilyCheckpointProperties2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
89310     {
89311       return !operator==( rhs );
89312     }
89313 #endif
89314 
89315     public:
89316     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointProperties2NV;
89317     void * pNext = {};
89318     VULKAN_HPP_NAMESPACE::PipelineStageFlags2 checkpointExecutionStageMask = {};
89319 
89320   };
89321 
89322   template <>
89323   struct CppType<StructureType, StructureType::eQueueFamilyCheckpointProperties2NV>
89324   {
89325     using Type = QueueFamilyCheckpointProperties2NV;
89326   };
89327 
89328   struct QueueFamilyCheckpointPropertiesNV
89329   {
89330     using NativeType = VkQueueFamilyCheckpointPropertiesNV;
89331 
89332     static const bool allowDuplicate = false;
89333     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointPropertiesNV;
89334 
89335 
89336 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV89337 VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV(VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
89338     : pNext( pNext_ ), checkpointExecutionStageMask( checkpointExecutionStageMask_ )
89339     {}
89340 
89341     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89342 
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV89343     QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
89344       : QueueFamilyCheckpointPropertiesNV( *reinterpret_cast<QueueFamilyCheckpointPropertiesNV const *>( &rhs ) )
89345     {}
89346 
89347 
89348     QueueFamilyCheckpointPropertiesNV & operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89349 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
89350 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV89351     QueueFamilyCheckpointPropertiesNV & operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
89352     {
89353       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const *>( &rhs );
89354       return *this;
89355     }
89356 
89357 
operator VkQueueFamilyCheckpointPropertiesNV const&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV89358     operator VkQueueFamilyCheckpointPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
89359     {
89360       return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>( this );
89361     }
89362 
operator VkQueueFamilyCheckpointPropertiesNV&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV89363     operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT
89364     {
89365       return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>( this );
89366     }
89367 
89368 #if defined( VULKAN_HPP_USE_REFLECT )
89369 #if 14 <= VULKAN_HPP_CPP_VERSION
89370     auto
89371 #else
89372     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags const &>
89373 #endif
reflectVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV89374       reflect() const VULKAN_HPP_NOEXCEPT
89375     {
89376       return std::tie( sType, pNext, checkpointExecutionStageMask );
89377     }
89378 #endif
89379 
89380 
89381 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89382 auto operator<=>( QueueFamilyCheckpointPropertiesNV const & ) const = default;
89383 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV89384     bool operator==( QueueFamilyCheckpointPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
89385     {
89386 #if defined( VULKAN_HPP_USE_REFLECT )
89387       return this->reflect() == rhs.reflect();
89388 #else
89389       return ( sType == rhs.sType )
89390           && ( pNext == rhs.pNext )
89391           && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
89392 #endif
89393     }
89394 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV89395     bool operator!=( QueueFamilyCheckpointPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
89396     {
89397       return !operator==( rhs );
89398     }
89399 #endif
89400 
89401     public:
89402     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV;
89403     void * pNext = {};
89404     VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {};
89405 
89406   };
89407 
89408   template <>
89409   struct CppType<StructureType, StructureType::eQueueFamilyCheckpointPropertiesNV>
89410   {
89411     using Type = QueueFamilyCheckpointPropertiesNV;
89412   };
89413 
89414   struct QueueFamilyGlobalPriorityPropertiesKHR
89415   {
89416     using NativeType = VkQueueFamilyGlobalPriorityPropertiesKHR;
89417 
89418     static const bool allowDuplicate = false;
89419     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyGlobalPriorityPropertiesKHR;
89420 
89421 
89422 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyGlobalPriorityPropertiesKHRVULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89423 VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR(uint32_t priorityCount_ = {}, std::array<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR,VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> const & priorities_ = { { VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow } }, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
89424     : pNext( pNext_ ), priorityCount( priorityCount_ ), priorities( priorities_ )
89425     {}
89426 
89427     VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89428 
QueueFamilyGlobalPriorityPropertiesKHRVULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89429     QueueFamilyGlobalPriorityPropertiesKHR( VkQueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
89430       : QueueFamilyGlobalPriorityPropertiesKHR( *reinterpret_cast<QueueFamilyGlobalPriorityPropertiesKHR const *>( &rhs ) )
89431     {}
89432 
89433 
89434     QueueFamilyGlobalPriorityPropertiesKHR & operator=( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89435 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
89436 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89437     QueueFamilyGlobalPriorityPropertiesKHR & operator=( VkQueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
89438     {
89439       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR const *>( &rhs );
89440       return *this;
89441     }
89442 
89443 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89444     VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
89445     {
89446       pNext = pNext_;
89447       return *this;
89448     }
89449 
setPriorityCountVULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89450     VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR & setPriorityCount( uint32_t priorityCount_ ) VULKAN_HPP_NOEXCEPT
89451     {
89452       priorityCount = priorityCount_;
89453       return *this;
89454     }
89455 
setPrioritiesVULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89456     VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR & setPriorities( std::array<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR,VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> priorities_ ) VULKAN_HPP_NOEXCEPT
89457     {
89458       priorities = priorities_;
89459       return *this;
89460     }
89461 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
89462 
89463 
operator VkQueueFamilyGlobalPriorityPropertiesKHR const&VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89464     operator VkQueueFamilyGlobalPriorityPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
89465     {
89466       return *reinterpret_cast<const VkQueueFamilyGlobalPriorityPropertiesKHR*>( this );
89467     }
89468 
operator VkQueueFamilyGlobalPriorityPropertiesKHR&VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89469     operator VkQueueFamilyGlobalPriorityPropertiesKHR &() VULKAN_HPP_NOEXCEPT
89470     {
89471       return *reinterpret_cast<VkQueueFamilyGlobalPriorityPropertiesKHR*>( this );
89472     }
89473 
89474 #if defined( VULKAN_HPP_USE_REFLECT )
89475 #if 14 <= VULKAN_HPP_CPP_VERSION
89476     auto
89477 #else
89478     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> const &>
89479 #endif
reflectVULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89480       reflect() const VULKAN_HPP_NOEXCEPT
89481     {
89482       return std::tie( sType, pNext, priorityCount, priorities );
89483     }
89484 #endif
89485 
89486 
89487 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89488 auto operator<=>( QueueFamilyGlobalPriorityPropertiesKHR const & ) const = default;
89489 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89490     bool operator==( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89491     {
89492 #if defined( VULKAN_HPP_USE_REFLECT )
89493       return this->reflect() == rhs.reflect();
89494 #else
89495       return ( sType == rhs.sType )
89496           && ( pNext == rhs.pNext )
89497           && ( priorityCount == rhs.priorityCount )
89498           && ( priorities == rhs.priorities );
89499 #endif
89500     }
89501 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR89502     bool operator!=( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89503     {
89504       return !operator==( rhs );
89505     }
89506 #endif
89507 
89508     public:
89509     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyGlobalPriorityPropertiesKHR;
89510     void * pNext = {};
89511     uint32_t priorityCount = {};
89512     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> priorities = {};
89513 
89514   };
89515 
89516   template <>
89517   struct CppType<StructureType, StructureType::eQueueFamilyGlobalPriorityPropertiesKHR>
89518   {
89519     using Type = QueueFamilyGlobalPriorityPropertiesKHR;
89520   };
89521   using QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesKHR;
89522 
89523   struct QueueFamilyProperties
89524   {
89525     using NativeType = VkQueueFamilyProperties;
89526 
89527 
89528 
89529 
89530 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties89531 VULKAN_HPP_CONSTEXPR QueueFamilyProperties(VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {}, uint32_t queueCount_ = {}, uint32_t timestampValidBits_ = {}, VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {}) VULKAN_HPP_NOEXCEPT
89532     : queueFlags( queueFlags_ ), queueCount( queueCount_ ), timestampValidBits( timestampValidBits_ ), minImageTransferGranularity( minImageTransferGranularity_ )
89533     {}
89534 
89535     VULKAN_HPP_CONSTEXPR QueueFamilyProperties( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89536 
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties89537     QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
89538       : QueueFamilyProperties( *reinterpret_cast<QueueFamilyProperties const *>( &rhs ) )
89539     {}
89540 
89541 
89542     QueueFamilyProperties & operator=( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89543 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
89544 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties89545     QueueFamilyProperties & operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
89546     {
89547       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties const *>( &rhs );
89548       return *this;
89549     }
89550 
89551 
operator VkQueueFamilyProperties const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties89552     operator VkQueueFamilyProperties const &() const VULKAN_HPP_NOEXCEPT
89553     {
89554       return *reinterpret_cast<const VkQueueFamilyProperties*>( this );
89555     }
89556 
operator VkQueueFamilyProperties&VULKAN_HPP_NAMESPACE::QueueFamilyProperties89557     operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT
89558     {
89559       return *reinterpret_cast<VkQueueFamilyProperties*>( this );
89560     }
89561 
89562 #if defined( VULKAN_HPP_USE_REFLECT )
89563 #if 14 <= VULKAN_HPP_CPP_VERSION
89564     auto
89565 #else
89566     std::tuple<VULKAN_HPP_NAMESPACE::QueueFlags const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
89567 #endif
reflectVULKAN_HPP_NAMESPACE::QueueFamilyProperties89568       reflect() const VULKAN_HPP_NOEXCEPT
89569     {
89570       return std::tie( queueFlags, queueCount, timestampValidBits, minImageTransferGranularity );
89571     }
89572 #endif
89573 
89574 
89575 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89576 auto operator<=>( QueueFamilyProperties const & ) const = default;
89577 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties89578     bool operator==( QueueFamilyProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
89579     {
89580 #if defined( VULKAN_HPP_USE_REFLECT )
89581       return this->reflect() == rhs.reflect();
89582 #else
89583       return ( queueFlags == rhs.queueFlags )
89584           && ( queueCount == rhs.queueCount )
89585           && ( timestampValidBits == rhs.timestampValidBits )
89586           && ( minImageTransferGranularity == rhs.minImageTransferGranularity );
89587 #endif
89588     }
89589 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties89590     bool operator!=( QueueFamilyProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
89591     {
89592       return !operator==( rhs );
89593     }
89594 #endif
89595 
89596     public:
89597     VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {};
89598     uint32_t queueCount = {};
89599     uint32_t timestampValidBits = {};
89600     VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {};
89601 
89602   };
89603 
89604   struct QueueFamilyProperties2
89605   {
89606     using NativeType = VkQueueFamilyProperties2;
89607 
89608     static const bool allowDuplicate = false;
89609     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2;
89610 
89611 
89612 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties289613 VULKAN_HPP_CONSTEXPR QueueFamilyProperties2(VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
89614     : pNext( pNext_ ), queueFamilyProperties( queueFamilyProperties_ )
89615     {}
89616 
89617     VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89618 
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties289619     QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
89620       : QueueFamilyProperties2( *reinterpret_cast<QueueFamilyProperties2 const *>( &rhs ) )
89621     {}
89622 
89623 
89624     QueueFamilyProperties2 & operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89625 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
89626 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties289627     QueueFamilyProperties2 & operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
89628     {
89629       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const *>( &rhs );
89630       return *this;
89631     }
89632 
89633 
operator VkQueueFamilyProperties2 const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties289634     operator VkQueueFamilyProperties2 const &() const VULKAN_HPP_NOEXCEPT
89635     {
89636       return *reinterpret_cast<const VkQueueFamilyProperties2*>( this );
89637     }
89638 
operator VkQueueFamilyProperties2&VULKAN_HPP_NAMESPACE::QueueFamilyProperties289639     operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT
89640     {
89641       return *reinterpret_cast<VkQueueFamilyProperties2*>( this );
89642     }
89643 
89644 #if defined( VULKAN_HPP_USE_REFLECT )
89645 #if 14 <= VULKAN_HPP_CPP_VERSION
89646     auto
89647 #else
89648     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::QueueFamilyProperties const &>
89649 #endif
reflectVULKAN_HPP_NAMESPACE::QueueFamilyProperties289650       reflect() const VULKAN_HPP_NOEXCEPT
89651     {
89652       return std::tie( sType, pNext, queueFamilyProperties );
89653     }
89654 #endif
89655 
89656 
89657 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89658 auto operator<=>( QueueFamilyProperties2 const & ) const = default;
89659 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties289660     bool operator==( QueueFamilyProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
89661     {
89662 #if defined( VULKAN_HPP_USE_REFLECT )
89663       return this->reflect() == rhs.reflect();
89664 #else
89665       return ( sType == rhs.sType )
89666           && ( pNext == rhs.pNext )
89667           && ( queueFamilyProperties == rhs.queueFamilyProperties );
89668 #endif
89669     }
89670 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties289671     bool operator!=( QueueFamilyProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
89672     {
89673       return !operator==( rhs );
89674     }
89675 #endif
89676 
89677     public:
89678     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2;
89679     void * pNext = {};
89680     VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {};
89681 
89682   };
89683 
89684   template <>
89685   struct CppType<StructureType, StructureType::eQueueFamilyProperties2>
89686   {
89687     using Type = QueueFamilyProperties2;
89688   };
89689   using QueueFamilyProperties2KHR = QueueFamilyProperties2;
89690 
89691   struct QueueFamilyQueryResultStatusPropertiesKHR
89692   {
89693     using NativeType = VkQueueFamilyQueryResultStatusPropertiesKHR;
89694 
89695     static const bool allowDuplicate = false;
89696     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyQueryResultStatusPropertiesKHR;
89697 
89698 
89699 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyQueryResultStatusPropertiesKHRVULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR89700 VULKAN_HPP_CONSTEXPR QueueFamilyQueryResultStatusPropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 queryResultStatusSupport_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
89701     : pNext( pNext_ ), queryResultStatusSupport( queryResultStatusSupport_ )
89702     {}
89703 
89704     VULKAN_HPP_CONSTEXPR QueueFamilyQueryResultStatusPropertiesKHR( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89705 
QueueFamilyQueryResultStatusPropertiesKHRVULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR89706     QueueFamilyQueryResultStatusPropertiesKHR( VkQueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
89707       : QueueFamilyQueryResultStatusPropertiesKHR( *reinterpret_cast<QueueFamilyQueryResultStatusPropertiesKHR const *>( &rhs ) )
89708     {}
89709 
89710 
89711     QueueFamilyQueryResultStatusPropertiesKHR & operator=( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89712 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
89713 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR89714     QueueFamilyQueryResultStatusPropertiesKHR & operator=( VkQueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
89715     {
89716       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR const *>( &rhs );
89717       return *this;
89718     }
89719 
89720 
operator VkQueueFamilyQueryResultStatusPropertiesKHR const&VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR89721     operator VkQueueFamilyQueryResultStatusPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
89722     {
89723       return *reinterpret_cast<const VkQueueFamilyQueryResultStatusPropertiesKHR*>( this );
89724     }
89725 
operator VkQueueFamilyQueryResultStatusPropertiesKHR&VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR89726     operator VkQueueFamilyQueryResultStatusPropertiesKHR &() VULKAN_HPP_NOEXCEPT
89727     {
89728       return *reinterpret_cast<VkQueueFamilyQueryResultStatusPropertiesKHR*>( this );
89729     }
89730 
89731 #if defined( VULKAN_HPP_USE_REFLECT )
89732 #if 14 <= VULKAN_HPP_CPP_VERSION
89733     auto
89734 #else
89735     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
89736 #endif
reflectVULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR89737       reflect() const VULKAN_HPP_NOEXCEPT
89738     {
89739       return std::tie( sType, pNext, queryResultStatusSupport );
89740     }
89741 #endif
89742 
89743 
89744 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89745 auto operator<=>( QueueFamilyQueryResultStatusPropertiesKHR const & ) const = default;
89746 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR89747     bool operator==( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89748     {
89749 #if defined( VULKAN_HPP_USE_REFLECT )
89750       return this->reflect() == rhs.reflect();
89751 #else
89752       return ( sType == rhs.sType )
89753           && ( pNext == rhs.pNext )
89754           && ( queryResultStatusSupport == rhs.queryResultStatusSupport );
89755 #endif
89756     }
89757 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR89758     bool operator!=( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89759     {
89760       return !operator==( rhs );
89761     }
89762 #endif
89763 
89764     public:
89765     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyQueryResultStatusPropertiesKHR;
89766     void * pNext = {};
89767     VULKAN_HPP_NAMESPACE::Bool32 queryResultStatusSupport = {};
89768 
89769   };
89770 
89771   template <>
89772   struct CppType<StructureType, StructureType::eQueueFamilyQueryResultStatusPropertiesKHR>
89773   {
89774     using Type = QueueFamilyQueryResultStatusPropertiesKHR;
89775   };
89776 
89777   struct QueueFamilyVideoPropertiesKHR
89778   {
89779     using NativeType = VkQueueFamilyVideoPropertiesKHR;
89780 
89781     static const bool allowDuplicate = false;
89782     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyVideoPropertiesKHR;
89783 
89784 
89785 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyVideoPropertiesKHRVULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR89786 VULKAN_HPP_CONSTEXPR QueueFamilyVideoPropertiesKHR(VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
89787     : pNext( pNext_ ), videoCodecOperations( videoCodecOperations_ )
89788     {}
89789 
89790     VULKAN_HPP_CONSTEXPR QueueFamilyVideoPropertiesKHR( QueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89791 
QueueFamilyVideoPropertiesKHRVULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR89792     QueueFamilyVideoPropertiesKHR( VkQueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
89793       : QueueFamilyVideoPropertiesKHR( *reinterpret_cast<QueueFamilyVideoPropertiesKHR const *>( &rhs ) )
89794     {}
89795 
89796 
89797     QueueFamilyVideoPropertiesKHR & operator=( QueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89798 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
89799 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR89800     QueueFamilyVideoPropertiesKHR & operator=( VkQueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
89801     {
89802       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR const *>( &rhs );
89803       return *this;
89804     }
89805 
89806 
operator VkQueueFamilyVideoPropertiesKHR const&VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR89807     operator VkQueueFamilyVideoPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
89808     {
89809       return *reinterpret_cast<const VkQueueFamilyVideoPropertiesKHR*>( this );
89810     }
89811 
operator VkQueueFamilyVideoPropertiesKHR&VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR89812     operator VkQueueFamilyVideoPropertiesKHR &() VULKAN_HPP_NOEXCEPT
89813     {
89814       return *reinterpret_cast<VkQueueFamilyVideoPropertiesKHR*>( this );
89815     }
89816 
89817 #if defined( VULKAN_HPP_USE_REFLECT )
89818 #if 14 <= VULKAN_HPP_CPP_VERSION
89819     auto
89820 #else
89821     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR const &>
89822 #endif
reflectVULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR89823       reflect() const VULKAN_HPP_NOEXCEPT
89824     {
89825       return std::tie( sType, pNext, videoCodecOperations );
89826     }
89827 #endif
89828 
89829 
89830 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89831 auto operator<=>( QueueFamilyVideoPropertiesKHR const & ) const = default;
89832 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR89833     bool operator==( QueueFamilyVideoPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89834     {
89835 #if defined( VULKAN_HPP_USE_REFLECT )
89836       return this->reflect() == rhs.reflect();
89837 #else
89838       return ( sType == rhs.sType )
89839           && ( pNext == rhs.pNext )
89840           && ( videoCodecOperations == rhs.videoCodecOperations );
89841 #endif
89842     }
89843 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR89844     bool operator!=( QueueFamilyVideoPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89845     {
89846       return !operator==( rhs );
89847     }
89848 #endif
89849 
89850     public:
89851     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyVideoPropertiesKHR;
89852     void * pNext = {};
89853     VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations = {};
89854 
89855   };
89856 
89857   template <>
89858   struct CppType<StructureType, StructureType::eQueueFamilyVideoPropertiesKHR>
89859   {
89860     using Type = QueueFamilyVideoPropertiesKHR;
89861   };
89862 
89863   struct RayTracingShaderGroupCreateInfoKHR
89864   {
89865     using NativeType = VkRayTracingShaderGroupCreateInfoKHR;
89866 
89867     static const bool allowDuplicate = false;
89868     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
89869 
89870 
89871 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89872 VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR(VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, uint32_t generalShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR, uint32_t closestHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR, uint32_t anyHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR, uint32_t intersectionShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR, const void * pShaderGroupCaptureReplayHandle_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
89873     : pNext( pNext_ ), type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ ), pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ )
89874     {}
89875 
89876     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89877 
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89878     RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
89879       : RayTracingShaderGroupCreateInfoKHR( *reinterpret_cast<RayTracingShaderGroupCreateInfoKHR const *>( &rhs ) )
89880     {}
89881 
89882 
89883     RayTracingShaderGroupCreateInfoKHR & operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
89884 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
89885 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89886     RayTracingShaderGroupCreateInfoKHR & operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
89887     {
89888       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR const *>( &rhs );
89889       return *this;
89890     }
89891 
89892 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89893     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
89894     {
89895       pNext = pNext_;
89896       return *this;
89897     }
89898 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89899     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
89900     {
89901       type = type_;
89902       return *this;
89903     }
89904 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89905     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
89906     {
89907       generalShader = generalShader_;
89908       return *this;
89909     }
89910 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89911     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
89912     {
89913       closestHitShader = closestHitShader_;
89914       return *this;
89915     }
89916 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89917     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
89918     {
89919       anyHitShader = anyHitShader_;
89920       return *this;
89921     }
89922 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89923     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
89924     {
89925       intersectionShader = intersectionShader_;
89926       return *this;
89927     }
89928 
setPShaderGroupCaptureReplayHandleVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89929     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setPShaderGroupCaptureReplayHandle( const void * pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT
89930     {
89931       pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_;
89932       return *this;
89933     }
89934 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
89935 
89936 
operator VkRayTracingShaderGroupCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89937     operator VkRayTracingShaderGroupCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
89938     {
89939       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoKHR*>( this );
89940     }
89941 
operator VkRayTracingShaderGroupCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89942     operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
89943     {
89944       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoKHR*>( this );
89945     }
89946 
89947 #if defined( VULKAN_HPP_USE_REFLECT )
89948 #if 14 <= VULKAN_HPP_CPP_VERSION
89949     auto
89950 #else
89951     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, const void * const &>
89952 #endif
reflectVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89953       reflect() const VULKAN_HPP_NOEXCEPT
89954     {
89955       return std::tie( sType, pNext, type, generalShader, closestHitShader, anyHitShader, intersectionShader, pShaderGroupCaptureReplayHandle );
89956     }
89957 #endif
89958 
89959 
89960 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
89961 auto operator<=>( RayTracingShaderGroupCreateInfoKHR const & ) const = default;
89962 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89963     bool operator==( RayTracingShaderGroupCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89964     {
89965 #if defined( VULKAN_HPP_USE_REFLECT )
89966       return this->reflect() == rhs.reflect();
89967 #else
89968       return ( sType == rhs.sType )
89969           && ( pNext == rhs.pNext )
89970           && ( type == rhs.type )
89971           && ( generalShader == rhs.generalShader )
89972           && ( closestHitShader == rhs.closestHitShader )
89973           && ( anyHitShader == rhs.anyHitShader )
89974           && ( intersectionShader == rhs.intersectionShader )
89975           && ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle );
89976 #endif
89977     }
89978 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR89979     bool operator!=( RayTracingShaderGroupCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
89980     {
89981       return !operator==( rhs );
89982     }
89983 #endif
89984 
89985     public:
89986     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
89987     const void * pNext = {};
89988     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
89989     uint32_t generalShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
89990     uint32_t closestHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
89991     uint32_t anyHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
89992     uint32_t intersectionShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
89993     const void * pShaderGroupCaptureReplayHandle = {};
89994 
89995   };
89996 
89997   template <>
89998   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoKHR>
89999   {
90000     using Type = RayTracingShaderGroupCreateInfoKHR;
90001   };
90002 
90003   struct RayTracingPipelineInterfaceCreateInfoKHR
90004   {
90005     using NativeType = VkRayTracingPipelineInterfaceCreateInfoKHR;
90006 
90007     static const bool allowDuplicate = false;
90008     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
90009 
90010 
90011 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90012 VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR(uint32_t maxPipelineRayPayloadSize_ = {}, uint32_t maxPipelineRayHitAttributeSize_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
90013     : pNext( pNext_ ), maxPipelineRayPayloadSize( maxPipelineRayPayloadSize_ ), maxPipelineRayHitAttributeSize( maxPipelineRayHitAttributeSize_ )
90014     {}
90015 
90016     VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90017 
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90018     RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
90019       : RayTracingPipelineInterfaceCreateInfoKHR( *reinterpret_cast<RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs ) )
90020     {}
90021 
90022 
90023     RayTracingPipelineInterfaceCreateInfoKHR & operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90024 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
90025 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90026     RayTracingPipelineInterfaceCreateInfoKHR & operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
90027     {
90028       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs );
90029       return *this;
90030     }
90031 
90032 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90033     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
90034     {
90035       pNext = pNext_;
90036       return *this;
90037     }
90038 
setMaxPipelineRayPayloadSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90039     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR & setMaxPipelineRayPayloadSize( uint32_t maxPipelineRayPayloadSize_ ) VULKAN_HPP_NOEXCEPT
90040     {
90041       maxPipelineRayPayloadSize = maxPipelineRayPayloadSize_;
90042       return *this;
90043     }
90044 
setMaxPipelineRayHitAttributeSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90045     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR & setMaxPipelineRayHitAttributeSize( uint32_t maxPipelineRayHitAttributeSize_ ) VULKAN_HPP_NOEXCEPT
90046     {
90047       maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize_;
90048       return *this;
90049     }
90050 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
90051 
90052 
operator VkRayTracingPipelineInterfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90053     operator VkRayTracingPipelineInterfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
90054     {
90055       return *reinterpret_cast<const VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
90056     }
90057 
operator VkRayTracingPipelineInterfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90058     operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
90059     {
90060       return *reinterpret_cast<VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
90061     }
90062 
90063 #if defined( VULKAN_HPP_USE_REFLECT )
90064 #if 14 <= VULKAN_HPP_CPP_VERSION
90065     auto
90066 #else
90067     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &>
90068 #endif
reflectVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90069       reflect() const VULKAN_HPP_NOEXCEPT
90070     {
90071       return std::tie( sType, pNext, maxPipelineRayPayloadSize, maxPipelineRayHitAttributeSize );
90072     }
90073 #endif
90074 
90075 
90076 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
90077 auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const & ) const = default;
90078 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90079     bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
90080     {
90081 #if defined( VULKAN_HPP_USE_REFLECT )
90082       return this->reflect() == rhs.reflect();
90083 #else
90084       return ( sType == rhs.sType )
90085           && ( pNext == rhs.pNext )
90086           && ( maxPipelineRayPayloadSize == rhs.maxPipelineRayPayloadSize )
90087           && ( maxPipelineRayHitAttributeSize == rhs.maxPipelineRayHitAttributeSize );
90088 #endif
90089     }
90090 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR90091     bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
90092     {
90093       return !operator==( rhs );
90094     }
90095 #endif
90096 
90097     public:
90098     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
90099     const void * pNext = {};
90100     uint32_t maxPipelineRayPayloadSize = {};
90101     uint32_t maxPipelineRayHitAttributeSize = {};
90102 
90103   };
90104 
90105   template <>
90106   struct CppType<StructureType, StructureType::eRayTracingPipelineInterfaceCreateInfoKHR>
90107   {
90108     using Type = RayTracingPipelineInterfaceCreateInfoKHR;
90109   };
90110 
90111   struct RayTracingPipelineCreateInfoKHR
90112   {
90113     using NativeType = VkRayTracingPipelineCreateInfoKHR;
90114 
90115     static const bool allowDuplicate = false;
90116     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR;
90117 
90118 
90119 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90120 VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {}, uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups_ = {}, uint32_t maxPipelineRayRecursionDepth_ = {}, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
90121     : pNext( pNext_ ), flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ ), pLibraryInfo( pLibraryInfo_ ), pLibraryInterface( pLibraryInterface_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
90122     {}
90123 
90124     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90125 
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90126     RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
90127       : RayTracingPipelineCreateInfoKHR( *reinterpret_cast<RayTracingPipelineCreateInfoKHR const *>( &rhs ) )
90128     {}
90129 
90130 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90131     RayTracingPipelineCreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ = {}, uint32_t maxPipelineRayRecursionDepth_ = {}, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}, const void * pNext_ = nullptr )
90132     : pNext( pNext_ ), flags( flags_ ), stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ ), pLibraryInfo( pLibraryInfo_ ), pLibraryInterface( pLibraryInterface_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
90133     {}
90134 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90135 
90136 
90137     RayTracingPipelineCreateInfoKHR & operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90138 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
90139 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90140     RayTracingPipelineCreateInfoKHR & operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
90141     {
90142       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const *>( &rhs );
90143       return *this;
90144     }
90145 
90146 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90147     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
90148     {
90149       pNext = pNext_;
90150       return *this;
90151     }
90152 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90153     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
90154     {
90155       flags = flags_;
90156       return *this;
90157     }
90158 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90159     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
90160     {
90161       stageCount = stageCount_;
90162       return *this;
90163     }
90164 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90165     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
90166     {
90167       pStages = pStages_;
90168       return *this;
90169     }
90170 
90171 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90172     RayTracingPipelineCreateInfoKHR & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
90173     {
90174       stageCount = static_cast<uint32_t>( stages_.size() );
90175       pStages = stages_.data();
90176       return *this;
90177     }
90178 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90179 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90180     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
90181     {
90182       groupCount = groupCount_;
90183       return *this;
90184     }
90185 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90186     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups_ ) VULKAN_HPP_NOEXCEPT
90187     {
90188       pGroups = pGroups_;
90189       return *this;
90190     }
90191 
90192 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90193     RayTracingPipelineCreateInfoKHR & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ ) VULKAN_HPP_NOEXCEPT
90194     {
90195       groupCount = static_cast<uint32_t>( groups_.size() );
90196       pGroups = groups_.data();
90197       return *this;
90198     }
90199 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90200 
setMaxPipelineRayRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90201     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setMaxPipelineRayRecursionDepth( uint32_t maxPipelineRayRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
90202     {
90203       maxPipelineRayRecursionDepth = maxPipelineRayRecursionDepth_;
90204       return *this;
90205     }
90206 
setPLibraryInfoVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90207     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT
90208     {
90209       pLibraryInfo = pLibraryInfo_;
90210       return *this;
90211     }
90212 
setPLibraryInterfaceVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90213     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setPLibraryInterface( const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT
90214     {
90215       pLibraryInterface = pLibraryInterface_;
90216       return *this;
90217     }
90218 
setPDynamicStateVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90219     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT
90220     {
90221       pDynamicState = pDynamicState_;
90222       return *this;
90223     }
90224 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90225     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
90226     {
90227       layout = layout_;
90228       return *this;
90229     }
90230 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90231     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
90232     {
90233       basePipelineHandle = basePipelineHandle_;
90234       return *this;
90235     }
90236 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90237     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
90238     {
90239       basePipelineIndex = basePipelineIndex_;
90240       return *this;
90241     }
90242 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
90243 
90244 
operator VkRayTracingPipelineCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90245     operator VkRayTracingPipelineCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
90246     {
90247       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( this );
90248     }
90249 
operator VkRayTracingPipelineCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90250     operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
90251     {
90252       return *reinterpret_cast<VkRayTracingPipelineCreateInfoKHR*>( this );
90253     }
90254 
90255 #if defined( VULKAN_HPP_USE_REFLECT )
90256 #if 14 <= VULKAN_HPP_CPP_VERSION
90257     auto
90258 #else
90259     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * const &, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * const &, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * const &, VULKAN_HPP_NAMESPACE::PipelineLayout const &, VULKAN_HPP_NAMESPACE::Pipeline const &, int32_t const &>
90260 #endif
reflectVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90261       reflect() const VULKAN_HPP_NOEXCEPT
90262     {
90263       return std::tie( sType, pNext, flags, stageCount, pStages, groupCount, pGroups, maxPipelineRayRecursionDepth, pLibraryInfo, pLibraryInterface, pDynamicState, layout, basePipelineHandle, basePipelineIndex );
90264     }
90265 #endif
90266 
90267 
90268 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
90269 auto operator<=>( RayTracingPipelineCreateInfoKHR const & ) const = default;
90270 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90271     bool operator==( RayTracingPipelineCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
90272     {
90273 #if defined( VULKAN_HPP_USE_REFLECT )
90274       return this->reflect() == rhs.reflect();
90275 #else
90276       return ( sType == rhs.sType )
90277           && ( pNext == rhs.pNext )
90278           && ( flags == rhs.flags )
90279           && ( stageCount == rhs.stageCount )
90280           && ( pStages == rhs.pStages )
90281           && ( groupCount == rhs.groupCount )
90282           && ( pGroups == rhs.pGroups )
90283           && ( maxPipelineRayRecursionDepth == rhs.maxPipelineRayRecursionDepth )
90284           && ( pLibraryInfo == rhs.pLibraryInfo )
90285           && ( pLibraryInterface == rhs.pLibraryInterface )
90286           && ( pDynamicState == rhs.pDynamicState )
90287           && ( layout == rhs.layout )
90288           && ( basePipelineHandle == rhs.basePipelineHandle )
90289           && ( basePipelineIndex == rhs.basePipelineIndex );
90290 #endif
90291     }
90292 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR90293     bool operator!=( RayTracingPipelineCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
90294     {
90295       return !operator==( rhs );
90296     }
90297 #endif
90298 
90299     public:
90300     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR;
90301     const void * pNext = {};
90302     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
90303     uint32_t stageCount = {};
90304     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
90305     uint32_t groupCount = {};
90306     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups = {};
90307     uint32_t maxPipelineRayRecursionDepth = {};
90308     const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo = {};
90309     const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface = {};
90310     const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState = {};
90311     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
90312     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
90313     int32_t basePipelineIndex = {};
90314 
90315   };
90316 
90317   template <>
90318   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoKHR>
90319   {
90320     using Type = RayTracingPipelineCreateInfoKHR;
90321   };
90322 
90323   struct RayTracingShaderGroupCreateInfoNV
90324   {
90325     using NativeType = VkRayTracingShaderGroupCreateInfoNV;
90326 
90327     static const bool allowDuplicate = false;
90328     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoNV;
90329 
90330 
90331 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90332 VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV(VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, uint32_t generalShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV, uint32_t closestHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV, uint32_t anyHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV, uint32_t intersectionShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
90333     : pNext( pNext_ ), type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ )
90334     {}
90335 
90336     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90337 
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90338     RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
90339       : RayTracingShaderGroupCreateInfoNV( *reinterpret_cast<RayTracingShaderGroupCreateInfoNV const *>( &rhs ) )
90340     {}
90341 
90342 
90343     RayTracingShaderGroupCreateInfoNV & operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90344 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
90345 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90346     RayTracingShaderGroupCreateInfoNV & operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
90347     {
90348       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const *>( &rhs );
90349       return *this;
90350     }
90351 
90352 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90353     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
90354     {
90355       pNext = pNext_;
90356       return *this;
90357     }
90358 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90359     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
90360     {
90361       type = type_;
90362       return *this;
90363     }
90364 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90365     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
90366     {
90367       generalShader = generalShader_;
90368       return *this;
90369     }
90370 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90371     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
90372     {
90373       closestHitShader = closestHitShader_;
90374       return *this;
90375     }
90376 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90377     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
90378     {
90379       anyHitShader = anyHitShader_;
90380       return *this;
90381     }
90382 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90383     VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
90384     {
90385       intersectionShader = intersectionShader_;
90386       return *this;
90387     }
90388 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
90389 
90390 
operator VkRayTracingShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90391     operator VkRayTracingShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
90392     {
90393       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV*>( this );
90394     }
90395 
operator VkRayTracingShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90396     operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
90397     {
90398       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>( this );
90399     }
90400 
90401 #if defined( VULKAN_HPP_USE_REFLECT )
90402 #if 14 <= VULKAN_HPP_CPP_VERSION
90403     auto
90404 #else
90405     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
90406 #endif
reflectVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90407       reflect() const VULKAN_HPP_NOEXCEPT
90408     {
90409       return std::tie( sType, pNext, type, generalShader, closestHitShader, anyHitShader, intersectionShader );
90410     }
90411 #endif
90412 
90413 
90414 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
90415 auto operator<=>( RayTracingShaderGroupCreateInfoNV const & ) const = default;
90416 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90417     bool operator==( RayTracingShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
90418     {
90419 #if defined( VULKAN_HPP_USE_REFLECT )
90420       return this->reflect() == rhs.reflect();
90421 #else
90422       return ( sType == rhs.sType )
90423           && ( pNext == rhs.pNext )
90424           && ( type == rhs.type )
90425           && ( generalShader == rhs.generalShader )
90426           && ( closestHitShader == rhs.closestHitShader )
90427           && ( anyHitShader == rhs.anyHitShader )
90428           && ( intersectionShader == rhs.intersectionShader );
90429 #endif
90430     }
90431 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV90432     bool operator!=( RayTracingShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
90433     {
90434       return !operator==( rhs );
90435     }
90436 #endif
90437 
90438     public:
90439     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV;
90440     const void * pNext = {};
90441     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
90442     uint32_t generalShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
90443     uint32_t closestHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
90444     uint32_t anyHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
90445     uint32_t intersectionShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
90446 
90447   };
90448 
90449   template <>
90450   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoNV>
90451   {
90452     using Type = RayTracingShaderGroupCreateInfoNV;
90453   };
90454 
90455   struct RayTracingPipelineCreateInfoNV
90456   {
90457     using NativeType = VkRayTracingPipelineCreateInfoNV;
90458 
90459     static const bool allowDuplicate = false;
90460     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV;
90461 
90462 
90463 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90464 VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {}, uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
90465     : pNext( pNext_ ), flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
90466     {}
90467 
90468     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90469 
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90470     RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
90471       : RayTracingPipelineCreateInfoNV( *reinterpret_cast<RayTracingPipelineCreateInfoNV const *>( &rhs ) )
90472     {}
90473 
90474 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90475     RayTracingPipelineCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}, const void * pNext_ = nullptr )
90476     : pNext( pNext_ ), flags( flags_ ), stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
90477     {}
90478 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90479 
90480 
90481     RayTracingPipelineCreateInfoNV & operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90482 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
90483 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90484     RayTracingPipelineCreateInfoNV & operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
90485     {
90486       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const *>( &rhs );
90487       return *this;
90488     }
90489 
90490 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90491     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
90492     {
90493       pNext = pNext_;
90494       return *this;
90495     }
90496 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90497     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
90498     {
90499       flags = flags_;
90500       return *this;
90501     }
90502 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90503     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
90504     {
90505       stageCount = stageCount_;
90506       return *this;
90507     }
90508 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90509     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
90510     {
90511       pStages = pStages_;
90512       return *this;
90513     }
90514 
90515 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90516     RayTracingPipelineCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
90517     {
90518       stageCount = static_cast<uint32_t>( stages_.size() );
90519       pStages = stages_.data();
90520       return *this;
90521     }
90522 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90523 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90524     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
90525     {
90526       groupCount = groupCount_;
90527       return *this;
90528     }
90529 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90530     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT
90531     {
90532       pGroups = pGroups_;
90533       return *this;
90534     }
90535 
90536 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90537     RayTracingPipelineCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
90538     {
90539       groupCount = static_cast<uint32_t>( groups_.size() );
90540       pGroups = groups_.data();
90541       return *this;
90542     }
90543 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90544 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90545     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
90546     {
90547       maxRecursionDepth = maxRecursionDepth_;
90548       return *this;
90549     }
90550 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90551     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
90552     {
90553       layout = layout_;
90554       return *this;
90555     }
90556 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90557     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
90558     {
90559       basePipelineHandle = basePipelineHandle_;
90560       return *this;
90561     }
90562 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90563     VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
90564     {
90565       basePipelineIndex = basePipelineIndex_;
90566       return *this;
90567     }
90568 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
90569 
90570 
operator VkRayTracingPipelineCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90571     operator VkRayTracingPipelineCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
90572     {
90573       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( this );
90574     }
90575 
operator VkRayTracingPipelineCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90576     operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT
90577     {
90578       return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>( this );
90579     }
90580 
90581 #if defined( VULKAN_HPP_USE_REFLECT )
90582 #if 14 <= VULKAN_HPP_CPP_VERSION
90583     auto
90584 #else
90585     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PipelineLayout const &, VULKAN_HPP_NAMESPACE::Pipeline const &, int32_t const &>
90586 #endif
reflectVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90587       reflect() const VULKAN_HPP_NOEXCEPT
90588     {
90589       return std::tie( sType, pNext, flags, stageCount, pStages, groupCount, pGroups, maxRecursionDepth, layout, basePipelineHandle, basePipelineIndex );
90590     }
90591 #endif
90592 
90593 
90594 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
90595 auto operator<=>( RayTracingPipelineCreateInfoNV const & ) const = default;
90596 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90597     bool operator==( RayTracingPipelineCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
90598     {
90599 #if defined( VULKAN_HPP_USE_REFLECT )
90600       return this->reflect() == rhs.reflect();
90601 #else
90602       return ( sType == rhs.sType )
90603           && ( pNext == rhs.pNext )
90604           && ( flags == rhs.flags )
90605           && ( stageCount == rhs.stageCount )
90606           && ( pStages == rhs.pStages )
90607           && ( groupCount == rhs.groupCount )
90608           && ( pGroups == rhs.pGroups )
90609           && ( maxRecursionDepth == rhs.maxRecursionDepth )
90610           && ( layout == rhs.layout )
90611           && ( basePipelineHandle == rhs.basePipelineHandle )
90612           && ( basePipelineIndex == rhs.basePipelineIndex );
90613 #endif
90614     }
90615 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV90616     bool operator!=( RayTracingPipelineCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
90617     {
90618       return !operator==( rhs );
90619     }
90620 #endif
90621 
90622     public:
90623     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV;
90624     const void * pNext = {};
90625     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
90626     uint32_t stageCount = {};
90627     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
90628     uint32_t groupCount = {};
90629     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups = {};
90630     uint32_t maxRecursionDepth = {};
90631     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
90632     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
90633     int32_t basePipelineIndex = {};
90634 
90635   };
90636 
90637   template <>
90638   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoNV>
90639   {
90640     using Type = RayTracingPipelineCreateInfoNV;
90641   };
90642 
90643   struct RefreshCycleDurationGOOGLE
90644   {
90645     using NativeType = VkRefreshCycleDurationGOOGLE;
90646 
90647 
90648 
90649 
90650 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE90651 VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE(uint64_t refreshDuration_ = {}) VULKAN_HPP_NOEXCEPT
90652     : refreshDuration( refreshDuration_ )
90653     {}
90654 
90655     VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90656 
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE90657     RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
90658       : RefreshCycleDurationGOOGLE( *reinterpret_cast<RefreshCycleDurationGOOGLE const *>( &rhs ) )
90659     {}
90660 
90661 
90662     RefreshCycleDurationGOOGLE & operator=( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90663 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
90664 
operator =VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE90665     RefreshCycleDurationGOOGLE & operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
90666     {
90667       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE const *>( &rhs );
90668       return *this;
90669     }
90670 
90671 
operator VkRefreshCycleDurationGOOGLE const&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE90672     operator VkRefreshCycleDurationGOOGLE const &() const VULKAN_HPP_NOEXCEPT
90673     {
90674       return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE*>( this );
90675     }
90676 
operator VkRefreshCycleDurationGOOGLE&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE90677     operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT
90678     {
90679       return *reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( this );
90680     }
90681 
90682 #if defined( VULKAN_HPP_USE_REFLECT )
90683 #if 14 <= VULKAN_HPP_CPP_VERSION
90684     auto
90685 #else
90686     std::tuple<uint64_t const &>
90687 #endif
reflectVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE90688       reflect() const VULKAN_HPP_NOEXCEPT
90689     {
90690       return std::tie( refreshDuration );
90691     }
90692 #endif
90693 
90694 
90695 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
90696 auto operator<=>( RefreshCycleDurationGOOGLE const & ) const = default;
90697 #else
operator ==VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE90698     bool operator==( RefreshCycleDurationGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
90699     {
90700 #if defined( VULKAN_HPP_USE_REFLECT )
90701       return this->reflect() == rhs.reflect();
90702 #else
90703       return ( refreshDuration == rhs.refreshDuration );
90704 #endif
90705     }
90706 
operator !=VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE90707     bool operator!=( RefreshCycleDurationGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
90708     {
90709       return !operator==( rhs );
90710     }
90711 #endif
90712 
90713     public:
90714     uint64_t refreshDuration = {};
90715 
90716   };
90717 
90718   struct ReleaseSwapchainImagesInfoEXT
90719   {
90720     using NativeType = VkReleaseSwapchainImagesInfoEXT;
90721 
90722     static const bool allowDuplicate = false;
90723     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eReleaseSwapchainImagesInfoEXT;
90724 
90725 
90726 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ReleaseSwapchainImagesInfoEXTVULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90727 VULKAN_HPP_CONSTEXPR ReleaseSwapchainImagesInfoEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint32_t imageIndexCount_ = {}, const uint32_t * pImageIndices_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
90728     : pNext( pNext_ ), swapchain( swapchain_ ), imageIndexCount( imageIndexCount_ ), pImageIndices( pImageIndices_ )
90729     {}
90730 
90731     VULKAN_HPP_CONSTEXPR ReleaseSwapchainImagesInfoEXT( ReleaseSwapchainImagesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90732 
ReleaseSwapchainImagesInfoEXTVULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90733     ReleaseSwapchainImagesInfoEXT( VkReleaseSwapchainImagesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
90734       : ReleaseSwapchainImagesInfoEXT( *reinterpret_cast<ReleaseSwapchainImagesInfoEXT const *>( &rhs ) )
90735     {}
90736 
90737 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ReleaseSwapchainImagesInfoEXTVULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90738     ReleaseSwapchainImagesInfoEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_, const void * pNext_ = nullptr )
90739     : pNext( pNext_ ), swapchain( swapchain_ ), imageIndexCount( static_cast<uint32_t>( imageIndices_.size() ) ), pImageIndices( imageIndices_.data() )
90740     {}
90741 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90742 
90743 
90744     ReleaseSwapchainImagesInfoEXT & operator=( ReleaseSwapchainImagesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90745 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
90746 
operator =VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90747     ReleaseSwapchainImagesInfoEXT & operator=( VkReleaseSwapchainImagesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
90748     {
90749       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT const *>( &rhs );
90750       return *this;
90751     }
90752 
90753 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90754     VULKAN_HPP_CONSTEXPR_14 ReleaseSwapchainImagesInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
90755     {
90756       pNext = pNext_;
90757       return *this;
90758     }
90759 
setSwapchainVULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90760     VULKAN_HPP_CONSTEXPR_14 ReleaseSwapchainImagesInfoEXT & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
90761     {
90762       swapchain = swapchain_;
90763       return *this;
90764     }
90765 
setImageIndexCountVULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90766     VULKAN_HPP_CONSTEXPR_14 ReleaseSwapchainImagesInfoEXT & setImageIndexCount( uint32_t imageIndexCount_ ) VULKAN_HPP_NOEXCEPT
90767     {
90768       imageIndexCount = imageIndexCount_;
90769       return *this;
90770     }
90771 
setPImageIndicesVULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90772     VULKAN_HPP_CONSTEXPR_14 ReleaseSwapchainImagesInfoEXT & setPImageIndices( const uint32_t * pImageIndices_ ) VULKAN_HPP_NOEXCEPT
90773     {
90774       pImageIndices = pImageIndices_;
90775       return *this;
90776     }
90777 
90778 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setImageIndicesVULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90779     ReleaseSwapchainImagesInfoEXT & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ ) VULKAN_HPP_NOEXCEPT
90780     {
90781       imageIndexCount = static_cast<uint32_t>( imageIndices_.size() );
90782       pImageIndices = imageIndices_.data();
90783       return *this;
90784     }
90785 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90786 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
90787 
90788 
operator VkReleaseSwapchainImagesInfoEXT const&VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90789     operator VkReleaseSwapchainImagesInfoEXT const &() const VULKAN_HPP_NOEXCEPT
90790     {
90791       return *reinterpret_cast<const VkReleaseSwapchainImagesInfoEXT*>( this );
90792     }
90793 
operator VkReleaseSwapchainImagesInfoEXT&VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90794     operator VkReleaseSwapchainImagesInfoEXT &() VULKAN_HPP_NOEXCEPT
90795     {
90796       return *reinterpret_cast<VkReleaseSwapchainImagesInfoEXT*>( this );
90797     }
90798 
90799 #if defined( VULKAN_HPP_USE_REFLECT )
90800 #if 14 <= VULKAN_HPP_CPP_VERSION
90801     auto
90802 #else
90803     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SwapchainKHR const &, uint32_t const &, const uint32_t * const &>
90804 #endif
reflectVULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90805       reflect() const VULKAN_HPP_NOEXCEPT
90806     {
90807       return std::tie( sType, pNext, swapchain, imageIndexCount, pImageIndices );
90808     }
90809 #endif
90810 
90811 
90812 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
90813 auto operator<=>( ReleaseSwapchainImagesInfoEXT const & ) const = default;
90814 #else
operator ==VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90815     bool operator==( ReleaseSwapchainImagesInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
90816     {
90817 #if defined( VULKAN_HPP_USE_REFLECT )
90818       return this->reflect() == rhs.reflect();
90819 #else
90820       return ( sType == rhs.sType )
90821           && ( pNext == rhs.pNext )
90822           && ( swapchain == rhs.swapchain )
90823           && ( imageIndexCount == rhs.imageIndexCount )
90824           && ( pImageIndices == rhs.pImageIndices );
90825 #endif
90826     }
90827 
operator !=VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT90828     bool operator!=( ReleaseSwapchainImagesInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
90829     {
90830       return !operator==( rhs );
90831     }
90832 #endif
90833 
90834     public:
90835     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eReleaseSwapchainImagesInfoEXT;
90836     const void * pNext = {};
90837     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
90838     uint32_t imageIndexCount = {};
90839     const uint32_t * pImageIndices = {};
90840 
90841   };
90842 
90843   template <>
90844   struct CppType<StructureType, StructureType::eReleaseSwapchainImagesInfoEXT>
90845   {
90846     using Type = ReleaseSwapchainImagesInfoEXT;
90847   };
90848 
90849   struct RenderPassAttachmentBeginInfo
90850   {
90851     using NativeType = VkRenderPassAttachmentBeginInfo;
90852 
90853     static const bool allowDuplicate = false;
90854     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo;
90855 
90856 
90857 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90858 VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo(uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
90859     : pNext( pNext_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ )
90860     {}
90861 
90862     VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90863 
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90864     RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
90865       : RenderPassAttachmentBeginInfo( *reinterpret_cast<RenderPassAttachmentBeginInfo const *>( &rhs ) )
90866     {}
90867 
90868 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90869     RenderPassAttachmentBeginInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_, const void * pNext_ = nullptr )
90870     : pNext( pNext_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() )
90871     {}
90872 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90873 
90874 
90875     RenderPassAttachmentBeginInfo & operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90876 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
90877 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90878     RenderPassAttachmentBeginInfo & operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
90879     {
90880       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const *>( &rhs );
90881       return *this;
90882     }
90883 
90884 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90885     VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
90886     {
90887       pNext = pNext_;
90888       return *this;
90889     }
90890 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90891     VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
90892     {
90893       attachmentCount = attachmentCount_;
90894       return *this;
90895     }
90896 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90897     VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ ) VULKAN_HPP_NOEXCEPT
90898     {
90899       pAttachments = pAttachments_;
90900       return *this;
90901     }
90902 
90903 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90904     RenderPassAttachmentBeginInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
90905     {
90906       attachmentCount = static_cast<uint32_t>( attachments_.size() );
90907       pAttachments = attachments_.data();
90908       return *this;
90909     }
90910 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90911 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
90912 
90913 
operator VkRenderPassAttachmentBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90914     operator VkRenderPassAttachmentBeginInfo const &() const VULKAN_HPP_NOEXCEPT
90915     {
90916       return *reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>( this );
90917     }
90918 
operator VkRenderPassAttachmentBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90919     operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT
90920     {
90921       return *reinterpret_cast<VkRenderPassAttachmentBeginInfo*>( this );
90922     }
90923 
90924 #if defined( VULKAN_HPP_USE_REFLECT )
90925 #if 14 <= VULKAN_HPP_CPP_VERSION
90926     auto
90927 #else
90928     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageView * const &>
90929 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90930       reflect() const VULKAN_HPP_NOEXCEPT
90931     {
90932       return std::tie( sType, pNext, attachmentCount, pAttachments );
90933     }
90934 #endif
90935 
90936 
90937 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
90938 auto operator<=>( RenderPassAttachmentBeginInfo const & ) const = default;
90939 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90940     bool operator==( RenderPassAttachmentBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
90941     {
90942 #if defined( VULKAN_HPP_USE_REFLECT )
90943       return this->reflect() == rhs.reflect();
90944 #else
90945       return ( sType == rhs.sType )
90946           && ( pNext == rhs.pNext )
90947           && ( attachmentCount == rhs.attachmentCount )
90948           && ( pAttachments == rhs.pAttachments );
90949 #endif
90950     }
90951 
operator !=VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo90952     bool operator!=( RenderPassAttachmentBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
90953     {
90954       return !operator==( rhs );
90955     }
90956 #endif
90957 
90958     public:
90959     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo;
90960     const void * pNext = {};
90961     uint32_t attachmentCount = {};
90962     const VULKAN_HPP_NAMESPACE::ImageView * pAttachments = {};
90963 
90964   };
90965 
90966   template <>
90967   struct CppType<StructureType, StructureType::eRenderPassAttachmentBeginInfo>
90968   {
90969     using Type = RenderPassAttachmentBeginInfo;
90970   };
90971   using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
90972 
90973   struct RenderPassBeginInfo
90974   {
90975     using NativeType = VkRenderPassBeginInfo;
90976 
90977     static const bool allowDuplicate = false;
90978     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo;
90979 
90980 
90981 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo90982 VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo(VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}, uint32_t clearValueCount_ = {}, const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
90983     : pNext( pNext_ ), renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( clearValueCount_ ), pClearValues( pClearValues_ )
90984     {}
90985 
90986     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
90987 
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo90988     RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
90989       : RenderPassBeginInfo( *reinterpret_cast<RenderPassBeginInfo const *>( &rhs ) )
90990     {}
90991 
90992 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo90993     RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_, VULKAN_HPP_NAMESPACE::Rect2D renderArea_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_, const void * pNext_ = nullptr )
90994     : pNext( pNext_ ), renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( static_cast<uint32_t>( clearValues_.size() ) ), pClearValues( clearValues_.data() )
90995     {}
90996 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90997 
90998 
90999     RenderPassBeginInfo & operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91000 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
91001 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo91002     RenderPassBeginInfo & operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
91003     {
91004       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const *>( &rhs );
91005       return *this;
91006     }
91007 
91008 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassBeginInfo91009     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
91010     {
91011       pNext = pNext_;
91012       return *this;
91013     }
91014 
setRenderPassVULKAN_HPP_NAMESPACE::RenderPassBeginInfo91015     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
91016     {
91017       renderPass = renderPass_;
91018       return *this;
91019     }
91020 
setFramebufferVULKAN_HPP_NAMESPACE::RenderPassBeginInfo91021     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
91022     {
91023       framebuffer = framebuffer_;
91024       return *this;
91025     }
91026 
setRenderAreaVULKAN_HPP_NAMESPACE::RenderPassBeginInfo91027     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
91028     {
91029       renderArea = renderArea_;
91030       return *this;
91031     }
91032 
setClearValueCountVULKAN_HPP_NAMESPACE::RenderPassBeginInfo91033     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT
91034     {
91035       clearValueCount = clearValueCount_;
91036       return *this;
91037     }
91038 
setPClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo91039     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues_ ) VULKAN_HPP_NOEXCEPT
91040     {
91041       pClearValues = pClearValues_;
91042       return *this;
91043     }
91044 
91045 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo91046     RenderPassBeginInfo & setClearValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_ ) VULKAN_HPP_NOEXCEPT
91047     {
91048       clearValueCount = static_cast<uint32_t>( clearValues_.size() );
91049       pClearValues = clearValues_.data();
91050       return *this;
91051     }
91052 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91053 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
91054 
91055 
operator VkRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo91056     operator VkRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
91057     {
91058       return *reinterpret_cast<const VkRenderPassBeginInfo*>( this );
91059     }
91060 
operator VkRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo91061     operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
91062     {
91063       return *reinterpret_cast<VkRenderPassBeginInfo*>( this );
91064     }
91065 
91066 #if defined( VULKAN_HPP_USE_REFLECT )
91067 #if 14 <= VULKAN_HPP_CPP_VERSION
91068     auto
91069 #else
91070     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderPass const &, VULKAN_HPP_NAMESPACE::Framebuffer const &, VULKAN_HPP_NAMESPACE::Rect2D const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ClearValue * const &>
91071 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassBeginInfo91072       reflect() const VULKAN_HPP_NOEXCEPT
91073     {
91074       return std::tie( sType, pNext, renderPass, framebuffer, renderArea, clearValueCount, pClearValues );
91075     }
91076 #endif
91077 
91078 
91079 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
91080 auto operator<=>( RenderPassBeginInfo const & ) const = default;
91081 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassBeginInfo91082     bool operator==( RenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
91083     {
91084 #if defined( VULKAN_HPP_USE_REFLECT )
91085       return this->reflect() == rhs.reflect();
91086 #else
91087       return ( sType == rhs.sType )
91088           && ( pNext == rhs.pNext )
91089           && ( renderPass == rhs.renderPass )
91090           && ( framebuffer == rhs.framebuffer )
91091           && ( renderArea == rhs.renderArea )
91092           && ( clearValueCount == rhs.clearValueCount )
91093           && ( pClearValues == rhs.pClearValues );
91094 #endif
91095     }
91096 
operator !=VULKAN_HPP_NAMESPACE::RenderPassBeginInfo91097     bool operator!=( RenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
91098     {
91099       return !operator==( rhs );
91100     }
91101 #endif
91102 
91103     public:
91104     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo;
91105     const void * pNext = {};
91106     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
91107     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
91108     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
91109     uint32_t clearValueCount = {};
91110     const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues = {};
91111 
91112   };
91113 
91114   template <>
91115   struct CppType<StructureType, StructureType::eRenderPassBeginInfo>
91116   {
91117     using Type = RenderPassBeginInfo;
91118   };
91119 
91120   struct SubpassDescription
91121   {
91122     using NativeType = VkSubpassDescription;
91123 
91124 
91125 
91126 
91127 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription91128 VULKAN_HPP_CONSTEXPR SubpassDescription(VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t inputAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ = {}, uint32_t preserveAttachmentCount_ = {}, const uint32_t * pPreserveAttachments_ = {}) VULKAN_HPP_NOEXCEPT
91129     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ )
91130     {}
91131 
91132     VULKAN_HPP_CONSTEXPR SubpassDescription( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91133 
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription91134     SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
91135       : SubpassDescription( *reinterpret_cast<SubpassDescription const *>( &rhs ) )
91136     {}
91137 
91138 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription91139     SubpassDescription( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ = {} )
91140     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( static_cast<uint32_t>( inputAttachments_.size() ) ), pInputAttachments( inputAttachments_.data() ), colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) ), pColorAttachments( colorAttachments_.data() ), pResolveAttachments( resolveAttachments_.data() ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( static_cast<uint32_t>( preserveAttachments_.size() ) ), pPreserveAttachments( preserveAttachments_.data() )
91141     {
91142 #ifdef VULKAN_HPP_NO_EXCEPTIONS
91143       VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
91144 #else
91145       if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
91146       {
91147         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::SubpassDescription::SubpassDescription: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
91148       }
91149 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
91150     }
91151 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91152 
91153 
91154     SubpassDescription & operator=( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91155 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
91156 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription91157     SubpassDescription & operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
91158     {
91159       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription const *>( &rhs );
91160       return *this;
91161     }
91162 
91163 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription91164     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
91165     {
91166       flags = flags_;
91167       return *this;
91168     }
91169 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription91170     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
91171     {
91172       pipelineBindPoint = pipelineBindPoint_;
91173       return *this;
91174     }
91175 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription91176     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
91177     {
91178       inputAttachmentCount = inputAttachmentCount_;
91179       return *this;
91180     }
91181 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription91182     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
91183     {
91184       pInputAttachments = pInputAttachments_;
91185       return *this;
91186     }
91187 
91188 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription91189     SubpassDescription & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
91190     {
91191       inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
91192       pInputAttachments = inputAttachments_.data();
91193       return *this;
91194     }
91195 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91196 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription91197     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
91198     {
91199       colorAttachmentCount = colorAttachmentCount_;
91200       return *this;
91201     }
91202 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription91203     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
91204     {
91205       pColorAttachments = pColorAttachments_;
91206       return *this;
91207     }
91208 
91209 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription91210     SubpassDescription & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
91211     {
91212       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
91213       pColorAttachments = colorAttachments_.data();
91214       return *this;
91215     }
91216 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91217 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription91218     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
91219     {
91220       pResolveAttachments = pResolveAttachments_;
91221       return *this;
91222     }
91223 
91224 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription91225     SubpassDescription & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
91226     {
91227       colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
91228       pResolveAttachments = resolveAttachments_.data();
91229       return *this;
91230     }
91231 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91232 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription91233     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
91234     {
91235       pDepthStencilAttachment = pDepthStencilAttachment_;
91236       return *this;
91237     }
91238 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription91239     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
91240     {
91241       preserveAttachmentCount = preserveAttachmentCount_;
91242       return *this;
91243     }
91244 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription91245     VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPPreserveAttachments( const uint32_t * pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
91246     {
91247       pPreserveAttachments = pPreserveAttachments_;
91248       return *this;
91249     }
91250 
91251 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription91252     SubpassDescription & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
91253     {
91254       preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
91255       pPreserveAttachments = preserveAttachments_.data();
91256       return *this;
91257     }
91258 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91259 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
91260 
91261 
operator VkSubpassDescription const&VULKAN_HPP_NAMESPACE::SubpassDescription91262     operator VkSubpassDescription const &() const VULKAN_HPP_NOEXCEPT
91263     {
91264       return *reinterpret_cast<const VkSubpassDescription*>( this );
91265     }
91266 
operator VkSubpassDescription&VULKAN_HPP_NAMESPACE::SubpassDescription91267     operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT
91268     {
91269       return *reinterpret_cast<VkSubpassDescription*>( this );
91270     }
91271 
91272 #if defined( VULKAN_HPP_USE_REFLECT )
91273 #if 14 <= VULKAN_HPP_CPP_VERSION
91274     auto
91275 #else
91276     std::tuple<VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags const &, VULKAN_HPP_NAMESPACE::PipelineBindPoint const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AttachmentReference * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AttachmentReference * const &, const VULKAN_HPP_NAMESPACE::AttachmentReference * const &, const VULKAN_HPP_NAMESPACE::AttachmentReference * const &, uint32_t const &, const uint32_t * const &>
91277 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassDescription91278       reflect() const VULKAN_HPP_NOEXCEPT
91279     {
91280       return std::tie( flags, pipelineBindPoint, inputAttachmentCount, pInputAttachments, colorAttachmentCount, pColorAttachments, pResolveAttachments, pDepthStencilAttachment, preserveAttachmentCount, pPreserveAttachments );
91281     }
91282 #endif
91283 
91284 
91285 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
91286 auto operator<=>( SubpassDescription const & ) const = default;
91287 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription91288     bool operator==( SubpassDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
91289     {
91290 #if defined( VULKAN_HPP_USE_REFLECT )
91291       return this->reflect() == rhs.reflect();
91292 #else
91293       return ( flags == rhs.flags )
91294           && ( pipelineBindPoint == rhs.pipelineBindPoint )
91295           && ( inputAttachmentCount == rhs.inputAttachmentCount )
91296           && ( pInputAttachments == rhs.pInputAttachments )
91297           && ( colorAttachmentCount == rhs.colorAttachmentCount )
91298           && ( pColorAttachments == rhs.pColorAttachments )
91299           && ( pResolveAttachments == rhs.pResolveAttachments )
91300           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
91301           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
91302           && ( pPreserveAttachments == rhs.pPreserveAttachments );
91303 #endif
91304     }
91305 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription91306     bool operator!=( SubpassDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
91307     {
91308       return !operator==( rhs );
91309     }
91310 #endif
91311 
91312     public:
91313     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
91314     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
91315     uint32_t inputAttachmentCount = {};
91316     const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments = {};
91317     uint32_t colorAttachmentCount = {};
91318     const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments = {};
91319     const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments = {};
91320     const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment = {};
91321     uint32_t preserveAttachmentCount = {};
91322     const uint32_t * pPreserveAttachments = {};
91323 
91324   };
91325 
91326   struct SubpassDependency
91327   {
91328     using NativeType = VkSubpassDependency;
91329 
91330 
91331 
91332 
91333 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency91334 VULKAN_HPP_CONSTEXPR SubpassDependency(uint32_t srcSubpass_ = {}, uint32_t dstSubpass_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}) VULKAN_HPP_NOEXCEPT
91335     : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ )
91336     {}
91337 
91338     VULKAN_HPP_CONSTEXPR SubpassDependency( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91339 
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency91340     SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
91341       : SubpassDependency( *reinterpret_cast<SubpassDependency const *>( &rhs ) )
91342     {}
91343 
91344 
91345     SubpassDependency & operator=( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91346 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
91347 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency91348     SubpassDependency & operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
91349     {
91350       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency const *>( &rhs );
91351       return *this;
91352     }
91353 
91354 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency91355     VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
91356     {
91357       srcSubpass = srcSubpass_;
91358       return *this;
91359     }
91360 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency91361     VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
91362     {
91363       dstSubpass = dstSubpass_;
91364       return *this;
91365     }
91366 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency91367     VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
91368     {
91369       srcStageMask = srcStageMask_;
91370       return *this;
91371     }
91372 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency91373     VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
91374     {
91375       dstStageMask = dstStageMask_;
91376       return *this;
91377     }
91378 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency91379     VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
91380     {
91381       srcAccessMask = srcAccessMask_;
91382       return *this;
91383     }
91384 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency91385     VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
91386     {
91387       dstAccessMask = dstAccessMask_;
91388       return *this;
91389     }
91390 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency91391     VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
91392     {
91393       dependencyFlags = dependencyFlags_;
91394       return *this;
91395     }
91396 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
91397 
91398 
operator VkSubpassDependency const&VULKAN_HPP_NAMESPACE::SubpassDependency91399     operator VkSubpassDependency const &() const VULKAN_HPP_NOEXCEPT
91400     {
91401       return *reinterpret_cast<const VkSubpassDependency*>( this );
91402     }
91403 
operator VkSubpassDependency&VULKAN_HPP_NAMESPACE::SubpassDependency91404     operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT
91405     {
91406       return *reinterpret_cast<VkSubpassDependency*>( this );
91407     }
91408 
91409 #if defined( VULKAN_HPP_USE_REFLECT )
91410 #if 14 <= VULKAN_HPP_CPP_VERSION
91411     auto
91412 #else
91413     std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags const &, VULKAN_HPP_NAMESPACE::AccessFlags const &, VULKAN_HPP_NAMESPACE::AccessFlags const &, VULKAN_HPP_NAMESPACE::DependencyFlags const &>
91414 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassDependency91415       reflect() const VULKAN_HPP_NOEXCEPT
91416     {
91417       return std::tie( srcSubpass, dstSubpass, srcStageMask, dstStageMask, srcAccessMask, dstAccessMask, dependencyFlags );
91418     }
91419 #endif
91420 
91421 
91422 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
91423 auto operator<=>( SubpassDependency const & ) const = default;
91424 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency91425     bool operator==( SubpassDependency const & rhs ) const VULKAN_HPP_NOEXCEPT
91426     {
91427 #if defined( VULKAN_HPP_USE_REFLECT )
91428       return this->reflect() == rhs.reflect();
91429 #else
91430       return ( srcSubpass == rhs.srcSubpass )
91431           && ( dstSubpass == rhs.dstSubpass )
91432           && ( srcStageMask == rhs.srcStageMask )
91433           && ( dstStageMask == rhs.dstStageMask )
91434           && ( srcAccessMask == rhs.srcAccessMask )
91435           && ( dstAccessMask == rhs.dstAccessMask )
91436           && ( dependencyFlags == rhs.dependencyFlags );
91437 #endif
91438     }
91439 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency91440     bool operator!=( SubpassDependency const & rhs ) const VULKAN_HPP_NOEXCEPT
91441     {
91442       return !operator==( rhs );
91443     }
91444 #endif
91445 
91446     public:
91447     uint32_t srcSubpass = {};
91448     uint32_t dstSubpass = {};
91449     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
91450     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
91451     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
91452     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
91453     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
91454 
91455   };
91456 
91457   struct RenderPassCreateInfo
91458   {
91459     using NativeType = VkRenderPassCreateInfo;
91460 
91461     static const bool allowDuplicate = false;
91462     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo;
91463 
91464 
91465 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91466 VULKAN_HPP_CONSTEXPR RenderPassCreateInfo(VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments_ = {}, uint32_t subpassCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses_ = {}, uint32_t dependencyCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
91467     : pNext( pNext_ ), flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ )
91468     {}
91469 
91470     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91471 
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91472     RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
91473       : RenderPassCreateInfo( *reinterpret_cast<RenderPassCreateInfo const *>( &rhs ) )
91474     {}
91475 
91476 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91477     RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ = {}, const void * pNext_ = nullptr )
91478     : pNext( pNext_ ), flags( flags_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), subpassCount( static_cast<uint32_t>( subpasses_.size() ) ), pSubpasses( subpasses_.data() ), dependencyCount( static_cast<uint32_t>( dependencies_.size() ) ), pDependencies( dependencies_.data() )
91479     {}
91480 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91481 
91482 
91483     RenderPassCreateInfo & operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91484 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
91485 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo91486     RenderPassCreateInfo & operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
91487     {
91488       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const *>( &rhs );
91489       return *this;
91490     }
91491 
91492 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91493     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
91494     {
91495       pNext = pNext_;
91496       return *this;
91497     }
91498 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91499     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
91500     {
91501       flags = flags_;
91502       return *this;
91503     }
91504 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91505     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
91506     {
91507       attachmentCount = attachmentCount_;
91508       return *this;
91509     }
91510 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91511     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments_ ) VULKAN_HPP_NOEXCEPT
91512     {
91513       pAttachments = pAttachments_;
91514       return *this;
91515     }
91516 
91517 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91518     RenderPassCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_ ) VULKAN_HPP_NOEXCEPT
91519     {
91520       attachmentCount = static_cast<uint32_t>( attachments_.size() );
91521       pAttachments = attachments_.data();
91522       return *this;
91523     }
91524 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91525 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91526     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
91527     {
91528       subpassCount = subpassCount_;
91529       return *this;
91530     }
91531 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91532     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses_ ) VULKAN_HPP_NOEXCEPT
91533     {
91534       pSubpasses = pSubpasses_;
91535       return *this;
91536     }
91537 
91538 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91539     RenderPassCreateInfo & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
91540     {
91541       subpassCount = static_cast<uint32_t>( subpasses_.size() );
91542       pSubpasses = subpasses_.data();
91543       return *this;
91544     }
91545 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91546 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91547     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
91548     {
91549       dependencyCount = dependencyCount_;
91550       return *this;
91551     }
91552 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91553     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies_ ) VULKAN_HPP_NOEXCEPT
91554     {
91555       pDependencies = pDependencies_;
91556       return *this;
91557     }
91558 
91559 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91560     RenderPassCreateInfo & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
91561     {
91562       dependencyCount = static_cast<uint32_t>( dependencies_.size() );
91563       pDependencies = dependencies_.data();
91564       return *this;
91565     }
91566 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91567 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
91568 
91569 
operator VkRenderPassCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo91570     operator VkRenderPassCreateInfo const &() const VULKAN_HPP_NOEXCEPT
91571     {
91572       return *reinterpret_cast<const VkRenderPassCreateInfo*>( this );
91573     }
91574 
operator VkRenderPassCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo91575     operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT
91576     {
91577       return *reinterpret_cast<VkRenderPassCreateInfo*>( this );
91578     }
91579 
91580 #if defined( VULKAN_HPP_USE_REFLECT )
91581 #if 14 <= VULKAN_HPP_CPP_VERSION
91582     auto
91583 #else
91584     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderPassCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AttachmentDescription * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SubpassDescription * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SubpassDependency * const &>
91585 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassCreateInfo91586       reflect() const VULKAN_HPP_NOEXCEPT
91587     {
91588       return std::tie( sType, pNext, flags, attachmentCount, pAttachments, subpassCount, pSubpasses, dependencyCount, pDependencies );
91589     }
91590 #endif
91591 
91592 
91593 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
91594 auto operator<=>( RenderPassCreateInfo const & ) const = default;
91595 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo91596     bool operator==( RenderPassCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
91597     {
91598 #if defined( VULKAN_HPP_USE_REFLECT )
91599       return this->reflect() == rhs.reflect();
91600 #else
91601       return ( sType == rhs.sType )
91602           && ( pNext == rhs.pNext )
91603           && ( flags == rhs.flags )
91604           && ( attachmentCount == rhs.attachmentCount )
91605           && ( pAttachments == rhs.pAttachments )
91606           && ( subpassCount == rhs.subpassCount )
91607           && ( pSubpasses == rhs.pSubpasses )
91608           && ( dependencyCount == rhs.dependencyCount )
91609           && ( pDependencies == rhs.pDependencies );
91610 #endif
91611     }
91612 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo91613     bool operator!=( RenderPassCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
91614     {
91615       return !operator==( rhs );
91616     }
91617 #endif
91618 
91619     public:
91620     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo;
91621     const void * pNext = {};
91622     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
91623     uint32_t attachmentCount = {};
91624     const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments = {};
91625     uint32_t subpassCount = {};
91626     const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses = {};
91627     uint32_t dependencyCount = {};
91628     const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies = {};
91629 
91630   };
91631 
91632   template <>
91633   struct CppType<StructureType, StructureType::eRenderPassCreateInfo>
91634   {
91635     using Type = RenderPassCreateInfo;
91636   };
91637 
91638   struct SubpassDescription2
91639   {
91640     using NativeType = VkSubpassDescription2;
91641 
91642     static const bool allowDuplicate = false;
91643     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2;
91644 
91645 
91646 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription291647 VULKAN_HPP_CONSTEXPR SubpassDescription2(VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t viewMask_ = {}, uint32_t inputAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ = {}, uint32_t preserveAttachmentCount_ = {}, const uint32_t * pPreserveAttachments_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
91648     : pNext( pNext_ ), flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ )
91649     {}
91650 
91651     VULKAN_HPP_CONSTEXPR SubpassDescription2( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91652 
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription291653     SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
91654       : SubpassDescription2( *reinterpret_cast<SubpassDescription2 const *>( &rhs ) )
91655     {}
91656 
91657 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription291658     SubpassDescription2( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, uint32_t viewMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ = {}, const void * pNext_ = nullptr )
91659     : pNext( pNext_ ), flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( static_cast<uint32_t>( inputAttachments_.size() ) ), pInputAttachments( inputAttachments_.data() ), colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) ), pColorAttachments( colorAttachments_.data() ), pResolveAttachments( resolveAttachments_.data() ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( static_cast<uint32_t>( preserveAttachments_.size() ) ), pPreserveAttachments( preserveAttachments_.data() )
91660     {
91661 #ifdef VULKAN_HPP_NO_EXCEPTIONS
91662       VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
91663 #else
91664       if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
91665       {
91666         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::SubpassDescription2::SubpassDescription2: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
91667       }
91668 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
91669     }
91670 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91671 
91672 
91673     SubpassDescription2 & operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91674 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
91675 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription291676     SubpassDescription2 & operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
91677     {
91678       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription2 const *>( &rhs );
91679       return *this;
91680     }
91681 
91682 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SubpassDescription291683     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
91684     {
91685       pNext = pNext_;
91686       return *this;
91687     }
91688 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription291689     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
91690     {
91691       flags = flags_;
91692       return *this;
91693     }
91694 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription291695     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
91696     {
91697       pipelineBindPoint = pipelineBindPoint_;
91698       return *this;
91699     }
91700 
setViewMaskVULKAN_HPP_NAMESPACE::SubpassDescription291701     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
91702     {
91703       viewMask = viewMask_;
91704       return *this;
91705     }
91706 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription291707     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
91708     {
91709       inputAttachmentCount = inputAttachmentCount_;
91710       return *this;
91711     }
91712 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription291713     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
91714     {
91715       pInputAttachments = pInputAttachments_;
91716       return *this;
91717     }
91718 
91719 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription291720     SubpassDescription2 & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
91721     {
91722       inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
91723       pInputAttachments = inputAttachments_.data();
91724       return *this;
91725     }
91726 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91727 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription291728     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
91729     {
91730       colorAttachmentCount = colorAttachmentCount_;
91731       return *this;
91732     }
91733 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription291734     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
91735     {
91736       pColorAttachments = pColorAttachments_;
91737       return *this;
91738     }
91739 
91740 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription291741     SubpassDescription2 & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
91742     {
91743       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
91744       pColorAttachments = colorAttachments_.data();
91745       return *this;
91746     }
91747 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91748 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription291749     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
91750     {
91751       pResolveAttachments = pResolveAttachments_;
91752       return *this;
91753     }
91754 
91755 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription291756     SubpassDescription2 & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
91757     {
91758       colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
91759       pResolveAttachments = resolveAttachments_.data();
91760       return *this;
91761     }
91762 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91763 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription291764     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
91765     {
91766       pDepthStencilAttachment = pDepthStencilAttachment_;
91767       return *this;
91768     }
91769 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription291770     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
91771     {
91772       preserveAttachmentCount = preserveAttachmentCount_;
91773       return *this;
91774     }
91775 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription291776     VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPPreserveAttachments( const uint32_t * pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
91777     {
91778       pPreserveAttachments = pPreserveAttachments_;
91779       return *this;
91780     }
91781 
91782 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription291783     SubpassDescription2 & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
91784     {
91785       preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
91786       pPreserveAttachments = preserveAttachments_.data();
91787       return *this;
91788     }
91789 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91790 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
91791 
91792 
operator VkSubpassDescription2 const&VULKAN_HPP_NAMESPACE::SubpassDescription291793     operator VkSubpassDescription2 const &() const VULKAN_HPP_NOEXCEPT
91794     {
91795       return *reinterpret_cast<const VkSubpassDescription2*>( this );
91796     }
91797 
operator VkSubpassDescription2&VULKAN_HPP_NAMESPACE::SubpassDescription291798     operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT
91799     {
91800       return *reinterpret_cast<VkSubpassDescription2*>( this );
91801     }
91802 
91803 #if defined( VULKAN_HPP_USE_REFLECT )
91804 #if 14 <= VULKAN_HPP_CPP_VERSION
91805     auto
91806 #else
91807     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags const &, VULKAN_HPP_NAMESPACE::PipelineBindPoint const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &, uint32_t const &, const uint32_t * const &>
91808 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassDescription291809       reflect() const VULKAN_HPP_NOEXCEPT
91810     {
91811       return std::tie( sType, pNext, flags, pipelineBindPoint, viewMask, inputAttachmentCount, pInputAttachments, colorAttachmentCount, pColorAttachments, pResolveAttachments, pDepthStencilAttachment, preserveAttachmentCount, pPreserveAttachments );
91812     }
91813 #endif
91814 
91815 
91816 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
91817 auto operator<=>( SubpassDescription2 const & ) const = default;
91818 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription291819     bool operator==( SubpassDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
91820     {
91821 #if defined( VULKAN_HPP_USE_REFLECT )
91822       return this->reflect() == rhs.reflect();
91823 #else
91824       return ( sType == rhs.sType )
91825           && ( pNext == rhs.pNext )
91826           && ( flags == rhs.flags )
91827           && ( pipelineBindPoint == rhs.pipelineBindPoint )
91828           && ( viewMask == rhs.viewMask )
91829           && ( inputAttachmentCount == rhs.inputAttachmentCount )
91830           && ( pInputAttachments == rhs.pInputAttachments )
91831           && ( colorAttachmentCount == rhs.colorAttachmentCount )
91832           && ( pColorAttachments == rhs.pColorAttachments )
91833           && ( pResolveAttachments == rhs.pResolveAttachments )
91834           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
91835           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
91836           && ( pPreserveAttachments == rhs.pPreserveAttachments );
91837 #endif
91838     }
91839 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription291840     bool operator!=( SubpassDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
91841     {
91842       return !operator==( rhs );
91843     }
91844 #endif
91845 
91846     public:
91847     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2;
91848     const void * pNext = {};
91849     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
91850     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
91851     uint32_t viewMask = {};
91852     uint32_t inputAttachmentCount = {};
91853     const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments = {};
91854     uint32_t colorAttachmentCount = {};
91855     const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments = {};
91856     const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments = {};
91857     const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment = {};
91858     uint32_t preserveAttachmentCount = {};
91859     const uint32_t * pPreserveAttachments = {};
91860 
91861   };
91862 
91863   template <>
91864   struct CppType<StructureType, StructureType::eSubpassDescription2>
91865   {
91866     using Type = SubpassDescription2;
91867   };
91868   using SubpassDescription2KHR = SubpassDescription2;
91869 
91870   struct SubpassDependency2
91871   {
91872     using NativeType = VkSubpassDependency2;
91873 
91874     static const bool allowDuplicate = false;
91875     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2;
91876 
91877 
91878 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency291879 VULKAN_HPP_CONSTEXPR SubpassDependency2(uint32_t srcSubpass_ = {}, uint32_t dstSubpass_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}, int32_t viewOffset_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
91880     : pNext( pNext_ ), srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ ), viewOffset( viewOffset_ )
91881     {}
91882 
91883     VULKAN_HPP_CONSTEXPR SubpassDependency2( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91884 
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency291885     SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
91886       : SubpassDependency2( *reinterpret_cast<SubpassDependency2 const *>( &rhs ) )
91887     {}
91888 
91889 
91890     SubpassDependency2 & operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
91891 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
91892 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency291893     SubpassDependency2 & operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
91894     {
91895       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency2 const *>( &rhs );
91896       return *this;
91897     }
91898 
91899 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SubpassDependency291900     VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
91901     {
91902       pNext = pNext_;
91903       return *this;
91904     }
91905 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency291906     VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
91907     {
91908       srcSubpass = srcSubpass_;
91909       return *this;
91910     }
91911 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency291912     VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
91913     {
91914       dstSubpass = dstSubpass_;
91915       return *this;
91916     }
91917 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency291918     VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
91919     {
91920       srcStageMask = srcStageMask_;
91921       return *this;
91922     }
91923 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency291924     VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
91925     {
91926       dstStageMask = dstStageMask_;
91927       return *this;
91928     }
91929 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency291930     VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
91931     {
91932       srcAccessMask = srcAccessMask_;
91933       return *this;
91934     }
91935 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency291936     VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
91937     {
91938       dstAccessMask = dstAccessMask_;
91939       return *this;
91940     }
91941 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency291942     VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
91943     {
91944       dependencyFlags = dependencyFlags_;
91945       return *this;
91946     }
91947 
setViewOffsetVULKAN_HPP_NAMESPACE::SubpassDependency291948     VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT
91949     {
91950       viewOffset = viewOffset_;
91951       return *this;
91952     }
91953 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
91954 
91955 
operator VkSubpassDependency2 const&VULKAN_HPP_NAMESPACE::SubpassDependency291956     operator VkSubpassDependency2 const &() const VULKAN_HPP_NOEXCEPT
91957     {
91958       return *reinterpret_cast<const VkSubpassDependency2*>( this );
91959     }
91960 
operator VkSubpassDependency2&VULKAN_HPP_NAMESPACE::SubpassDependency291961     operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT
91962     {
91963       return *reinterpret_cast<VkSubpassDependency2*>( this );
91964     }
91965 
91966 #if defined( VULKAN_HPP_USE_REFLECT )
91967 #if 14 <= VULKAN_HPP_CPP_VERSION
91968     auto
91969 #else
91970     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags const &, VULKAN_HPP_NAMESPACE::AccessFlags const &, VULKAN_HPP_NAMESPACE::AccessFlags const &, VULKAN_HPP_NAMESPACE::DependencyFlags const &, int32_t const &>
91971 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassDependency291972       reflect() const VULKAN_HPP_NOEXCEPT
91973     {
91974       return std::tie( sType, pNext, srcSubpass, dstSubpass, srcStageMask, dstStageMask, srcAccessMask, dstAccessMask, dependencyFlags, viewOffset );
91975     }
91976 #endif
91977 
91978 
91979 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
91980 auto operator<=>( SubpassDependency2 const & ) const = default;
91981 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency291982     bool operator==( SubpassDependency2 const & rhs ) const VULKAN_HPP_NOEXCEPT
91983     {
91984 #if defined( VULKAN_HPP_USE_REFLECT )
91985       return this->reflect() == rhs.reflect();
91986 #else
91987       return ( sType == rhs.sType )
91988           && ( pNext == rhs.pNext )
91989           && ( srcSubpass == rhs.srcSubpass )
91990           && ( dstSubpass == rhs.dstSubpass )
91991           && ( srcStageMask == rhs.srcStageMask )
91992           && ( dstStageMask == rhs.dstStageMask )
91993           && ( srcAccessMask == rhs.srcAccessMask )
91994           && ( dstAccessMask == rhs.dstAccessMask )
91995           && ( dependencyFlags == rhs.dependencyFlags )
91996           && ( viewOffset == rhs.viewOffset );
91997 #endif
91998     }
91999 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency292000     bool operator!=( SubpassDependency2 const & rhs ) const VULKAN_HPP_NOEXCEPT
92001     {
92002       return !operator==( rhs );
92003     }
92004 #endif
92005 
92006     public:
92007     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2;
92008     const void * pNext = {};
92009     uint32_t srcSubpass = {};
92010     uint32_t dstSubpass = {};
92011     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
92012     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
92013     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
92014     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
92015     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
92016     int32_t viewOffset = {};
92017 
92018   };
92019 
92020   template <>
92021   struct CppType<StructureType, StructureType::eSubpassDependency2>
92022   {
92023     using Type = SubpassDependency2;
92024   };
92025   using SubpassDependency2KHR = SubpassDependency2;
92026 
92027   struct RenderPassCreateInfo2
92028   {
92029     using NativeType = VkRenderPassCreateInfo2;
92030 
92031     static const bool allowDuplicate = false;
92032     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2;
92033 
92034 
92035 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo292036 VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2(VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments_ = {}, uint32_t subpassCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses_ = {}, uint32_t dependencyCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies_ = {}, uint32_t correlatedViewMaskCount_ = {}, const uint32_t * pCorrelatedViewMasks_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
92037     : pNext( pNext_ ), flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ ), correlatedViewMaskCount( correlatedViewMaskCount_ ), pCorrelatedViewMasks( pCorrelatedViewMasks_ )
92038     {}
92039 
92040     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92041 
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo292042     RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
92043       : RenderPassCreateInfo2( *reinterpret_cast<RenderPassCreateInfo2 const *>( &rhs ) )
92044     {}
92045 
92046 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo292047     RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ = {}, const void * pNext_ = nullptr )
92048     : pNext( pNext_ ), flags( flags_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), subpassCount( static_cast<uint32_t>( subpasses_.size() ) ), pSubpasses( subpasses_.data() ), dependencyCount( static_cast<uint32_t>( dependencies_.size() ) ), pDependencies( dependencies_.data() ), correlatedViewMaskCount( static_cast<uint32_t>( correlatedViewMasks_.size() ) ), pCorrelatedViewMasks( correlatedViewMasks_.data() )
92049     {}
92050 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92051 
92052 
92053     RenderPassCreateInfo2 & operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92054 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
92055 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo292056     RenderPassCreateInfo2 & operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
92057     {
92058       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const *>( &rhs );
92059       return *this;
92060     }
92061 
92062 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292063     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
92064     {
92065       pNext = pNext_;
92066       return *this;
92067     }
92068 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292069     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
92070     {
92071       flags = flags_;
92072       return *this;
92073     }
92074 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292075     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
92076     {
92077       attachmentCount = attachmentCount_;
92078       return *this;
92079     }
92080 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292081     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments_ ) VULKAN_HPP_NOEXCEPT
92082     {
92083       pAttachments = pAttachments_;
92084       return *this;
92085     }
92086 
92087 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292088     RenderPassCreateInfo2 & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_ ) VULKAN_HPP_NOEXCEPT
92089     {
92090       attachmentCount = static_cast<uint32_t>( attachments_.size() );
92091       pAttachments = attachments_.data();
92092       return *this;
92093     }
92094 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92095 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292096     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
92097     {
92098       subpassCount = subpassCount_;
92099       return *this;
92100     }
92101 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292102     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses_ ) VULKAN_HPP_NOEXCEPT
92103     {
92104       pSubpasses = pSubpasses_;
92105       return *this;
92106     }
92107 
92108 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292109     RenderPassCreateInfo2 & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
92110     {
92111       subpassCount = static_cast<uint32_t>( subpasses_.size() );
92112       pSubpasses = subpasses_.data();
92113       return *this;
92114     }
92115 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92116 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292117     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
92118     {
92119       dependencyCount = dependencyCount_;
92120       return *this;
92121     }
92122 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292123     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies_ ) VULKAN_HPP_NOEXCEPT
92124     {
92125       pDependencies = pDependencies_;
92126       return *this;
92127     }
92128 
92129 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292130     RenderPassCreateInfo2 & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
92131     {
92132       dependencyCount = static_cast<uint32_t>( dependencies_.size() );
92133       pDependencies = dependencies_.data();
92134       return *this;
92135     }
92136 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92137 
setCorrelatedViewMaskCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292138     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT
92139     {
92140       correlatedViewMaskCount = correlatedViewMaskCount_;
92141       return *this;
92142     }
92143 
setPCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292144     VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t * pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
92145     {
92146       pCorrelatedViewMasks = pCorrelatedViewMasks_;
92147       return *this;
92148     }
92149 
92150 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292151     RenderPassCreateInfo2 & setCorrelatedViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
92152     {
92153       correlatedViewMaskCount = static_cast<uint32_t>( correlatedViewMasks_.size() );
92154       pCorrelatedViewMasks = correlatedViewMasks_.data();
92155       return *this;
92156     }
92157 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92158 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
92159 
92160 
operator VkRenderPassCreateInfo2 const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo292161     operator VkRenderPassCreateInfo2 const &() const VULKAN_HPP_NOEXCEPT
92162     {
92163       return *reinterpret_cast<const VkRenderPassCreateInfo2*>( this );
92164     }
92165 
operator VkRenderPassCreateInfo2&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo292166     operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT
92167     {
92168       return *reinterpret_cast<VkRenderPassCreateInfo2*>( this );
92169     }
92170 
92171 #if defined( VULKAN_HPP_USE_REFLECT )
92172 #if 14 <= VULKAN_HPP_CPP_VERSION
92173     auto
92174 #else
92175     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderPassCreateFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SubpassDescription2 * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SubpassDependency2 * const &, uint32_t const &, const uint32_t * const &>
92176 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassCreateInfo292177       reflect() const VULKAN_HPP_NOEXCEPT
92178     {
92179       return std::tie( sType, pNext, flags, attachmentCount, pAttachments, subpassCount, pSubpasses, dependencyCount, pDependencies, correlatedViewMaskCount, pCorrelatedViewMasks );
92180     }
92181 #endif
92182 
92183 
92184 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
92185 auto operator<=>( RenderPassCreateInfo2 const & ) const = default;
92186 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo292187     bool operator==( RenderPassCreateInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
92188     {
92189 #if defined( VULKAN_HPP_USE_REFLECT )
92190       return this->reflect() == rhs.reflect();
92191 #else
92192       return ( sType == rhs.sType )
92193           && ( pNext == rhs.pNext )
92194           && ( flags == rhs.flags )
92195           && ( attachmentCount == rhs.attachmentCount )
92196           && ( pAttachments == rhs.pAttachments )
92197           && ( subpassCount == rhs.subpassCount )
92198           && ( pSubpasses == rhs.pSubpasses )
92199           && ( dependencyCount == rhs.dependencyCount )
92200           && ( pDependencies == rhs.pDependencies )
92201           && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount )
92202           && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks );
92203 #endif
92204     }
92205 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo292206     bool operator!=( RenderPassCreateInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
92207     {
92208       return !operator==( rhs );
92209     }
92210 #endif
92211 
92212     public:
92213     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2;
92214     const void * pNext = {};
92215     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
92216     uint32_t attachmentCount = {};
92217     const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments = {};
92218     uint32_t subpassCount = {};
92219     const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses = {};
92220     uint32_t dependencyCount = {};
92221     const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies = {};
92222     uint32_t correlatedViewMaskCount = {};
92223     const uint32_t * pCorrelatedViewMasks = {};
92224 
92225   };
92226 
92227   template <>
92228   struct CppType<StructureType, StructureType::eRenderPassCreateInfo2>
92229   {
92230     using Type = RenderPassCreateInfo2;
92231   };
92232   using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
92233 
92234   struct RenderPassCreationControlEXT
92235   {
92236     using NativeType = VkRenderPassCreationControlEXT;
92237 
92238     static const bool allowDuplicate = false;
92239     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreationControlEXT;
92240 
92241 
92242 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreationControlEXTVULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT92243 VULKAN_HPP_CONSTEXPR RenderPassCreationControlEXT(VULKAN_HPP_NAMESPACE::Bool32 disallowMerging_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
92244     : pNext( pNext_ ), disallowMerging( disallowMerging_ )
92245     {}
92246 
92247     VULKAN_HPP_CONSTEXPR RenderPassCreationControlEXT( RenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92248 
RenderPassCreationControlEXTVULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT92249     RenderPassCreationControlEXT( VkRenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
92250       : RenderPassCreationControlEXT( *reinterpret_cast<RenderPassCreationControlEXT const *>( &rhs ) )
92251     {}
92252 
92253 
92254     RenderPassCreationControlEXT & operator=( RenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92255 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
92256 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT92257     RenderPassCreationControlEXT & operator=( VkRenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
92258     {
92259       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT const *>( &rhs );
92260       return *this;
92261     }
92262 
92263 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT92264     VULKAN_HPP_CONSTEXPR_14 RenderPassCreationControlEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
92265     {
92266       pNext = pNext_;
92267       return *this;
92268     }
92269 
setDisallowMergingVULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT92270     VULKAN_HPP_CONSTEXPR_14 RenderPassCreationControlEXT & setDisallowMerging( VULKAN_HPP_NAMESPACE::Bool32 disallowMerging_ ) VULKAN_HPP_NOEXCEPT
92271     {
92272       disallowMerging = disallowMerging_;
92273       return *this;
92274     }
92275 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
92276 
92277 
operator VkRenderPassCreationControlEXT const&VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT92278     operator VkRenderPassCreationControlEXT const &() const VULKAN_HPP_NOEXCEPT
92279     {
92280       return *reinterpret_cast<const VkRenderPassCreationControlEXT*>( this );
92281     }
92282 
operator VkRenderPassCreationControlEXT&VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT92283     operator VkRenderPassCreationControlEXT &() VULKAN_HPP_NOEXCEPT
92284     {
92285       return *reinterpret_cast<VkRenderPassCreationControlEXT*>( this );
92286     }
92287 
92288 #if defined( VULKAN_HPP_USE_REFLECT )
92289 #if 14 <= VULKAN_HPP_CPP_VERSION
92290     auto
92291 #else
92292     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
92293 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT92294       reflect() const VULKAN_HPP_NOEXCEPT
92295     {
92296       return std::tie( sType, pNext, disallowMerging );
92297     }
92298 #endif
92299 
92300 
92301 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
92302 auto operator<=>( RenderPassCreationControlEXT const & ) const = default;
92303 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT92304     bool operator==( RenderPassCreationControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
92305     {
92306 #if defined( VULKAN_HPP_USE_REFLECT )
92307       return this->reflect() == rhs.reflect();
92308 #else
92309       return ( sType == rhs.sType )
92310           && ( pNext == rhs.pNext )
92311           && ( disallowMerging == rhs.disallowMerging );
92312 #endif
92313     }
92314 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT92315     bool operator!=( RenderPassCreationControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
92316     {
92317       return !operator==( rhs );
92318     }
92319 #endif
92320 
92321     public:
92322     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreationControlEXT;
92323     const void * pNext = {};
92324     VULKAN_HPP_NAMESPACE::Bool32 disallowMerging = {};
92325 
92326   };
92327 
92328   template <>
92329   struct CppType<StructureType, StructureType::eRenderPassCreationControlEXT>
92330   {
92331     using Type = RenderPassCreationControlEXT;
92332   };
92333 
92334   struct RenderPassCreationFeedbackInfoEXT
92335   {
92336     using NativeType = VkRenderPassCreationFeedbackInfoEXT;
92337 
92338 
92339 
92340 
92341 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreationFeedbackInfoEXTVULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT92342 VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackInfoEXT(uint32_t postMergeSubpassCount_ = {}) VULKAN_HPP_NOEXCEPT
92343     : postMergeSubpassCount( postMergeSubpassCount_ )
92344     {}
92345 
92346     VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackInfoEXT( RenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92347 
RenderPassCreationFeedbackInfoEXTVULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT92348     RenderPassCreationFeedbackInfoEXT( VkRenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
92349       : RenderPassCreationFeedbackInfoEXT( *reinterpret_cast<RenderPassCreationFeedbackInfoEXT const *>( &rhs ) )
92350     {}
92351 
92352 
92353     RenderPassCreationFeedbackInfoEXT & operator=( RenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92354 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
92355 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT92356     RenderPassCreationFeedbackInfoEXT & operator=( VkRenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
92357     {
92358       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT const *>( &rhs );
92359       return *this;
92360     }
92361 
92362 
operator VkRenderPassCreationFeedbackInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT92363     operator VkRenderPassCreationFeedbackInfoEXT const &() const VULKAN_HPP_NOEXCEPT
92364     {
92365       return *reinterpret_cast<const VkRenderPassCreationFeedbackInfoEXT*>( this );
92366     }
92367 
operator VkRenderPassCreationFeedbackInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT92368     operator VkRenderPassCreationFeedbackInfoEXT &() VULKAN_HPP_NOEXCEPT
92369     {
92370       return *reinterpret_cast<VkRenderPassCreationFeedbackInfoEXT*>( this );
92371     }
92372 
92373 #if defined( VULKAN_HPP_USE_REFLECT )
92374 #if 14 <= VULKAN_HPP_CPP_VERSION
92375     auto
92376 #else
92377     std::tuple<uint32_t const &>
92378 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT92379       reflect() const VULKAN_HPP_NOEXCEPT
92380     {
92381       return std::tie( postMergeSubpassCount );
92382     }
92383 #endif
92384 
92385 
92386 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
92387 auto operator<=>( RenderPassCreationFeedbackInfoEXT const & ) const = default;
92388 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT92389     bool operator==( RenderPassCreationFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
92390     {
92391 #if defined( VULKAN_HPP_USE_REFLECT )
92392       return this->reflect() == rhs.reflect();
92393 #else
92394       return ( postMergeSubpassCount == rhs.postMergeSubpassCount );
92395 #endif
92396     }
92397 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT92398     bool operator!=( RenderPassCreationFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
92399     {
92400       return !operator==( rhs );
92401     }
92402 #endif
92403 
92404     public:
92405     uint32_t postMergeSubpassCount = {};
92406 
92407   };
92408 
92409   struct RenderPassCreationFeedbackCreateInfoEXT
92410   {
92411     using NativeType = VkRenderPassCreationFeedbackCreateInfoEXT;
92412 
92413     static const bool allowDuplicate = false;
92414     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreationFeedbackCreateInfoEXT;
92415 
92416 
92417 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT92418 VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
92419     : pNext( pNext_ ), pRenderPassFeedback( pRenderPassFeedback_ )
92420     {}
92421 
92422     VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackCreateInfoEXT( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92423 
RenderPassCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT92424     RenderPassCreationFeedbackCreateInfoEXT( VkRenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
92425       : RenderPassCreationFeedbackCreateInfoEXT( *reinterpret_cast<RenderPassCreationFeedbackCreateInfoEXT const *>( &rhs ) )
92426     {}
92427 
92428 
92429     RenderPassCreationFeedbackCreateInfoEXT & operator=( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92430 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
92431 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT92432     RenderPassCreationFeedbackCreateInfoEXT & operator=( VkRenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
92433     {
92434       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT const *>( &rhs );
92435       return *this;
92436     }
92437 
92438 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT92439     VULKAN_HPP_CONSTEXPR_14 RenderPassCreationFeedbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
92440     {
92441       pNext = pNext_;
92442       return *this;
92443     }
92444 
setPRenderPassFeedbackVULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT92445     VULKAN_HPP_CONSTEXPR_14 RenderPassCreationFeedbackCreateInfoEXT & setPRenderPassFeedback( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback_ ) VULKAN_HPP_NOEXCEPT
92446     {
92447       pRenderPassFeedback = pRenderPassFeedback_;
92448       return *this;
92449     }
92450 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
92451 
92452 
operator VkRenderPassCreationFeedbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT92453     operator VkRenderPassCreationFeedbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
92454     {
92455       return *reinterpret_cast<const VkRenderPassCreationFeedbackCreateInfoEXT*>( this );
92456     }
92457 
operator VkRenderPassCreationFeedbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT92458     operator VkRenderPassCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
92459     {
92460       return *reinterpret_cast<VkRenderPassCreationFeedbackCreateInfoEXT*>( this );
92461     }
92462 
92463 #if defined( VULKAN_HPP_USE_REFLECT )
92464 #if 14 <= VULKAN_HPP_CPP_VERSION
92465     auto
92466 #else
92467     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * const &>
92468 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT92469       reflect() const VULKAN_HPP_NOEXCEPT
92470     {
92471       return std::tie( sType, pNext, pRenderPassFeedback );
92472     }
92473 #endif
92474 
92475 
92476 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
92477 auto operator<=>( RenderPassCreationFeedbackCreateInfoEXT const & ) const = default;
92478 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT92479     bool operator==( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
92480     {
92481 #if defined( VULKAN_HPP_USE_REFLECT )
92482       return this->reflect() == rhs.reflect();
92483 #else
92484       return ( sType == rhs.sType )
92485           && ( pNext == rhs.pNext )
92486           && ( pRenderPassFeedback == rhs.pRenderPassFeedback );
92487 #endif
92488     }
92489 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT92490     bool operator!=( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
92491     {
92492       return !operator==( rhs );
92493     }
92494 #endif
92495 
92496     public:
92497     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreationFeedbackCreateInfoEXT;
92498     const void * pNext = {};
92499     VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback = {};
92500 
92501   };
92502 
92503   template <>
92504   struct CppType<StructureType, StructureType::eRenderPassCreationFeedbackCreateInfoEXT>
92505   {
92506     using Type = RenderPassCreationFeedbackCreateInfoEXT;
92507   };
92508 
92509   struct RenderPassFragmentDensityMapCreateInfoEXT
92510   {
92511     using NativeType = VkRenderPassFragmentDensityMapCreateInfoEXT;
92512 
92513     static const bool allowDuplicate = false;
92514     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
92515 
92516 
92517 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT92518 VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT(VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
92519     : pNext( pNext_ ), fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
92520     {}
92521 
92522     VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92523 
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT92524     RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
92525       : RenderPassFragmentDensityMapCreateInfoEXT( *reinterpret_cast<RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs ) )
92526     {}
92527 
92528 
92529     RenderPassFragmentDensityMapCreateInfoEXT & operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92530 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
92531 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT92532     RenderPassFragmentDensityMapCreateInfoEXT & operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
92533     {
92534       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs );
92535       return *this;
92536     }
92537 
92538 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT92539     VULKAN_HPP_CONSTEXPR_14 RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
92540     {
92541       pNext = pNext_;
92542       return *this;
92543     }
92544 
setFragmentDensityMapAttachmentVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT92545     VULKAN_HPP_CONSTEXPR_14 RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT
92546     {
92547       fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
92548       return *this;
92549     }
92550 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
92551 
92552 
operator VkRenderPassFragmentDensityMapCreateInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT92553     operator VkRenderPassFragmentDensityMapCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
92554     {
92555       return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
92556     }
92557 
operator VkRenderPassFragmentDensityMapCreateInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT92558     operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
92559     {
92560       return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
92561     }
92562 
92563 #if defined( VULKAN_HPP_USE_REFLECT )
92564 #if 14 <= VULKAN_HPP_CPP_VERSION
92565     auto
92566 #else
92567     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AttachmentReference const &>
92568 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT92569       reflect() const VULKAN_HPP_NOEXCEPT
92570     {
92571       return std::tie( sType, pNext, fragmentDensityMapAttachment );
92572     }
92573 #endif
92574 
92575 
92576 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
92577 auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const & ) const = default;
92578 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT92579     bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
92580     {
92581 #if defined( VULKAN_HPP_USE_REFLECT )
92582       return this->reflect() == rhs.reflect();
92583 #else
92584       return ( sType == rhs.sType )
92585           && ( pNext == rhs.pNext )
92586           && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment );
92587 #endif
92588     }
92589 
operator !=VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT92590     bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
92591     {
92592       return !operator==( rhs );
92593     }
92594 #endif
92595 
92596     public:
92597     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
92598     const void * pNext = {};
92599     VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {};
92600 
92601   };
92602 
92603   template <>
92604   struct CppType<StructureType, StructureType::eRenderPassFragmentDensityMapCreateInfoEXT>
92605   {
92606     using Type = RenderPassFragmentDensityMapCreateInfoEXT;
92607   };
92608 
92609   struct RenderPassInputAttachmentAspectCreateInfo
92610   {
92611     using NativeType = VkRenderPassInputAttachmentAspectCreateInfo;
92612 
92613     static const bool allowDuplicate = false;
92614     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
92615 
92616 
92617 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92618 VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo(uint32_t aspectReferenceCount_ = {}, const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
92619     : pNext( pNext_ ), aspectReferenceCount( aspectReferenceCount_ ), pAspectReferences( pAspectReferences_ )
92620     {}
92621 
92622     VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92623 
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92624     RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
92625       : RenderPassInputAttachmentAspectCreateInfo( *reinterpret_cast<RenderPassInputAttachmentAspectCreateInfo const *>( &rhs ) )
92626     {}
92627 
92628 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92629     RenderPassInputAttachmentAspectCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_, const void * pNext_ = nullptr )
92630     : pNext( pNext_ ), aspectReferenceCount( static_cast<uint32_t>( aspectReferences_.size() ) ), pAspectReferences( aspectReferences_.data() )
92631     {}
92632 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92633 
92634 
92635     RenderPassInputAttachmentAspectCreateInfo & operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92636 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
92637 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92638     RenderPassInputAttachmentAspectCreateInfo & operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
92639     {
92640       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const *>( &rhs );
92641       return *this;
92642     }
92643 
92644 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92645     VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
92646     {
92647       pNext = pNext_;
92648       return *this;
92649     }
92650 
setAspectReferenceCountVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92651     VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT
92652     {
92653       aspectReferenceCount = aspectReferenceCount_;
92654       return *this;
92655     }
92656 
setPAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92657     VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ ) VULKAN_HPP_NOEXCEPT
92658     {
92659       pAspectReferences = pAspectReferences_;
92660       return *this;
92661     }
92662 
92663 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92664     RenderPassInputAttachmentAspectCreateInfo & setAspectReferences( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ ) VULKAN_HPP_NOEXCEPT
92665     {
92666       aspectReferenceCount = static_cast<uint32_t>( aspectReferences_.size() );
92667       pAspectReferences = aspectReferences_.data();
92668       return *this;
92669     }
92670 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92671 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
92672 
92673 
operator VkRenderPassInputAttachmentAspectCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92674     operator VkRenderPassInputAttachmentAspectCreateInfo const &() const VULKAN_HPP_NOEXCEPT
92675     {
92676       return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>( this );
92677     }
92678 
operator VkRenderPassInputAttachmentAspectCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92679     operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT
92680     {
92681       return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>( this );
92682     }
92683 
92684 #if defined( VULKAN_HPP_USE_REFLECT )
92685 #if 14 <= VULKAN_HPP_CPP_VERSION
92686     auto
92687 #else
92688     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * const &>
92689 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92690       reflect() const VULKAN_HPP_NOEXCEPT
92691     {
92692       return std::tie( sType, pNext, aspectReferenceCount, pAspectReferences );
92693     }
92694 #endif
92695 
92696 
92697 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
92698 auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const & ) const = default;
92699 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92700     bool operator==( RenderPassInputAttachmentAspectCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
92701     {
92702 #if defined( VULKAN_HPP_USE_REFLECT )
92703       return this->reflect() == rhs.reflect();
92704 #else
92705       return ( sType == rhs.sType )
92706           && ( pNext == rhs.pNext )
92707           && ( aspectReferenceCount == rhs.aspectReferenceCount )
92708           && ( pAspectReferences == rhs.pAspectReferences );
92709 #endif
92710     }
92711 
operator !=VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo92712     bool operator!=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
92713     {
92714       return !operator==( rhs );
92715     }
92716 #endif
92717 
92718     public:
92719     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
92720     const void * pNext = {};
92721     uint32_t aspectReferenceCount = {};
92722     const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences = {};
92723 
92724   };
92725 
92726   template <>
92727   struct CppType<StructureType, StructureType::eRenderPassInputAttachmentAspectCreateInfo>
92728   {
92729     using Type = RenderPassInputAttachmentAspectCreateInfo;
92730   };
92731   using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
92732 
92733   struct RenderPassMultiviewCreateInfo
92734   {
92735     using NativeType = VkRenderPassMultiviewCreateInfo;
92736 
92737     static const bool allowDuplicate = false;
92738     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo;
92739 
92740 
92741 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92742 VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo(uint32_t subpassCount_ = {}, const uint32_t * pViewMasks_ = {}, uint32_t dependencyCount_ = {}, const int32_t * pViewOffsets_ = {}, uint32_t correlationMaskCount_ = {}, const uint32_t * pCorrelationMasks_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
92743     : pNext( pNext_ ), subpassCount( subpassCount_ ), pViewMasks( pViewMasks_ ), dependencyCount( dependencyCount_ ), pViewOffsets( pViewOffsets_ ), correlationMaskCount( correlationMaskCount_ ), pCorrelationMasks( pCorrelationMasks_ )
92744     {}
92745 
92746     VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92747 
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92748     RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
92749       : RenderPassMultiviewCreateInfo( *reinterpret_cast<RenderPassMultiviewCreateInfo const *>( &rhs ) )
92750     {}
92751 
92752 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92753     RenderPassMultiviewCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ = {}, const void * pNext_ = nullptr )
92754     : pNext( pNext_ ), subpassCount( static_cast<uint32_t>( viewMasks_.size() ) ), pViewMasks( viewMasks_.data() ), dependencyCount( static_cast<uint32_t>( viewOffsets_.size() ) ), pViewOffsets( viewOffsets_.data() ), correlationMaskCount( static_cast<uint32_t>( correlationMasks_.size() ) ), pCorrelationMasks( correlationMasks_.data() )
92755     {}
92756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92757 
92758 
92759     RenderPassMultiviewCreateInfo & operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92760 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
92761 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92762     RenderPassMultiviewCreateInfo & operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
92763     {
92764       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const *>( &rhs );
92765       return *this;
92766     }
92767 
92768 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92769     VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
92770     {
92771       pNext = pNext_;
92772       return *this;
92773     }
92774 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92775     VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
92776     {
92777       subpassCount = subpassCount_;
92778       return *this;
92779     }
92780 
setPViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92781     VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t * pViewMasks_ ) VULKAN_HPP_NOEXCEPT
92782     {
92783       pViewMasks = pViewMasks_;
92784       return *this;
92785     }
92786 
92787 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92788     RenderPassMultiviewCreateInfo & setViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_ ) VULKAN_HPP_NOEXCEPT
92789     {
92790       subpassCount = static_cast<uint32_t>( viewMasks_.size() );
92791       pViewMasks = viewMasks_.data();
92792       return *this;
92793     }
92794 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92795 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92796     VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
92797     {
92798       dependencyCount = dependencyCount_;
92799       return *this;
92800     }
92801 
setPViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92802     VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t * pViewOffsets_ ) VULKAN_HPP_NOEXCEPT
92803     {
92804       pViewOffsets = pViewOffsets_;
92805       return *this;
92806     }
92807 
92808 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92809     RenderPassMultiviewCreateInfo & setViewOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT
92810     {
92811       dependencyCount = static_cast<uint32_t>( viewOffsets_.size() );
92812       pViewOffsets = viewOffsets_.data();
92813       return *this;
92814     }
92815 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92816 
setCorrelationMaskCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92817     VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT
92818     {
92819       correlationMaskCount = correlationMaskCount_;
92820       return *this;
92821     }
92822 
setPCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92823     VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t * pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT
92824     {
92825       pCorrelationMasks = pCorrelationMasks_;
92826       return *this;
92827     }
92828 
92829 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92830     RenderPassMultiviewCreateInfo & setCorrelationMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT
92831     {
92832       correlationMaskCount = static_cast<uint32_t>( correlationMasks_.size() );
92833       pCorrelationMasks = correlationMasks_.data();
92834       return *this;
92835     }
92836 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
92837 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
92838 
92839 
operator VkRenderPassMultiviewCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92840     operator VkRenderPassMultiviewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
92841     {
92842       return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>( this );
92843     }
92844 
operator VkRenderPassMultiviewCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92845     operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT
92846     {
92847       return *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>( this );
92848     }
92849 
92850 #if defined( VULKAN_HPP_USE_REFLECT )
92851 #if 14 <= VULKAN_HPP_CPP_VERSION
92852     auto
92853 #else
92854     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint32_t * const &, uint32_t const &, const int32_t * const &, uint32_t const &, const uint32_t * const &>
92855 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92856       reflect() const VULKAN_HPP_NOEXCEPT
92857     {
92858       return std::tie( sType, pNext, subpassCount, pViewMasks, dependencyCount, pViewOffsets, correlationMaskCount, pCorrelationMasks );
92859     }
92860 #endif
92861 
92862 
92863 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
92864 auto operator<=>( RenderPassMultiviewCreateInfo const & ) const = default;
92865 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92866     bool operator==( RenderPassMultiviewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
92867     {
92868 #if defined( VULKAN_HPP_USE_REFLECT )
92869       return this->reflect() == rhs.reflect();
92870 #else
92871       return ( sType == rhs.sType )
92872           && ( pNext == rhs.pNext )
92873           && ( subpassCount == rhs.subpassCount )
92874           && ( pViewMasks == rhs.pViewMasks )
92875           && ( dependencyCount == rhs.dependencyCount )
92876           && ( pViewOffsets == rhs.pViewOffsets )
92877           && ( correlationMaskCount == rhs.correlationMaskCount )
92878           && ( pCorrelationMasks == rhs.pCorrelationMasks );
92879 #endif
92880     }
92881 
operator !=VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo92882     bool operator!=( RenderPassMultiviewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
92883     {
92884       return !operator==( rhs );
92885     }
92886 #endif
92887 
92888     public:
92889     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo;
92890     const void * pNext = {};
92891     uint32_t subpassCount = {};
92892     const uint32_t * pViewMasks = {};
92893     uint32_t dependencyCount = {};
92894     const int32_t * pViewOffsets = {};
92895     uint32_t correlationMaskCount = {};
92896     const uint32_t * pCorrelationMasks = {};
92897 
92898   };
92899 
92900   template <>
92901   struct CppType<StructureType, StructureType::eRenderPassMultiviewCreateInfo>
92902   {
92903     using Type = RenderPassMultiviewCreateInfo;
92904   };
92905   using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
92906 
92907   struct SubpassSampleLocationsEXT
92908   {
92909     using NativeType = VkSubpassSampleLocationsEXT;
92910 
92911 
92912 
92913 
92914 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT92915 VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT(uint32_t subpassIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
92916     : subpassIndex( subpassIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ )
92917     {}
92918 
92919     VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92920 
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT92921     SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
92922       : SubpassSampleLocationsEXT( *reinterpret_cast<SubpassSampleLocationsEXT const *>( &rhs ) )
92923     {}
92924 
92925 
92926     SubpassSampleLocationsEXT & operator=( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
92927 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
92928 
operator =VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT92929     SubpassSampleLocationsEXT & operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
92930     {
92931       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT const *>( &rhs );
92932       return *this;
92933     }
92934 
92935 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setSubpassIndexVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT92936     VULKAN_HPP_CONSTEXPR_14 SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT
92937     {
92938       subpassIndex = subpassIndex_;
92939       return *this;
92940     }
92941 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT92942     VULKAN_HPP_CONSTEXPR_14 SubpassSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
92943     {
92944       sampleLocationsInfo = sampleLocationsInfo_;
92945       return *this;
92946     }
92947 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
92948 
92949 
operator VkSubpassSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT92950     operator VkSubpassSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
92951     {
92952       return *reinterpret_cast<const VkSubpassSampleLocationsEXT*>( this );
92953     }
92954 
operator VkSubpassSampleLocationsEXT&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT92955     operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
92956     {
92957       return *reinterpret_cast<VkSubpassSampleLocationsEXT*>( this );
92958     }
92959 
92960 #if defined( VULKAN_HPP_USE_REFLECT )
92961 #if 14 <= VULKAN_HPP_CPP_VERSION
92962     auto
92963 #else
92964     std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const &>
92965 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT92966       reflect() const VULKAN_HPP_NOEXCEPT
92967     {
92968       return std::tie( subpassIndex, sampleLocationsInfo );
92969     }
92970 #endif
92971 
92972 
92973 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
92974 auto operator<=>( SubpassSampleLocationsEXT const & ) const = default;
92975 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT92976     bool operator==( SubpassSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
92977     {
92978 #if defined( VULKAN_HPP_USE_REFLECT )
92979       return this->reflect() == rhs.reflect();
92980 #else
92981       return ( subpassIndex == rhs.subpassIndex )
92982           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
92983 #endif
92984     }
92985 
operator !=VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT92986     bool operator!=( SubpassSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
92987     {
92988       return !operator==( rhs );
92989     }
92990 #endif
92991 
92992     public:
92993     uint32_t subpassIndex = {};
92994     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
92995 
92996   };
92997 
92998   struct RenderPassSampleLocationsBeginInfoEXT
92999   {
93000     using NativeType = VkRenderPassSampleLocationsBeginInfoEXT;
93001 
93002     static const bool allowDuplicate = false;
93003     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
93004 
93005 
93006 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93007 VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT(uint32_t attachmentInitialSampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations_ = {}, uint32_t postSubpassSampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
93008     : pNext( pNext_ ), attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ ), pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ ), postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ ), pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
93009     {}
93010 
93011     VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93012 
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93013     RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
93014       : RenderPassSampleLocationsBeginInfoEXT( *reinterpret_cast<RenderPassSampleLocationsBeginInfoEXT const *>( &rhs ) )
93015     {}
93016 
93017 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93018     RenderPassSampleLocationsBeginInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ = {}, const void * pNext_ = nullptr )
93019     : pNext( pNext_ ), attachmentInitialSampleLocationsCount( static_cast<uint32_t>( attachmentInitialSampleLocations_.size() ) ), pAttachmentInitialSampleLocations( attachmentInitialSampleLocations_.data() ), postSubpassSampleLocationsCount( static_cast<uint32_t>( postSubpassSampleLocations_.size() ) ), pPostSubpassSampleLocations( postSubpassSampleLocations_.data() )
93020     {}
93021 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
93022 
93023 
93024     RenderPassSampleLocationsBeginInfoEXT & operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93025 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
93026 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93027     RenderPassSampleLocationsBeginInfoEXT & operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
93028     {
93029       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const *>( &rhs );
93030       return *this;
93031     }
93032 
93033 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93034     VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
93035     {
93036       pNext = pNext_;
93037       return *this;
93038     }
93039 
setAttachmentInitialSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93040     VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
93041     {
93042       attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
93043       return *this;
93044     }
93045 
setPAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93046     VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
93047     {
93048       pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_;
93049       return *this;
93050     }
93051 
93052 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93053     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
93054     {
93055       attachmentInitialSampleLocationsCount = static_cast<uint32_t>( attachmentInitialSampleLocations_.size() );
93056       pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data();
93057       return *this;
93058     }
93059 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
93060 
setPostSubpassSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93061     VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
93062     {
93063       postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
93064       return *this;
93065     }
93066 
setPPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93067     VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
93068     {
93069       pPostSubpassSampleLocations = pPostSubpassSampleLocations_;
93070       return *this;
93071     }
93072 
93073 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93074     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
93075     {
93076       postSubpassSampleLocationsCount = static_cast<uint32_t>( postSubpassSampleLocations_.size() );
93077       pPostSubpassSampleLocations = postSubpassSampleLocations_.data();
93078       return *this;
93079     }
93080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
93081 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
93082 
93083 
operator VkRenderPassSampleLocationsBeginInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93084     operator VkRenderPassSampleLocationsBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
93085     {
93086       return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>( this );
93087     }
93088 
operator VkRenderPassSampleLocationsBeginInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93089     operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
93090     {
93091       return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>( this );
93092     }
93093 
93094 #if defined( VULKAN_HPP_USE_REFLECT )
93095 #if 14 <= VULKAN_HPP_CPP_VERSION
93096     auto
93097 #else
93098     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * const &>
93099 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93100       reflect() const VULKAN_HPP_NOEXCEPT
93101     {
93102       return std::tie( sType, pNext, attachmentInitialSampleLocationsCount, pAttachmentInitialSampleLocations, postSubpassSampleLocationsCount, pPostSubpassSampleLocations );
93103     }
93104 #endif
93105 
93106 
93107 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
93108 auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const & ) const = default;
93109 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93110     bool operator==( RenderPassSampleLocationsBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
93111     {
93112 #if defined( VULKAN_HPP_USE_REFLECT )
93113       return this->reflect() == rhs.reflect();
93114 #else
93115       return ( sType == rhs.sType )
93116           && ( pNext == rhs.pNext )
93117           && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount )
93118           && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations )
93119           && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount )
93120           && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations );
93121 #endif
93122     }
93123 
operator !=VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT93124     bool operator!=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
93125     {
93126       return !operator==( rhs );
93127     }
93128 #endif
93129 
93130     public:
93131     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
93132     const void * pNext = {};
93133     uint32_t attachmentInitialSampleLocationsCount = {};
93134     const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations = {};
93135     uint32_t postSubpassSampleLocationsCount = {};
93136     const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations = {};
93137 
93138   };
93139 
93140   template <>
93141   struct CppType<StructureType, StructureType::eRenderPassSampleLocationsBeginInfoEXT>
93142   {
93143     using Type = RenderPassSampleLocationsBeginInfoEXT;
93144   };
93145 
93146   struct RenderPassSubpassFeedbackInfoEXT
93147   {
93148     using NativeType = VkRenderPassSubpassFeedbackInfoEXT;
93149 
93150 
93151 
93152 
93153 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassSubpassFeedbackInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT93154 VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackInfoEXT(VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT subpassMergeStatus_ = VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT::eMerged, std::array<char,VK_MAX_DESCRIPTION_SIZE> const & description_ = {}, uint32_t postMergeIndex_ = {}) VULKAN_HPP_NOEXCEPT
93155     : subpassMergeStatus( subpassMergeStatus_ ), description( description_ ), postMergeIndex( postMergeIndex_ )
93156     {}
93157 
93158     VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackInfoEXT( RenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93159 
RenderPassSubpassFeedbackInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT93160     RenderPassSubpassFeedbackInfoEXT( VkRenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
93161       : RenderPassSubpassFeedbackInfoEXT( *reinterpret_cast<RenderPassSubpassFeedbackInfoEXT const *>( &rhs ) )
93162     {}
93163 
93164 
93165     RenderPassSubpassFeedbackInfoEXT & operator=( RenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93166 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
93167 
operator =VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT93168     RenderPassSubpassFeedbackInfoEXT & operator=( VkRenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
93169     {
93170       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT const *>( &rhs );
93171       return *this;
93172     }
93173 
93174 
operator VkRenderPassSubpassFeedbackInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT93175     operator VkRenderPassSubpassFeedbackInfoEXT const &() const VULKAN_HPP_NOEXCEPT
93176     {
93177       return *reinterpret_cast<const VkRenderPassSubpassFeedbackInfoEXT*>( this );
93178     }
93179 
operator VkRenderPassSubpassFeedbackInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT93180     operator VkRenderPassSubpassFeedbackInfoEXT &() VULKAN_HPP_NOEXCEPT
93181     {
93182       return *reinterpret_cast<VkRenderPassSubpassFeedbackInfoEXT*>( this );
93183     }
93184 
93185 #if defined( VULKAN_HPP_USE_REFLECT )
93186 #if 14 <= VULKAN_HPP_CPP_VERSION
93187     auto
93188 #else
93189     std::tuple<VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, uint32_t const &>
93190 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT93191       reflect() const VULKAN_HPP_NOEXCEPT
93192     {
93193       return std::tie( subpassMergeStatus, description, postMergeIndex );
93194     }
93195 #endif
93196 
93197 
93198 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
93199 auto operator<=>( RenderPassSubpassFeedbackInfoEXT const & ) const = default;
93200 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT93201     bool operator==( RenderPassSubpassFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
93202     {
93203 #if defined( VULKAN_HPP_USE_REFLECT )
93204       return this->reflect() == rhs.reflect();
93205 #else
93206       return ( subpassMergeStatus == rhs.subpassMergeStatus )
93207           && ( description == rhs.description )
93208           && ( postMergeIndex == rhs.postMergeIndex );
93209 #endif
93210     }
93211 
operator !=VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT93212     bool operator!=( RenderPassSubpassFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
93213     {
93214       return !operator==( rhs );
93215     }
93216 #endif
93217 
93218     public:
93219     VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT subpassMergeStatus = VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT::eMerged;
93220     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
93221     uint32_t postMergeIndex = {};
93222 
93223   };
93224 
93225   struct RenderPassSubpassFeedbackCreateInfoEXT
93226   {
93227     using NativeType = VkRenderPassSubpassFeedbackCreateInfoEXT;
93228 
93229     static const bool allowDuplicate = false;
93230     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSubpassFeedbackCreateInfoEXT;
93231 
93232 
93233 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassSubpassFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT93234 VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
93235     : pNext( pNext_ ), pSubpassFeedback( pSubpassFeedback_ )
93236     {}
93237 
93238     VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93239 
RenderPassSubpassFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT93240     RenderPassSubpassFeedbackCreateInfoEXT( VkRenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
93241       : RenderPassSubpassFeedbackCreateInfoEXT( *reinterpret_cast<RenderPassSubpassFeedbackCreateInfoEXT const *>( &rhs ) )
93242     {}
93243 
93244 
93245     RenderPassSubpassFeedbackCreateInfoEXT & operator=( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93246 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
93247 
operator =VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT93248     RenderPassSubpassFeedbackCreateInfoEXT & operator=( VkRenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
93249     {
93250       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT const *>( &rhs );
93251       return *this;
93252     }
93253 
93254 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT93255     VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
93256     {
93257       pNext = pNext_;
93258       return *this;
93259     }
93260 
setPSubpassFeedbackVULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT93261     VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT & setPSubpassFeedback( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback_ ) VULKAN_HPP_NOEXCEPT
93262     {
93263       pSubpassFeedback = pSubpassFeedback_;
93264       return *this;
93265     }
93266 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
93267 
93268 
operator VkRenderPassSubpassFeedbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT93269     operator VkRenderPassSubpassFeedbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
93270     {
93271       return *reinterpret_cast<const VkRenderPassSubpassFeedbackCreateInfoEXT*>( this );
93272     }
93273 
operator VkRenderPassSubpassFeedbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT93274     operator VkRenderPassSubpassFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
93275     {
93276       return *reinterpret_cast<VkRenderPassSubpassFeedbackCreateInfoEXT*>( this );
93277     }
93278 
93279 #if defined( VULKAN_HPP_USE_REFLECT )
93280 #if 14 <= VULKAN_HPP_CPP_VERSION
93281     auto
93282 #else
93283     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * const &>
93284 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT93285       reflect() const VULKAN_HPP_NOEXCEPT
93286     {
93287       return std::tie( sType, pNext, pSubpassFeedback );
93288     }
93289 #endif
93290 
93291 
93292 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
93293 auto operator<=>( RenderPassSubpassFeedbackCreateInfoEXT const & ) const = default;
93294 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT93295     bool operator==( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
93296     {
93297 #if defined( VULKAN_HPP_USE_REFLECT )
93298       return this->reflect() == rhs.reflect();
93299 #else
93300       return ( sType == rhs.sType )
93301           && ( pNext == rhs.pNext )
93302           && ( pSubpassFeedback == rhs.pSubpassFeedback );
93303 #endif
93304     }
93305 
operator !=VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT93306     bool operator!=( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
93307     {
93308       return !operator==( rhs );
93309     }
93310 #endif
93311 
93312     public:
93313     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSubpassFeedbackCreateInfoEXT;
93314     const void * pNext = {};
93315     VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback = {};
93316 
93317   };
93318 
93319   template <>
93320   struct CppType<StructureType, StructureType::eRenderPassSubpassFeedbackCreateInfoEXT>
93321   {
93322     using Type = RenderPassSubpassFeedbackCreateInfoEXT;
93323   };
93324 
93325   struct RenderPassTransformBeginInfoQCOM
93326   {
93327     using NativeType = VkRenderPassTransformBeginInfoQCOM;
93328 
93329     static const bool allowDuplicate = false;
93330     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM;
93331 
93332 
93333 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM93334 VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
93335     : pNext( pNext_ ), transform( transform_ )
93336     {}
93337 
93338     VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93339 
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM93340     RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
93341       : RenderPassTransformBeginInfoQCOM( *reinterpret_cast<RenderPassTransformBeginInfoQCOM const *>( &rhs ) )
93342     {}
93343 
93344 
93345     RenderPassTransformBeginInfoQCOM & operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93346 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
93347 
operator =VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM93348     RenderPassTransformBeginInfoQCOM & operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
93349     {
93350       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM const *>( &rhs );
93351       return *this;
93352     }
93353 
93354 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM93355     VULKAN_HPP_CONSTEXPR_14 RenderPassTransformBeginInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
93356     {
93357       pNext = pNext_;
93358       return *this;
93359     }
93360 
setTransformVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM93361     VULKAN_HPP_CONSTEXPR_14 RenderPassTransformBeginInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
93362     {
93363       transform = transform_;
93364       return *this;
93365     }
93366 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
93367 
93368 
operator VkRenderPassTransformBeginInfoQCOM const&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM93369     operator VkRenderPassTransformBeginInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
93370     {
93371       return *reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>( this );
93372     }
93373 
operator VkRenderPassTransformBeginInfoQCOM&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM93374     operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
93375     {
93376       return *reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>( this );
93377     }
93378 
93379 #if defined( VULKAN_HPP_USE_REFLECT )
93380 #if 14 <= VULKAN_HPP_CPP_VERSION
93381     auto
93382 #else
93383     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &>
93384 #endif
reflectVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM93385       reflect() const VULKAN_HPP_NOEXCEPT
93386     {
93387       return std::tie( sType, pNext, transform );
93388     }
93389 #endif
93390 
93391 
93392 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
93393 auto operator<=>( RenderPassTransformBeginInfoQCOM const & ) const = default;
93394 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM93395     bool operator==( RenderPassTransformBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
93396     {
93397 #if defined( VULKAN_HPP_USE_REFLECT )
93398       return this->reflect() == rhs.reflect();
93399 #else
93400       return ( sType == rhs.sType )
93401           && ( pNext == rhs.pNext )
93402           && ( transform == rhs.transform );
93403 #endif
93404     }
93405 
operator !=VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM93406     bool operator!=( RenderPassTransformBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
93407     {
93408       return !operator==( rhs );
93409     }
93410 #endif
93411 
93412     public:
93413     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM;
93414     void * pNext = {};
93415     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
93416 
93417   };
93418 
93419   template <>
93420   struct CppType<StructureType, StructureType::eRenderPassTransformBeginInfoQCOM>
93421   {
93422     using Type = RenderPassTransformBeginInfoQCOM;
93423   };
93424 
93425   struct RenderingAreaInfoKHR
93426   {
93427     using NativeType = VkRenderingAreaInfoKHR;
93428 
93429     static const bool allowDuplicate = false;
93430     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingAreaInfoKHR;
93431 
93432 
93433 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderingAreaInfoKHRVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93434 VULKAN_HPP_CONSTEXPR RenderingAreaInfoKHR(uint32_t viewMask_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ = {}, VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
93435     : pNext( pNext_ ), viewMask( viewMask_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachmentFormats( pColorAttachmentFormats_ ), depthAttachmentFormat( depthAttachmentFormat_ ), stencilAttachmentFormat( stencilAttachmentFormat_ )
93436     {}
93437 
93438     VULKAN_HPP_CONSTEXPR RenderingAreaInfoKHR( RenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93439 
RenderingAreaInfoKHRVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93440     RenderingAreaInfoKHR( VkRenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
93441       : RenderingAreaInfoKHR( *reinterpret_cast<RenderingAreaInfoKHR const *>( &rhs ) )
93442     {}
93443 
93444 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderingAreaInfoKHRVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93445     RenderingAreaInfoKHR( uint32_t viewMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_, VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, const void * pNext_ = nullptr )
93446     : pNext( pNext_ ), viewMask( viewMask_ ), colorAttachmentCount( static_cast<uint32_t>( colorAttachmentFormats_.size() ) ), pColorAttachmentFormats( colorAttachmentFormats_.data() ), depthAttachmentFormat( depthAttachmentFormat_ ), stencilAttachmentFormat( stencilAttachmentFormat_ )
93447     {}
93448 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
93449 
93450 
93451     RenderingAreaInfoKHR & operator=( RenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93452 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
93453 
operator =VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93454     RenderingAreaInfoKHR & operator=( VkRenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
93455     {
93456       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR const *>( &rhs );
93457       return *this;
93458     }
93459 
93460 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93461     VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
93462     {
93463       pNext = pNext_;
93464       return *this;
93465     }
93466 
setViewMaskVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93467     VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
93468     {
93469       viewMask = viewMask_;
93470       return *this;
93471     }
93472 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93473     VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
93474     {
93475       colorAttachmentCount = colorAttachmentCount_;
93476       return *this;
93477     }
93478 
setPColorAttachmentFormatsVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93479     VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
93480     {
93481       pColorAttachmentFormats = pColorAttachmentFormats_;
93482       return *this;
93483     }
93484 
93485 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setColorAttachmentFormatsVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93486     RenderingAreaInfoKHR & setColorAttachmentFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
93487     {
93488       colorAttachmentCount = static_cast<uint32_t>( colorAttachmentFormats_.size() );
93489       pColorAttachmentFormats = colorAttachmentFormats_.data();
93490       return *this;
93491     }
93492 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
93493 
setDepthAttachmentFormatVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93494     VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
93495     {
93496       depthAttachmentFormat = depthAttachmentFormat_;
93497       return *this;
93498     }
93499 
setStencilAttachmentFormatVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93500     VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
93501     {
93502       stencilAttachmentFormat = stencilAttachmentFormat_;
93503       return *this;
93504     }
93505 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
93506 
93507 
operator VkRenderingAreaInfoKHR const&VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93508     operator VkRenderingAreaInfoKHR const &() const VULKAN_HPP_NOEXCEPT
93509     {
93510       return *reinterpret_cast<const VkRenderingAreaInfoKHR*>( this );
93511     }
93512 
operator VkRenderingAreaInfoKHR&VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93513     operator VkRenderingAreaInfoKHR &() VULKAN_HPP_NOEXCEPT
93514     {
93515       return *reinterpret_cast<VkRenderingAreaInfoKHR*>( this );
93516     }
93517 
93518 #if defined( VULKAN_HPP_USE_REFLECT )
93519 #if 14 <= VULKAN_HPP_CPP_VERSION
93520     auto
93521 #else
93522     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Format * const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::Format const &>
93523 #endif
reflectVULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93524       reflect() const VULKAN_HPP_NOEXCEPT
93525     {
93526       return std::tie( sType, pNext, viewMask, colorAttachmentCount, pColorAttachmentFormats, depthAttachmentFormat, stencilAttachmentFormat );
93527     }
93528 #endif
93529 
93530 
93531 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
93532 auto operator<=>( RenderingAreaInfoKHR const & ) const = default;
93533 #else
operator ==VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93534     bool operator==( RenderingAreaInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
93535     {
93536 #if defined( VULKAN_HPP_USE_REFLECT )
93537       return this->reflect() == rhs.reflect();
93538 #else
93539       return ( sType == rhs.sType )
93540           && ( pNext == rhs.pNext )
93541           && ( viewMask == rhs.viewMask )
93542           && ( colorAttachmentCount == rhs.colorAttachmentCount )
93543           && ( pColorAttachmentFormats == rhs.pColorAttachmentFormats )
93544           && ( depthAttachmentFormat == rhs.depthAttachmentFormat )
93545           && ( stencilAttachmentFormat == rhs.stencilAttachmentFormat );
93546 #endif
93547     }
93548 
operator !=VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR93549     bool operator!=( RenderingAreaInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
93550     {
93551       return !operator==( rhs );
93552     }
93553 #endif
93554 
93555     public:
93556     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingAreaInfoKHR;
93557     const void * pNext = {};
93558     uint32_t viewMask = {};
93559     uint32_t colorAttachmentCount = {};
93560     const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats = {};
93561     VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
93562     VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
93563 
93564   };
93565 
93566   template <>
93567   struct CppType<StructureType, StructureType::eRenderingAreaInfoKHR>
93568   {
93569     using Type = RenderingAreaInfoKHR;
93570   };
93571 
93572   struct RenderingAttachmentInfo
93573   {
93574     using NativeType = VkRenderingAttachmentInfo;
93575 
93576     static const bool allowDuplicate = false;
93577     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingAttachmentInfo;
93578 
93579 
93580 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderingAttachmentInfoVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93581 VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo(VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ResolveModeFlagBits resolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, VULKAN_HPP_NAMESPACE::ImageView resolveImageView_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout resolveImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
93582     : pNext( pNext_ ), imageView( imageView_ ), imageLayout( imageLayout_ ), resolveMode( resolveMode_ ), resolveImageView( resolveImageView_ ), resolveImageLayout( resolveImageLayout_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), clearValue( clearValue_ )
93583     {}
93584 
93585     VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo( RenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93586 
RenderingAttachmentInfoVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93587     RenderingAttachmentInfo( VkRenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT
93588       : RenderingAttachmentInfo( *reinterpret_cast<RenderingAttachmentInfo const *>( &rhs ) )
93589     {}
93590 
93591 
93592     RenderingAttachmentInfo & operator=( RenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93593 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
93594 
operator =VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93595     RenderingAttachmentInfo & operator=( VkRenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT
93596     {
93597       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo const *>( &rhs );
93598       return *this;
93599     }
93600 
93601 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93602     VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
93603     {
93604       pNext = pNext_;
93605       return *this;
93606     }
93607 
setImageViewVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93608     VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
93609     {
93610       imageView = imageView_;
93611       return *this;
93612     }
93613 
setImageLayoutVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93614     VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
93615     {
93616       imageLayout = imageLayout_;
93617       return *this;
93618     }
93619 
setResolveModeVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93620     VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits resolveMode_ ) VULKAN_HPP_NOEXCEPT
93621     {
93622       resolveMode = resolveMode_;
93623       return *this;
93624     }
93625 
setResolveImageViewVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93626     VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setResolveImageView( VULKAN_HPP_NAMESPACE::ImageView resolveImageView_ ) VULKAN_HPP_NOEXCEPT
93627     {
93628       resolveImageView = resolveImageView_;
93629       return *this;
93630     }
93631 
setResolveImageLayoutVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93632     VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setResolveImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout resolveImageLayout_ ) VULKAN_HPP_NOEXCEPT
93633     {
93634       resolveImageLayout = resolveImageLayout_;
93635       return *this;
93636     }
93637 
setLoadOpVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93638     VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
93639     {
93640       loadOp = loadOp_;
93641       return *this;
93642     }
93643 
setStoreOpVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93644     VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
93645     {
93646       storeOp = storeOp_;
93647       return *this;
93648     }
93649 
setClearValueVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93650     VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
93651     {
93652       clearValue = clearValue_;
93653       return *this;
93654     }
93655 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
93656 
93657 
operator VkRenderingAttachmentInfo const&VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93658     operator VkRenderingAttachmentInfo const &() const VULKAN_HPP_NOEXCEPT
93659     {
93660       return *reinterpret_cast<const VkRenderingAttachmentInfo*>( this );
93661     }
93662 
operator VkRenderingAttachmentInfo&VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93663     operator VkRenderingAttachmentInfo &() VULKAN_HPP_NOEXCEPT
93664     {
93665       return *reinterpret_cast<VkRenderingAttachmentInfo*>( this );
93666     }
93667 
93668 #if defined( VULKAN_HPP_USE_REFLECT )
93669 #if 14 <= VULKAN_HPP_CPP_VERSION
93670     auto
93671 #else
93672     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageView const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ResolveModeFlagBits const &, VULKAN_HPP_NAMESPACE::ImageView const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &, VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &, VULKAN_HPP_NAMESPACE::ClearValue const &>
93673 #endif
reflectVULKAN_HPP_NAMESPACE::RenderingAttachmentInfo93674       reflect() const VULKAN_HPP_NOEXCEPT
93675     {
93676       return std::tie( sType, pNext, imageView, imageLayout, resolveMode, resolveImageView, resolveImageLayout, loadOp, storeOp, clearValue );
93677     }
93678 #endif
93679 
93680 
93681     public:
93682     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingAttachmentInfo;
93683     const void * pNext = {};
93684     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
93685     VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
93686     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits resolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
93687     VULKAN_HPP_NAMESPACE::ImageView resolveImageView = {};
93688     VULKAN_HPP_NAMESPACE::ImageLayout resolveImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
93689     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
93690     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
93691     VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
93692 
93693   };
93694 
93695   template <>
93696   struct CppType<StructureType, StructureType::eRenderingAttachmentInfo>
93697   {
93698     using Type = RenderingAttachmentInfo;
93699   };
93700   using RenderingAttachmentInfoKHR = RenderingAttachmentInfo;
93701 
93702   struct RenderingFragmentDensityMapAttachmentInfoEXT
93703   {
93704     using NativeType = VkRenderingFragmentDensityMapAttachmentInfoEXT;
93705 
93706     static const bool allowDuplicate = false;
93707     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT;
93708 
93709 
93710 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderingFragmentDensityMapAttachmentInfoEXTVULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93711 VULKAN_HPP_CONSTEXPR RenderingFragmentDensityMapAttachmentInfoEXT(VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
93712     : pNext( pNext_ ), imageView( imageView_ ), imageLayout( imageLayout_ )
93713     {}
93714 
93715     VULKAN_HPP_CONSTEXPR RenderingFragmentDensityMapAttachmentInfoEXT( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93716 
RenderingFragmentDensityMapAttachmentInfoEXTVULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93717     RenderingFragmentDensityMapAttachmentInfoEXT( VkRenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
93718       : RenderingFragmentDensityMapAttachmentInfoEXT( *reinterpret_cast<RenderingFragmentDensityMapAttachmentInfoEXT const *>( &rhs ) )
93719     {}
93720 
93721 
93722     RenderingFragmentDensityMapAttachmentInfoEXT & operator=( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93723 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
93724 
operator =VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93725     RenderingFragmentDensityMapAttachmentInfoEXT & operator=( VkRenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
93726     {
93727       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT const *>( &rhs );
93728       return *this;
93729     }
93730 
93731 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93732     VULKAN_HPP_CONSTEXPR_14 RenderingFragmentDensityMapAttachmentInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
93733     {
93734       pNext = pNext_;
93735       return *this;
93736     }
93737 
setImageViewVULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93738     VULKAN_HPP_CONSTEXPR_14 RenderingFragmentDensityMapAttachmentInfoEXT & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
93739     {
93740       imageView = imageView_;
93741       return *this;
93742     }
93743 
setImageLayoutVULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93744     VULKAN_HPP_CONSTEXPR_14 RenderingFragmentDensityMapAttachmentInfoEXT & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
93745     {
93746       imageLayout = imageLayout_;
93747       return *this;
93748     }
93749 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
93750 
93751 
operator VkRenderingFragmentDensityMapAttachmentInfoEXT const&VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93752     operator VkRenderingFragmentDensityMapAttachmentInfoEXT const &() const VULKAN_HPP_NOEXCEPT
93753     {
93754       return *reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>( this );
93755     }
93756 
operator VkRenderingFragmentDensityMapAttachmentInfoEXT&VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93757     operator VkRenderingFragmentDensityMapAttachmentInfoEXT &() VULKAN_HPP_NOEXCEPT
93758     {
93759       return *reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>( this );
93760     }
93761 
93762 #if defined( VULKAN_HPP_USE_REFLECT )
93763 #if 14 <= VULKAN_HPP_CPP_VERSION
93764     auto
93765 #else
93766     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageView const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
93767 #endif
reflectVULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93768       reflect() const VULKAN_HPP_NOEXCEPT
93769     {
93770       return std::tie( sType, pNext, imageView, imageLayout );
93771     }
93772 #endif
93773 
93774 
93775 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
93776 auto operator<=>( RenderingFragmentDensityMapAttachmentInfoEXT const & ) const = default;
93777 #else
operator ==VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93778     bool operator==( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
93779     {
93780 #if defined( VULKAN_HPP_USE_REFLECT )
93781       return this->reflect() == rhs.reflect();
93782 #else
93783       return ( sType == rhs.sType )
93784           && ( pNext == rhs.pNext )
93785           && ( imageView == rhs.imageView )
93786           && ( imageLayout == rhs.imageLayout );
93787 #endif
93788     }
93789 
operator !=VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT93790     bool operator!=( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
93791     {
93792       return !operator==( rhs );
93793     }
93794 #endif
93795 
93796     public:
93797     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT;
93798     const void * pNext = {};
93799     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
93800     VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
93801 
93802   };
93803 
93804   template <>
93805   struct CppType<StructureType, StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT>
93806   {
93807     using Type = RenderingFragmentDensityMapAttachmentInfoEXT;
93808   };
93809 
93810   struct RenderingFragmentShadingRateAttachmentInfoKHR
93811   {
93812     using NativeType = VkRenderingFragmentShadingRateAttachmentInfoKHR;
93813 
93814     static const bool allowDuplicate = false;
93815     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR;
93816 
93817 
93818 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderingFragmentShadingRateAttachmentInfoKHRVULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93819 VULKAN_HPP_CONSTEXPR RenderingFragmentShadingRateAttachmentInfoKHR(VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
93820     : pNext( pNext_ ), imageView( imageView_ ), imageLayout( imageLayout_ ), shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
93821     {}
93822 
93823     VULKAN_HPP_CONSTEXPR RenderingFragmentShadingRateAttachmentInfoKHR( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93824 
RenderingFragmentShadingRateAttachmentInfoKHRVULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93825     RenderingFragmentShadingRateAttachmentInfoKHR( VkRenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
93826       : RenderingFragmentShadingRateAttachmentInfoKHR( *reinterpret_cast<RenderingFragmentShadingRateAttachmentInfoKHR const *>( &rhs ) )
93827     {}
93828 
93829 
93830     RenderingFragmentShadingRateAttachmentInfoKHR & operator=( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93831 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
93832 
operator =VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93833     RenderingFragmentShadingRateAttachmentInfoKHR & operator=( VkRenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
93834     {
93835       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR const *>( &rhs );
93836       return *this;
93837     }
93838 
93839 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93840     VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
93841     {
93842       pNext = pNext_;
93843       return *this;
93844     }
93845 
setImageViewVULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93846     VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
93847     {
93848       imageView = imageView_;
93849       return *this;
93850     }
93851 
setImageLayoutVULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93852     VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
93853     {
93854       imageLayout = imageLayout_;
93855       return *this;
93856     }
93857 
setShadingRateAttachmentTexelSizeVULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93858     VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR & setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
93859     {
93860       shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
93861       return *this;
93862     }
93863 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
93864 
93865 
operator VkRenderingFragmentShadingRateAttachmentInfoKHR const&VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93866     operator VkRenderingFragmentShadingRateAttachmentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
93867     {
93868       return *reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>( this );
93869     }
93870 
operator VkRenderingFragmentShadingRateAttachmentInfoKHR&VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93871     operator VkRenderingFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT
93872     {
93873       return *reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>( this );
93874     }
93875 
93876 #if defined( VULKAN_HPP_USE_REFLECT )
93877 #if 14 <= VULKAN_HPP_CPP_VERSION
93878     auto
93879 #else
93880     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageView const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
93881 #endif
reflectVULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93882       reflect() const VULKAN_HPP_NOEXCEPT
93883     {
93884       return std::tie( sType, pNext, imageView, imageLayout, shadingRateAttachmentTexelSize );
93885     }
93886 #endif
93887 
93888 
93889 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
93890 auto operator<=>( RenderingFragmentShadingRateAttachmentInfoKHR const & ) const = default;
93891 #else
operator ==VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93892     bool operator==( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
93893     {
93894 #if defined( VULKAN_HPP_USE_REFLECT )
93895       return this->reflect() == rhs.reflect();
93896 #else
93897       return ( sType == rhs.sType )
93898           && ( pNext == rhs.pNext )
93899           && ( imageView == rhs.imageView )
93900           && ( imageLayout == rhs.imageLayout )
93901           && ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize );
93902 #endif
93903     }
93904 
operator !=VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR93905     bool operator!=( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
93906     {
93907       return !operator==( rhs );
93908     }
93909 #endif
93910 
93911     public:
93912     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR;
93913     const void * pNext = {};
93914     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
93915     VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
93916     VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {};
93917 
93918   };
93919 
93920   template <>
93921   struct CppType<StructureType, StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR>
93922   {
93923     using Type = RenderingFragmentShadingRateAttachmentInfoKHR;
93924   };
93925 
93926   struct RenderingInfo
93927   {
93928     using NativeType = VkRenderingInfo;
93929 
93930     static const bool allowDuplicate = false;
93931     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingInfo;
93932 
93933 
93934 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderingInfoVULKAN_HPP_NAMESPACE::RenderingInfo93935 VULKAN_HPP_CONSTEXPR_14 RenderingInfo(VULKAN_HPP_NAMESPACE::RenderingFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}, uint32_t layerCount_ = {}, uint32_t viewMask_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pColorAttachments_ = {}, const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment_ = {}, const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
93936     : pNext( pNext_ ), flags( flags_ ), renderArea( renderArea_ ), layerCount( layerCount_ ), viewMask( viewMask_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pDepthAttachment( pDepthAttachment_ ), pStencilAttachment( pStencilAttachment_ )
93937     {}
93938 
93939     VULKAN_HPP_CONSTEXPR_14 RenderingInfo( RenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93940 
RenderingInfoVULKAN_HPP_NAMESPACE::RenderingInfo93941     RenderingInfo( VkRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT
93942       : RenderingInfo( *reinterpret_cast<RenderingInfo const *>( &rhs ) )
93943     {}
93944 
93945 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
RenderingInfoVULKAN_HPP_NAMESPACE::RenderingInfo93946     RenderingInfo( VULKAN_HPP_NAMESPACE::RenderingFlags flags_, VULKAN_HPP_NAMESPACE::Rect2D renderArea_, uint32_t layerCount_, uint32_t viewMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo> const & colorAttachments_, const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment_ = {}, const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ = {}, const void * pNext_ = nullptr )
93947     : pNext( pNext_ ), flags( flags_ ), renderArea( renderArea_ ), layerCount( layerCount_ ), viewMask( viewMask_ ), colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) ), pColorAttachments( colorAttachments_.data() ), pDepthAttachment( pDepthAttachment_ ), pStencilAttachment( pStencilAttachment_ )
93948     {}
93949 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
93950 
93951 
93952     RenderingInfo & operator=( RenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
93953 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
93954 
operator =VULKAN_HPP_NAMESPACE::RenderingInfo93955     RenderingInfo & operator=( VkRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT
93956     {
93957       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingInfo const *>( &rhs );
93958       return *this;
93959     }
93960 
93961 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::RenderingInfo93962     VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
93963     {
93964       pNext = pNext_;
93965       return *this;
93966     }
93967 
setFlagsVULKAN_HPP_NAMESPACE::RenderingInfo93968     VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderingFlags flags_ ) VULKAN_HPP_NOEXCEPT
93969     {
93970       flags = flags_;
93971       return *this;
93972     }
93973 
setRenderAreaVULKAN_HPP_NAMESPACE::RenderingInfo93974     VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
93975     {
93976       renderArea = renderArea_;
93977       return *this;
93978     }
93979 
setLayerCountVULKAN_HPP_NAMESPACE::RenderingInfo93980     VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
93981     {
93982       layerCount = layerCount_;
93983       return *this;
93984     }
93985 
setViewMaskVULKAN_HPP_NAMESPACE::RenderingInfo93986     VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
93987     {
93988       viewMask = viewMask_;
93989       return *this;
93990     }
93991 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::RenderingInfo93992     VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
93993     {
93994       colorAttachmentCount = colorAttachmentCount_;
93995       return *this;
93996     }
93997 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::RenderingInfo93998     VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setPColorAttachments( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
93999     {
94000       pColorAttachments = pColorAttachments_;
94001       return *this;
94002     }
94003 
94004 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setColorAttachmentsVULKAN_HPP_NAMESPACE::RenderingInfo94005     RenderingInfo & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
94006     {
94007       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
94008       pColorAttachments = colorAttachments_.data();
94009       return *this;
94010     }
94011 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
94012 
setPDepthAttachmentVULKAN_HPP_NAMESPACE::RenderingInfo94013     VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setPDepthAttachment( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment_ ) VULKAN_HPP_NOEXCEPT
94014     {
94015       pDepthAttachment = pDepthAttachment_;
94016       return *this;
94017     }
94018 
setPStencilAttachmentVULKAN_HPP_NAMESPACE::RenderingInfo94019     VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setPStencilAttachment( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
94020     {
94021       pStencilAttachment = pStencilAttachment_;
94022       return *this;
94023     }
94024 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
94025 
94026 
operator VkRenderingInfo const&VULKAN_HPP_NAMESPACE::RenderingInfo94027     operator VkRenderingInfo const &() const VULKAN_HPP_NOEXCEPT
94028     {
94029       return *reinterpret_cast<const VkRenderingInfo*>( this );
94030     }
94031 
operator VkRenderingInfo&VULKAN_HPP_NAMESPACE::RenderingInfo94032     operator VkRenderingInfo &() VULKAN_HPP_NOEXCEPT
94033     {
94034       return *reinterpret_cast<VkRenderingInfo*>( this );
94035     }
94036 
94037 #if defined( VULKAN_HPP_USE_REFLECT )
94038 #if 14 <= VULKAN_HPP_CPP_VERSION
94039     auto
94040 #else
94041     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderingFlags const &, VULKAN_HPP_NAMESPACE::Rect2D const &, uint32_t const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * const &, const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * const &, const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * const &>
94042 #endif
reflectVULKAN_HPP_NAMESPACE::RenderingInfo94043       reflect() const VULKAN_HPP_NOEXCEPT
94044     {
94045       return std::tie( sType, pNext, flags, renderArea, layerCount, viewMask, colorAttachmentCount, pColorAttachments, pDepthAttachment, pStencilAttachment );
94046     }
94047 #endif
94048 
94049 
94050 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
94051 auto operator<=>( RenderingInfo const & ) const = default;
94052 #else
operator ==VULKAN_HPP_NAMESPACE::RenderingInfo94053     bool operator==( RenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
94054     {
94055 #if defined( VULKAN_HPP_USE_REFLECT )
94056       return this->reflect() == rhs.reflect();
94057 #else
94058       return ( sType == rhs.sType )
94059           && ( pNext == rhs.pNext )
94060           && ( flags == rhs.flags )
94061           && ( renderArea == rhs.renderArea )
94062           && ( layerCount == rhs.layerCount )
94063           && ( viewMask == rhs.viewMask )
94064           && ( colorAttachmentCount == rhs.colorAttachmentCount )
94065           && ( pColorAttachments == rhs.pColorAttachments )
94066           && ( pDepthAttachment == rhs.pDepthAttachment )
94067           && ( pStencilAttachment == rhs.pStencilAttachment );
94068 #endif
94069     }
94070 
operator !=VULKAN_HPP_NAMESPACE::RenderingInfo94071     bool operator!=( RenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
94072     {
94073       return !operator==( rhs );
94074     }
94075 #endif
94076 
94077     public:
94078     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingInfo;
94079     const void * pNext = {};
94080     VULKAN_HPP_NAMESPACE::RenderingFlags flags = {};
94081     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
94082     uint32_t layerCount = {};
94083     uint32_t viewMask = {};
94084     uint32_t colorAttachmentCount = {};
94085     const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pColorAttachments = {};
94086     const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment = {};
94087     const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment = {};
94088 
94089   };
94090 
94091   template <>
94092   struct CppType<StructureType, StructureType::eRenderingInfo>
94093   {
94094     using Type = RenderingInfo;
94095   };
94096   using RenderingInfoKHR = RenderingInfo;
94097 
94098   struct ResolveImageInfo2
94099   {
94100     using NativeType = VkResolveImageInfo2;
94101 
94102     static const bool allowDuplicate = false;
94103     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eResolveImageInfo2;
94104 
94105 
94106 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ResolveImageInfo2VULKAN_HPP_NAMESPACE::ResolveImageInfo294107 VULKAN_HPP_CONSTEXPR ResolveImageInfo2(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageResolve2 * pRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
94108     : pNext( pNext_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
94109     {}
94110 
94111     VULKAN_HPP_CONSTEXPR ResolveImageInfo2( ResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94112 
ResolveImageInfo2VULKAN_HPP_NAMESPACE::ResolveImageInfo294113     ResolveImageInfo2( VkResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
94114       : ResolveImageInfo2( *reinterpret_cast<ResolveImageInfo2 const *>( &rhs ) )
94115     {}
94116 
94117 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ResolveImageInfo2VULKAN_HPP_NAMESPACE::ResolveImageInfo294118     ResolveImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2> const & regions_, const void * pNext_ = nullptr )
94119     : pNext( pNext_ ), srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
94120     {}
94121 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
94122 
94123 
94124     ResolveImageInfo2 & operator=( ResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94125 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
94126 
operator =VULKAN_HPP_NAMESPACE::ResolveImageInfo294127     ResolveImageInfo2 & operator=( VkResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
94128     {
94129       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ResolveImageInfo2 const *>( &rhs );
94130       return *this;
94131     }
94132 
94133 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ResolveImageInfo294134     VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
94135     {
94136       pNext = pNext_;
94137       return *this;
94138     }
94139 
setSrcImageVULKAN_HPP_NAMESPACE::ResolveImageInfo294140     VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
94141     {
94142       srcImage = srcImage_;
94143       return *this;
94144     }
94145 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::ResolveImageInfo294146     VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
94147     {
94148       srcImageLayout = srcImageLayout_;
94149       return *this;
94150     }
94151 
setDstImageVULKAN_HPP_NAMESPACE::ResolveImageInfo294152     VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
94153     {
94154       dstImage = dstImage_;
94155       return *this;
94156     }
94157 
setDstImageLayoutVULKAN_HPP_NAMESPACE::ResolveImageInfo294158     VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
94159     {
94160       dstImageLayout = dstImageLayout_;
94161       return *this;
94162     }
94163 
setRegionCountVULKAN_HPP_NAMESPACE::ResolveImageInfo294164     VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
94165     {
94166       regionCount = regionCount_;
94167       return *this;
94168     }
94169 
setPRegionsVULKAN_HPP_NAMESPACE::ResolveImageInfo294170     VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::ImageResolve2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
94171     {
94172       pRegions = pRegions_;
94173       return *this;
94174     }
94175 
94176 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setRegionsVULKAN_HPP_NAMESPACE::ResolveImageInfo294177     ResolveImageInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2> const & regions_ ) VULKAN_HPP_NOEXCEPT
94178     {
94179       regionCount = static_cast<uint32_t>( regions_.size() );
94180       pRegions = regions_.data();
94181       return *this;
94182     }
94183 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
94184 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
94185 
94186 
operator VkResolveImageInfo2 const&VULKAN_HPP_NAMESPACE::ResolveImageInfo294187     operator VkResolveImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
94188     {
94189       return *reinterpret_cast<const VkResolveImageInfo2*>( this );
94190     }
94191 
operator VkResolveImageInfo2&VULKAN_HPP_NAMESPACE::ResolveImageInfo294192     operator VkResolveImageInfo2 &() VULKAN_HPP_NOEXCEPT
94193     {
94194       return *reinterpret_cast<VkResolveImageInfo2*>( this );
94195     }
94196 
94197 #if defined( VULKAN_HPP_USE_REFLECT )
94198 #if 14 <= VULKAN_HPP_CPP_VERSION
94199     auto
94200 #else
94201     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageResolve2 * const &>
94202 #endif
reflectVULKAN_HPP_NAMESPACE::ResolveImageInfo294203       reflect() const VULKAN_HPP_NOEXCEPT
94204     {
94205       return std::tie( sType, pNext, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
94206     }
94207 #endif
94208 
94209 
94210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
94211 auto operator<=>( ResolveImageInfo2 const & ) const = default;
94212 #else
operator ==VULKAN_HPP_NAMESPACE::ResolveImageInfo294213     bool operator==( ResolveImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
94214     {
94215 #if defined( VULKAN_HPP_USE_REFLECT )
94216       return this->reflect() == rhs.reflect();
94217 #else
94218       return ( sType == rhs.sType )
94219           && ( pNext == rhs.pNext )
94220           && ( srcImage == rhs.srcImage )
94221           && ( srcImageLayout == rhs.srcImageLayout )
94222           && ( dstImage == rhs.dstImage )
94223           && ( dstImageLayout == rhs.dstImageLayout )
94224           && ( regionCount == rhs.regionCount )
94225           && ( pRegions == rhs.pRegions );
94226 #endif
94227     }
94228 
operator !=VULKAN_HPP_NAMESPACE::ResolveImageInfo294229     bool operator!=( ResolveImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
94230     {
94231       return !operator==( rhs );
94232     }
94233 #endif
94234 
94235     public:
94236     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eResolveImageInfo2;
94237     const void * pNext = {};
94238     VULKAN_HPP_NAMESPACE::Image srcImage = {};
94239     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
94240     VULKAN_HPP_NAMESPACE::Image dstImage = {};
94241     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
94242     uint32_t regionCount = {};
94243     const VULKAN_HPP_NAMESPACE::ImageResolve2 * pRegions = {};
94244 
94245   };
94246 
94247   template <>
94248   struct CppType<StructureType, StructureType::eResolveImageInfo2>
94249   {
94250     using Type = ResolveImageInfo2;
94251   };
94252   using ResolveImageInfo2KHR = ResolveImageInfo2;
94253 
94254   struct SamplerBlockMatchWindowCreateInfoQCOM
94255   {
94256     using NativeType = VkSamplerBlockMatchWindowCreateInfoQCOM;
94257 
94258     static const bool allowDuplicate = false;
94259     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerBlockMatchWindowCreateInfoQCOM;
94260 
94261 
94262 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerBlockMatchWindowCreateInfoQCOMVULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94263 VULKAN_HPP_CONSTEXPR SamplerBlockMatchWindowCreateInfoQCOM(VULKAN_HPP_NAMESPACE::Extent2D windowExtent_ = {}, VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode_ = VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM::eMin, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
94264     : pNext( pNext_ ), windowExtent( windowExtent_ ), windowCompareMode( windowCompareMode_ )
94265     {}
94266 
94267     VULKAN_HPP_CONSTEXPR SamplerBlockMatchWindowCreateInfoQCOM( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94268 
SamplerBlockMatchWindowCreateInfoQCOMVULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94269     SamplerBlockMatchWindowCreateInfoQCOM( VkSamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
94270       : SamplerBlockMatchWindowCreateInfoQCOM( *reinterpret_cast<SamplerBlockMatchWindowCreateInfoQCOM const *>( &rhs ) )
94271     {}
94272 
94273 
94274     SamplerBlockMatchWindowCreateInfoQCOM & operator=( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94275 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
94276 
operator =VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94277     SamplerBlockMatchWindowCreateInfoQCOM & operator=( VkSamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
94278     {
94279       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM const *>( &rhs );
94280       return *this;
94281     }
94282 
94283 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94284     VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
94285     {
94286       pNext = pNext_;
94287       return *this;
94288     }
94289 
setWindowExtentVULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94290     VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM & setWindowExtent( VULKAN_HPP_NAMESPACE::Extent2D const & windowExtent_ ) VULKAN_HPP_NOEXCEPT
94291     {
94292       windowExtent = windowExtent_;
94293       return *this;
94294     }
94295 
setWindowCompareModeVULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94296     VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM & setWindowCompareMode( VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode_ ) VULKAN_HPP_NOEXCEPT
94297     {
94298       windowCompareMode = windowCompareMode_;
94299       return *this;
94300     }
94301 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
94302 
94303 
operator VkSamplerBlockMatchWindowCreateInfoQCOM const&VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94304     operator VkSamplerBlockMatchWindowCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
94305     {
94306       return *reinterpret_cast<const VkSamplerBlockMatchWindowCreateInfoQCOM*>( this );
94307     }
94308 
operator VkSamplerBlockMatchWindowCreateInfoQCOM&VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94309     operator VkSamplerBlockMatchWindowCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
94310     {
94311       return *reinterpret_cast<VkSamplerBlockMatchWindowCreateInfoQCOM*>( this );
94312     }
94313 
94314 #if defined( VULKAN_HPP_USE_REFLECT )
94315 #if 14 <= VULKAN_HPP_CPP_VERSION
94316     auto
94317 #else
94318     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM const &>
94319 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94320       reflect() const VULKAN_HPP_NOEXCEPT
94321     {
94322       return std::tie( sType, pNext, windowExtent, windowCompareMode );
94323     }
94324 #endif
94325 
94326 
94327 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
94328 auto operator<=>( SamplerBlockMatchWindowCreateInfoQCOM const & ) const = default;
94329 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94330     bool operator==( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
94331     {
94332 #if defined( VULKAN_HPP_USE_REFLECT )
94333       return this->reflect() == rhs.reflect();
94334 #else
94335       return ( sType == rhs.sType )
94336           && ( pNext == rhs.pNext )
94337           && ( windowExtent == rhs.windowExtent )
94338           && ( windowCompareMode == rhs.windowCompareMode );
94339 #endif
94340     }
94341 
operator !=VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM94342     bool operator!=( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
94343     {
94344       return !operator==( rhs );
94345     }
94346 #endif
94347 
94348     public:
94349     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerBlockMatchWindowCreateInfoQCOM;
94350     const void * pNext = {};
94351     VULKAN_HPP_NAMESPACE::Extent2D windowExtent = {};
94352     VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode = VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM::eMin;
94353 
94354   };
94355 
94356   template <>
94357   struct CppType<StructureType, StructureType::eSamplerBlockMatchWindowCreateInfoQCOM>
94358   {
94359     using Type = SamplerBlockMatchWindowCreateInfoQCOM;
94360   };
94361 
94362   struct SamplerBorderColorComponentMappingCreateInfoEXT
94363   {
94364     using NativeType = VkSamplerBorderColorComponentMappingCreateInfoEXT;
94365 
94366     static const bool allowDuplicate = false;
94367     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT;
94368 
94369 
94370 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerBorderColorComponentMappingCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94371 VULKAN_HPP_CONSTEXPR SamplerBorderColorComponentMappingCreateInfoEXT(VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, VULKAN_HPP_NAMESPACE::Bool32 srgb_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
94372     : pNext( pNext_ ), components( components_ ), srgb( srgb_ )
94373     {}
94374 
94375     VULKAN_HPP_CONSTEXPR SamplerBorderColorComponentMappingCreateInfoEXT( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94376 
SamplerBorderColorComponentMappingCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94377     SamplerBorderColorComponentMappingCreateInfoEXT( VkSamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
94378       : SamplerBorderColorComponentMappingCreateInfoEXT( *reinterpret_cast<SamplerBorderColorComponentMappingCreateInfoEXT const *>( &rhs ) )
94379     {}
94380 
94381 
94382     SamplerBorderColorComponentMappingCreateInfoEXT & operator=( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94383 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
94384 
operator =VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94385     SamplerBorderColorComponentMappingCreateInfoEXT & operator=( VkSamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
94386     {
94387       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT const *>( &rhs );
94388       return *this;
94389     }
94390 
94391 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94392     VULKAN_HPP_CONSTEXPR_14 SamplerBorderColorComponentMappingCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
94393     {
94394       pNext = pNext_;
94395       return *this;
94396     }
94397 
setComponentsVULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94398     VULKAN_HPP_CONSTEXPR_14 SamplerBorderColorComponentMappingCreateInfoEXT & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
94399     {
94400       components = components_;
94401       return *this;
94402     }
94403 
setSrgbVULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94404     VULKAN_HPP_CONSTEXPR_14 SamplerBorderColorComponentMappingCreateInfoEXT & setSrgb( VULKAN_HPP_NAMESPACE::Bool32 srgb_ ) VULKAN_HPP_NOEXCEPT
94405     {
94406       srgb = srgb_;
94407       return *this;
94408     }
94409 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
94410 
94411 
operator VkSamplerBorderColorComponentMappingCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94412     operator VkSamplerBorderColorComponentMappingCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
94413     {
94414       return *reinterpret_cast<const VkSamplerBorderColorComponentMappingCreateInfoEXT*>( this );
94415     }
94416 
operator VkSamplerBorderColorComponentMappingCreateInfoEXT&VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94417     operator VkSamplerBorderColorComponentMappingCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
94418     {
94419       return *reinterpret_cast<VkSamplerBorderColorComponentMappingCreateInfoEXT*>( this );
94420     }
94421 
94422 #if defined( VULKAN_HPP_USE_REFLECT )
94423 #if 14 <= VULKAN_HPP_CPP_VERSION
94424     auto
94425 #else
94426     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ComponentMapping const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
94427 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94428       reflect() const VULKAN_HPP_NOEXCEPT
94429     {
94430       return std::tie( sType, pNext, components, srgb );
94431     }
94432 #endif
94433 
94434 
94435 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
94436 auto operator<=>( SamplerBorderColorComponentMappingCreateInfoEXT const & ) const = default;
94437 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94438     bool operator==( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
94439     {
94440 #if defined( VULKAN_HPP_USE_REFLECT )
94441       return this->reflect() == rhs.reflect();
94442 #else
94443       return ( sType == rhs.sType )
94444           && ( pNext == rhs.pNext )
94445           && ( components == rhs.components )
94446           && ( srgb == rhs.srgb );
94447 #endif
94448     }
94449 
operator !=VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT94450     bool operator!=( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
94451     {
94452       return !operator==( rhs );
94453     }
94454 #endif
94455 
94456     public:
94457     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT;
94458     const void * pNext = {};
94459     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
94460     VULKAN_HPP_NAMESPACE::Bool32 srgb = {};
94461 
94462   };
94463 
94464   template <>
94465   struct CppType<StructureType, StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT>
94466   {
94467     using Type = SamplerBorderColorComponentMappingCreateInfoEXT;
94468   };
94469 
94470   struct SamplerCaptureDescriptorDataInfoEXT
94471   {
94472     using NativeType = VkSamplerCaptureDescriptorDataInfoEXT;
94473 
94474     static const bool allowDuplicate = false;
94475     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCaptureDescriptorDataInfoEXT;
94476 
94477 
94478 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCaptureDescriptorDataInfoEXTVULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT94479 VULKAN_HPP_CONSTEXPR SamplerCaptureDescriptorDataInfoEXT(VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
94480     : pNext( pNext_ ), sampler( sampler_ )
94481     {}
94482 
94483     VULKAN_HPP_CONSTEXPR SamplerCaptureDescriptorDataInfoEXT( SamplerCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94484 
SamplerCaptureDescriptorDataInfoEXTVULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT94485     SamplerCaptureDescriptorDataInfoEXT( VkSamplerCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
94486       : SamplerCaptureDescriptorDataInfoEXT( *reinterpret_cast<SamplerCaptureDescriptorDataInfoEXT const *>( &rhs ) )
94487     {}
94488 
94489 
94490     SamplerCaptureDescriptorDataInfoEXT & operator=( SamplerCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94491 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
94492 
operator =VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT94493     SamplerCaptureDescriptorDataInfoEXT & operator=( VkSamplerCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
94494     {
94495       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT const *>( &rhs );
94496       return *this;
94497     }
94498 
94499 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT94500     VULKAN_HPP_CONSTEXPR_14 SamplerCaptureDescriptorDataInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
94501     {
94502       pNext = pNext_;
94503       return *this;
94504     }
94505 
setSamplerVULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT94506     VULKAN_HPP_CONSTEXPR_14 SamplerCaptureDescriptorDataInfoEXT & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
94507     {
94508       sampler = sampler_;
94509       return *this;
94510     }
94511 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
94512 
94513 
operator VkSamplerCaptureDescriptorDataInfoEXT const&VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT94514     operator VkSamplerCaptureDescriptorDataInfoEXT const &() const VULKAN_HPP_NOEXCEPT
94515     {
94516       return *reinterpret_cast<const VkSamplerCaptureDescriptorDataInfoEXT*>( this );
94517     }
94518 
operator VkSamplerCaptureDescriptorDataInfoEXT&VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT94519     operator VkSamplerCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
94520     {
94521       return *reinterpret_cast<VkSamplerCaptureDescriptorDataInfoEXT*>( this );
94522     }
94523 
94524 #if defined( VULKAN_HPP_USE_REFLECT )
94525 #if 14 <= VULKAN_HPP_CPP_VERSION
94526     auto
94527 #else
94528     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Sampler const &>
94529 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT94530       reflect() const VULKAN_HPP_NOEXCEPT
94531     {
94532       return std::tie( sType, pNext, sampler );
94533     }
94534 #endif
94535 
94536 
94537 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
94538 auto operator<=>( SamplerCaptureDescriptorDataInfoEXT const & ) const = default;
94539 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT94540     bool operator==( SamplerCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
94541     {
94542 #if defined( VULKAN_HPP_USE_REFLECT )
94543       return this->reflect() == rhs.reflect();
94544 #else
94545       return ( sType == rhs.sType )
94546           && ( pNext == rhs.pNext )
94547           && ( sampler == rhs.sampler );
94548 #endif
94549     }
94550 
operator !=VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT94551     bool operator!=( SamplerCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
94552     {
94553       return !operator==( rhs );
94554     }
94555 #endif
94556 
94557     public:
94558     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCaptureDescriptorDataInfoEXT;
94559     const void * pNext = {};
94560     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
94561 
94562   };
94563 
94564   template <>
94565   struct CppType<StructureType, StructureType::eSamplerCaptureDescriptorDataInfoEXT>
94566   {
94567     using Type = SamplerCaptureDescriptorDataInfoEXT;
94568   };
94569 
94570   struct SamplerCreateInfo
94571   {
94572     using NativeType = VkSamplerCreateInfo;
94573 
94574     static const bool allowDuplicate = false;
94575     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo;
94576 
94577 
94578 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo94579 VULKAN_HPP_CONSTEXPR SamplerCreateInfo(VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Filter magFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::Filter minFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, float mipLodBias_ = {}, VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ = {}, float maxAnisotropy_ = {}, VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ = {}, VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, float minLod_ = {}, float maxLod_ = {}, VULKAN_HPP_NAMESPACE::BorderColor borderColor_ = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack, VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
94580     : pNext( pNext_ ), flags( flags_ ), magFilter( magFilter_ ), minFilter( minFilter_ ), mipmapMode( mipmapMode_ ), addressModeU( addressModeU_ ), addressModeV( addressModeV_ ), addressModeW( addressModeW_ ), mipLodBias( mipLodBias_ ), anisotropyEnable( anisotropyEnable_ ), maxAnisotropy( maxAnisotropy_ ), compareEnable( compareEnable_ ), compareOp( compareOp_ ), minLod( minLod_ ), maxLod( maxLod_ ), borderColor( borderColor_ ), unnormalizedCoordinates( unnormalizedCoordinates_ )
94581     {}
94582 
94583     VULKAN_HPP_CONSTEXPR SamplerCreateInfo( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94584 
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo94585     SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
94586       : SamplerCreateInfo( *reinterpret_cast<SamplerCreateInfo const *>( &rhs ) )
94587     {}
94588 
94589 
94590     SamplerCreateInfo & operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94591 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
94592 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo94593     SamplerCreateInfo & operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
94594     {
94595       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCreateInfo const *>( &rhs );
94596       return *this;
94597     }
94598 
94599 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SamplerCreateInfo94600     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
94601     {
94602       pNext = pNext_;
94603       return *this;
94604     }
94605 
setFlagsVULKAN_HPP_NAMESPACE::SamplerCreateInfo94606     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
94607     {
94608       flags = flags_;
94609       return *this;
94610     }
94611 
setMagFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo94612     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT
94613     {
94614       magFilter = magFilter_;
94615       return *this;
94616     }
94617 
setMinFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo94618     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT
94619     {
94620       minFilter = minFilter_;
94621       return *this;
94622     }
94623 
setMipmapModeVULKAN_HPP_NAMESPACE::SamplerCreateInfo94624     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT
94625     {
94626       mipmapMode = mipmapMode_;
94627       return *this;
94628     }
94629 
setAddressModeUVULKAN_HPP_NAMESPACE::SamplerCreateInfo94630     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT
94631     {
94632       addressModeU = addressModeU_;
94633       return *this;
94634     }
94635 
setAddressModeVVULKAN_HPP_NAMESPACE::SamplerCreateInfo94636     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT
94637     {
94638       addressModeV = addressModeV_;
94639       return *this;
94640     }
94641 
setAddressModeWVULKAN_HPP_NAMESPACE::SamplerCreateInfo94642     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT
94643     {
94644       addressModeW = addressModeW_;
94645       return *this;
94646     }
94647 
setMipLodBiasVULKAN_HPP_NAMESPACE::SamplerCreateInfo94648     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT
94649     {
94650       mipLodBias = mipLodBias_;
94651       return *this;
94652     }
94653 
setAnisotropyEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo94654     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT
94655     {
94656       anisotropyEnable = anisotropyEnable_;
94657       return *this;
94658     }
94659 
setMaxAnisotropyVULKAN_HPP_NAMESPACE::SamplerCreateInfo94660     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT
94661     {
94662       maxAnisotropy = maxAnisotropy_;
94663       return *this;
94664     }
94665 
setCompareEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo94666     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT
94667     {
94668       compareEnable = compareEnable_;
94669       return *this;
94670     }
94671 
setCompareOpVULKAN_HPP_NAMESPACE::SamplerCreateInfo94672     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
94673     {
94674       compareOp = compareOp_;
94675       return *this;
94676     }
94677 
setMinLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo94678     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
94679     {
94680       minLod = minLod_;
94681       return *this;
94682     }
94683 
setMaxLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo94684     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT
94685     {
94686       maxLod = maxLod_;
94687       return *this;
94688     }
94689 
setBorderColorVULKAN_HPP_NAMESPACE::SamplerCreateInfo94690     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT
94691     {
94692       borderColor = borderColor_;
94693       return *this;
94694     }
94695 
setUnnormalizedCoordinatesVULKAN_HPP_NAMESPACE::SamplerCreateInfo94696     VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT
94697     {
94698       unnormalizedCoordinates = unnormalizedCoordinates_;
94699       return *this;
94700     }
94701 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
94702 
94703 
operator VkSamplerCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerCreateInfo94704     operator VkSamplerCreateInfo const &() const VULKAN_HPP_NOEXCEPT
94705     {
94706       return *reinterpret_cast<const VkSamplerCreateInfo*>( this );
94707     }
94708 
operator VkSamplerCreateInfo&VULKAN_HPP_NAMESPACE::SamplerCreateInfo94709     operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT
94710     {
94711       return *reinterpret_cast<VkSamplerCreateInfo*>( this );
94712     }
94713 
94714 #if defined( VULKAN_HPP_USE_REFLECT )
94715 #if 14 <= VULKAN_HPP_CPP_VERSION
94716     auto
94717 #else
94718     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SamplerCreateFlags const &, VULKAN_HPP_NAMESPACE::Filter const &, VULKAN_HPP_NAMESPACE::Filter const &, VULKAN_HPP_NAMESPACE::SamplerMipmapMode const &, VULKAN_HPP_NAMESPACE::SamplerAddressMode const &, VULKAN_HPP_NAMESPACE::SamplerAddressMode const &, VULKAN_HPP_NAMESPACE::SamplerAddressMode const &, float const &, VULKAN_HPP_NAMESPACE::Bool32 const &, float const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::CompareOp const &, float const &, float const &, VULKAN_HPP_NAMESPACE::BorderColor const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
94719 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerCreateInfo94720       reflect() const VULKAN_HPP_NOEXCEPT
94721     {
94722       return std::tie( sType, pNext, flags, magFilter, minFilter, mipmapMode, addressModeU, addressModeV, addressModeW, mipLodBias, anisotropyEnable, maxAnisotropy, compareEnable, compareOp, minLod, maxLod, borderColor, unnormalizedCoordinates );
94723     }
94724 #endif
94725 
94726 
94727 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
94728 auto operator<=>( SamplerCreateInfo const & ) const = default;
94729 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerCreateInfo94730     bool operator==( SamplerCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
94731     {
94732 #if defined( VULKAN_HPP_USE_REFLECT )
94733       return this->reflect() == rhs.reflect();
94734 #else
94735       return ( sType == rhs.sType )
94736           && ( pNext == rhs.pNext )
94737           && ( flags == rhs.flags )
94738           && ( magFilter == rhs.magFilter )
94739           && ( minFilter == rhs.minFilter )
94740           && ( mipmapMode == rhs.mipmapMode )
94741           && ( addressModeU == rhs.addressModeU )
94742           && ( addressModeV == rhs.addressModeV )
94743           && ( addressModeW == rhs.addressModeW )
94744           && ( mipLodBias == rhs.mipLodBias )
94745           && ( anisotropyEnable == rhs.anisotropyEnable )
94746           && ( maxAnisotropy == rhs.maxAnisotropy )
94747           && ( compareEnable == rhs.compareEnable )
94748           && ( compareOp == rhs.compareOp )
94749           && ( minLod == rhs.minLod )
94750           && ( maxLod == rhs.maxLod )
94751           && ( borderColor == rhs.borderColor )
94752           && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates );
94753 #endif
94754     }
94755 
operator !=VULKAN_HPP_NAMESPACE::SamplerCreateInfo94756     bool operator!=( SamplerCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
94757     {
94758       return !operator==( rhs );
94759     }
94760 #endif
94761 
94762     public:
94763     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo;
94764     const void * pNext = {};
94765     VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {};
94766     VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
94767     VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
94768     VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest;
94769     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
94770     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
94771     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
94772     float mipLodBias = {};
94773     VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {};
94774     float maxAnisotropy = {};
94775     VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {};
94776     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
94777     float minLod = {};
94778     float maxLod = {};
94779     VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack;
94780     VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {};
94781 
94782   };
94783 
94784   template <>
94785   struct CppType<StructureType, StructureType::eSamplerCreateInfo>
94786   {
94787     using Type = SamplerCreateInfo;
94788   };
94789 
94790   struct SamplerCubicWeightsCreateInfoQCOM
94791   {
94792     using NativeType = VkSamplerCubicWeightsCreateInfoQCOM;
94793 
94794     static const bool allowDuplicate = false;
94795     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCubicWeightsCreateInfoQCOM;
94796 
94797 
94798 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCubicWeightsCreateInfoQCOMVULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM94799 VULKAN_HPP_CONSTEXPR SamplerCubicWeightsCreateInfoQCOM(VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
94800     : pNext( pNext_ ), cubicWeights( cubicWeights_ )
94801     {}
94802 
94803     VULKAN_HPP_CONSTEXPR SamplerCubicWeightsCreateInfoQCOM( SamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94804 
SamplerCubicWeightsCreateInfoQCOMVULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM94805     SamplerCubicWeightsCreateInfoQCOM( VkSamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
94806       : SamplerCubicWeightsCreateInfoQCOM( *reinterpret_cast<SamplerCubicWeightsCreateInfoQCOM const *>( &rhs ) )
94807     {}
94808 
94809 
94810     SamplerCubicWeightsCreateInfoQCOM & operator=( SamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94811 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
94812 
operator =VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM94813     SamplerCubicWeightsCreateInfoQCOM & operator=( VkSamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
94814     {
94815       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM const *>( &rhs );
94816       return *this;
94817     }
94818 
94819 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM94820     VULKAN_HPP_CONSTEXPR_14 SamplerCubicWeightsCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
94821     {
94822       pNext = pNext_;
94823       return *this;
94824     }
94825 
setCubicWeightsVULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM94826     VULKAN_HPP_CONSTEXPR_14 SamplerCubicWeightsCreateInfoQCOM & setCubicWeights( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ ) VULKAN_HPP_NOEXCEPT
94827     {
94828       cubicWeights = cubicWeights_;
94829       return *this;
94830     }
94831 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
94832 
94833 
operator VkSamplerCubicWeightsCreateInfoQCOM const&VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM94834     operator VkSamplerCubicWeightsCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
94835     {
94836       return *reinterpret_cast<const VkSamplerCubicWeightsCreateInfoQCOM*>( this );
94837     }
94838 
operator VkSamplerCubicWeightsCreateInfoQCOM&VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM94839     operator VkSamplerCubicWeightsCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
94840     {
94841       return *reinterpret_cast<VkSamplerCubicWeightsCreateInfoQCOM*>( this );
94842     }
94843 
94844 #if defined( VULKAN_HPP_USE_REFLECT )
94845 #if 14 <= VULKAN_HPP_CPP_VERSION
94846     auto
94847 #else
94848     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM const &>
94849 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM94850       reflect() const VULKAN_HPP_NOEXCEPT
94851     {
94852       return std::tie( sType, pNext, cubicWeights );
94853     }
94854 #endif
94855 
94856 
94857 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
94858 auto operator<=>( SamplerCubicWeightsCreateInfoQCOM const & ) const = default;
94859 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM94860     bool operator==( SamplerCubicWeightsCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
94861     {
94862 #if defined( VULKAN_HPP_USE_REFLECT )
94863       return this->reflect() == rhs.reflect();
94864 #else
94865       return ( sType == rhs.sType )
94866           && ( pNext == rhs.pNext )
94867           && ( cubicWeights == rhs.cubicWeights );
94868 #endif
94869     }
94870 
operator !=VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM94871     bool operator!=( SamplerCubicWeightsCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
94872     {
94873       return !operator==( rhs );
94874     }
94875 #endif
94876 
94877     public:
94878     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCubicWeightsCreateInfoQCOM;
94879     const void * pNext = {};
94880     VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom;
94881 
94882   };
94883 
94884   template <>
94885   struct CppType<StructureType, StructureType::eSamplerCubicWeightsCreateInfoQCOM>
94886   {
94887     using Type = SamplerCubicWeightsCreateInfoQCOM;
94888   };
94889 
94890   struct SamplerCustomBorderColorCreateInfoEXT
94891   {
94892     using NativeType = VkSamplerCustomBorderColorCreateInfoEXT;
94893 
94894     static const bool allowDuplicate = false;
94895     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
94896 
94897 
94898 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT94899 VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT(VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
94900     : pNext( pNext_ ), customBorderColor( customBorderColor_ ), format( format_ )
94901     {}
94902 
94903     VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94904 
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT94905     SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
94906       : SamplerCustomBorderColorCreateInfoEXT( *reinterpret_cast<SamplerCustomBorderColorCreateInfoEXT const *>( &rhs ) )
94907     {}
94908 
94909 
94910     SamplerCustomBorderColorCreateInfoEXT & operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94911 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
94912 
operator =VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT94913     SamplerCustomBorderColorCreateInfoEXT & operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
94914     {
94915       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT const *>( &rhs );
94916       return *this;
94917     }
94918 
94919 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT94920     VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
94921     {
94922       pNext = pNext_;
94923       return *this;
94924     }
94925 
setCustomBorderColorVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT94926     VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT & setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT
94927     {
94928       customBorderColor = customBorderColor_;
94929       return *this;
94930     }
94931 
setFormatVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT94932     VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
94933     {
94934       format = format_;
94935       return *this;
94936     }
94937 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
94938 
94939 
operator VkSamplerCustomBorderColorCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT94940     operator VkSamplerCustomBorderColorCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
94941     {
94942       return *reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>( this );
94943     }
94944 
operator VkSamplerCustomBorderColorCreateInfoEXT&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT94945     operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
94946     {
94947       return *reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>( this );
94948     }
94949 
94950 #if defined( VULKAN_HPP_USE_REFLECT )
94951 #if 14 <= VULKAN_HPP_CPP_VERSION
94952     auto
94953 #else
94954     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ClearColorValue const &, VULKAN_HPP_NAMESPACE::Format const &>
94955 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT94956       reflect() const VULKAN_HPP_NOEXCEPT
94957     {
94958       return std::tie( sType, pNext, customBorderColor, format );
94959     }
94960 #endif
94961 
94962 
94963     public:
94964     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
94965     const void * pNext = {};
94966     VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {};
94967     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
94968 
94969   };
94970 
94971   template <>
94972   struct CppType<StructureType, StructureType::eSamplerCustomBorderColorCreateInfoEXT>
94973   {
94974     using Type = SamplerCustomBorderColorCreateInfoEXT;
94975   };
94976 
94977   struct SamplerReductionModeCreateInfo
94978   {
94979     using NativeType = VkSamplerReductionModeCreateInfo;
94980 
94981     static const bool allowDuplicate = false;
94982     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo;
94983 
94984 
94985 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo94986 VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo(VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
94987     : pNext( pNext_ ), reductionMode( reductionMode_ )
94988     {}
94989 
94990     VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94991 
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo94992     SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
94993       : SamplerReductionModeCreateInfo( *reinterpret_cast<SamplerReductionModeCreateInfo const *>( &rhs ) )
94994     {}
94995 
94996 
94997     SamplerReductionModeCreateInfo & operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
94998 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
94999 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo95000     SamplerReductionModeCreateInfo & operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
95001     {
95002       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const *>( &rhs );
95003       return *this;
95004     }
95005 
95006 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo95007     VULKAN_HPP_CONSTEXPR_14 SamplerReductionModeCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
95008     {
95009       pNext = pNext_;
95010       return *this;
95011     }
95012 
setReductionModeVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo95013     VULKAN_HPP_CONSTEXPR_14 SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT
95014     {
95015       reductionMode = reductionMode_;
95016       return *this;
95017     }
95018 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
95019 
95020 
operator VkSamplerReductionModeCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo95021     operator VkSamplerReductionModeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
95022     {
95023       return *reinterpret_cast<const VkSamplerReductionModeCreateInfo*>( this );
95024     }
95025 
operator VkSamplerReductionModeCreateInfo&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo95026     operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT
95027     {
95028       return *reinterpret_cast<VkSamplerReductionModeCreateInfo*>( this );
95029     }
95030 
95031 #if defined( VULKAN_HPP_USE_REFLECT )
95032 #if 14 <= VULKAN_HPP_CPP_VERSION
95033     auto
95034 #else
95035     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SamplerReductionMode const &>
95036 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo95037       reflect() const VULKAN_HPP_NOEXCEPT
95038     {
95039       return std::tie( sType, pNext, reductionMode );
95040     }
95041 #endif
95042 
95043 
95044 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
95045 auto operator<=>( SamplerReductionModeCreateInfo const & ) const = default;
95046 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo95047     bool operator==( SamplerReductionModeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
95048     {
95049 #if defined( VULKAN_HPP_USE_REFLECT )
95050       return this->reflect() == rhs.reflect();
95051 #else
95052       return ( sType == rhs.sType )
95053           && ( pNext == rhs.pNext )
95054           && ( reductionMode == rhs.reductionMode );
95055 #endif
95056     }
95057 
operator !=VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo95058     bool operator!=( SamplerReductionModeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
95059     {
95060       return !operator==( rhs );
95061     }
95062 #endif
95063 
95064     public:
95065     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo;
95066     const void * pNext = {};
95067     VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage;
95068 
95069   };
95070 
95071   template <>
95072   struct CppType<StructureType, StructureType::eSamplerReductionModeCreateInfo>
95073   {
95074     using Type = SamplerReductionModeCreateInfo;
95075   };
95076   using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
95077 
95078   struct SamplerYcbcrConversionCreateInfo
95079   {
95080     using NativeType = VkSamplerYcbcrConversionCreateInfo;
95081 
95082     static const bool allowDuplicate = false;
95083     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo;
95084 
95085 
95086 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95087 VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::Filter chromaFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
95088     : pNext( pNext_ ), format( format_ ), ycbcrModel( ycbcrModel_ ), ycbcrRange( ycbcrRange_ ), components( components_ ), xChromaOffset( xChromaOffset_ ), yChromaOffset( yChromaOffset_ ), chromaFilter( chromaFilter_ ), forceExplicitReconstruction( forceExplicitReconstruction_ )
95089     {}
95090 
95091     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95092 
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95093     SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
95094       : SamplerYcbcrConversionCreateInfo( *reinterpret_cast<SamplerYcbcrConversionCreateInfo const *>( &rhs ) )
95095     {}
95096 
95097 
95098     SamplerYcbcrConversionCreateInfo & operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95099 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
95100 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95101     SamplerYcbcrConversionCreateInfo & operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
95102     {
95103       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const *>( &rhs );
95104       return *this;
95105     }
95106 
95107 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95108     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
95109     {
95110       pNext = pNext_;
95111       return *this;
95112     }
95113 
setFormatVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95114     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
95115     {
95116       format = format_;
95117       return *this;
95118     }
95119 
setYcbcrModelVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95120     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT
95121     {
95122       ycbcrModel = ycbcrModel_;
95123       return *this;
95124     }
95125 
setYcbcrRangeVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95126     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT
95127     {
95128       ycbcrRange = ycbcrRange_;
95129       return *this;
95130     }
95131 
setComponentsVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95132     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
95133     {
95134       components = components_;
95135       return *this;
95136     }
95137 
setXChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95138     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT
95139     {
95140       xChromaOffset = xChromaOffset_;
95141       return *this;
95142     }
95143 
setYChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95144     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT
95145     {
95146       yChromaOffset = yChromaOffset_;
95147       return *this;
95148     }
95149 
setChromaFilterVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95150     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT
95151     {
95152       chromaFilter = chromaFilter_;
95153       return *this;
95154     }
95155 
setForceExplicitReconstructionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95156     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT
95157     {
95158       forceExplicitReconstruction = forceExplicitReconstruction_;
95159       return *this;
95160     }
95161 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
95162 
95163 
operator VkSamplerYcbcrConversionCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95164     operator VkSamplerYcbcrConversionCreateInfo const &() const VULKAN_HPP_NOEXCEPT
95165     {
95166       return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( this );
95167     }
95168 
operator VkSamplerYcbcrConversionCreateInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95169     operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT
95170     {
95171       return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>( this );
95172     }
95173 
95174 #if defined( VULKAN_HPP_USE_REFLECT )
95175 #if 14 <= VULKAN_HPP_CPP_VERSION
95176     auto
95177 #else
95178     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &, VULKAN_HPP_NAMESPACE::ComponentMapping const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &, VULKAN_HPP_NAMESPACE::Filter const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
95179 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95180       reflect() const VULKAN_HPP_NOEXCEPT
95181     {
95182       return std::tie( sType, pNext, format, ycbcrModel, ycbcrRange, components, xChromaOffset, yChromaOffset, chromaFilter, forceExplicitReconstruction );
95183     }
95184 #endif
95185 
95186 
95187 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
95188 auto operator<=>( SamplerYcbcrConversionCreateInfo const & ) const = default;
95189 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95190     bool operator==( SamplerYcbcrConversionCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
95191     {
95192 #if defined( VULKAN_HPP_USE_REFLECT )
95193       return this->reflect() == rhs.reflect();
95194 #else
95195       return ( sType == rhs.sType )
95196           && ( pNext == rhs.pNext )
95197           && ( format == rhs.format )
95198           && ( ycbcrModel == rhs.ycbcrModel )
95199           && ( ycbcrRange == rhs.ycbcrRange )
95200           && ( components == rhs.components )
95201           && ( xChromaOffset == rhs.xChromaOffset )
95202           && ( yChromaOffset == rhs.yChromaOffset )
95203           && ( chromaFilter == rhs.chromaFilter )
95204           && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction );
95205 #endif
95206     }
95207 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo95208     bool operator!=( SamplerYcbcrConversionCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
95209     {
95210       return !operator==( rhs );
95211     }
95212 #endif
95213 
95214     public:
95215     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo;
95216     const void * pNext = {};
95217     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
95218     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
95219     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
95220     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
95221     VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
95222     VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
95223     VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
95224     VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {};
95225 
95226   };
95227 
95228   template <>
95229   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionCreateInfo>
95230   {
95231     using Type = SamplerYcbcrConversionCreateInfo;
95232   };
95233   using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
95234 
95235   struct SamplerYcbcrConversionImageFormatProperties
95236   {
95237     using NativeType = VkSamplerYcbcrConversionImageFormatProperties;
95238 
95239     static const bool allowDuplicate = false;
95240     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
95241 
95242 
95243 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties95244 VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties(uint32_t combinedImageSamplerDescriptorCount_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
95245     : pNext( pNext_ ), combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ )
95246     {}
95247 
95248     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95249 
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties95250     SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
95251       : SamplerYcbcrConversionImageFormatProperties( *reinterpret_cast<SamplerYcbcrConversionImageFormatProperties const *>( &rhs ) )
95252     {}
95253 
95254 
95255     SamplerYcbcrConversionImageFormatProperties & operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95256 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
95257 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties95258     SamplerYcbcrConversionImageFormatProperties & operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
95259     {
95260       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const *>( &rhs );
95261       return *this;
95262     }
95263 
95264 
operator VkSamplerYcbcrConversionImageFormatProperties const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties95265     operator VkSamplerYcbcrConversionImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
95266     {
95267       return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>( this );
95268     }
95269 
operator VkSamplerYcbcrConversionImageFormatProperties&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties95270     operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT
95271     {
95272       return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>( this );
95273     }
95274 
95275 #if defined( VULKAN_HPP_USE_REFLECT )
95276 #if 14 <= VULKAN_HPP_CPP_VERSION
95277     auto
95278 #else
95279     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
95280 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties95281       reflect() const VULKAN_HPP_NOEXCEPT
95282     {
95283       return std::tie( sType, pNext, combinedImageSamplerDescriptorCount );
95284     }
95285 #endif
95286 
95287 
95288 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
95289 auto operator<=>( SamplerYcbcrConversionImageFormatProperties const & ) const = default;
95290 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties95291     bool operator==( SamplerYcbcrConversionImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
95292     {
95293 #if defined( VULKAN_HPP_USE_REFLECT )
95294       return this->reflect() == rhs.reflect();
95295 #else
95296       return ( sType == rhs.sType )
95297           && ( pNext == rhs.pNext )
95298           && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount );
95299 #endif
95300     }
95301 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties95302     bool operator!=( SamplerYcbcrConversionImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
95303     {
95304       return !operator==( rhs );
95305     }
95306 #endif
95307 
95308     public:
95309     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
95310     void * pNext = {};
95311     uint32_t combinedImageSamplerDescriptorCount = {};
95312 
95313   };
95314 
95315   template <>
95316   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionImageFormatProperties>
95317   {
95318     using Type = SamplerYcbcrConversionImageFormatProperties;
95319   };
95320   using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
95321 
95322   struct SamplerYcbcrConversionInfo
95323   {
95324     using NativeType = VkSamplerYcbcrConversionInfo;
95325 
95326     static const bool allowDuplicate = false;
95327     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo;
95328 
95329 
95330 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo95331 VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
95332     : pNext( pNext_ ), conversion( conversion_ )
95333     {}
95334 
95335     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95336 
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo95337     SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
95338       : SamplerYcbcrConversionInfo( *reinterpret_cast<SamplerYcbcrConversionInfo const *>( &rhs ) )
95339     {}
95340 
95341 
95342     SamplerYcbcrConversionInfo & operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95343 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
95344 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo95345     SamplerYcbcrConversionInfo & operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
95346     {
95347       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const *>( &rhs );
95348       return *this;
95349     }
95350 
95351 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo95352     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
95353     {
95354       pNext = pNext_;
95355       return *this;
95356     }
95357 
setConversionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo95358     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT
95359     {
95360       conversion = conversion_;
95361       return *this;
95362     }
95363 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
95364 
95365 
operator VkSamplerYcbcrConversionInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo95366     operator VkSamplerYcbcrConversionInfo const &() const VULKAN_HPP_NOEXCEPT
95367     {
95368       return *reinterpret_cast<const VkSamplerYcbcrConversionInfo*>( this );
95369     }
95370 
operator VkSamplerYcbcrConversionInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo95371     operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT
95372     {
95373       return *reinterpret_cast<VkSamplerYcbcrConversionInfo*>( this );
95374     }
95375 
95376 #if defined( VULKAN_HPP_USE_REFLECT )
95377 #if 14 <= VULKAN_HPP_CPP_VERSION
95378     auto
95379 #else
95380     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const &>
95381 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo95382       reflect() const VULKAN_HPP_NOEXCEPT
95383     {
95384       return std::tie( sType, pNext, conversion );
95385     }
95386 #endif
95387 
95388 
95389 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
95390 auto operator<=>( SamplerYcbcrConversionInfo const & ) const = default;
95391 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo95392     bool operator==( SamplerYcbcrConversionInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
95393     {
95394 #if defined( VULKAN_HPP_USE_REFLECT )
95395       return this->reflect() == rhs.reflect();
95396 #else
95397       return ( sType == rhs.sType )
95398           && ( pNext == rhs.pNext )
95399           && ( conversion == rhs.conversion );
95400 #endif
95401     }
95402 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo95403     bool operator!=( SamplerYcbcrConversionInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
95404     {
95405       return !operator==( rhs );
95406     }
95407 #endif
95408 
95409     public:
95410     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo;
95411     const void * pNext = {};
95412     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {};
95413 
95414   };
95415 
95416   template <>
95417   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionInfo>
95418   {
95419     using Type = SamplerYcbcrConversionInfo;
95420   };
95421   using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
95422 
95423   struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
95424   {
95425     using NativeType = VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
95426 
95427     static const bool allowDuplicate = false;
95428     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
95429 
95430 
95431 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95432 VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM(VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma_ = {}, VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
95433     : pNext( pNext_ ), enableYDegamma( enableYDegamma_ ), enableCbCrDegamma( enableCbCrDegamma_ )
95434     {}
95435 
95436     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95437 
SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95438     SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
95439       : SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( *reinterpret_cast<SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const *>( &rhs ) )
95440     {}
95441 
95442 
95443     SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & operator=( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95444 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
95445 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95446     SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & operator=( VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
95447     {
95448       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const *>( &rhs );
95449       return *this;
95450     }
95451 
95452 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95453     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
95454     {
95455       pNext = pNext_;
95456       return *this;
95457     }
95458 
setEnableYDegammaVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95459     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & setEnableYDegamma( VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma_ ) VULKAN_HPP_NOEXCEPT
95460     {
95461       enableYDegamma = enableYDegamma_;
95462       return *this;
95463     }
95464 
setEnableCbCrDegammaVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95465     VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & setEnableCbCrDegamma( VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma_ ) VULKAN_HPP_NOEXCEPT
95466     {
95467       enableCbCrDegamma = enableCbCrDegamma_;
95468       return *this;
95469     }
95470 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
95471 
95472 
operator VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95473     operator VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
95474     {
95475       return *reinterpret_cast<const VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM*>( this );
95476     }
95477 
operator VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95478     operator VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
95479     {
95480       return *reinterpret_cast<VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM*>( this );
95481     }
95482 
95483 #if defined( VULKAN_HPP_USE_REFLECT )
95484 #if 14 <= VULKAN_HPP_CPP_VERSION
95485     auto
95486 #else
95487     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
95488 #endif
reflectVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95489       reflect() const VULKAN_HPP_NOEXCEPT
95490     {
95491       return std::tie( sType, pNext, enableYDegamma, enableCbCrDegamma );
95492     }
95493 #endif
95494 
95495 
95496 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
95497 auto operator<=>( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & ) const = default;
95498 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95499     bool operator==( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
95500     {
95501 #if defined( VULKAN_HPP_USE_REFLECT )
95502       return this->reflect() == rhs.reflect();
95503 #else
95504       return ( sType == rhs.sType )
95505           && ( pNext == rhs.pNext )
95506           && ( enableYDegamma == rhs.enableYDegamma )
95507           && ( enableCbCrDegamma == rhs.enableCbCrDegamma );
95508 #endif
95509     }
95510 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM95511     bool operator!=( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
95512     {
95513       return !operator==( rhs );
95514     }
95515 #endif
95516 
95517     public:
95518     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
95519     void * pNext = {};
95520     VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma = {};
95521     VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma = {};
95522 
95523   };
95524 
95525   template <>
95526   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM>
95527   {
95528     using Type = SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
95529   };
95530 
95531 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
95532   struct ScreenBufferFormatPropertiesQNX
95533   {
95534     using NativeType = VkScreenBufferFormatPropertiesQNX;
95535 
95536     static const bool allowDuplicate = false;
95537     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eScreenBufferFormatPropertiesQNX;
95538 
95539 
95540 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ScreenBufferFormatPropertiesQNXVULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX95541 VULKAN_HPP_CONSTEXPR ScreenBufferFormatPropertiesQNX(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint64_t externalFormat_ = {}, uint64_t screenUsage_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {}, VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {}, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
95542     : pNext( pNext_ ), format( format_ ), externalFormat( externalFormat_ ), screenUsage( screenUsage_ ), formatFeatures( formatFeatures_ ), samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ), suggestedYcbcrModel( suggestedYcbcrModel_ ), suggestedYcbcrRange( suggestedYcbcrRange_ ), suggestedXChromaOffset( suggestedXChromaOffset_ ), suggestedYChromaOffset( suggestedYChromaOffset_ )
95543     {}
95544 
95545     VULKAN_HPP_CONSTEXPR ScreenBufferFormatPropertiesQNX( ScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95546 
ScreenBufferFormatPropertiesQNXVULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX95547     ScreenBufferFormatPropertiesQNX( VkScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
95548       : ScreenBufferFormatPropertiesQNX( *reinterpret_cast<ScreenBufferFormatPropertiesQNX const *>( &rhs ) )
95549     {}
95550 
95551 
95552     ScreenBufferFormatPropertiesQNX & operator=( ScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95553 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
95554 
operator =VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX95555     ScreenBufferFormatPropertiesQNX & operator=( VkScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
95556     {
95557       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX const *>( &rhs );
95558       return *this;
95559     }
95560 
95561 
operator VkScreenBufferFormatPropertiesQNX const&VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX95562     operator VkScreenBufferFormatPropertiesQNX const &() const VULKAN_HPP_NOEXCEPT
95563     {
95564       return *reinterpret_cast<const VkScreenBufferFormatPropertiesQNX*>( this );
95565     }
95566 
operator VkScreenBufferFormatPropertiesQNX&VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX95567     operator VkScreenBufferFormatPropertiesQNX &() VULKAN_HPP_NOEXCEPT
95568     {
95569       return *reinterpret_cast<VkScreenBufferFormatPropertiesQNX*>( this );
95570     }
95571 
95572 #if defined( VULKAN_HPP_USE_REFLECT )
95573 #if 14 <= VULKAN_HPP_CPP_VERSION
95574     auto
95575 #else
95576     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Format const &, uint64_t const &, uint64_t const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &, VULKAN_HPP_NAMESPACE::ComponentMapping const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &, VULKAN_HPP_NAMESPACE::ChromaLocation const &>
95577 #endif
reflectVULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX95578       reflect() const VULKAN_HPP_NOEXCEPT
95579     {
95580       return std::tie( sType, pNext, format, externalFormat, screenUsage, formatFeatures, samplerYcbcrConversionComponents, suggestedYcbcrModel, suggestedYcbcrRange, suggestedXChromaOffset, suggestedYChromaOffset );
95581     }
95582 #endif
95583 
95584 
95585 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
95586 auto operator<=>( ScreenBufferFormatPropertiesQNX const & ) const = default;
95587 #else
operator ==VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX95588     bool operator==( ScreenBufferFormatPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
95589     {
95590 #if defined( VULKAN_HPP_USE_REFLECT )
95591       return this->reflect() == rhs.reflect();
95592 #else
95593       return ( sType == rhs.sType )
95594           && ( pNext == rhs.pNext )
95595           && ( format == rhs.format )
95596           && ( externalFormat == rhs.externalFormat )
95597           && ( screenUsage == rhs.screenUsage )
95598           && ( formatFeatures == rhs.formatFeatures )
95599           && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
95600           && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
95601           && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
95602           && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
95603           && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
95604 #endif
95605     }
95606 
operator !=VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX95607     bool operator!=( ScreenBufferFormatPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
95608     {
95609       return !operator==( rhs );
95610     }
95611 #endif
95612 
95613     public:
95614     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eScreenBufferFormatPropertiesQNX;
95615     void * pNext = {};
95616     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
95617     uint64_t externalFormat = {};
95618     uint64_t screenUsage = {};
95619     VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
95620     VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
95621     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
95622     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
95623     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
95624     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
95625 
95626   };
95627 
95628   template <>
95629   struct CppType<StructureType, StructureType::eScreenBufferFormatPropertiesQNX>
95630   {
95631     using Type = ScreenBufferFormatPropertiesQNX;
95632   };
95633 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
95634 
95635 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
95636   struct ScreenBufferPropertiesQNX
95637   {
95638     using NativeType = VkScreenBufferPropertiesQNX;
95639 
95640     static const bool allowDuplicate = false;
95641     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eScreenBufferPropertiesQNX;
95642 
95643 
95644 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ScreenBufferPropertiesQNXVULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX95645 VULKAN_HPP_CONSTEXPR ScreenBufferPropertiesQNX(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
95646     : pNext( pNext_ ), allocationSize( allocationSize_ ), memoryTypeBits( memoryTypeBits_ )
95647     {}
95648 
95649     VULKAN_HPP_CONSTEXPR ScreenBufferPropertiesQNX( ScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95650 
ScreenBufferPropertiesQNXVULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX95651     ScreenBufferPropertiesQNX( VkScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
95652       : ScreenBufferPropertiesQNX( *reinterpret_cast<ScreenBufferPropertiesQNX const *>( &rhs ) )
95653     {}
95654 
95655 
95656     ScreenBufferPropertiesQNX & operator=( ScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95657 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
95658 
operator =VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX95659     ScreenBufferPropertiesQNX & operator=( VkScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
95660     {
95661       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX const *>( &rhs );
95662       return *this;
95663     }
95664 
95665 
operator VkScreenBufferPropertiesQNX const&VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX95666     operator VkScreenBufferPropertiesQNX const &() const VULKAN_HPP_NOEXCEPT
95667     {
95668       return *reinterpret_cast<const VkScreenBufferPropertiesQNX*>( this );
95669     }
95670 
operator VkScreenBufferPropertiesQNX&VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX95671     operator VkScreenBufferPropertiesQNX &() VULKAN_HPP_NOEXCEPT
95672     {
95673       return *reinterpret_cast<VkScreenBufferPropertiesQNX*>( this );
95674     }
95675 
95676 #if defined( VULKAN_HPP_USE_REFLECT )
95677 #if 14 <= VULKAN_HPP_CPP_VERSION
95678     auto
95679 #else
95680     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
95681 #endif
reflectVULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX95682       reflect() const VULKAN_HPP_NOEXCEPT
95683     {
95684       return std::tie( sType, pNext, allocationSize, memoryTypeBits );
95685     }
95686 #endif
95687 
95688 
95689 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
95690 auto operator<=>( ScreenBufferPropertiesQNX const & ) const = default;
95691 #else
operator ==VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX95692     bool operator==( ScreenBufferPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
95693     {
95694 #if defined( VULKAN_HPP_USE_REFLECT )
95695       return this->reflect() == rhs.reflect();
95696 #else
95697       return ( sType == rhs.sType )
95698           && ( pNext == rhs.pNext )
95699           && ( allocationSize == rhs.allocationSize )
95700           && ( memoryTypeBits == rhs.memoryTypeBits );
95701 #endif
95702     }
95703 
operator !=VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX95704     bool operator!=( ScreenBufferPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
95705     {
95706       return !operator==( rhs );
95707     }
95708 #endif
95709 
95710     public:
95711     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eScreenBufferPropertiesQNX;
95712     void * pNext = {};
95713     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
95714     uint32_t memoryTypeBits = {};
95715 
95716   };
95717 
95718   template <>
95719   struct CppType<StructureType, StructureType::eScreenBufferPropertiesQNX>
95720   {
95721     using Type = ScreenBufferPropertiesQNX;
95722   };
95723 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
95724 
95725 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
95726   struct ScreenSurfaceCreateInfoQNX
95727   {
95728     using NativeType = VkScreenSurfaceCreateInfoQNX;
95729 
95730     static const bool allowDuplicate = false;
95731     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eScreenSurfaceCreateInfoQNX;
95732 
95733 
95734 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ScreenSurfaceCreateInfoQNXVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95735 VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX(VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ = {}, struct _screen_context * context_ = {}, struct _screen_window * window_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
95736     : pNext( pNext_ ), flags( flags_ ), context( context_ ), window( window_ )
95737     {}
95738 
95739     VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95740 
ScreenSurfaceCreateInfoQNXVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95741     ScreenSurfaceCreateInfoQNX( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
95742       : ScreenSurfaceCreateInfoQNX( *reinterpret_cast<ScreenSurfaceCreateInfoQNX const *>( &rhs ) )
95743     {}
95744 
95745 
95746     ScreenSurfaceCreateInfoQNX & operator=( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95747 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
95748 
operator =VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95749     ScreenSurfaceCreateInfoQNX & operator=( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
95750     {
95751       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const *>( &rhs );
95752       return *this;
95753     }
95754 
95755 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95756     VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
95757     {
95758       pNext = pNext_;
95759       return *this;
95760     }
95761 
setFlagsVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95762     VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setFlags( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ ) VULKAN_HPP_NOEXCEPT
95763     {
95764       flags = flags_;
95765       return *this;
95766     }
95767 
setContextVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95768     VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setContext( struct _screen_context * context_ ) VULKAN_HPP_NOEXCEPT
95769     {
95770       context = context_;
95771       return *this;
95772     }
95773 
setWindowVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95774     VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setWindow( struct _screen_window * window_ ) VULKAN_HPP_NOEXCEPT
95775     {
95776       window = window_;
95777       return *this;
95778     }
95779 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
95780 
95781 
operator VkScreenSurfaceCreateInfoQNX const&VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95782     operator VkScreenSurfaceCreateInfoQNX const &() const VULKAN_HPP_NOEXCEPT
95783     {
95784       return *reinterpret_cast<const VkScreenSurfaceCreateInfoQNX*>( this );
95785     }
95786 
operator VkScreenSurfaceCreateInfoQNX&VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95787     operator VkScreenSurfaceCreateInfoQNX &() VULKAN_HPP_NOEXCEPT
95788     {
95789       return *reinterpret_cast<VkScreenSurfaceCreateInfoQNX*>( this );
95790     }
95791 
95792 #if defined( VULKAN_HPP_USE_REFLECT )
95793 #if 14 <= VULKAN_HPP_CPP_VERSION
95794     auto
95795 #else
95796     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX const &, struct _screen_context * const &, struct _screen_window * const &>
95797 #endif
reflectVULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95798       reflect() const VULKAN_HPP_NOEXCEPT
95799     {
95800       return std::tie( sType, pNext, flags, context, window );
95801     }
95802 #endif
95803 
95804 
95805 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
95806 auto operator<=>( ScreenSurfaceCreateInfoQNX const & ) const = default;
95807 #else
operator ==VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95808     bool operator==( ScreenSurfaceCreateInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
95809     {
95810 #if defined( VULKAN_HPP_USE_REFLECT )
95811       return this->reflect() == rhs.reflect();
95812 #else
95813       return ( sType == rhs.sType )
95814           && ( pNext == rhs.pNext )
95815           && ( flags == rhs.flags )
95816           && ( context == rhs.context )
95817           && ( window == rhs.window );
95818 #endif
95819     }
95820 
operator !=VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX95821     bool operator!=( ScreenSurfaceCreateInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
95822     {
95823       return !operator==( rhs );
95824     }
95825 #endif
95826 
95827     public:
95828     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eScreenSurfaceCreateInfoQNX;
95829     const void * pNext = {};
95830     VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags = {};
95831     struct _screen_context * context = {};
95832     struct _screen_window * window = {};
95833 
95834   };
95835 
95836   template <>
95837   struct CppType<StructureType, StructureType::eScreenSurfaceCreateInfoQNX>
95838   {
95839     using Type = ScreenSurfaceCreateInfoQNX;
95840   };
95841 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
95842 
95843   struct SemaphoreCreateInfo
95844   {
95845     using NativeType = VkSemaphoreCreateInfo;
95846 
95847     static const bool allowDuplicate = false;
95848     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo;
95849 
95850 
95851 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo95852 VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
95853     : pNext( pNext_ ), flags( flags_ )
95854     {}
95855 
95856     VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95857 
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo95858     SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
95859       : SemaphoreCreateInfo( *reinterpret_cast<SemaphoreCreateInfo const *>( &rhs ) )
95860     {}
95861 
95862 
95863     SemaphoreCreateInfo & operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95864 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
95865 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo95866     SemaphoreCreateInfo & operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
95867     {
95868       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const *>( &rhs );
95869       return *this;
95870     }
95871 
95872 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo95873     VULKAN_HPP_CONSTEXPR_14 SemaphoreCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
95874     {
95875       pNext = pNext_;
95876       return *this;
95877     }
95878 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo95879     VULKAN_HPP_CONSTEXPR_14 SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
95880     {
95881       flags = flags_;
95882       return *this;
95883     }
95884 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
95885 
95886 
operator VkSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo95887     operator VkSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT
95888     {
95889       return *reinterpret_cast<const VkSemaphoreCreateInfo*>( this );
95890     }
95891 
operator VkSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo95892     operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
95893     {
95894       return *reinterpret_cast<VkSemaphoreCreateInfo*>( this );
95895     }
95896 
95897 #if defined( VULKAN_HPP_USE_REFLECT )
95898 #if 14 <= VULKAN_HPP_CPP_VERSION
95899     auto
95900 #else
95901     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags const &>
95902 #endif
reflectVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo95903       reflect() const VULKAN_HPP_NOEXCEPT
95904     {
95905       return std::tie( sType, pNext, flags );
95906     }
95907 #endif
95908 
95909 
95910 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
95911 auto operator<=>( SemaphoreCreateInfo const & ) const = default;
95912 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo95913     bool operator==( SemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
95914     {
95915 #if defined( VULKAN_HPP_USE_REFLECT )
95916       return this->reflect() == rhs.reflect();
95917 #else
95918       return ( sType == rhs.sType )
95919           && ( pNext == rhs.pNext )
95920           && ( flags == rhs.flags );
95921 #endif
95922     }
95923 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo95924     bool operator!=( SemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
95925     {
95926       return !operator==( rhs );
95927     }
95928 #endif
95929 
95930     public:
95931     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo;
95932     const void * pNext = {};
95933     VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {};
95934 
95935   };
95936 
95937   template <>
95938   struct CppType<StructureType, StructureType::eSemaphoreCreateInfo>
95939   {
95940     using Type = SemaphoreCreateInfo;
95941   };
95942 
95943   struct SemaphoreGetFdInfoKHR
95944   {
95945     using NativeType = VkSemaphoreGetFdInfoKHR;
95946 
95947     static const bool allowDuplicate = false;
95948     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR;
95949 
95950 
95951 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR95952 VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
95953     : pNext( pNext_ ), semaphore( semaphore_ ), handleType( handleType_ )
95954     {}
95955 
95956     VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95957 
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR95958     SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
95959       : SemaphoreGetFdInfoKHR( *reinterpret_cast<SemaphoreGetFdInfoKHR const *>( &rhs ) )
95960     {}
95961 
95962 
95963     SemaphoreGetFdInfoKHR & operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
95964 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
95965 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR95966     SemaphoreGetFdInfoKHR & operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
95967     {
95968       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const *>( &rhs );
95969       return *this;
95970     }
95971 
95972 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR95973     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
95974     {
95975       pNext = pNext_;
95976       return *this;
95977     }
95978 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR95979     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
95980     {
95981       semaphore = semaphore_;
95982       return *this;
95983     }
95984 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR95985     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
95986     {
95987       handleType = handleType_;
95988       return *this;
95989     }
95990 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
95991 
95992 
operator VkSemaphoreGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR95993     operator VkSemaphoreGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
95994     {
95995       return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( this );
95996     }
95997 
operator VkSemaphoreGetFdInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR95998     operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
95999     {
96000       return *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>( this );
96001     }
96002 
96003 #if defined( VULKAN_HPP_USE_REFLECT )
96004 #if 14 <= VULKAN_HPP_CPP_VERSION
96005     auto
96006 #else
96007     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
96008 #endif
reflectVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR96009       reflect() const VULKAN_HPP_NOEXCEPT
96010     {
96011       return std::tie( sType, pNext, semaphore, handleType );
96012     }
96013 #endif
96014 
96015 
96016 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
96017 auto operator<=>( SemaphoreGetFdInfoKHR const & ) const = default;
96018 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR96019     bool operator==( SemaphoreGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
96020     {
96021 #if defined( VULKAN_HPP_USE_REFLECT )
96022       return this->reflect() == rhs.reflect();
96023 #else
96024       return ( sType == rhs.sType )
96025           && ( pNext == rhs.pNext )
96026           && ( semaphore == rhs.semaphore )
96027           && ( handleType == rhs.handleType );
96028 #endif
96029     }
96030 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR96031     bool operator!=( SemaphoreGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
96032     {
96033       return !operator==( rhs );
96034     }
96035 #endif
96036 
96037     public:
96038     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR;
96039     const void * pNext = {};
96040     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
96041     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
96042 
96043   };
96044 
96045   template <>
96046   struct CppType<StructureType, StructureType::eSemaphoreGetFdInfoKHR>
96047   {
96048     using Type = SemaphoreGetFdInfoKHR;
96049   };
96050 
96051 #if defined( VK_USE_PLATFORM_WIN32_KHR )
96052   struct SemaphoreGetWin32HandleInfoKHR
96053   {
96054     using NativeType = VkSemaphoreGetWin32HandleInfoKHR;
96055 
96056     static const bool allowDuplicate = false;
96057     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
96058 
96059 
96060 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96061 VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
96062     : pNext( pNext_ ), semaphore( semaphore_ ), handleType( handleType_ )
96063     {}
96064 
96065     VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96066 
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96067     SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
96068       : SemaphoreGetWin32HandleInfoKHR( *reinterpret_cast<SemaphoreGetWin32HandleInfoKHR const *>( &rhs ) )
96069     {}
96070 
96071 
96072     SemaphoreGetWin32HandleInfoKHR & operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96073 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
96074 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96075     SemaphoreGetWin32HandleInfoKHR & operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
96076     {
96077       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const *>( &rhs );
96078       return *this;
96079     }
96080 
96081 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96082     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
96083     {
96084       pNext = pNext_;
96085       return *this;
96086     }
96087 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96088     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
96089     {
96090       semaphore = semaphore_;
96091       return *this;
96092     }
96093 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96094     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
96095     {
96096       handleType = handleType_;
96097       return *this;
96098     }
96099 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
96100 
96101 
operator VkSemaphoreGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96102     operator VkSemaphoreGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
96103     {
96104       return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( this );
96105     }
96106 
operator VkSemaphoreGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96107     operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
96108     {
96109       return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>( this );
96110     }
96111 
96112 #if defined( VULKAN_HPP_USE_REFLECT )
96113 #if 14 <= VULKAN_HPP_CPP_VERSION
96114     auto
96115 #else
96116     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
96117 #endif
reflectVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96118       reflect() const VULKAN_HPP_NOEXCEPT
96119     {
96120       return std::tie( sType, pNext, semaphore, handleType );
96121     }
96122 #endif
96123 
96124 
96125 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
96126 auto operator<=>( SemaphoreGetWin32HandleInfoKHR const & ) const = default;
96127 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96128     bool operator==( SemaphoreGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
96129     {
96130 #if defined( VULKAN_HPP_USE_REFLECT )
96131       return this->reflect() == rhs.reflect();
96132 #else
96133       return ( sType == rhs.sType )
96134           && ( pNext == rhs.pNext )
96135           && ( semaphore == rhs.semaphore )
96136           && ( handleType == rhs.handleType );
96137 #endif
96138     }
96139 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR96140     bool operator!=( SemaphoreGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
96141     {
96142       return !operator==( rhs );
96143     }
96144 #endif
96145 
96146     public:
96147     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
96148     const void * pNext = {};
96149     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
96150     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
96151 
96152   };
96153 
96154   template <>
96155   struct CppType<StructureType, StructureType::eSemaphoreGetWin32HandleInfoKHR>
96156   {
96157     using Type = SemaphoreGetWin32HandleInfoKHR;
96158   };
96159 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
96160 
96161 #if defined( VK_USE_PLATFORM_FUCHSIA )
96162   struct SemaphoreGetZirconHandleInfoFUCHSIA
96163   {
96164     using NativeType = VkSemaphoreGetZirconHandleInfoFUCHSIA;
96165 
96166     static const bool allowDuplicate = false;
96167     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA;
96168 
96169 
96170 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetZirconHandleInfoFUCHSIAVULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96171 VULKAN_HPP_CONSTEXPR SemaphoreGetZirconHandleInfoFUCHSIA(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
96172     : pNext( pNext_ ), semaphore( semaphore_ ), handleType( handleType_ )
96173     {}
96174 
96175     VULKAN_HPP_CONSTEXPR SemaphoreGetZirconHandleInfoFUCHSIA( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96176 
SemaphoreGetZirconHandleInfoFUCHSIAVULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96177     SemaphoreGetZirconHandleInfoFUCHSIA( VkSemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
96178       : SemaphoreGetZirconHandleInfoFUCHSIA( *reinterpret_cast<SemaphoreGetZirconHandleInfoFUCHSIA const *>( &rhs ) )
96179     {}
96180 
96181 
96182     SemaphoreGetZirconHandleInfoFUCHSIA & operator=( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96183 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
96184 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96185     SemaphoreGetZirconHandleInfoFUCHSIA & operator=( VkSemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
96186     {
96187       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA const *>( &rhs );
96188       return *this;
96189     }
96190 
96191 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96192     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
96193     {
96194       pNext = pNext_;
96195       return *this;
96196     }
96197 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96198     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
96199     {
96200       semaphore = semaphore_;
96201       return *this;
96202     }
96203 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96204     VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
96205     {
96206       handleType = handleType_;
96207       return *this;
96208     }
96209 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
96210 
96211 
operator VkSemaphoreGetZirconHandleInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96212     operator VkSemaphoreGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
96213     {
96214       return *reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA*>( this );
96215     }
96216 
operator VkSemaphoreGetZirconHandleInfoFUCHSIA&VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96217     operator VkSemaphoreGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
96218     {
96219       return *reinterpret_cast<VkSemaphoreGetZirconHandleInfoFUCHSIA*>( this );
96220     }
96221 
96222 #if defined( VULKAN_HPP_USE_REFLECT )
96223 #if 14 <= VULKAN_HPP_CPP_VERSION
96224     auto
96225 #else
96226     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
96227 #endif
reflectVULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96228       reflect() const VULKAN_HPP_NOEXCEPT
96229     {
96230       return std::tie( sType, pNext, semaphore, handleType );
96231     }
96232 #endif
96233 
96234 
96235 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
96236 auto operator<=>( SemaphoreGetZirconHandleInfoFUCHSIA const & ) const = default;
96237 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96238     bool operator==( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
96239     {
96240 #if defined( VULKAN_HPP_USE_REFLECT )
96241       return this->reflect() == rhs.reflect();
96242 #else
96243       return ( sType == rhs.sType )
96244           && ( pNext == rhs.pNext )
96245           && ( semaphore == rhs.semaphore )
96246           && ( handleType == rhs.handleType );
96247 #endif
96248     }
96249 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA96250     bool operator!=( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
96251     {
96252       return !operator==( rhs );
96253     }
96254 #endif
96255 
96256     public:
96257     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA;
96258     const void * pNext = {};
96259     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
96260     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
96261 
96262   };
96263 
96264   template <>
96265   struct CppType<StructureType, StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA>
96266   {
96267     using Type = SemaphoreGetZirconHandleInfoFUCHSIA;
96268   };
96269 #endif /*VK_USE_PLATFORM_FUCHSIA*/
96270 
96271   struct SemaphoreSignalInfo
96272   {
96273     using NativeType = VkSemaphoreSignalInfo;
96274 
96275     static const bool allowDuplicate = false;
96276     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo;
96277 
96278 
96279 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96280 VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
96281     : pNext( pNext_ ), semaphore( semaphore_ ), value( value_ )
96282     {}
96283 
96284     VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96285 
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96286     SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
96287       : SemaphoreSignalInfo( *reinterpret_cast<SemaphoreSignalInfo const *>( &rhs ) )
96288     {}
96289 
96290 
96291     SemaphoreSignalInfo & operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96292 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
96293 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96294     SemaphoreSignalInfo & operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
96295     {
96296       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const *>( &rhs );
96297       return *this;
96298     }
96299 
96300 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96301     VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
96302     {
96303       pNext = pNext_;
96304       return *this;
96305     }
96306 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96307     VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
96308     {
96309       semaphore = semaphore_;
96310       return *this;
96311     }
96312 
setValueVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96313     VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
96314     {
96315       value = value_;
96316       return *this;
96317     }
96318 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
96319 
96320 
operator VkSemaphoreSignalInfo const&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96321     operator VkSemaphoreSignalInfo const &() const VULKAN_HPP_NOEXCEPT
96322     {
96323       return *reinterpret_cast<const VkSemaphoreSignalInfo*>( this );
96324     }
96325 
operator VkSemaphoreSignalInfo&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96326     operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT
96327     {
96328       return *reinterpret_cast<VkSemaphoreSignalInfo*>( this );
96329     }
96330 
96331 #if defined( VULKAN_HPP_USE_REFLECT )
96332 #if 14 <= VULKAN_HPP_CPP_VERSION
96333     auto
96334 #else
96335     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, uint64_t const &>
96336 #endif
reflectVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96337       reflect() const VULKAN_HPP_NOEXCEPT
96338     {
96339       return std::tie( sType, pNext, semaphore, value );
96340     }
96341 #endif
96342 
96343 
96344 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
96345 auto operator<=>( SemaphoreSignalInfo const & ) const = default;
96346 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96347     bool operator==( SemaphoreSignalInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
96348     {
96349 #if defined( VULKAN_HPP_USE_REFLECT )
96350       return this->reflect() == rhs.reflect();
96351 #else
96352       return ( sType == rhs.sType )
96353           && ( pNext == rhs.pNext )
96354           && ( semaphore == rhs.semaphore )
96355           && ( value == rhs.value );
96356 #endif
96357     }
96358 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo96359     bool operator!=( SemaphoreSignalInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
96360     {
96361       return !operator==( rhs );
96362     }
96363 #endif
96364 
96365     public:
96366     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo;
96367     const void * pNext = {};
96368     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
96369     uint64_t value = {};
96370 
96371   };
96372 
96373   template <>
96374   struct CppType<StructureType, StructureType::eSemaphoreSignalInfo>
96375   {
96376     using Type = SemaphoreSignalInfo;
96377   };
96378   using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
96379 
96380   struct SemaphoreSubmitInfo
96381   {
96382     using NativeType = VkSemaphoreSubmitInfo;
96383 
96384     static const bool allowDuplicate = false;
96385     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSubmitInfo;
96386 
96387 
96388 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96389 VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfo(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_ = {}, uint32_t deviceIndex_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
96390     : pNext( pNext_ ), semaphore( semaphore_ ), value( value_ ), stageMask( stageMask_ ), deviceIndex( deviceIndex_ )
96391     {}
96392 
96393     VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfo( SemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96394 
SemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96395     SemaphoreSubmitInfo( VkSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
96396       : SemaphoreSubmitInfo( *reinterpret_cast<SemaphoreSubmitInfo const *>( &rhs ) )
96397     {}
96398 
96399 
96400     SemaphoreSubmitInfo & operator=( SemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96401 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
96402 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96403     SemaphoreSubmitInfo & operator=( VkSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
96404     {
96405       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo const *>( &rhs );
96406       return *this;
96407     }
96408 
96409 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96410     VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
96411     {
96412       pNext = pNext_;
96413       return *this;
96414     }
96415 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96416     VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
96417     {
96418       semaphore = semaphore_;
96419       return *this;
96420     }
96421 
setValueVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96422     VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
96423     {
96424       value = value_;
96425       return *this;
96426     }
96427 
setStageMaskVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96428     VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_ ) VULKAN_HPP_NOEXCEPT
96429     {
96430       stageMask = stageMask_;
96431       return *this;
96432     }
96433 
setDeviceIndexVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96434     VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setDeviceIndex( uint32_t deviceIndex_ ) VULKAN_HPP_NOEXCEPT
96435     {
96436       deviceIndex = deviceIndex_;
96437       return *this;
96438     }
96439 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
96440 
96441 
operator VkSemaphoreSubmitInfo const&VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96442     operator VkSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
96443     {
96444       return *reinterpret_cast<const VkSemaphoreSubmitInfo*>( this );
96445     }
96446 
operator VkSemaphoreSubmitInfo&VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96447     operator VkSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
96448     {
96449       return *reinterpret_cast<VkSemaphoreSubmitInfo*>( this );
96450     }
96451 
96452 #if defined( VULKAN_HPP_USE_REFLECT )
96453 #if 14 <= VULKAN_HPP_CPP_VERSION
96454     auto
96455 #else
96456     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, uint64_t const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &, uint32_t const &>
96457 #endif
reflectVULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96458       reflect() const VULKAN_HPP_NOEXCEPT
96459     {
96460       return std::tie( sType, pNext, semaphore, value, stageMask, deviceIndex );
96461     }
96462 #endif
96463 
96464 
96465 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
96466 auto operator<=>( SemaphoreSubmitInfo const & ) const = default;
96467 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96468     bool operator==( SemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
96469     {
96470 #if defined( VULKAN_HPP_USE_REFLECT )
96471       return this->reflect() == rhs.reflect();
96472 #else
96473       return ( sType == rhs.sType )
96474           && ( pNext == rhs.pNext )
96475           && ( semaphore == rhs.semaphore )
96476           && ( value == rhs.value )
96477           && ( stageMask == rhs.stageMask )
96478           && ( deviceIndex == rhs.deviceIndex );
96479 #endif
96480     }
96481 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo96482     bool operator!=( SemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
96483     {
96484       return !operator==( rhs );
96485     }
96486 #endif
96487 
96488     public:
96489     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSubmitInfo;
96490     const void * pNext = {};
96491     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
96492     uint64_t value = {};
96493     VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask = {};
96494     uint32_t deviceIndex = {};
96495 
96496   };
96497 
96498   template <>
96499   struct CppType<StructureType, StructureType::eSemaphoreSubmitInfo>
96500   {
96501     using Type = SemaphoreSubmitInfo;
96502   };
96503   using SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo;
96504 
96505   struct SemaphoreTypeCreateInfo
96506   {
96507     using NativeType = VkSemaphoreTypeCreateInfo;
96508 
96509     static const bool allowDuplicate = false;
96510     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo;
96511 
96512 
96513 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96514 VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary, uint64_t initialValue_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
96515     : pNext( pNext_ ), semaphoreType( semaphoreType_ ), initialValue( initialValue_ )
96516     {}
96517 
96518     VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96519 
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96520     SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
96521       : SemaphoreTypeCreateInfo( *reinterpret_cast<SemaphoreTypeCreateInfo const *>( &rhs ) )
96522     {}
96523 
96524 
96525     SemaphoreTypeCreateInfo & operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96526 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
96527 
operator =VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96528     SemaphoreTypeCreateInfo & operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
96529     {
96530       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const *>( &rhs );
96531       return *this;
96532     }
96533 
96534 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96535     VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
96536     {
96537       pNext = pNext_;
96538       return *this;
96539     }
96540 
setSemaphoreTypeVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96541     VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT
96542     {
96543       semaphoreType = semaphoreType_;
96544       return *this;
96545     }
96546 
setInitialValueVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96547     VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT
96548     {
96549       initialValue = initialValue_;
96550       return *this;
96551     }
96552 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
96553 
96554 
operator VkSemaphoreTypeCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96555     operator VkSemaphoreTypeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
96556     {
96557       return *reinterpret_cast<const VkSemaphoreTypeCreateInfo*>( this );
96558     }
96559 
operator VkSemaphoreTypeCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96560     operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT
96561     {
96562       return *reinterpret_cast<VkSemaphoreTypeCreateInfo*>( this );
96563     }
96564 
96565 #if defined( VULKAN_HPP_USE_REFLECT )
96566 #if 14 <= VULKAN_HPP_CPP_VERSION
96567     auto
96568 #else
96569     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SemaphoreType const &, uint64_t const &>
96570 #endif
reflectVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96571       reflect() const VULKAN_HPP_NOEXCEPT
96572     {
96573       return std::tie( sType, pNext, semaphoreType, initialValue );
96574     }
96575 #endif
96576 
96577 
96578 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
96579 auto operator<=>( SemaphoreTypeCreateInfo const & ) const = default;
96580 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96581     bool operator==( SemaphoreTypeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
96582     {
96583 #if defined( VULKAN_HPP_USE_REFLECT )
96584       return this->reflect() == rhs.reflect();
96585 #else
96586       return ( sType == rhs.sType )
96587           && ( pNext == rhs.pNext )
96588           && ( semaphoreType == rhs.semaphoreType )
96589           && ( initialValue == rhs.initialValue );
96590 #endif
96591     }
96592 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo96593     bool operator!=( SemaphoreTypeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
96594     {
96595       return !operator==( rhs );
96596     }
96597 #endif
96598 
96599     public:
96600     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo;
96601     const void * pNext = {};
96602     VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary;
96603     uint64_t initialValue = {};
96604 
96605   };
96606 
96607   template <>
96608   struct CppType<StructureType, StructureType::eSemaphoreTypeCreateInfo>
96609   {
96610     using Type = SemaphoreTypeCreateInfo;
96611   };
96612   using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
96613 
96614   struct SemaphoreWaitInfo
96615   {
96616     using NativeType = VkSemaphoreWaitInfo;
96617 
96618     static const bool allowDuplicate = false;
96619     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo;
96620 
96621 
96622 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96623 VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo(VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ = {}, uint32_t semaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores_ = {}, const uint64_t * pValues_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
96624     : pNext( pNext_ ), flags( flags_ ), semaphoreCount( semaphoreCount_ ), pSemaphores( pSemaphores_ ), pValues( pValues_ )
96625     {}
96626 
96627     VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96628 
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96629     SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
96630       : SemaphoreWaitInfo( *reinterpret_cast<SemaphoreWaitInfo const *>( &rhs ) )
96631     {}
96632 
96633 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96634     SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ = {}, const void * pNext_ = nullptr )
96635     : pNext( pNext_ ), flags( flags_ ), semaphoreCount( static_cast<uint32_t>( semaphores_.size() ) ), pSemaphores( semaphores_.data() ), pValues( values_.data() )
96636     {
96637 #ifdef VULKAN_HPP_NO_EXCEPTIONS
96638       VULKAN_HPP_ASSERT( semaphores_.size() == values_.size() );
96639 #else
96640       if ( semaphores_.size() != values_.size() )
96641       {
96642         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::SemaphoreWaitInfo::SemaphoreWaitInfo: semaphores_.size() != values_.size()" );
96643       }
96644 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
96645     }
96646 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
96647 
96648 
96649     SemaphoreWaitInfo & operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96650 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
96651 
operator =VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96652     SemaphoreWaitInfo & operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
96653     {
96654       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const *>( &rhs );
96655       return *this;
96656     }
96657 
96658 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96659     VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
96660     {
96661       pNext = pNext_;
96662       return *this;
96663     }
96664 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96665     VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT
96666     {
96667       flags = flags_;
96668       return *this;
96669     }
96670 
setSemaphoreCountVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96671     VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT
96672     {
96673       semaphoreCount = semaphoreCount_;
96674       return *this;
96675     }
96676 
setPSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96677     VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores_ ) VULKAN_HPP_NOEXCEPT
96678     {
96679       pSemaphores = pSemaphores_;
96680       return *this;
96681     }
96682 
96683 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96684     SemaphoreWaitInfo & setSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_ ) VULKAN_HPP_NOEXCEPT
96685     {
96686       semaphoreCount = static_cast<uint32_t>( semaphores_.size() );
96687       pSemaphores = semaphores_.data();
96688       return *this;
96689     }
96690 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
96691 
setPValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96692     VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setPValues( const uint64_t * pValues_ ) VULKAN_HPP_NOEXCEPT
96693     {
96694       pValues = pValues_;
96695       return *this;
96696     }
96697 
96698 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96699     SemaphoreWaitInfo & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ ) VULKAN_HPP_NOEXCEPT
96700     {
96701       semaphoreCount = static_cast<uint32_t>( values_.size() );
96702       pValues = values_.data();
96703       return *this;
96704     }
96705 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
96706 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
96707 
96708 
operator VkSemaphoreWaitInfo const&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96709     operator VkSemaphoreWaitInfo const &() const VULKAN_HPP_NOEXCEPT
96710     {
96711       return *reinterpret_cast<const VkSemaphoreWaitInfo*>( this );
96712     }
96713 
operator VkSemaphoreWaitInfo&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96714     operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT
96715     {
96716       return *reinterpret_cast<VkSemaphoreWaitInfo*>( this );
96717     }
96718 
96719 #if defined( VULKAN_HPP_USE_REFLECT )
96720 #if 14 <= VULKAN_HPP_CPP_VERSION
96721     auto
96722 #else
96723     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Semaphore * const &, const uint64_t * const &>
96724 #endif
reflectVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96725       reflect() const VULKAN_HPP_NOEXCEPT
96726     {
96727       return std::tie( sType, pNext, flags, semaphoreCount, pSemaphores, pValues );
96728     }
96729 #endif
96730 
96731 
96732 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
96733 auto operator<=>( SemaphoreWaitInfo const & ) const = default;
96734 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96735     bool operator==( SemaphoreWaitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
96736     {
96737 #if defined( VULKAN_HPP_USE_REFLECT )
96738       return this->reflect() == rhs.reflect();
96739 #else
96740       return ( sType == rhs.sType )
96741           && ( pNext == rhs.pNext )
96742           && ( flags == rhs.flags )
96743           && ( semaphoreCount == rhs.semaphoreCount )
96744           && ( pSemaphores == rhs.pSemaphores )
96745           && ( pValues == rhs.pValues );
96746 #endif
96747     }
96748 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo96749     bool operator!=( SemaphoreWaitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
96750     {
96751       return !operator==( rhs );
96752     }
96753 #endif
96754 
96755     public:
96756     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo;
96757     const void * pNext = {};
96758     VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {};
96759     uint32_t semaphoreCount = {};
96760     const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores = {};
96761     const uint64_t * pValues = {};
96762 
96763   };
96764 
96765   template <>
96766   struct CppType<StructureType, StructureType::eSemaphoreWaitInfo>
96767   {
96768     using Type = SemaphoreWaitInfo;
96769   };
96770   using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
96771 
96772   struct SetLatencyMarkerInfoNV
96773   {
96774     using NativeType = VkSetLatencyMarkerInfoNV;
96775 
96776     static const bool allowDuplicate = false;
96777     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSetLatencyMarkerInfoNV;
96778 
96779 
96780 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SetLatencyMarkerInfoNVVULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96781 VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV(uint64_t presentID_ = {}, VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_ = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
96782     : pNext( pNext_ ), presentID( presentID_ ), marker( marker_ )
96783     {}
96784 
96785     VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV( SetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96786 
SetLatencyMarkerInfoNVVULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96787     SetLatencyMarkerInfoNV( VkSetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
96788       : SetLatencyMarkerInfoNV( *reinterpret_cast<SetLatencyMarkerInfoNV const *>( &rhs ) )
96789     {}
96790 
96791 
96792     SetLatencyMarkerInfoNV & operator=( SetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96793 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
96794 
operator =VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96795     SetLatencyMarkerInfoNV & operator=( VkSetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
96796     {
96797       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV const *>( &rhs );
96798       return *this;
96799     }
96800 
96801 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96802     VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
96803     {
96804       pNext = pNext_;
96805       return *this;
96806     }
96807 
setPresentIDVULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96808     VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT
96809     {
96810       presentID = presentID_;
96811       return *this;
96812     }
96813 
setMarkerVULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96814     VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setMarker( VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_ ) VULKAN_HPP_NOEXCEPT
96815     {
96816       marker = marker_;
96817       return *this;
96818     }
96819 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
96820 
96821 
operator VkSetLatencyMarkerInfoNV const&VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96822     operator VkSetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT
96823     {
96824       return *reinterpret_cast<const VkSetLatencyMarkerInfoNV*>( this );
96825     }
96826 
operator VkSetLatencyMarkerInfoNV&VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96827     operator VkSetLatencyMarkerInfoNV &() VULKAN_HPP_NOEXCEPT
96828     {
96829       return *reinterpret_cast<VkSetLatencyMarkerInfoNV*>( this );
96830     }
96831 
96832 #if defined( VULKAN_HPP_USE_REFLECT )
96833 #if 14 <= VULKAN_HPP_CPP_VERSION
96834     auto
96835 #else
96836     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, VULKAN_HPP_NAMESPACE::LatencyMarkerNV const &>
96837 #endif
reflectVULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96838       reflect() const VULKAN_HPP_NOEXCEPT
96839     {
96840       return std::tie( sType, pNext, presentID, marker );
96841     }
96842 #endif
96843 
96844 
96845 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
96846 auto operator<=>( SetLatencyMarkerInfoNV const & ) const = default;
96847 #else
operator ==VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96848     bool operator==( SetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
96849     {
96850 #if defined( VULKAN_HPP_USE_REFLECT )
96851       return this->reflect() == rhs.reflect();
96852 #else
96853       return ( sType == rhs.sType )
96854           && ( pNext == rhs.pNext )
96855           && ( presentID == rhs.presentID )
96856           && ( marker == rhs.marker );
96857 #endif
96858     }
96859 
operator !=VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV96860     bool operator!=( SetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
96861     {
96862       return !operator==( rhs );
96863     }
96864 #endif
96865 
96866     public:
96867     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSetLatencyMarkerInfoNV;
96868     const void * pNext = {};
96869     uint64_t presentID = {};
96870     VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart;
96871 
96872   };
96873 
96874   template <>
96875   struct CppType<StructureType, StructureType::eSetLatencyMarkerInfoNV>
96876   {
96877     using Type = SetLatencyMarkerInfoNV;
96878   };
96879 
96880   struct SetStateFlagsIndirectCommandNV
96881   {
96882     using NativeType = VkSetStateFlagsIndirectCommandNV;
96883 
96884 
96885 
96886 
96887 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV96888 VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV(uint32_t data_ = {}) VULKAN_HPP_NOEXCEPT
96889     : data( data_ )
96890     {}
96891 
96892     VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96893 
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV96894     SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
96895       : SetStateFlagsIndirectCommandNV( *reinterpret_cast<SetStateFlagsIndirectCommandNV const *>( &rhs ) )
96896     {}
96897 
96898 
96899     SetStateFlagsIndirectCommandNV & operator=( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96900 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
96901 
operator =VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV96902     SetStateFlagsIndirectCommandNV & operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
96903     {
96904       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const *>( &rhs );
96905       return *this;
96906     }
96907 
96908 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setDataVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV96909     VULKAN_HPP_CONSTEXPR_14 SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT
96910     {
96911       data = data_;
96912       return *this;
96913     }
96914 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
96915 
96916 
operator VkSetStateFlagsIndirectCommandNV const&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV96917     operator VkSetStateFlagsIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
96918     {
96919       return *reinterpret_cast<const VkSetStateFlagsIndirectCommandNV*>( this );
96920     }
96921 
operator VkSetStateFlagsIndirectCommandNV&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV96922     operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
96923     {
96924       return *reinterpret_cast<VkSetStateFlagsIndirectCommandNV*>( this );
96925     }
96926 
96927 #if defined( VULKAN_HPP_USE_REFLECT )
96928 #if 14 <= VULKAN_HPP_CPP_VERSION
96929     auto
96930 #else
96931     std::tuple<uint32_t const &>
96932 #endif
reflectVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV96933       reflect() const VULKAN_HPP_NOEXCEPT
96934     {
96935       return std::tie( data );
96936     }
96937 #endif
96938 
96939 
96940 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
96941 auto operator<=>( SetStateFlagsIndirectCommandNV const & ) const = default;
96942 #else
operator ==VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV96943     bool operator==( SetStateFlagsIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
96944     {
96945 #if defined( VULKAN_HPP_USE_REFLECT )
96946       return this->reflect() == rhs.reflect();
96947 #else
96948       return ( data == rhs.data );
96949 #endif
96950     }
96951 
operator !=VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV96952     bool operator!=( SetStateFlagsIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
96953     {
96954       return !operator==( rhs );
96955     }
96956 #endif
96957 
96958     public:
96959     uint32_t data = {};
96960 
96961   };
96962 
96963   struct ShaderCreateInfoEXT
96964   {
96965     using NativeType = VkShaderCreateInfoEXT;
96966 
96967     static const bool allowDuplicate = false;
96968     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderCreateInfoEXT;
96969 
96970 
96971 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT96972 VULKAN_HPP_CONSTEXPR ShaderCreateInfoEXT(VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex, VULKAN_HPP_NAMESPACE::ShaderStageFlags nextStage_ = {}, VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT codeType_ = VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT::eBinary, size_t codeSize_ = {}, const void * pCode_ = {}, const char * pName_ = {}, uint32_t setLayoutCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {}, uint32_t pushConstantRangeCount_ = {}, const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
96973     : pNext( pNext_ ), flags( flags_ ), stage( stage_ ), nextStage( nextStage_ ), codeType( codeType_ ), codeSize( codeSize_ ), pCode( pCode_ ), pName( pName_ ), setLayoutCount( setLayoutCount_ ), pSetLayouts( pSetLayouts_ ), pushConstantRangeCount( pushConstantRangeCount_ ), pPushConstantRanges( pPushConstantRanges_ ), pSpecializationInfo( pSpecializationInfo_ )
96974     {}
96975 
96976     VULKAN_HPP_CONSTEXPR ShaderCreateInfoEXT( ShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96977 
ShaderCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT96978     ShaderCreateInfoEXT( VkShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
96979       : ShaderCreateInfoEXT( *reinterpret_cast<ShaderCreateInfoEXT const *>( &rhs ) )
96980     {}
96981 
96982 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
96983     template <typename T>
ShaderCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT96984     ShaderCreateInfoEXT( VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_, VULKAN_HPP_NAMESPACE::ShaderStageFlags nextStage_, VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT codeType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & code_, const char * pName_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ = {}, const void * pNext_ = nullptr )
96985     : pNext( pNext_ ), flags( flags_ ), stage( stage_ ), nextStage( nextStage_ ), codeType( codeType_ ), codeSize( code_.size() * sizeof(T) ), pCode( code_.data() ), pName( pName_ ), setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ), pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) ), pPushConstantRanges( pushConstantRanges_.data() ), pSpecializationInfo( pSpecializationInfo_ )
96986     {}
96987 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
96988 
96989 
96990     ShaderCreateInfoEXT & operator=( ShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
96991 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
96992 
operator =VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT96993     ShaderCreateInfoEXT & operator=( VkShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
96994     {
96995       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const *>( &rhs );
96996       return *this;
96997     }
96998 
96999 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97000     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
97001     {
97002       pNext = pNext_;
97003       return *this;
97004     }
97005 
setFlagsVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97006     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
97007     {
97008       flags = flags_;
97009       return *this;
97010     }
97011 
setStageVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97012     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
97013     {
97014       stage = stage_;
97015       return *this;
97016     }
97017 
setNextStageVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97018     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setNextStage( VULKAN_HPP_NAMESPACE::ShaderStageFlags nextStage_ ) VULKAN_HPP_NOEXCEPT
97019     {
97020       nextStage = nextStage_;
97021       return *this;
97022     }
97023 
setCodeTypeVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97024     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setCodeType( VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT codeType_ ) VULKAN_HPP_NOEXCEPT
97025     {
97026       codeType = codeType_;
97027       return *this;
97028     }
97029 
setCodeSizeVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97030     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
97031     {
97032       codeSize = codeSize_;
97033       return *this;
97034     }
97035 
setPCodeVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97036     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPCode( const void * pCode_ ) VULKAN_HPP_NOEXCEPT
97037     {
97038       pCode = pCode_;
97039       return *this;
97040     }
97041 
97042 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
97043     template <typename T>
setCodeVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97044     ShaderCreateInfoEXT & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & code_ ) VULKAN_HPP_NOEXCEPT
97045     {
97046       codeSize = code_.size() * sizeof(T);
97047       pCode = code_.data();
97048       return *this;
97049     }
97050 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
97051 
setPNameVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97052     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
97053     {
97054       pName = pName_;
97055       return *this;
97056     }
97057 
setSetLayoutCountVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97058     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
97059     {
97060       setLayoutCount = setLayoutCount_;
97061       return *this;
97062     }
97063 
setPSetLayoutsVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97064     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
97065     {
97066       pSetLayouts = pSetLayouts_;
97067       return *this;
97068     }
97069 
97070 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSetLayoutsVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97071     ShaderCreateInfoEXT & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
97072     {
97073       setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
97074       pSetLayouts = setLayouts_.data();
97075       return *this;
97076     }
97077 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
97078 
setPushConstantRangeCountVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97079     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
97080     {
97081       pushConstantRangeCount = pushConstantRangeCount_;
97082       return *this;
97083     }
97084 
setPPushConstantRangesVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97085     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
97086     {
97087       pPushConstantRanges = pPushConstantRanges_;
97088       return *this;
97089     }
97090 
97091 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPushConstantRangesVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97092     ShaderCreateInfoEXT & setPushConstantRanges( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
97093     {
97094       pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
97095       pPushConstantRanges = pushConstantRanges_.data();
97096       return *this;
97097     }
97098 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
97099 
setPSpecializationInfoVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97100     VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
97101     {
97102       pSpecializationInfo = pSpecializationInfo_;
97103       return *this;
97104     }
97105 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
97106 
97107 
operator VkShaderCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97108     operator VkShaderCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
97109     {
97110       return *reinterpret_cast<const VkShaderCreateInfoEXT*>( this );
97111     }
97112 
operator VkShaderCreateInfoEXT&VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97113     operator VkShaderCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
97114     {
97115       return *reinterpret_cast<VkShaderCreateInfoEXT*>( this );
97116     }
97117 
97118 #if defined( VULKAN_HPP_USE_REFLECT )
97119 #if 14 <= VULKAN_HPP_CPP_VERSION
97120     auto
97121 #else
97122     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT const &, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT const &, size_t const &, const void * const &, const char * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PushConstantRange * const &, const VULKAN_HPP_NAMESPACE::SpecializationInfo * const &>
97123 #endif
reflectVULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97124       reflect() const VULKAN_HPP_NOEXCEPT
97125     {
97126       return std::tie( sType, pNext, flags, stage, nextStage, codeType, codeSize, pCode, pName, setLayoutCount, pSetLayouts, pushConstantRangeCount, pPushConstantRanges, pSpecializationInfo );
97127     }
97128 #endif
97129 
97130 
97131 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97132     std::strong_ordering operator<=>( ShaderCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
97133     {
97134       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
97135       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
97136       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
97137       if ( auto cmp = stage <=> rhs.stage; cmp != 0 ) return cmp;
97138       if ( auto cmp = nextStage <=> rhs.nextStage; cmp != 0 ) return cmp;
97139       if ( auto cmp = codeType <=> rhs.codeType; cmp != 0 ) return cmp;
97140       if ( auto cmp = codeSize <=> rhs.codeSize; cmp != 0 ) return cmp;
97141       if ( auto cmp = pCode <=> rhs.pCode; cmp != 0 ) return cmp;
97142      if ( pName != rhs.pName )
97143         if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
97144           return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
97145       if ( auto cmp = setLayoutCount <=> rhs.setLayoutCount; cmp != 0 ) return cmp;
97146       if ( auto cmp = pSetLayouts <=> rhs.pSetLayouts; cmp != 0 ) return cmp;
97147       if ( auto cmp = pushConstantRangeCount <=> rhs.pushConstantRangeCount; cmp != 0 ) return cmp;
97148       if ( auto cmp = pPushConstantRanges <=> rhs.pPushConstantRanges; cmp != 0 ) return cmp;
97149       if ( auto cmp = pSpecializationInfo <=> rhs.pSpecializationInfo; cmp != 0 ) return cmp;
97150 
97151       return std::strong_ordering::equivalent;
97152     }
97153 #endif
97154 
operator ==VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97155     bool operator==( ShaderCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
97156     {
97157       return ( sType == rhs.sType )
97158           && ( pNext == rhs.pNext )
97159           && ( flags == rhs.flags )
97160           && ( stage == rhs.stage )
97161           && ( nextStage == rhs.nextStage )
97162           && ( codeType == rhs.codeType )
97163           && ( codeSize == rhs.codeSize )
97164           && ( pCode == rhs.pCode )
97165           && ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) )
97166           && ( setLayoutCount == rhs.setLayoutCount )
97167           && ( pSetLayouts == rhs.pSetLayouts )
97168           && ( pushConstantRangeCount == rhs.pushConstantRangeCount )
97169           && ( pPushConstantRanges == rhs.pPushConstantRanges )
97170           && ( pSpecializationInfo == rhs.pSpecializationInfo );
97171     }
97172 
operator !=VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT97173     bool operator!=( ShaderCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
97174     {
97175       return !operator==( rhs );
97176     }
97177 
97178     public:
97179     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderCreateInfoEXT;
97180     const void * pNext = {};
97181     VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT flags = {};
97182     VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
97183     VULKAN_HPP_NAMESPACE::ShaderStageFlags nextStage = {};
97184     VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT codeType = VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT::eBinary;
97185     size_t codeSize = {};
97186     const void * pCode = {};
97187     const char * pName = {};
97188     uint32_t setLayoutCount = {};
97189     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts = {};
97190     uint32_t pushConstantRangeCount = {};
97191     const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges = {};
97192     const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo = {};
97193 
97194   };
97195 
97196   template <>
97197   struct CppType<StructureType, StructureType::eShaderCreateInfoEXT>
97198   {
97199     using Type = ShaderCreateInfoEXT;
97200   };
97201 
97202   struct ShaderModuleCreateInfo
97203   {
97204     using NativeType = VkShaderModuleCreateInfo;
97205 
97206     static const bool allowDuplicate = false;
97207     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo;
97208 
97209 
97210 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97211 VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo(VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {}, size_t codeSize_ = {}, const uint32_t * pCode_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
97212     : pNext( pNext_ ), flags( flags_ ), codeSize( codeSize_ ), pCode( pCode_ )
97213     {}
97214 
97215     VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97216 
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97217     ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
97218       : ShaderModuleCreateInfo( *reinterpret_cast<ShaderModuleCreateInfo const *>( &rhs ) )
97219     {}
97220 
97221 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97222     ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_, const void * pNext_ = nullptr )
97223     : pNext( pNext_ ), flags( flags_ ), codeSize( code_.size() * 4 ), pCode( code_.data() )
97224     {}
97225 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
97226 
97227 
97228     ShaderModuleCreateInfo & operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97229 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
97230 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97231     ShaderModuleCreateInfo & operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
97232     {
97233       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const *>( &rhs );
97234       return *this;
97235     }
97236 
97237 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97238     VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
97239     {
97240       pNext = pNext_;
97241       return *this;
97242     }
97243 
setFlagsVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97244     VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
97245     {
97246       flags = flags_;
97247       return *this;
97248     }
97249 
setCodeSizeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97250     VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
97251     {
97252       codeSize = codeSize_;
97253       return *this;
97254     }
97255 
setPCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97256     VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setPCode( const uint32_t * pCode_ ) VULKAN_HPP_NOEXCEPT
97257     {
97258       pCode = pCode_;
97259       return *this;
97260     }
97261 
97262 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97263     ShaderModuleCreateInfo & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ ) VULKAN_HPP_NOEXCEPT
97264     {
97265       codeSize = code_.size() * 4;
97266       pCode = code_.data();
97267       return *this;
97268     }
97269 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
97270 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
97271 
97272 
operator VkShaderModuleCreateInfo const&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97273     operator VkShaderModuleCreateInfo const &() const VULKAN_HPP_NOEXCEPT
97274     {
97275       return *reinterpret_cast<const VkShaderModuleCreateInfo*>( this );
97276     }
97277 
operator VkShaderModuleCreateInfo&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97278     operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT
97279     {
97280       return *reinterpret_cast<VkShaderModuleCreateInfo*>( this );
97281     }
97282 
97283 #if defined( VULKAN_HPP_USE_REFLECT )
97284 #if 14 <= VULKAN_HPP_CPP_VERSION
97285     auto
97286 #else
97287     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags const &, size_t const &, const uint32_t * const &>
97288 #endif
reflectVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97289       reflect() const VULKAN_HPP_NOEXCEPT
97290     {
97291       return std::tie( sType, pNext, flags, codeSize, pCode );
97292     }
97293 #endif
97294 
97295 
97296 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
97297 auto operator<=>( ShaderModuleCreateInfo const & ) const = default;
97298 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97299     bool operator==( ShaderModuleCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
97300     {
97301 #if defined( VULKAN_HPP_USE_REFLECT )
97302       return this->reflect() == rhs.reflect();
97303 #else
97304       return ( sType == rhs.sType )
97305           && ( pNext == rhs.pNext )
97306           && ( flags == rhs.flags )
97307           && ( codeSize == rhs.codeSize )
97308           && ( pCode == rhs.pCode );
97309 #endif
97310     }
97311 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo97312     bool operator!=( ShaderModuleCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
97313     {
97314       return !operator==( rhs );
97315     }
97316 #endif
97317 
97318     public:
97319     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo;
97320     const void * pNext = {};
97321     VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {};
97322     size_t codeSize = {};
97323     const uint32_t * pCode = {};
97324 
97325   };
97326 
97327   template <>
97328   struct CppType<StructureType, StructureType::eShaderModuleCreateInfo>
97329   {
97330     using Type = ShaderModuleCreateInfo;
97331   };
97332 
97333   struct ShaderModuleIdentifierEXT
97334   {
97335     using NativeType = VkShaderModuleIdentifierEXT;
97336 
97337     static const bool allowDuplicate = false;
97338     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleIdentifierEXT;
97339 
97340 
97341 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleIdentifierEXTVULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT97342 VULKAN_HPP_CONSTEXPR_14 ShaderModuleIdentifierEXT(uint32_t identifierSize_ = {}, std::array<uint8_t,VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT> const & identifier_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
97343     : pNext( pNext_ ), identifierSize( identifierSize_ ), identifier( identifier_ )
97344     {}
97345 
97346     VULKAN_HPP_CONSTEXPR_14 ShaderModuleIdentifierEXT( ShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97347 
ShaderModuleIdentifierEXTVULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT97348     ShaderModuleIdentifierEXT( VkShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
97349       : ShaderModuleIdentifierEXT( *reinterpret_cast<ShaderModuleIdentifierEXT const *>( &rhs ) )
97350     {}
97351 
97352 
97353     ShaderModuleIdentifierEXT & operator=( ShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97354 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
97355 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT97356     ShaderModuleIdentifierEXT & operator=( VkShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
97357     {
97358       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT const *>( &rhs );
97359       return *this;
97360     }
97361 
97362 
operator VkShaderModuleIdentifierEXT const&VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT97363     operator VkShaderModuleIdentifierEXT const &() const VULKAN_HPP_NOEXCEPT
97364     {
97365       return *reinterpret_cast<const VkShaderModuleIdentifierEXT*>( this );
97366     }
97367 
operator VkShaderModuleIdentifierEXT&VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT97368     operator VkShaderModuleIdentifierEXT &() VULKAN_HPP_NOEXCEPT
97369     {
97370       return *reinterpret_cast<VkShaderModuleIdentifierEXT*>( this );
97371     }
97372 
97373 #if defined( VULKAN_HPP_USE_REFLECT )
97374 #if 14 <= VULKAN_HPP_CPP_VERSION
97375     auto
97376 #else
97377     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT> const &>
97378 #endif
reflectVULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT97379       reflect() const VULKAN_HPP_NOEXCEPT
97380     {
97381       return std::tie( sType, pNext, identifierSize, identifier );
97382     }
97383 #endif
97384 
97385 
97386 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
97387 auto operator<=>( ShaderModuleIdentifierEXT const & ) const = default;
97388 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT97389     bool operator==( ShaderModuleIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
97390     {
97391 #if defined( VULKAN_HPP_USE_REFLECT )
97392       return this->reflect() == rhs.reflect();
97393 #else
97394       return ( sType == rhs.sType )
97395           && ( pNext == rhs.pNext )
97396           && ( identifierSize == rhs.identifierSize )
97397           && ( identifier == rhs.identifier );
97398 #endif
97399     }
97400 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT97401     bool operator!=( ShaderModuleIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
97402     {
97403       return !operator==( rhs );
97404     }
97405 #endif
97406 
97407     public:
97408     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleIdentifierEXT;
97409     void * pNext = {};
97410     uint32_t identifierSize = {};
97411     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT> identifier = {};
97412 
97413   };
97414 
97415   template <>
97416   struct CppType<StructureType, StructureType::eShaderModuleIdentifierEXT>
97417   {
97418     using Type = ShaderModuleIdentifierEXT;
97419   };
97420 
97421   struct ShaderModuleValidationCacheCreateInfoEXT
97422   {
97423     using NativeType = VkShaderModuleValidationCacheCreateInfoEXT;
97424 
97425     static const bool allowDuplicate = false;
97426     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
97427 
97428 
97429 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT97430 VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
97431     : pNext( pNext_ ), validationCache( validationCache_ )
97432     {}
97433 
97434     VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97435 
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT97436     ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
97437       : ShaderModuleValidationCacheCreateInfoEXT( *reinterpret_cast<ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs ) )
97438     {}
97439 
97440 
97441     ShaderModuleValidationCacheCreateInfoEXT & operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97442 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
97443 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT97444     ShaderModuleValidationCacheCreateInfoEXT & operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
97445     {
97446       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs );
97447       return *this;
97448     }
97449 
97450 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT97451     VULKAN_HPP_CONSTEXPR_14 ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
97452     {
97453       pNext = pNext_;
97454       return *this;
97455     }
97456 
setValidationCacheVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT97457     VULKAN_HPP_CONSTEXPR_14 ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT
97458     {
97459       validationCache = validationCache_;
97460       return *this;
97461     }
97462 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
97463 
97464 
operator VkShaderModuleValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT97465     operator VkShaderModuleValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
97466     {
97467       return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>( this );
97468     }
97469 
operator VkShaderModuleValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT97470     operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
97471     {
97472       return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>( this );
97473     }
97474 
97475 #if defined( VULKAN_HPP_USE_REFLECT )
97476 #if 14 <= VULKAN_HPP_CPP_VERSION
97477     auto
97478 #else
97479     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ValidationCacheEXT const &>
97480 #endif
reflectVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT97481       reflect() const VULKAN_HPP_NOEXCEPT
97482     {
97483       return std::tie( sType, pNext, validationCache );
97484     }
97485 #endif
97486 
97487 
97488 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
97489 auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const & ) const = default;
97490 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT97491     bool operator==( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
97492     {
97493 #if defined( VULKAN_HPP_USE_REFLECT )
97494       return this->reflect() == rhs.reflect();
97495 #else
97496       return ( sType == rhs.sType )
97497           && ( pNext == rhs.pNext )
97498           && ( validationCache == rhs.validationCache );
97499 #endif
97500     }
97501 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT97502     bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
97503     {
97504       return !operator==( rhs );
97505     }
97506 #endif
97507 
97508     public:
97509     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
97510     const void * pNext = {};
97511     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {};
97512 
97513   };
97514 
97515   template <>
97516   struct CppType<StructureType, StructureType::eShaderModuleValidationCacheCreateInfoEXT>
97517   {
97518     using Type = ShaderModuleValidationCacheCreateInfoEXT;
97519   };
97520 
97521   struct ShaderResourceUsageAMD
97522   {
97523     using NativeType = VkShaderResourceUsageAMD;
97524 
97525 
97526 
97527 
97528 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD97529 VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD(uint32_t numUsedVgprs_ = {}, uint32_t numUsedSgprs_ = {}, uint32_t ldsSizePerLocalWorkGroup_ = {}, size_t ldsUsageSizeInBytes_ = {}, size_t scratchMemUsageInBytes_ = {}) VULKAN_HPP_NOEXCEPT
97530     : numUsedVgprs( numUsedVgprs_ ), numUsedSgprs( numUsedSgprs_ ), ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ ), ldsUsageSizeInBytes( ldsUsageSizeInBytes_ ), scratchMemUsageInBytes( scratchMemUsageInBytes_ )
97531     {}
97532 
97533     VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97534 
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD97535     ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
97536       : ShaderResourceUsageAMD( *reinterpret_cast<ShaderResourceUsageAMD const *>( &rhs ) )
97537     {}
97538 
97539 
97540     ShaderResourceUsageAMD & operator=( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97541 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
97542 
operator =VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD97543     ShaderResourceUsageAMD & operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
97544     {
97545       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const *>( &rhs );
97546       return *this;
97547     }
97548 
97549 
operator VkShaderResourceUsageAMD const&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD97550     operator VkShaderResourceUsageAMD const &() const VULKAN_HPP_NOEXCEPT
97551     {
97552       return *reinterpret_cast<const VkShaderResourceUsageAMD*>( this );
97553     }
97554 
operator VkShaderResourceUsageAMD&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD97555     operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT
97556     {
97557       return *reinterpret_cast<VkShaderResourceUsageAMD*>( this );
97558     }
97559 
97560 #if defined( VULKAN_HPP_USE_REFLECT )
97561 #if 14 <= VULKAN_HPP_CPP_VERSION
97562     auto
97563 #else
97564     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, size_t const &, size_t const &>
97565 #endif
reflectVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD97566       reflect() const VULKAN_HPP_NOEXCEPT
97567     {
97568       return std::tie( numUsedVgprs, numUsedSgprs, ldsSizePerLocalWorkGroup, ldsUsageSizeInBytes, scratchMemUsageInBytes );
97569     }
97570 #endif
97571 
97572 
97573 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
97574 auto operator<=>( ShaderResourceUsageAMD const & ) const = default;
97575 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD97576     bool operator==( ShaderResourceUsageAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
97577     {
97578 #if defined( VULKAN_HPP_USE_REFLECT )
97579       return this->reflect() == rhs.reflect();
97580 #else
97581       return ( numUsedVgprs == rhs.numUsedVgprs )
97582           && ( numUsedSgprs == rhs.numUsedSgprs )
97583           && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup )
97584           && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes )
97585           && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes );
97586 #endif
97587     }
97588 
operator !=VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD97589     bool operator!=( ShaderResourceUsageAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
97590     {
97591       return !operator==( rhs );
97592     }
97593 #endif
97594 
97595     public:
97596     uint32_t numUsedVgprs = {};
97597     uint32_t numUsedSgprs = {};
97598     uint32_t ldsSizePerLocalWorkGroup = {};
97599     size_t ldsUsageSizeInBytes = {};
97600     size_t scratchMemUsageInBytes = {};
97601 
97602   };
97603 
97604   struct ShaderStatisticsInfoAMD
97605   {
97606     using NativeType = VkShaderStatisticsInfoAMD;
97607 
97608 
97609 
97610 
97611 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD97612 VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD(VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask_ = {}, VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage_ = {}, uint32_t numPhysicalVgprs_ = {}, uint32_t numPhysicalSgprs_ = {}, uint32_t numAvailableVgprs_ = {}, uint32_t numAvailableSgprs_ = {}, std::array<uint32_t,3> const & computeWorkGroupSize_ = {}) VULKAN_HPP_NOEXCEPT
97613     : shaderStageMask( shaderStageMask_ ), resourceUsage( resourceUsage_ ), numPhysicalVgprs( numPhysicalVgprs_ ), numPhysicalSgprs( numPhysicalSgprs_ ), numAvailableVgprs( numAvailableVgprs_ ), numAvailableSgprs( numAvailableSgprs_ ), computeWorkGroupSize( computeWorkGroupSize_ )
97614     {}
97615 
97616     VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97617 
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD97618     ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
97619       : ShaderStatisticsInfoAMD( *reinterpret_cast<ShaderStatisticsInfoAMD const *>( &rhs ) )
97620     {}
97621 
97622 
97623     ShaderStatisticsInfoAMD & operator=( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97624 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
97625 
operator =VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD97626     ShaderStatisticsInfoAMD & operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
97627     {
97628       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD const *>( &rhs );
97629       return *this;
97630     }
97631 
97632 
operator VkShaderStatisticsInfoAMD const&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD97633     operator VkShaderStatisticsInfoAMD const &() const VULKAN_HPP_NOEXCEPT
97634     {
97635       return *reinterpret_cast<const VkShaderStatisticsInfoAMD*>( this );
97636     }
97637 
operator VkShaderStatisticsInfoAMD&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD97638     operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT
97639     {
97640       return *reinterpret_cast<VkShaderStatisticsInfoAMD*>( this );
97641     }
97642 
97643 #if defined( VULKAN_HPP_USE_REFLECT )
97644 #if 14 <= VULKAN_HPP_CPP_VERSION
97645     auto
97646 #else
97647     std::tuple<VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &>
97648 #endif
reflectVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD97649       reflect() const VULKAN_HPP_NOEXCEPT
97650     {
97651       return std::tie( shaderStageMask, resourceUsage, numPhysicalVgprs, numPhysicalSgprs, numAvailableVgprs, numAvailableSgprs, computeWorkGroupSize );
97652     }
97653 #endif
97654 
97655 
97656 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
97657 auto operator<=>( ShaderStatisticsInfoAMD const & ) const = default;
97658 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD97659     bool operator==( ShaderStatisticsInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
97660     {
97661 #if defined( VULKAN_HPP_USE_REFLECT )
97662       return this->reflect() == rhs.reflect();
97663 #else
97664       return ( shaderStageMask == rhs.shaderStageMask )
97665           && ( resourceUsage == rhs.resourceUsage )
97666           && ( numPhysicalVgprs == rhs.numPhysicalVgprs )
97667           && ( numPhysicalSgprs == rhs.numPhysicalSgprs )
97668           && ( numAvailableVgprs == rhs.numAvailableVgprs )
97669           && ( numAvailableSgprs == rhs.numAvailableSgprs )
97670           && ( computeWorkGroupSize == rhs.computeWorkGroupSize );
97671 #endif
97672     }
97673 
operator !=VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD97674     bool operator!=( ShaderStatisticsInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
97675     {
97676       return !operator==( rhs );
97677     }
97678 #endif
97679 
97680     public:
97681     VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {};
97682     VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {};
97683     uint32_t numPhysicalVgprs = {};
97684     uint32_t numPhysicalSgprs = {};
97685     uint32_t numAvailableVgprs = {};
97686     uint32_t numAvailableSgprs = {};
97687     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> computeWorkGroupSize = {};
97688 
97689   };
97690 
97691   struct SharedPresentSurfaceCapabilitiesKHR
97692   {
97693     using NativeType = VkSharedPresentSurfaceCapabilitiesKHR;
97694 
97695     static const bool allowDuplicate = false;
97696     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
97697 
97698 
97699 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR97700 VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
97701     : pNext( pNext_ ), sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ )
97702     {}
97703 
97704     VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97705 
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR97706     SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
97707       : SharedPresentSurfaceCapabilitiesKHR( *reinterpret_cast<SharedPresentSurfaceCapabilitiesKHR const *>( &rhs ) )
97708     {}
97709 
97710 
97711     SharedPresentSurfaceCapabilitiesKHR & operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97712 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
97713 
operator =VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR97714     SharedPresentSurfaceCapabilitiesKHR & operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
97715     {
97716       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const *>( &rhs );
97717       return *this;
97718     }
97719 
97720 
operator VkSharedPresentSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR97721     operator VkSharedPresentSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
97722     {
97723       return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>( this );
97724     }
97725 
operator VkSharedPresentSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR97726     operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
97727     {
97728       return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>( this );
97729     }
97730 
97731 #if defined( VULKAN_HPP_USE_REFLECT )
97732 #if 14 <= VULKAN_HPP_CPP_VERSION
97733     auto
97734 #else
97735     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
97736 #endif
reflectVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR97737       reflect() const VULKAN_HPP_NOEXCEPT
97738     {
97739       return std::tie( sType, pNext, sharedPresentSupportedUsageFlags );
97740     }
97741 #endif
97742 
97743 
97744 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
97745 auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const & ) const = default;
97746 #else
operator ==VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR97747     bool operator==( SharedPresentSurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
97748     {
97749 #if defined( VULKAN_HPP_USE_REFLECT )
97750       return this->reflect() == rhs.reflect();
97751 #else
97752       return ( sType == rhs.sType )
97753           && ( pNext == rhs.pNext )
97754           && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags );
97755 #endif
97756     }
97757 
operator !=VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR97758     bool operator!=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
97759     {
97760       return !operator==( rhs );
97761     }
97762 #endif
97763 
97764     public:
97765     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
97766     void * pNext = {};
97767     VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {};
97768 
97769   };
97770 
97771   template <>
97772   struct CppType<StructureType, StructureType::eSharedPresentSurfaceCapabilitiesKHR>
97773   {
97774     using Type = SharedPresentSurfaceCapabilitiesKHR;
97775   };
97776 
97777   struct SparseImageFormatProperties
97778   {
97779     using NativeType = VkSparseImageFormatProperties;
97780 
97781 
97782 
97783 
97784 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties97785 VULKAN_HPP_CONSTEXPR SparseImageFormatProperties(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {}, VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
97786     : aspectMask( aspectMask_ ), imageGranularity( imageGranularity_ ), flags( flags_ )
97787     {}
97788 
97789     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97790 
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties97791     SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
97792       : SparseImageFormatProperties( *reinterpret_cast<SparseImageFormatProperties const *>( &rhs ) )
97793     {}
97794 
97795 
97796     SparseImageFormatProperties & operator=( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97797 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
97798 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties97799     SparseImageFormatProperties & operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
97800     {
97801       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const *>( &rhs );
97802       return *this;
97803     }
97804 
97805 
operator VkSparseImageFormatProperties const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties97806     operator VkSparseImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
97807     {
97808       return *reinterpret_cast<const VkSparseImageFormatProperties*>( this );
97809     }
97810 
operator VkSparseImageFormatProperties&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties97811     operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT
97812     {
97813       return *reinterpret_cast<VkSparseImageFormatProperties*>( this );
97814     }
97815 
97816 #if defined( VULKAN_HPP_USE_REFLECT )
97817 #if 14 <= VULKAN_HPP_CPP_VERSION
97818     auto
97819 #else
97820     std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, VULKAN_HPP_NAMESPACE::Extent3D const &, VULKAN_HPP_NAMESPACE::SparseImageFormatFlags const &>
97821 #endif
reflectVULKAN_HPP_NAMESPACE::SparseImageFormatProperties97822       reflect() const VULKAN_HPP_NOEXCEPT
97823     {
97824       return std::tie( aspectMask, imageGranularity, flags );
97825     }
97826 #endif
97827 
97828 
97829 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
97830 auto operator<=>( SparseImageFormatProperties const & ) const = default;
97831 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties97832     bool operator==( SparseImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
97833     {
97834 #if defined( VULKAN_HPP_USE_REFLECT )
97835       return this->reflect() == rhs.reflect();
97836 #else
97837       return ( aspectMask == rhs.aspectMask )
97838           && ( imageGranularity == rhs.imageGranularity )
97839           && ( flags == rhs.flags );
97840 #endif
97841     }
97842 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties97843     bool operator!=( SparseImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
97844     {
97845       return !operator==( rhs );
97846     }
97847 #endif
97848 
97849     public:
97850     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
97851     VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {};
97852     VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {};
97853 
97854   };
97855 
97856   struct SparseImageFormatProperties2
97857   {
97858     using NativeType = VkSparseImageFormatProperties2;
97859 
97860     static const bool allowDuplicate = false;
97861     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2;
97862 
97863 
97864 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties297865 VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
97866     : pNext( pNext_ ), properties( properties_ )
97867     {}
97868 
97869     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97870 
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties297871     SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
97872       : SparseImageFormatProperties2( *reinterpret_cast<SparseImageFormatProperties2 const *>( &rhs ) )
97873     {}
97874 
97875 
97876     SparseImageFormatProperties2 & operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97877 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
97878 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties297879     SparseImageFormatProperties2 & operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
97880     {
97881       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const *>( &rhs );
97882       return *this;
97883     }
97884 
97885 
operator VkSparseImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties297886     operator VkSparseImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
97887     {
97888       return *reinterpret_cast<const VkSparseImageFormatProperties2*>( this );
97889     }
97890 
operator VkSparseImageFormatProperties2&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties297891     operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
97892     {
97893       return *reinterpret_cast<VkSparseImageFormatProperties2*>( this );
97894     }
97895 
97896 #if defined( VULKAN_HPP_USE_REFLECT )
97897 #if 14 <= VULKAN_HPP_CPP_VERSION
97898     auto
97899 #else
97900     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const &>
97901 #endif
reflectVULKAN_HPP_NAMESPACE::SparseImageFormatProperties297902       reflect() const VULKAN_HPP_NOEXCEPT
97903     {
97904       return std::tie( sType, pNext, properties );
97905     }
97906 #endif
97907 
97908 
97909 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
97910 auto operator<=>( SparseImageFormatProperties2 const & ) const = default;
97911 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties297912     bool operator==( SparseImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
97913     {
97914 #if defined( VULKAN_HPP_USE_REFLECT )
97915       return this->reflect() == rhs.reflect();
97916 #else
97917       return ( sType == rhs.sType )
97918           && ( pNext == rhs.pNext )
97919           && ( properties == rhs.properties );
97920 #endif
97921     }
97922 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties297923     bool operator!=( SparseImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
97924     {
97925       return !operator==( rhs );
97926     }
97927 #endif
97928 
97929     public:
97930     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2;
97931     void * pNext = {};
97932     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {};
97933 
97934   };
97935 
97936   template <>
97937   struct CppType<StructureType, StructureType::eSparseImageFormatProperties2>
97938   {
97939     using Type = SparseImageFormatProperties2;
97940   };
97941   using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
97942 
97943   struct SparseImageMemoryRequirements
97944   {
97945     using NativeType = VkSparseImageMemoryRequirements;
97946 
97947 
97948 
97949 
97950 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements97951 VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties_ = {}, uint32_t imageMipTailFirstLod_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride_ = {}) VULKAN_HPP_NOEXCEPT
97952     : formatProperties( formatProperties_ ), imageMipTailFirstLod( imageMipTailFirstLod_ ), imageMipTailSize( imageMipTailSize_ ), imageMipTailOffset( imageMipTailOffset_ ), imageMipTailStride( imageMipTailStride_ )
97953     {}
97954 
97955     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97956 
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements97957     SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
97958       : SparseImageMemoryRequirements( *reinterpret_cast<SparseImageMemoryRequirements const *>( &rhs ) )
97959     {}
97960 
97961 
97962     SparseImageMemoryRequirements & operator=( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
97963 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
97964 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements97965     SparseImageMemoryRequirements & operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
97966     {
97967       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const *>( &rhs );
97968       return *this;
97969     }
97970 
97971 
operator VkSparseImageMemoryRequirements const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements97972     operator VkSparseImageMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
97973     {
97974       return *reinterpret_cast<const VkSparseImageMemoryRequirements*>( this );
97975     }
97976 
operator VkSparseImageMemoryRequirements&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements97977     operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
97978     {
97979       return *reinterpret_cast<VkSparseImageMemoryRequirements*>( this );
97980     }
97981 
97982 #if defined( VULKAN_HPP_USE_REFLECT )
97983 #if 14 <= VULKAN_HPP_CPP_VERSION
97984     auto
97985 #else
97986     std::tuple<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
97987 #endif
reflectVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements97988       reflect() const VULKAN_HPP_NOEXCEPT
97989     {
97990       return std::tie( formatProperties, imageMipTailFirstLod, imageMipTailSize, imageMipTailOffset, imageMipTailStride );
97991     }
97992 #endif
97993 
97994 
97995 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
97996 auto operator<=>( SparseImageMemoryRequirements const & ) const = default;
97997 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements97998     bool operator==( SparseImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
97999     {
98000 #if defined( VULKAN_HPP_USE_REFLECT )
98001       return this->reflect() == rhs.reflect();
98002 #else
98003       return ( formatProperties == rhs.formatProperties )
98004           && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod )
98005           && ( imageMipTailSize == rhs.imageMipTailSize )
98006           && ( imageMipTailOffset == rhs.imageMipTailOffset )
98007           && ( imageMipTailStride == rhs.imageMipTailStride );
98008 #endif
98009     }
98010 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements98011     bool operator!=( SparseImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
98012     {
98013       return !operator==( rhs );
98014     }
98015 #endif
98016 
98017     public:
98018     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {};
98019     uint32_t imageMipTailFirstLod = {};
98020     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {};
98021     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {};
98022     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {};
98023 
98024   };
98025 
98026   struct SparseImageMemoryRequirements2
98027   {
98028     using NativeType = VkSparseImageMemoryRequirements2;
98029 
98030     static const bool allowDuplicate = false;
98031     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2;
98032 
98033 
98034 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements298035 VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2(VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
98036     : pNext( pNext_ ), memoryRequirements( memoryRequirements_ )
98037     {}
98038 
98039     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98040 
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements298041     SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
98042       : SparseImageMemoryRequirements2( *reinterpret_cast<SparseImageMemoryRequirements2 const *>( &rhs ) )
98043     {}
98044 
98045 
98046     SparseImageMemoryRequirements2 & operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98047 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
98048 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements298049     SparseImageMemoryRequirements2 & operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
98050     {
98051       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const *>( &rhs );
98052       return *this;
98053     }
98054 
98055 
operator VkSparseImageMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements298056     operator VkSparseImageMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT
98057     {
98058       return *reinterpret_cast<const VkSparseImageMemoryRequirements2*>( this );
98059     }
98060 
operator VkSparseImageMemoryRequirements2&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements298061     operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
98062     {
98063       return *reinterpret_cast<VkSparseImageMemoryRequirements2*>( this );
98064     }
98065 
98066 #if defined( VULKAN_HPP_USE_REFLECT )
98067 #if 14 <= VULKAN_HPP_CPP_VERSION
98068     auto
98069 #else
98070     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const &>
98071 #endif
reflectVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements298072       reflect() const VULKAN_HPP_NOEXCEPT
98073     {
98074       return std::tie( sType, pNext, memoryRequirements );
98075     }
98076 #endif
98077 
98078 
98079 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
98080 auto operator<=>( SparseImageMemoryRequirements2 const & ) const = default;
98081 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements298082     bool operator==( SparseImageMemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
98083     {
98084 #if defined( VULKAN_HPP_USE_REFLECT )
98085       return this->reflect() == rhs.reflect();
98086 #else
98087       return ( sType == rhs.sType )
98088           && ( pNext == rhs.pNext )
98089           && ( memoryRequirements == rhs.memoryRequirements );
98090 #endif
98091     }
98092 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements298093     bool operator!=( SparseImageMemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
98094     {
98095       return !operator==( rhs );
98096     }
98097 #endif
98098 
98099     public:
98100     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2;
98101     void * pNext = {};
98102     VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {};
98103 
98104   };
98105 
98106   template <>
98107   struct CppType<StructureType, StructureType::eSparseImageMemoryRequirements2>
98108   {
98109     using Type = SparseImageMemoryRequirements2;
98110   };
98111   using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
98112 
98113 #if defined( VK_USE_PLATFORM_GGP )
98114   struct StreamDescriptorSurfaceCreateInfoGGP
98115   {
98116     using NativeType = VkStreamDescriptorSurfaceCreateInfoGGP;
98117 
98118     static const bool allowDuplicate = false;
98119     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
98120 
98121 
98122 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98123 VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP(VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {}, GgpStreamDescriptor streamDescriptor_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
98124     : pNext( pNext_ ), flags( flags_ ), streamDescriptor( streamDescriptor_ )
98125     {}
98126 
98127     VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98128 
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98129     StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
98130       : StreamDescriptorSurfaceCreateInfoGGP( *reinterpret_cast<StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs ) )
98131     {}
98132 
98133 
98134     StreamDescriptorSurfaceCreateInfoGGP & operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98135 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
98136 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98137     StreamDescriptorSurfaceCreateInfoGGP & operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
98138     {
98139       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs );
98140       return *this;
98141     }
98142 
98143 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98144     VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
98145     {
98146       pNext = pNext_;
98147       return *this;
98148     }
98149 
setFlagsVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98150     VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP & setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT
98151     {
98152       flags = flags_;
98153       return *this;
98154     }
98155 
setStreamDescriptorVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98156     VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT
98157     {
98158       streamDescriptor = streamDescriptor_;
98159       return *this;
98160     }
98161 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
98162 
98163 
operator VkStreamDescriptorSurfaceCreateInfoGGP const&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98164     operator VkStreamDescriptorSurfaceCreateInfoGGP const &() const VULKAN_HPP_NOEXCEPT
98165     {
98166       return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
98167     }
98168 
operator VkStreamDescriptorSurfaceCreateInfoGGP&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98169     operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT
98170     {
98171       return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
98172     }
98173 
98174 #if defined( VULKAN_HPP_USE_REFLECT )
98175 #if 14 <= VULKAN_HPP_CPP_VERSION
98176     auto
98177 #else
98178     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP const &, GgpStreamDescriptor const &>
98179 #endif
reflectVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98180       reflect() const VULKAN_HPP_NOEXCEPT
98181     {
98182       return std::tie( sType, pNext, flags, streamDescriptor );
98183     }
98184 #endif
98185 
98186 
98187 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98188     std::strong_ordering operator<=>( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
98189     {
98190       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
98191       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
98192       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
98193       if ( auto cmp = memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ); cmp != 0 )
98194         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
98195 
98196       return std::strong_ordering::equivalent;
98197     }
98198 #endif
98199 
operator ==VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98200     bool operator==( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
98201     {
98202       return ( sType == rhs.sType )
98203           && ( pNext == rhs.pNext )
98204           && ( flags == rhs.flags )
98205           && ( memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ) == 0 );
98206     }
98207 
operator !=VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP98208     bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
98209     {
98210       return !operator==( rhs );
98211     }
98212 
98213     public:
98214     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
98215     const void * pNext = {};
98216     VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {};
98217     GgpStreamDescriptor streamDescriptor = {};
98218 
98219   };
98220 
98221   template <>
98222   struct CppType<StructureType, StructureType::eStreamDescriptorSurfaceCreateInfoGGP>
98223   {
98224     using Type = StreamDescriptorSurfaceCreateInfoGGP;
98225   };
98226 #endif /*VK_USE_PLATFORM_GGP*/
98227 
98228   struct StridedDeviceAddressRegionKHR
98229   {
98230     using NativeType = VkStridedDeviceAddressRegionKHR;
98231 
98232 
98233 
98234 
98235 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StridedDeviceAddressRegionKHRVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98236 VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
98237     : deviceAddress( deviceAddress_ ), stride( stride_ ), size( size_ )
98238     {}
98239 
98240     VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98241 
StridedDeviceAddressRegionKHRVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98242     StridedDeviceAddressRegionKHR( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
98243       : StridedDeviceAddressRegionKHR( *reinterpret_cast<StridedDeviceAddressRegionKHR const *>( &rhs ) )
98244     {}
98245 
98246 
98247     StridedDeviceAddressRegionKHR & operator=( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98248 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
98249 
operator =VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98250     StridedDeviceAddressRegionKHR & operator=( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
98251     {
98252       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR const *>( &rhs );
98253       return *this;
98254     }
98255 
98256 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setDeviceAddressVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98257     VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
98258     {
98259       deviceAddress = deviceAddress_;
98260       return *this;
98261     }
98262 
setStrideVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98263     VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
98264     {
98265       stride = stride_;
98266       return *this;
98267     }
98268 
setSizeVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98269     VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
98270     {
98271       size = size_;
98272       return *this;
98273     }
98274 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
98275 
98276 
operator VkStridedDeviceAddressRegionKHR const&VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98277     operator VkStridedDeviceAddressRegionKHR const &() const VULKAN_HPP_NOEXCEPT
98278     {
98279       return *reinterpret_cast<const VkStridedDeviceAddressRegionKHR*>( this );
98280     }
98281 
operator VkStridedDeviceAddressRegionKHR&VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98282     operator VkStridedDeviceAddressRegionKHR &() VULKAN_HPP_NOEXCEPT
98283     {
98284       return *reinterpret_cast<VkStridedDeviceAddressRegionKHR*>( this );
98285     }
98286 
98287 #if defined( VULKAN_HPP_USE_REFLECT )
98288 #if 14 <= VULKAN_HPP_CPP_VERSION
98289     auto
98290 #else
98291     std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
98292 #endif
reflectVULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98293       reflect() const VULKAN_HPP_NOEXCEPT
98294     {
98295       return std::tie( deviceAddress, stride, size );
98296     }
98297 #endif
98298 
98299 
98300 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
98301 auto operator<=>( StridedDeviceAddressRegionKHR const & ) const = default;
98302 #else
operator ==VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98303     bool operator==( StridedDeviceAddressRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
98304     {
98305 #if defined( VULKAN_HPP_USE_REFLECT )
98306       return this->reflect() == rhs.reflect();
98307 #else
98308       return ( deviceAddress == rhs.deviceAddress )
98309           && ( stride == rhs.stride )
98310           && ( size == rhs.size );
98311 #endif
98312     }
98313 
operator !=VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR98314     bool operator!=( StridedDeviceAddressRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
98315     {
98316       return !operator==( rhs );
98317     }
98318 #endif
98319 
98320     public:
98321     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
98322     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
98323     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
98324 
98325   };
98326 
98327   struct SubmitInfo
98328   {
98329     using NativeType = VkSubmitInfo;
98330 
98331     static const bool allowDuplicate = false;
98332     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo;
98333 
98334 
98335 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo98336 VULKAN_HPP_CONSTEXPR SubmitInfo(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {}, const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask_ = {}, uint32_t commandBufferCount_ = {}, const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers_ = {}, uint32_t signalSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
98337     : pNext( pNext_ ), waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), pWaitDstStageMask( pWaitDstStageMask_ ), commandBufferCount( commandBufferCount_ ), pCommandBuffers( pCommandBuffers_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ )
98338     {}
98339 
98340     VULKAN_HPP_CONSTEXPR SubmitInfo( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98341 
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo98342     SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
98343       : SubmitInfo( *reinterpret_cast<SubmitInfo const *>( &rhs ) )
98344     {}
98345 
98346 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo98347     SubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ = {}, const void * pNext_ = nullptr )
98348     : pNext( pNext_ ), waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), pWaitDstStageMask( waitDstStageMask_.data() ), commandBufferCount( static_cast<uint32_t>( commandBuffers_.size() ) ), pCommandBuffers( commandBuffers_.data() ), signalSemaphoreCount( static_cast<uint32_t>( signalSemaphores_.size() ) ), pSignalSemaphores( signalSemaphores_.data() )
98349     {
98350 #ifdef VULKAN_HPP_NO_EXCEPTIONS
98351       VULKAN_HPP_ASSERT( waitSemaphores_.size() == waitDstStageMask_.size() );
98352 #else
98353       if ( waitSemaphores_.size() != waitDstStageMask_.size() )
98354       {
98355         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::SubmitInfo::SubmitInfo: waitSemaphores_.size() != waitDstStageMask_.size()" );
98356       }
98357 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
98358     }
98359 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
98360 
98361 
98362     SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98363 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
98364 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo98365     SubmitInfo & operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
98366     {
98367       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo const *>( &rhs );
98368       return *this;
98369     }
98370 
98371 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SubmitInfo98372     VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
98373     {
98374       pNext = pNext_;
98375       return *this;
98376     }
98377 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo98378     VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
98379     {
98380       waitSemaphoreCount = waitSemaphoreCount_;
98381       return *this;
98382     }
98383 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo98384     VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
98385     {
98386       pWaitSemaphores = pWaitSemaphores_;
98387       return *this;
98388     }
98389 
98390 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo98391     SubmitInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
98392     {
98393       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
98394       pWaitSemaphores = waitSemaphores_.data();
98395       return *this;
98396     }
98397 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
98398 
setPWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo98399     VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
98400     {
98401       pWaitDstStageMask = pWaitDstStageMask_;
98402       return *this;
98403     }
98404 
98405 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo98406     SubmitInfo & setWaitDstStageMask( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
98407     {
98408       waitSemaphoreCount = static_cast<uint32_t>( waitDstStageMask_.size() );
98409       pWaitDstStageMask = waitDstStageMask_.data();
98410       return *this;
98411     }
98412 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
98413 
setCommandBufferCountVULKAN_HPP_NAMESPACE::SubmitInfo98414     VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
98415     {
98416       commandBufferCount = commandBufferCount_;
98417       return *this;
98418     }
98419 
setPCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo98420     VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT
98421     {
98422       pCommandBuffers = pCommandBuffers_;
98423       return *this;
98424     }
98425 
98426 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo98427     SubmitInfo & setCommandBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ ) VULKAN_HPP_NOEXCEPT
98428     {
98429       commandBufferCount = static_cast<uint32_t>( commandBuffers_.size() );
98430       pCommandBuffers = commandBuffers_.data();
98431       return *this;
98432     }
98433 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
98434 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo98435     VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
98436     {
98437       signalSemaphoreCount = signalSemaphoreCount_;
98438       return *this;
98439     }
98440 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo98441     VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
98442     {
98443       pSignalSemaphores = pSignalSemaphores_;
98444       return *this;
98445     }
98446 
98447 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo98448     SubmitInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
98449     {
98450       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
98451       pSignalSemaphores = signalSemaphores_.data();
98452       return *this;
98453     }
98454 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
98455 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
98456 
98457 
operator VkSubmitInfo const&VULKAN_HPP_NAMESPACE::SubmitInfo98458     operator VkSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
98459     {
98460       return *reinterpret_cast<const VkSubmitInfo*>( this );
98461     }
98462 
operator VkSubmitInfo&VULKAN_HPP_NAMESPACE::SubmitInfo98463     operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT
98464     {
98465       return *reinterpret_cast<VkSubmitInfo*>( this );
98466     }
98467 
98468 #if defined( VULKAN_HPP_USE_REFLECT )
98469 #if 14 <= VULKAN_HPP_CPP_VERSION
98470     auto
98471 #else
98472     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Semaphore * const &, const VULKAN_HPP_NAMESPACE::PipelineStageFlags * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::CommandBuffer * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Semaphore * const &>
98473 #endif
reflectVULKAN_HPP_NAMESPACE::SubmitInfo98474       reflect() const VULKAN_HPP_NOEXCEPT
98475     {
98476       return std::tie( sType, pNext, waitSemaphoreCount, pWaitSemaphores, pWaitDstStageMask, commandBufferCount, pCommandBuffers, signalSemaphoreCount, pSignalSemaphores );
98477     }
98478 #endif
98479 
98480 
98481 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
98482 auto operator<=>( SubmitInfo const & ) const = default;
98483 #else
operator ==VULKAN_HPP_NAMESPACE::SubmitInfo98484     bool operator==( SubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
98485     {
98486 #if defined( VULKAN_HPP_USE_REFLECT )
98487       return this->reflect() == rhs.reflect();
98488 #else
98489       return ( sType == rhs.sType )
98490           && ( pNext == rhs.pNext )
98491           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
98492           && ( pWaitSemaphores == rhs.pWaitSemaphores )
98493           && ( pWaitDstStageMask == rhs.pWaitDstStageMask )
98494           && ( commandBufferCount == rhs.commandBufferCount )
98495           && ( pCommandBuffers == rhs.pCommandBuffers )
98496           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
98497           && ( pSignalSemaphores == rhs.pSignalSemaphores );
98498 #endif
98499     }
98500 
operator !=VULKAN_HPP_NAMESPACE::SubmitInfo98501     bool operator!=( SubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
98502     {
98503       return !operator==( rhs );
98504     }
98505 #endif
98506 
98507     public:
98508     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo;
98509     const void * pNext = {};
98510     uint32_t waitSemaphoreCount = {};
98511     const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {};
98512     const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask = {};
98513     uint32_t commandBufferCount = {};
98514     const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers = {};
98515     uint32_t signalSemaphoreCount = {};
98516     const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores = {};
98517 
98518   };
98519 
98520   template <>
98521   struct CppType<StructureType, StructureType::eSubmitInfo>
98522   {
98523     using Type = SubmitInfo;
98524   };
98525 
98526   struct SubmitInfo2
98527   {
98528     using NativeType = VkSubmitInfo2;
98529 
98530     static const bool allowDuplicate = false;
98531     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo2;
98532 
98533 
98534 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubmitInfo2VULKAN_HPP_NAMESPACE::SubmitInfo298535 VULKAN_HPP_CONSTEXPR SubmitInfo2(VULKAN_HPP_NAMESPACE::SubmitFlags flags_ = {}, uint32_t waitSemaphoreInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pWaitSemaphoreInfos_ = {}, uint32_t commandBufferInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos_ = {}, uint32_t signalSemaphoreInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
98536     : pNext( pNext_ ), flags( flags_ ), waitSemaphoreInfoCount( waitSemaphoreInfoCount_ ), pWaitSemaphoreInfos( pWaitSemaphoreInfos_ ), commandBufferInfoCount( commandBufferInfoCount_ ), pCommandBufferInfos( pCommandBufferInfos_ ), signalSemaphoreInfoCount( signalSemaphoreInfoCount_ ), pSignalSemaphoreInfos( pSignalSemaphoreInfos_ )
98537     {}
98538 
98539     VULKAN_HPP_CONSTEXPR SubmitInfo2( SubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98540 
SubmitInfo2VULKAN_HPP_NAMESPACE::SubmitInfo298541     SubmitInfo2( VkSubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
98542       : SubmitInfo2( *reinterpret_cast<SubmitInfo2 const *>( &rhs ) )
98543     {}
98544 
98545 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubmitInfo2VULKAN_HPP_NAMESPACE::SubmitInfo298546     SubmitInfo2( VULKAN_HPP_NAMESPACE::SubmitFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & waitSemaphoreInfos_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo> const & commandBufferInfos_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & signalSemaphoreInfos_ = {}, const void * pNext_ = nullptr )
98547     : pNext( pNext_ ), flags( flags_ ), waitSemaphoreInfoCount( static_cast<uint32_t>( waitSemaphoreInfos_.size() ) ), pWaitSemaphoreInfos( waitSemaphoreInfos_.data() ), commandBufferInfoCount( static_cast<uint32_t>( commandBufferInfos_.size() ) ), pCommandBufferInfos( commandBufferInfos_.data() ), signalSemaphoreInfoCount( static_cast<uint32_t>( signalSemaphoreInfos_.size() ) ), pSignalSemaphoreInfos( signalSemaphoreInfos_.data() )
98548     {}
98549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
98550 
98551 
98552     SubmitInfo2 & operator=( SubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98553 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
98554 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo298555     SubmitInfo2 & operator=( VkSubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
98556     {
98557       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo2 const *>( &rhs );
98558       return *this;
98559     }
98560 
98561 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SubmitInfo298562     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
98563     {
98564       pNext = pNext_;
98565       return *this;
98566     }
98567 
setFlagsVULKAN_HPP_NAMESPACE::SubmitInfo298568     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setFlags( VULKAN_HPP_NAMESPACE::SubmitFlags flags_ ) VULKAN_HPP_NOEXCEPT
98569     {
98570       flags = flags_;
98571       return *this;
98572     }
98573 
setWaitSemaphoreInfoCountVULKAN_HPP_NAMESPACE::SubmitInfo298574     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setWaitSemaphoreInfoCount( uint32_t waitSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT
98575     {
98576       waitSemaphoreInfoCount = waitSemaphoreInfoCount_;
98577       return *this;
98578     }
98579 
setPWaitSemaphoreInfosVULKAN_HPP_NAMESPACE::SubmitInfo298580     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setPWaitSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pWaitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
98581     {
98582       pWaitSemaphoreInfos = pWaitSemaphoreInfos_;
98583       return *this;
98584     }
98585 
98586 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setWaitSemaphoreInfosVULKAN_HPP_NAMESPACE::SubmitInfo298587     SubmitInfo2 & setWaitSemaphoreInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & waitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
98588     {
98589       waitSemaphoreInfoCount = static_cast<uint32_t>( waitSemaphoreInfos_.size() );
98590       pWaitSemaphoreInfos = waitSemaphoreInfos_.data();
98591       return *this;
98592     }
98593 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
98594 
setCommandBufferInfoCountVULKAN_HPP_NAMESPACE::SubmitInfo298595     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setCommandBufferInfoCount( uint32_t commandBufferInfoCount_ ) VULKAN_HPP_NOEXCEPT
98596     {
98597       commandBufferInfoCount = commandBufferInfoCount_;
98598       return *this;
98599     }
98600 
setPCommandBufferInfosVULKAN_HPP_NAMESPACE::SubmitInfo298601     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setPCommandBufferInfos( const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
98602     {
98603       pCommandBufferInfos = pCommandBufferInfos_;
98604       return *this;
98605     }
98606 
98607 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setCommandBufferInfosVULKAN_HPP_NAMESPACE::SubmitInfo298608     SubmitInfo2 & setCommandBufferInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo> const & commandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
98609     {
98610       commandBufferInfoCount = static_cast<uint32_t>( commandBufferInfos_.size() );
98611       pCommandBufferInfos = commandBufferInfos_.data();
98612       return *this;
98613     }
98614 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
98615 
setSignalSemaphoreInfoCountVULKAN_HPP_NAMESPACE::SubmitInfo298616     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setSignalSemaphoreInfoCount( uint32_t signalSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT
98617     {
98618       signalSemaphoreInfoCount = signalSemaphoreInfoCount_;
98619       return *this;
98620     }
98621 
setPSignalSemaphoreInfosVULKAN_HPP_NAMESPACE::SubmitInfo298622     VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setPSignalSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
98623     {
98624       pSignalSemaphoreInfos = pSignalSemaphoreInfos_;
98625       return *this;
98626     }
98627 
98628 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSignalSemaphoreInfosVULKAN_HPP_NAMESPACE::SubmitInfo298629     SubmitInfo2 & setSignalSemaphoreInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & signalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
98630     {
98631       signalSemaphoreInfoCount = static_cast<uint32_t>( signalSemaphoreInfos_.size() );
98632       pSignalSemaphoreInfos = signalSemaphoreInfos_.data();
98633       return *this;
98634     }
98635 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
98636 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
98637 
98638 
operator VkSubmitInfo2 const&VULKAN_HPP_NAMESPACE::SubmitInfo298639     operator VkSubmitInfo2 const &() const VULKAN_HPP_NOEXCEPT
98640     {
98641       return *reinterpret_cast<const VkSubmitInfo2*>( this );
98642     }
98643 
operator VkSubmitInfo2&VULKAN_HPP_NAMESPACE::SubmitInfo298644     operator VkSubmitInfo2 &() VULKAN_HPP_NOEXCEPT
98645     {
98646       return *reinterpret_cast<VkSubmitInfo2*>( this );
98647     }
98648 
98649 #if defined( VULKAN_HPP_USE_REFLECT )
98650 #if 14 <= VULKAN_HPP_CPP_VERSION
98651     auto
98652 #else
98653     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SubmitFlags const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * const &>
98654 #endif
reflectVULKAN_HPP_NAMESPACE::SubmitInfo298655       reflect() const VULKAN_HPP_NOEXCEPT
98656     {
98657       return std::tie( sType, pNext, flags, waitSemaphoreInfoCount, pWaitSemaphoreInfos, commandBufferInfoCount, pCommandBufferInfos, signalSemaphoreInfoCount, pSignalSemaphoreInfos );
98658     }
98659 #endif
98660 
98661 
98662 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
98663 auto operator<=>( SubmitInfo2 const & ) const = default;
98664 #else
operator ==VULKAN_HPP_NAMESPACE::SubmitInfo298665     bool operator==( SubmitInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
98666     {
98667 #if defined( VULKAN_HPP_USE_REFLECT )
98668       return this->reflect() == rhs.reflect();
98669 #else
98670       return ( sType == rhs.sType )
98671           && ( pNext == rhs.pNext )
98672           && ( flags == rhs.flags )
98673           && ( waitSemaphoreInfoCount == rhs.waitSemaphoreInfoCount )
98674           && ( pWaitSemaphoreInfos == rhs.pWaitSemaphoreInfos )
98675           && ( commandBufferInfoCount == rhs.commandBufferInfoCount )
98676           && ( pCommandBufferInfos == rhs.pCommandBufferInfos )
98677           && ( signalSemaphoreInfoCount == rhs.signalSemaphoreInfoCount )
98678           && ( pSignalSemaphoreInfos == rhs.pSignalSemaphoreInfos );
98679 #endif
98680     }
98681 
operator !=VULKAN_HPP_NAMESPACE::SubmitInfo298682     bool operator!=( SubmitInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
98683     {
98684       return !operator==( rhs );
98685     }
98686 #endif
98687 
98688     public:
98689     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo2;
98690     const void * pNext = {};
98691     VULKAN_HPP_NAMESPACE::SubmitFlags flags = {};
98692     uint32_t waitSemaphoreInfoCount = {};
98693     const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pWaitSemaphoreInfos = {};
98694     uint32_t commandBufferInfoCount = {};
98695     const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos = {};
98696     uint32_t signalSemaphoreInfoCount = {};
98697     const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos = {};
98698 
98699   };
98700 
98701   template <>
98702   struct CppType<StructureType, StructureType::eSubmitInfo2>
98703   {
98704     using Type = SubmitInfo2;
98705   };
98706   using SubmitInfo2KHR = SubmitInfo2;
98707 
98708   struct SubpassBeginInfo
98709   {
98710     using NativeType = VkSubpassBeginInfo;
98711 
98712     static const bool allowDuplicate = false;
98713     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo;
98714 
98715 
98716 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo98717 VULKAN_HPP_CONSTEXPR SubpassBeginInfo(VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
98718     : pNext( pNext_ ), contents( contents_ )
98719     {}
98720 
98721     VULKAN_HPP_CONSTEXPR SubpassBeginInfo( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98722 
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo98723     SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
98724       : SubpassBeginInfo( *reinterpret_cast<SubpassBeginInfo const *>( &rhs ) )
98725     {}
98726 
98727 
98728     SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98729 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
98730 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfo98731     SubpassBeginInfo & operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
98732     {
98733       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassBeginInfo const *>( &rhs );
98734       return *this;
98735     }
98736 
98737 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SubpassBeginInfo98738     VULKAN_HPP_CONSTEXPR_14 SubpassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
98739     {
98740       pNext = pNext_;
98741       return *this;
98742     }
98743 
setContentsVULKAN_HPP_NAMESPACE::SubpassBeginInfo98744     VULKAN_HPP_CONSTEXPR_14 SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT
98745     {
98746       contents = contents_;
98747       return *this;
98748     }
98749 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
98750 
98751 
operator VkSubpassBeginInfo const&VULKAN_HPP_NAMESPACE::SubpassBeginInfo98752     operator VkSubpassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
98753     {
98754       return *reinterpret_cast<const VkSubpassBeginInfo*>( this );
98755     }
98756 
operator VkSubpassBeginInfo&VULKAN_HPP_NAMESPACE::SubpassBeginInfo98757     operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT
98758     {
98759       return *reinterpret_cast<VkSubpassBeginInfo*>( this );
98760     }
98761 
98762 #if defined( VULKAN_HPP_USE_REFLECT )
98763 #if 14 <= VULKAN_HPP_CPP_VERSION
98764     auto
98765 #else
98766     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SubpassContents const &>
98767 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassBeginInfo98768       reflect() const VULKAN_HPP_NOEXCEPT
98769     {
98770       return std::tie( sType, pNext, contents );
98771     }
98772 #endif
98773 
98774 
98775 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
98776 auto operator<=>( SubpassBeginInfo const & ) const = default;
98777 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassBeginInfo98778     bool operator==( SubpassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
98779     {
98780 #if defined( VULKAN_HPP_USE_REFLECT )
98781       return this->reflect() == rhs.reflect();
98782 #else
98783       return ( sType == rhs.sType )
98784           && ( pNext == rhs.pNext )
98785           && ( contents == rhs.contents );
98786 #endif
98787     }
98788 
operator !=VULKAN_HPP_NAMESPACE::SubpassBeginInfo98789     bool operator!=( SubpassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
98790     {
98791       return !operator==( rhs );
98792     }
98793 #endif
98794 
98795     public:
98796     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo;
98797     const void * pNext = {};
98798     VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline;
98799 
98800   };
98801 
98802   template <>
98803   struct CppType<StructureType, StructureType::eSubpassBeginInfo>
98804   {
98805     using Type = SubpassBeginInfo;
98806   };
98807   using SubpassBeginInfoKHR = SubpassBeginInfo;
98808 
98809   struct SubpassDescriptionDepthStencilResolve
98810   {
98811     using NativeType = VkSubpassDescriptionDepthStencilResolve;
98812 
98813     static const bool allowDuplicate = false;
98814     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescriptionDepthStencilResolve;
98815 
98816 
98817 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98818 VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve(VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
98819     : pNext( pNext_ ), depthResolveMode( depthResolveMode_ ), stencilResolveMode( stencilResolveMode_ ), pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
98820     {}
98821 
98822     VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98823 
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98824     SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
98825       : SubpassDescriptionDepthStencilResolve( *reinterpret_cast<SubpassDescriptionDepthStencilResolve const *>( &rhs ) )
98826     {}
98827 
98828 
98829     SubpassDescriptionDepthStencilResolve & operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98830 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
98831 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98832     SubpassDescriptionDepthStencilResolve & operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
98833     {
98834       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const *>( &rhs );
98835       return *this;
98836     }
98837 
98838 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98839     VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
98840     {
98841       pNext = pNext_;
98842       return *this;
98843     }
98844 
setDepthResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98845     VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve & setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT
98846     {
98847       depthResolveMode = depthResolveMode_;
98848       return *this;
98849     }
98850 
setStencilResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98851     VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve & setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT
98852     {
98853       stencilResolveMode = stencilResolveMode_;
98854       return *this;
98855     }
98856 
setPDepthStencilResolveAttachmentVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98857     VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve & setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT
98858     {
98859       pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
98860       return *this;
98861     }
98862 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
98863 
98864 
operator VkSubpassDescriptionDepthStencilResolve const&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98865     operator VkSubpassDescriptionDepthStencilResolve const &() const VULKAN_HPP_NOEXCEPT
98866     {
98867       return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>( this );
98868     }
98869 
operator VkSubpassDescriptionDepthStencilResolve&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98870     operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT
98871     {
98872       return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>( this );
98873     }
98874 
98875 #if defined( VULKAN_HPP_USE_REFLECT )
98876 #if 14 <= VULKAN_HPP_CPP_VERSION
98877     auto
98878 #else
98879     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ResolveModeFlagBits const &, VULKAN_HPP_NAMESPACE::ResolveModeFlagBits const &, const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &>
98880 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98881       reflect() const VULKAN_HPP_NOEXCEPT
98882     {
98883       return std::tie( sType, pNext, depthResolveMode, stencilResolveMode, pDepthStencilResolveAttachment );
98884     }
98885 #endif
98886 
98887 
98888 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
98889 auto operator<=>( SubpassDescriptionDepthStencilResolve const & ) const = default;
98890 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98891     bool operator==( SubpassDescriptionDepthStencilResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
98892     {
98893 #if defined( VULKAN_HPP_USE_REFLECT )
98894       return this->reflect() == rhs.reflect();
98895 #else
98896       return ( sType == rhs.sType )
98897           && ( pNext == rhs.pNext )
98898           && ( depthResolveMode == rhs.depthResolveMode )
98899           && ( stencilResolveMode == rhs.stencilResolveMode )
98900           && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment );
98901 #endif
98902     }
98903 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve98904     bool operator!=( SubpassDescriptionDepthStencilResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
98905     {
98906       return !operator==( rhs );
98907     }
98908 #endif
98909 
98910     public:
98911     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve;
98912     const void * pNext = {};
98913     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
98914     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
98915     const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment = {};
98916 
98917   };
98918 
98919   template <>
98920   struct CppType<StructureType, StructureType::eSubpassDescriptionDepthStencilResolve>
98921   {
98922     using Type = SubpassDescriptionDepthStencilResolve;
98923   };
98924   using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
98925 
98926   struct SubpassEndInfo
98927   {
98928     using NativeType = VkSubpassEndInfo;
98929 
98930     static const bool allowDuplicate = false;
98931     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo;
98932 
98933 
98934 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo98935 VULKAN_HPP_CONSTEXPR SubpassEndInfo(const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
98936     : pNext( pNext_ )
98937     {}
98938 
98939     VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98940 
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo98941     SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
98942       : SubpassEndInfo( *reinterpret_cast<SubpassEndInfo const *>( &rhs ) )
98943     {}
98944 
98945 
98946     SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98947 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
98948 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfo98949     SubpassEndInfo & operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
98950     {
98951       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassEndInfo const *>( &rhs );
98952       return *this;
98953     }
98954 
98955 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SubpassEndInfo98956     VULKAN_HPP_CONSTEXPR_14 SubpassEndInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
98957     {
98958       pNext = pNext_;
98959       return *this;
98960     }
98961 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
98962 
98963 
operator VkSubpassEndInfo const&VULKAN_HPP_NAMESPACE::SubpassEndInfo98964     operator VkSubpassEndInfo const &() const VULKAN_HPP_NOEXCEPT
98965     {
98966       return *reinterpret_cast<const VkSubpassEndInfo*>( this );
98967     }
98968 
operator VkSubpassEndInfo&VULKAN_HPP_NAMESPACE::SubpassEndInfo98969     operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT
98970     {
98971       return *reinterpret_cast<VkSubpassEndInfo*>( this );
98972     }
98973 
98974 #if defined( VULKAN_HPP_USE_REFLECT )
98975 #if 14 <= VULKAN_HPP_CPP_VERSION
98976     auto
98977 #else
98978     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &>
98979 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassEndInfo98980       reflect() const VULKAN_HPP_NOEXCEPT
98981     {
98982       return std::tie( sType, pNext );
98983     }
98984 #endif
98985 
98986 
98987 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
98988 auto operator<=>( SubpassEndInfo const & ) const = default;
98989 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassEndInfo98990     bool operator==( SubpassEndInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
98991     {
98992 #if defined( VULKAN_HPP_USE_REFLECT )
98993       return this->reflect() == rhs.reflect();
98994 #else
98995       return ( sType == rhs.sType )
98996           && ( pNext == rhs.pNext );
98997 #endif
98998     }
98999 
operator !=VULKAN_HPP_NAMESPACE::SubpassEndInfo99000     bool operator!=( SubpassEndInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
99001     {
99002       return !operator==( rhs );
99003     }
99004 #endif
99005 
99006     public:
99007     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo;
99008     const void * pNext = {};
99009 
99010   };
99011 
99012   template <>
99013   struct CppType<StructureType, StructureType::eSubpassEndInfo>
99014   {
99015     using Type = SubpassEndInfo;
99016   };
99017   using SubpassEndInfoKHR = SubpassEndInfo;
99018 
99019   struct SubpassFragmentDensityMapOffsetEndInfoQCOM
99020   {
99021     using NativeType = VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
99022 
99023     static const bool allowDuplicate = false;
99024     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassFragmentDensityMapOffsetEndInfoQCOM;
99025 
99026 
99027 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassFragmentDensityMapOffsetEndInfoQCOMVULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99028 VULKAN_HPP_CONSTEXPR SubpassFragmentDensityMapOffsetEndInfoQCOM(uint32_t fragmentDensityOffsetCount_ = {}, const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
99029     : pNext( pNext_ ), fragmentDensityOffsetCount( fragmentDensityOffsetCount_ ), pFragmentDensityOffsets( pFragmentDensityOffsets_ )
99030     {}
99031 
99032     VULKAN_HPP_CONSTEXPR SubpassFragmentDensityMapOffsetEndInfoQCOM( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99033 
SubpassFragmentDensityMapOffsetEndInfoQCOMVULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99034     SubpassFragmentDensityMapOffsetEndInfoQCOM( VkSubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
99035       : SubpassFragmentDensityMapOffsetEndInfoQCOM( *reinterpret_cast<SubpassFragmentDensityMapOffsetEndInfoQCOM const *>( &rhs ) )
99036     {}
99037 
99038 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SubpassFragmentDensityMapOffsetEndInfoQCOMVULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99039     SubpassFragmentDensityMapOffsetEndInfoQCOM( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Offset2D> const & fragmentDensityOffsets_, const void * pNext_ = nullptr )
99040     : pNext( pNext_ ), fragmentDensityOffsetCount( static_cast<uint32_t>( fragmentDensityOffsets_.size() ) ), pFragmentDensityOffsets( fragmentDensityOffsets_.data() )
99041     {}
99042 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
99043 
99044 
99045     SubpassFragmentDensityMapOffsetEndInfoQCOM & operator=( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99046 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99047 
operator =VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99048     SubpassFragmentDensityMapOffsetEndInfoQCOM & operator=( VkSubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
99049     {
99050       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM const *>( &rhs );
99051       return *this;
99052     }
99053 
99054 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99055     VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
99056     {
99057       pNext = pNext_;
99058       return *this;
99059     }
99060 
setFragmentDensityOffsetCountVULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99061     VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM & setFragmentDensityOffsetCount( uint32_t fragmentDensityOffsetCount_ ) VULKAN_HPP_NOEXCEPT
99062     {
99063       fragmentDensityOffsetCount = fragmentDensityOffsetCount_;
99064       return *this;
99065     }
99066 
setPFragmentDensityOffsetsVULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99067     VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM & setPFragmentDensityOffsets( const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets_ ) VULKAN_HPP_NOEXCEPT
99068     {
99069       pFragmentDensityOffsets = pFragmentDensityOffsets_;
99070       return *this;
99071     }
99072 
99073 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setFragmentDensityOffsetsVULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99074     SubpassFragmentDensityMapOffsetEndInfoQCOM & setFragmentDensityOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Offset2D> const & fragmentDensityOffsets_ ) VULKAN_HPP_NOEXCEPT
99075     {
99076       fragmentDensityOffsetCount = static_cast<uint32_t>( fragmentDensityOffsets_.size() );
99077       pFragmentDensityOffsets = fragmentDensityOffsets_.data();
99078       return *this;
99079     }
99080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
99081 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
99082 
99083 
operator VkSubpassFragmentDensityMapOffsetEndInfoQCOM const&VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99084     operator VkSubpassFragmentDensityMapOffsetEndInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
99085     {
99086       return *reinterpret_cast<const VkSubpassFragmentDensityMapOffsetEndInfoQCOM*>( this );
99087     }
99088 
operator VkSubpassFragmentDensityMapOffsetEndInfoQCOM&VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99089     operator VkSubpassFragmentDensityMapOffsetEndInfoQCOM &() VULKAN_HPP_NOEXCEPT
99090     {
99091       return *reinterpret_cast<VkSubpassFragmentDensityMapOffsetEndInfoQCOM*>( this );
99092     }
99093 
99094 #if defined( VULKAN_HPP_USE_REFLECT )
99095 #if 14 <= VULKAN_HPP_CPP_VERSION
99096     auto
99097 #else
99098     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Offset2D * const &>
99099 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99100       reflect() const VULKAN_HPP_NOEXCEPT
99101     {
99102       return std::tie( sType, pNext, fragmentDensityOffsetCount, pFragmentDensityOffsets );
99103     }
99104 #endif
99105 
99106 
99107 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
99108 auto operator<=>( SubpassFragmentDensityMapOffsetEndInfoQCOM const & ) const = default;
99109 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99110     bool operator==( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
99111     {
99112 #if defined( VULKAN_HPP_USE_REFLECT )
99113       return this->reflect() == rhs.reflect();
99114 #else
99115       return ( sType == rhs.sType )
99116           && ( pNext == rhs.pNext )
99117           && ( fragmentDensityOffsetCount == rhs.fragmentDensityOffsetCount )
99118           && ( pFragmentDensityOffsets == rhs.pFragmentDensityOffsets );
99119 #endif
99120     }
99121 
operator !=VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM99122     bool operator!=( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
99123     {
99124       return !operator==( rhs );
99125     }
99126 #endif
99127 
99128     public:
99129     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassFragmentDensityMapOffsetEndInfoQCOM;
99130     const void * pNext = {};
99131     uint32_t fragmentDensityOffsetCount = {};
99132     const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets = {};
99133 
99134   };
99135 
99136   template <>
99137   struct CppType<StructureType, StructureType::eSubpassFragmentDensityMapOffsetEndInfoQCOM>
99138   {
99139     using Type = SubpassFragmentDensityMapOffsetEndInfoQCOM;
99140   };
99141 
99142   struct SubpassResolvePerformanceQueryEXT
99143   {
99144     using NativeType = VkSubpassResolvePerformanceQueryEXT;
99145 
99146     static const bool allowDuplicate = false;
99147     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassResolvePerformanceQueryEXT;
99148 
99149 
99150 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassResolvePerformanceQueryEXTVULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT99151 VULKAN_HPP_CONSTEXPR SubpassResolvePerformanceQueryEXT(VULKAN_HPP_NAMESPACE::Bool32 optimal_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
99152     : pNext( pNext_ ), optimal( optimal_ )
99153     {}
99154 
99155     VULKAN_HPP_CONSTEXPR SubpassResolvePerformanceQueryEXT( SubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99156 
SubpassResolvePerformanceQueryEXTVULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT99157     SubpassResolvePerformanceQueryEXT( VkSubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
99158       : SubpassResolvePerformanceQueryEXT( *reinterpret_cast<SubpassResolvePerformanceQueryEXT const *>( &rhs ) )
99159     {}
99160 
99161 
99162     SubpassResolvePerformanceQueryEXT & operator=( SubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99163 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99164 
operator =VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT99165     SubpassResolvePerformanceQueryEXT & operator=( VkSubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
99166     {
99167       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT const *>( &rhs );
99168       return *this;
99169     }
99170 
99171 
operator VkSubpassResolvePerformanceQueryEXT const&VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT99172     operator VkSubpassResolvePerformanceQueryEXT const &() const VULKAN_HPP_NOEXCEPT
99173     {
99174       return *reinterpret_cast<const VkSubpassResolvePerformanceQueryEXT*>( this );
99175     }
99176 
operator VkSubpassResolvePerformanceQueryEXT&VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT99177     operator VkSubpassResolvePerformanceQueryEXT &() VULKAN_HPP_NOEXCEPT
99178     {
99179       return *reinterpret_cast<VkSubpassResolvePerformanceQueryEXT*>( this );
99180     }
99181 
99182 #if defined( VULKAN_HPP_USE_REFLECT )
99183 #if 14 <= VULKAN_HPP_CPP_VERSION
99184     auto
99185 #else
99186     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
99187 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT99188       reflect() const VULKAN_HPP_NOEXCEPT
99189     {
99190       return std::tie( sType, pNext, optimal );
99191     }
99192 #endif
99193 
99194 
99195 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
99196 auto operator<=>( SubpassResolvePerformanceQueryEXT const & ) const = default;
99197 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT99198     bool operator==( SubpassResolvePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
99199     {
99200 #if defined( VULKAN_HPP_USE_REFLECT )
99201       return this->reflect() == rhs.reflect();
99202 #else
99203       return ( sType == rhs.sType )
99204           && ( pNext == rhs.pNext )
99205           && ( optimal == rhs.optimal );
99206 #endif
99207     }
99208 
operator !=VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT99209     bool operator!=( SubpassResolvePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
99210     {
99211       return !operator==( rhs );
99212     }
99213 #endif
99214 
99215     public:
99216     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassResolvePerformanceQueryEXT;
99217     void * pNext = {};
99218     VULKAN_HPP_NAMESPACE::Bool32 optimal = {};
99219 
99220   };
99221 
99222   template <>
99223   struct CppType<StructureType, StructureType::eSubpassResolvePerformanceQueryEXT>
99224   {
99225     using Type = SubpassResolvePerformanceQueryEXT;
99226   };
99227 
99228   struct SubpassShadingPipelineCreateInfoHUAWEI
99229   {
99230     using NativeType = VkSubpassShadingPipelineCreateInfoHUAWEI;
99231 
99232     static const bool allowDuplicate = false;
99233     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassShadingPipelineCreateInfoHUAWEI;
99234 
99235 
99236 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassShadingPipelineCreateInfoHUAWEIVULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI99237 VULKAN_HPP_CONSTEXPR SubpassShadingPipelineCreateInfoHUAWEI(VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
99238     : pNext( pNext_ ), renderPass( renderPass_ ), subpass( subpass_ )
99239     {}
99240 
99241     VULKAN_HPP_CONSTEXPR SubpassShadingPipelineCreateInfoHUAWEI( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99242 
SubpassShadingPipelineCreateInfoHUAWEIVULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI99243     SubpassShadingPipelineCreateInfoHUAWEI( VkSubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
99244       : SubpassShadingPipelineCreateInfoHUAWEI( *reinterpret_cast<SubpassShadingPipelineCreateInfoHUAWEI const *>( &rhs ) )
99245     {}
99246 
99247 
99248     SubpassShadingPipelineCreateInfoHUAWEI & operator=( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99249 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99250 
operator =VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI99251     SubpassShadingPipelineCreateInfoHUAWEI & operator=( VkSubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
99252     {
99253       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI const *>( &rhs );
99254       return *this;
99255     }
99256 
99257 
operator VkSubpassShadingPipelineCreateInfoHUAWEI const&VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI99258     operator VkSubpassShadingPipelineCreateInfoHUAWEI const &() const VULKAN_HPP_NOEXCEPT
99259     {
99260       return *reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI*>( this );
99261     }
99262 
operator VkSubpassShadingPipelineCreateInfoHUAWEI&VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI99263     operator VkSubpassShadingPipelineCreateInfoHUAWEI &() VULKAN_HPP_NOEXCEPT
99264     {
99265       return *reinterpret_cast<VkSubpassShadingPipelineCreateInfoHUAWEI*>( this );
99266     }
99267 
99268 #if defined( VULKAN_HPP_USE_REFLECT )
99269 #if 14 <= VULKAN_HPP_CPP_VERSION
99270     auto
99271 #else
99272     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::RenderPass const &, uint32_t const &>
99273 #endif
reflectVULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI99274       reflect() const VULKAN_HPP_NOEXCEPT
99275     {
99276       return std::tie( sType, pNext, renderPass, subpass );
99277     }
99278 #endif
99279 
99280 
99281 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
99282 auto operator<=>( SubpassShadingPipelineCreateInfoHUAWEI const & ) const = default;
99283 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI99284     bool operator==( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
99285     {
99286 #if defined( VULKAN_HPP_USE_REFLECT )
99287       return this->reflect() == rhs.reflect();
99288 #else
99289       return ( sType == rhs.sType )
99290           && ( pNext == rhs.pNext )
99291           && ( renderPass == rhs.renderPass )
99292           && ( subpass == rhs.subpass );
99293 #endif
99294     }
99295 
operator !=VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI99296     bool operator!=( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
99297     {
99298       return !operator==( rhs );
99299     }
99300 #endif
99301 
99302     public:
99303     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassShadingPipelineCreateInfoHUAWEI;
99304     void * pNext = {};
99305     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
99306     uint32_t subpass = {};
99307 
99308   };
99309 
99310   template <>
99311   struct CppType<StructureType, StructureType::eSubpassShadingPipelineCreateInfoHUAWEI>
99312   {
99313     using Type = SubpassShadingPipelineCreateInfoHUAWEI;
99314   };
99315 
99316   struct SubresourceHostMemcpySizeEXT
99317   {
99318     using NativeType = VkSubresourceHostMemcpySizeEXT;
99319 
99320     static const bool allowDuplicate = false;
99321     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubresourceHostMemcpySizeEXT;
99322 
99323 
99324 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubresourceHostMemcpySizeEXTVULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT99325 VULKAN_HPP_CONSTEXPR SubresourceHostMemcpySizeEXT(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
99326     : pNext( pNext_ ), size( size_ )
99327     {}
99328 
99329     VULKAN_HPP_CONSTEXPR SubresourceHostMemcpySizeEXT( SubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99330 
SubresourceHostMemcpySizeEXTVULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT99331     SubresourceHostMemcpySizeEXT( VkSubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
99332       : SubresourceHostMemcpySizeEXT( *reinterpret_cast<SubresourceHostMemcpySizeEXT const *>( &rhs ) )
99333     {}
99334 
99335 
99336     SubresourceHostMemcpySizeEXT & operator=( SubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99337 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99338 
operator =VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT99339     SubresourceHostMemcpySizeEXT & operator=( VkSubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
99340     {
99341       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT const *>( &rhs );
99342       return *this;
99343     }
99344 
99345 
operator VkSubresourceHostMemcpySizeEXT const&VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT99346     operator VkSubresourceHostMemcpySizeEXT const &() const VULKAN_HPP_NOEXCEPT
99347     {
99348       return *reinterpret_cast<const VkSubresourceHostMemcpySizeEXT*>( this );
99349     }
99350 
operator VkSubresourceHostMemcpySizeEXT&VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT99351     operator VkSubresourceHostMemcpySizeEXT &() VULKAN_HPP_NOEXCEPT
99352     {
99353       return *reinterpret_cast<VkSubresourceHostMemcpySizeEXT*>( this );
99354     }
99355 
99356 #if defined( VULKAN_HPP_USE_REFLECT )
99357 #if 14 <= VULKAN_HPP_CPP_VERSION
99358     auto
99359 #else
99360     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
99361 #endif
reflectVULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT99362       reflect() const VULKAN_HPP_NOEXCEPT
99363     {
99364       return std::tie( sType, pNext, size );
99365     }
99366 #endif
99367 
99368 
99369 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
99370 auto operator<=>( SubresourceHostMemcpySizeEXT const & ) const = default;
99371 #else
operator ==VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT99372     bool operator==( SubresourceHostMemcpySizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
99373     {
99374 #if defined( VULKAN_HPP_USE_REFLECT )
99375       return this->reflect() == rhs.reflect();
99376 #else
99377       return ( sType == rhs.sType )
99378           && ( pNext == rhs.pNext )
99379           && ( size == rhs.size );
99380 #endif
99381     }
99382 
operator !=VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT99383     bool operator!=( SubresourceHostMemcpySizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
99384     {
99385       return !operator==( rhs );
99386     }
99387 #endif
99388 
99389     public:
99390     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubresourceHostMemcpySizeEXT;
99391     void * pNext = {};
99392     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
99393 
99394   };
99395 
99396   template <>
99397   struct CppType<StructureType, StructureType::eSubresourceHostMemcpySizeEXT>
99398   {
99399     using Type = SubresourceHostMemcpySizeEXT;
99400   };
99401 
99402   struct SubresourceLayout2KHR
99403   {
99404     using NativeType = VkSubresourceLayout2KHR;
99405 
99406     static const bool allowDuplicate = false;
99407     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubresourceLayout2KHR;
99408 
99409 
99410 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubresourceLayout2KHRVULKAN_HPP_NAMESPACE::SubresourceLayout2KHR99411 VULKAN_HPP_CONSTEXPR SubresourceLayout2KHR(VULKAN_HPP_NAMESPACE::SubresourceLayout subresourceLayout_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
99412     : pNext( pNext_ ), subresourceLayout( subresourceLayout_ )
99413     {}
99414 
99415     VULKAN_HPP_CONSTEXPR SubresourceLayout2KHR( SubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99416 
SubresourceLayout2KHRVULKAN_HPP_NAMESPACE::SubresourceLayout2KHR99417     SubresourceLayout2KHR( VkSubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
99418       : SubresourceLayout2KHR( *reinterpret_cast<SubresourceLayout2KHR const *>( &rhs ) )
99419     {}
99420 
99421 
99422     SubresourceLayout2KHR & operator=( SubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99423 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99424 
operator =VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR99425     SubresourceLayout2KHR & operator=( VkSubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
99426     {
99427       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR const *>( &rhs );
99428       return *this;
99429     }
99430 
99431 
operator VkSubresourceLayout2KHR const&VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR99432     operator VkSubresourceLayout2KHR const &() const VULKAN_HPP_NOEXCEPT
99433     {
99434       return *reinterpret_cast<const VkSubresourceLayout2KHR*>( this );
99435     }
99436 
operator VkSubresourceLayout2KHR&VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR99437     operator VkSubresourceLayout2KHR &() VULKAN_HPP_NOEXCEPT
99438     {
99439       return *reinterpret_cast<VkSubresourceLayout2KHR*>( this );
99440     }
99441 
99442 #if defined( VULKAN_HPP_USE_REFLECT )
99443 #if 14 <= VULKAN_HPP_CPP_VERSION
99444     auto
99445 #else
99446     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SubresourceLayout const &>
99447 #endif
reflectVULKAN_HPP_NAMESPACE::SubresourceLayout2KHR99448       reflect() const VULKAN_HPP_NOEXCEPT
99449     {
99450       return std::tie( sType, pNext, subresourceLayout );
99451     }
99452 #endif
99453 
99454 
99455 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
99456 auto operator<=>( SubresourceLayout2KHR const & ) const = default;
99457 #else
operator ==VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR99458     bool operator==( SubresourceLayout2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
99459     {
99460 #if defined( VULKAN_HPP_USE_REFLECT )
99461       return this->reflect() == rhs.reflect();
99462 #else
99463       return ( sType == rhs.sType )
99464           && ( pNext == rhs.pNext )
99465           && ( subresourceLayout == rhs.subresourceLayout );
99466 #endif
99467     }
99468 
operator !=VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR99469     bool operator!=( SubresourceLayout2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
99470     {
99471       return !operator==( rhs );
99472     }
99473 #endif
99474 
99475     public:
99476     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubresourceLayout2KHR;
99477     void * pNext = {};
99478     VULKAN_HPP_NAMESPACE::SubresourceLayout subresourceLayout = {};
99479 
99480   };
99481 
99482   template <>
99483   struct CppType<StructureType, StructureType::eSubresourceLayout2KHR>
99484   {
99485     using Type = SubresourceLayout2KHR;
99486   };
99487   using SubresourceLayout2EXT = SubresourceLayout2KHR;
99488 
99489   struct SurfaceCapabilities2EXT
99490   {
99491     using NativeType = VkSurfaceCapabilities2EXT;
99492 
99493     static const bool allowDuplicate = false;
99494     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT;
99495 
99496 
99497 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT99498 VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT(uint32_t minImageCount_ = {}, uint32_t maxImageCount_ = {}, VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, uint32_t maxImageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {}, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
99499     : pNext( pNext_ ), minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ ), supportedSurfaceCounters( supportedSurfaceCounters_ )
99500     {}
99501 
99502     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99503 
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT99504     SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
99505       : SurfaceCapabilities2EXT( *reinterpret_cast<SurfaceCapabilities2EXT const *>( &rhs ) )
99506     {}
99507 
99508 
99509     SurfaceCapabilities2EXT & operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99510 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99511 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT99512     SurfaceCapabilities2EXT & operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
99513     {
99514       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const *>( &rhs );
99515       return *this;
99516     }
99517 
99518 
operator VkSurfaceCapabilities2EXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT99519     operator VkSurfaceCapabilities2EXT const &() const VULKAN_HPP_NOEXCEPT
99520     {
99521       return *reinterpret_cast<const VkSurfaceCapabilities2EXT*>( this );
99522     }
99523 
operator VkSurfaceCapabilities2EXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT99524     operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT
99525     {
99526       return *reinterpret_cast<VkSurfaceCapabilities2EXT*>( this );
99527     }
99528 
99529 #if defined( VULKAN_HPP_USE_REFLECT )
99530 #if 14 <= VULKAN_HPP_CPP_VERSION
99531     auto
99532 #else
99533     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT const &>
99534 #endif
reflectVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT99535       reflect() const VULKAN_HPP_NOEXCEPT
99536     {
99537       return std::tie( sType, pNext, minImageCount, maxImageCount, currentExtent, minImageExtent, maxImageExtent, maxImageArrayLayers, supportedTransforms, currentTransform, supportedCompositeAlpha, supportedUsageFlags, supportedSurfaceCounters );
99538     }
99539 #endif
99540 
99541 
99542 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
99543 auto operator<=>( SurfaceCapabilities2EXT const & ) const = default;
99544 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT99545     bool operator==( SurfaceCapabilities2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
99546     {
99547 #if defined( VULKAN_HPP_USE_REFLECT )
99548       return this->reflect() == rhs.reflect();
99549 #else
99550       return ( sType == rhs.sType )
99551           && ( pNext == rhs.pNext )
99552           && ( minImageCount == rhs.minImageCount )
99553           && ( maxImageCount == rhs.maxImageCount )
99554           && ( currentExtent == rhs.currentExtent )
99555           && ( minImageExtent == rhs.minImageExtent )
99556           && ( maxImageExtent == rhs.maxImageExtent )
99557           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
99558           && ( supportedTransforms == rhs.supportedTransforms )
99559           && ( currentTransform == rhs.currentTransform )
99560           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
99561           && ( supportedUsageFlags == rhs.supportedUsageFlags )
99562           && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters );
99563 #endif
99564     }
99565 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT99566     bool operator!=( SurfaceCapabilities2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
99567     {
99568       return !operator==( rhs );
99569     }
99570 #endif
99571 
99572     public:
99573     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT;
99574     void * pNext = {};
99575     uint32_t minImageCount = {};
99576     uint32_t maxImageCount = {};
99577     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
99578     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
99579     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
99580     uint32_t maxImageArrayLayers = {};
99581     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
99582     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
99583     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
99584     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
99585     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {};
99586 
99587   };
99588 
99589   template <>
99590   struct CppType<StructureType, StructureType::eSurfaceCapabilities2EXT>
99591   {
99592     using Type = SurfaceCapabilities2EXT;
99593   };
99594 
99595   struct SurfaceCapabilitiesKHR
99596   {
99597     using NativeType = VkSurfaceCapabilitiesKHR;
99598 
99599 
99600 
99601 
99602 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR99603 VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR(uint32_t minImageCount_ = {}, uint32_t maxImageCount_ = {}, VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, uint32_t maxImageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {}) VULKAN_HPP_NOEXCEPT
99604     : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ )
99605     {}
99606 
99607     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99608 
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR99609     SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
99610       : SurfaceCapabilitiesKHR( *reinterpret_cast<SurfaceCapabilitiesKHR const *>( &rhs ) )
99611     {}
99612 
99613 
99614     SurfaceCapabilitiesKHR & operator=( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99615 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99616 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR99617     SurfaceCapabilitiesKHR & operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
99618     {
99619       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const *>( &rhs );
99620       return *this;
99621     }
99622 
99623 
operator VkSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR99624     operator VkSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
99625     {
99626       return *reinterpret_cast<const VkSurfaceCapabilitiesKHR*>( this );
99627     }
99628 
operator VkSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR99629     operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
99630     {
99631       return *reinterpret_cast<VkSurfaceCapabilitiesKHR*>( this );
99632     }
99633 
99634 #if defined( VULKAN_HPP_USE_REFLECT )
99635 #if 14 <= VULKAN_HPP_CPP_VERSION
99636     auto
99637 #else
99638     std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
99639 #endif
reflectVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR99640       reflect() const VULKAN_HPP_NOEXCEPT
99641     {
99642       return std::tie( minImageCount, maxImageCount, currentExtent, minImageExtent, maxImageExtent, maxImageArrayLayers, supportedTransforms, currentTransform, supportedCompositeAlpha, supportedUsageFlags );
99643     }
99644 #endif
99645 
99646 
99647 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
99648 auto operator<=>( SurfaceCapabilitiesKHR const & ) const = default;
99649 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR99650     bool operator==( SurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
99651     {
99652 #if defined( VULKAN_HPP_USE_REFLECT )
99653       return this->reflect() == rhs.reflect();
99654 #else
99655       return ( minImageCount == rhs.minImageCount )
99656           && ( maxImageCount == rhs.maxImageCount )
99657           && ( currentExtent == rhs.currentExtent )
99658           && ( minImageExtent == rhs.minImageExtent )
99659           && ( maxImageExtent == rhs.maxImageExtent )
99660           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
99661           && ( supportedTransforms == rhs.supportedTransforms )
99662           && ( currentTransform == rhs.currentTransform )
99663           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
99664           && ( supportedUsageFlags == rhs.supportedUsageFlags );
99665 #endif
99666     }
99667 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR99668     bool operator!=( SurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
99669     {
99670       return !operator==( rhs );
99671     }
99672 #endif
99673 
99674     public:
99675     uint32_t minImageCount = {};
99676     uint32_t maxImageCount = {};
99677     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
99678     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
99679     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
99680     uint32_t maxImageArrayLayers = {};
99681     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
99682     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
99683     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
99684     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
99685 
99686   };
99687 
99688   struct SurfaceCapabilities2KHR
99689   {
99690     using NativeType = VkSurfaceCapabilities2KHR;
99691 
99692     static const bool allowDuplicate = false;
99693     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR;
99694 
99695 
99696 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR99697 VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR(VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
99698     : pNext( pNext_ ), surfaceCapabilities( surfaceCapabilities_ )
99699     {}
99700 
99701     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99702 
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR99703     SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
99704       : SurfaceCapabilities2KHR( *reinterpret_cast<SurfaceCapabilities2KHR const *>( &rhs ) )
99705     {}
99706 
99707 
99708     SurfaceCapabilities2KHR & operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99709 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99710 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR99711     SurfaceCapabilities2KHR & operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
99712     {
99713       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const *>( &rhs );
99714       return *this;
99715     }
99716 
99717 
operator VkSurfaceCapabilities2KHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR99718     operator VkSurfaceCapabilities2KHR const &() const VULKAN_HPP_NOEXCEPT
99719     {
99720       return *reinterpret_cast<const VkSurfaceCapabilities2KHR*>( this );
99721     }
99722 
operator VkSurfaceCapabilities2KHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR99723     operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
99724     {
99725       return *reinterpret_cast<VkSurfaceCapabilities2KHR*>( this );
99726     }
99727 
99728 #if defined( VULKAN_HPP_USE_REFLECT )
99729 #if 14 <= VULKAN_HPP_CPP_VERSION
99730     auto
99731 #else
99732     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const &>
99733 #endif
reflectVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR99734       reflect() const VULKAN_HPP_NOEXCEPT
99735     {
99736       return std::tie( sType, pNext, surfaceCapabilities );
99737     }
99738 #endif
99739 
99740 
99741 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
99742 auto operator<=>( SurfaceCapabilities2KHR const & ) const = default;
99743 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR99744     bool operator==( SurfaceCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
99745     {
99746 #if defined( VULKAN_HPP_USE_REFLECT )
99747       return this->reflect() == rhs.reflect();
99748 #else
99749       return ( sType == rhs.sType )
99750           && ( pNext == rhs.pNext )
99751           && ( surfaceCapabilities == rhs.surfaceCapabilities );
99752 #endif
99753     }
99754 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR99755     bool operator!=( SurfaceCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
99756     {
99757       return !operator==( rhs );
99758     }
99759 #endif
99760 
99761     public:
99762     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR;
99763     void * pNext = {};
99764     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {};
99765 
99766   };
99767 
99768   template <>
99769   struct CppType<StructureType, StructureType::eSurfaceCapabilities2KHR>
99770   {
99771     using Type = SurfaceCapabilities2KHR;
99772   };
99773 
99774 #if defined( VK_USE_PLATFORM_WIN32_KHR )
99775   struct SurfaceCapabilitiesFullScreenExclusiveEXT
99776   {
99777     using NativeType = VkSurfaceCapabilitiesFullScreenExclusiveEXT;
99778 
99779     static const bool allowDuplicate = false;
99780     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
99781 
99782 
99783 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT99784 VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT(VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
99785     : pNext( pNext_ ), fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
99786     {}
99787 
99788     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99789 
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT99790     SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
99791       : SurfaceCapabilitiesFullScreenExclusiveEXT( *reinterpret_cast<SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs ) )
99792     {}
99793 
99794 
99795     SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99796 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99797 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT99798     SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
99799     {
99800       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs );
99801       return *this;
99802     }
99803 
99804 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT99805     VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
99806     {
99807       pNext = pNext_;
99808       return *this;
99809     }
99810 
setFullScreenExclusiveSupportedVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT99811     VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT
99812     {
99813       fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
99814       return *this;
99815     }
99816 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
99817 
99818 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT99819     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const &() const VULKAN_HPP_NOEXCEPT
99820     {
99821       return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
99822     }
99823 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT99824     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT
99825     {
99826       return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
99827     }
99828 
99829 #if defined( VULKAN_HPP_USE_REFLECT )
99830 #if 14 <= VULKAN_HPP_CPP_VERSION
99831     auto
99832 #else
99833     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
99834 #endif
reflectVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT99835       reflect() const VULKAN_HPP_NOEXCEPT
99836     {
99837       return std::tie( sType, pNext, fullScreenExclusiveSupported );
99838     }
99839 #endif
99840 
99841 
99842 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
99843 auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const & ) const = default;
99844 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT99845     bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
99846     {
99847 #if defined( VULKAN_HPP_USE_REFLECT )
99848       return this->reflect() == rhs.reflect();
99849 #else
99850       return ( sType == rhs.sType )
99851           && ( pNext == rhs.pNext )
99852           && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported );
99853 #endif
99854     }
99855 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT99856     bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
99857     {
99858       return !operator==( rhs );
99859     }
99860 #endif
99861 
99862     public:
99863     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
99864     void * pNext = {};
99865     VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {};
99866 
99867   };
99868 
99869   template <>
99870   struct CppType<StructureType, StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT>
99871   {
99872     using Type = SurfaceCapabilitiesFullScreenExclusiveEXT;
99873   };
99874 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
99875 
99876   struct SurfaceCapabilitiesPresentBarrierNV
99877   {
99878     using NativeType = VkSurfaceCapabilitiesPresentBarrierNV;
99879 
99880     static const bool allowDuplicate = false;
99881     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesPresentBarrierNV;
99882 
99883 
99884 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesPresentBarrierNVVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV99885 VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesPresentBarrierNV(VULKAN_HPP_NAMESPACE::Bool32 presentBarrierSupported_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
99886     : pNext( pNext_ ), presentBarrierSupported( presentBarrierSupported_ )
99887     {}
99888 
99889     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesPresentBarrierNV( SurfaceCapabilitiesPresentBarrierNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99890 
SurfaceCapabilitiesPresentBarrierNVVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV99891     SurfaceCapabilitiesPresentBarrierNV( VkSurfaceCapabilitiesPresentBarrierNV const & rhs ) VULKAN_HPP_NOEXCEPT
99892       : SurfaceCapabilitiesPresentBarrierNV( *reinterpret_cast<SurfaceCapabilitiesPresentBarrierNV const *>( &rhs ) )
99893     {}
99894 
99895 
99896     SurfaceCapabilitiesPresentBarrierNV & operator=( SurfaceCapabilitiesPresentBarrierNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99897 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99898 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV99899     SurfaceCapabilitiesPresentBarrierNV & operator=( VkSurfaceCapabilitiesPresentBarrierNV const & rhs ) VULKAN_HPP_NOEXCEPT
99900     {
99901       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV const *>( &rhs );
99902       return *this;
99903     }
99904 
99905 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV99906     VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesPresentBarrierNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
99907     {
99908       pNext = pNext_;
99909       return *this;
99910     }
99911 
setPresentBarrierSupportedVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV99912     VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesPresentBarrierNV & setPresentBarrierSupported( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierSupported_ ) VULKAN_HPP_NOEXCEPT
99913     {
99914       presentBarrierSupported = presentBarrierSupported_;
99915       return *this;
99916     }
99917 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
99918 
99919 
operator VkSurfaceCapabilitiesPresentBarrierNV const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV99920     operator VkSurfaceCapabilitiesPresentBarrierNV const &() const VULKAN_HPP_NOEXCEPT
99921     {
99922       return *reinterpret_cast<const VkSurfaceCapabilitiesPresentBarrierNV*>( this );
99923     }
99924 
operator VkSurfaceCapabilitiesPresentBarrierNV&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV99925     operator VkSurfaceCapabilitiesPresentBarrierNV &() VULKAN_HPP_NOEXCEPT
99926     {
99927       return *reinterpret_cast<VkSurfaceCapabilitiesPresentBarrierNV*>( this );
99928     }
99929 
99930 #if defined( VULKAN_HPP_USE_REFLECT )
99931 #if 14 <= VULKAN_HPP_CPP_VERSION
99932     auto
99933 #else
99934     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
99935 #endif
reflectVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV99936       reflect() const VULKAN_HPP_NOEXCEPT
99937     {
99938       return std::tie( sType, pNext, presentBarrierSupported );
99939     }
99940 #endif
99941 
99942 
99943 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
99944 auto operator<=>( SurfaceCapabilitiesPresentBarrierNV const & ) const = default;
99945 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV99946     bool operator==( SurfaceCapabilitiesPresentBarrierNV const & rhs ) const VULKAN_HPP_NOEXCEPT
99947     {
99948 #if defined( VULKAN_HPP_USE_REFLECT )
99949       return this->reflect() == rhs.reflect();
99950 #else
99951       return ( sType == rhs.sType )
99952           && ( pNext == rhs.pNext )
99953           && ( presentBarrierSupported == rhs.presentBarrierSupported );
99954 #endif
99955     }
99956 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV99957     bool operator!=( SurfaceCapabilitiesPresentBarrierNV const & rhs ) const VULKAN_HPP_NOEXCEPT
99958     {
99959       return !operator==( rhs );
99960     }
99961 #endif
99962 
99963     public:
99964     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesPresentBarrierNV;
99965     void * pNext = {};
99966     VULKAN_HPP_NAMESPACE::Bool32 presentBarrierSupported = {};
99967 
99968   };
99969 
99970   template <>
99971   struct CppType<StructureType, StructureType::eSurfaceCapabilitiesPresentBarrierNV>
99972   {
99973     using Type = SurfaceCapabilitiesPresentBarrierNV;
99974   };
99975 
99976   struct SurfaceFormatKHR
99977   {
99978     using NativeType = VkSurfaceFormatKHR;
99979 
99980 
99981 
99982 
99983 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR99984 VULKAN_HPP_CONSTEXPR SurfaceFormatKHR(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear) VULKAN_HPP_NOEXCEPT
99985     : format( format_ ), colorSpace( colorSpace_ )
99986     {}
99987 
99988     VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99989 
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR99990     SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
99991       : SurfaceFormatKHR( *reinterpret_cast<SurfaceFormatKHR const *>( &rhs ) )
99992     {}
99993 
99994 
99995     SurfaceFormatKHR & operator=( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
99996 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
99997 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormatKHR99998     SurfaceFormatKHR & operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
99999     {
100000       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const *>( &rhs );
100001       return *this;
100002     }
100003 
100004 
operator VkSurfaceFormatKHR const&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR100005     operator VkSurfaceFormatKHR const &() const VULKAN_HPP_NOEXCEPT
100006     {
100007       return *reinterpret_cast<const VkSurfaceFormatKHR*>( this );
100008     }
100009 
operator VkSurfaceFormatKHR&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR100010     operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT
100011     {
100012       return *reinterpret_cast<VkSurfaceFormatKHR*>( this );
100013     }
100014 
100015 #if defined( VULKAN_HPP_USE_REFLECT )
100016 #if 14 <= VULKAN_HPP_CPP_VERSION
100017     auto
100018 #else
100019     std::tuple<VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::ColorSpaceKHR const &>
100020 #endif
reflectVULKAN_HPP_NAMESPACE::SurfaceFormatKHR100021       reflect() const VULKAN_HPP_NOEXCEPT
100022     {
100023       return std::tie( format, colorSpace );
100024     }
100025 #endif
100026 
100027 
100028 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
100029 auto operator<=>( SurfaceFormatKHR const & ) const = default;
100030 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormatKHR100031     bool operator==( SurfaceFormatKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
100032     {
100033 #if defined( VULKAN_HPP_USE_REFLECT )
100034       return this->reflect() == rhs.reflect();
100035 #else
100036       return ( format == rhs.format )
100037           && ( colorSpace == rhs.colorSpace );
100038 #endif
100039     }
100040 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormatKHR100041     bool operator!=( SurfaceFormatKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
100042     {
100043       return !operator==( rhs );
100044     }
100045 #endif
100046 
100047     public:
100048     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
100049     VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
100050 
100051   };
100052 
100053   struct SurfaceFormat2KHR
100054   {
100055     using NativeType = VkSurfaceFormat2KHR;
100056 
100057     static const bool allowDuplicate = false;
100058     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR;
100059 
100060 
100061 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR100062 VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR(VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
100063     : pNext( pNext_ ), surfaceFormat( surfaceFormat_ )
100064     {}
100065 
100066     VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100067 
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR100068     SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
100069       : SurfaceFormat2KHR( *reinterpret_cast<SurfaceFormat2KHR const *>( &rhs ) )
100070     {}
100071 
100072 
100073     SurfaceFormat2KHR & operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100074 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
100075 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR100076     SurfaceFormat2KHR & operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
100077     {
100078       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const *>( &rhs );
100079       return *this;
100080     }
100081 
100082 
operator VkSurfaceFormat2KHR const&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR100083     operator VkSurfaceFormat2KHR const &() const VULKAN_HPP_NOEXCEPT
100084     {
100085       return *reinterpret_cast<const VkSurfaceFormat2KHR*>( this );
100086     }
100087 
operator VkSurfaceFormat2KHR&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR100088     operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT
100089     {
100090       return *reinterpret_cast<VkSurfaceFormat2KHR*>( this );
100091     }
100092 
100093 #if defined( VULKAN_HPP_USE_REFLECT )
100094 #if 14 <= VULKAN_HPP_CPP_VERSION
100095     auto
100096 #else
100097     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const &>
100098 #endif
reflectVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR100099       reflect() const VULKAN_HPP_NOEXCEPT
100100     {
100101       return std::tie( sType, pNext, surfaceFormat );
100102     }
100103 #endif
100104 
100105 
100106 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
100107 auto operator<=>( SurfaceFormat2KHR const & ) const = default;
100108 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR100109     bool operator==( SurfaceFormat2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
100110     {
100111 #if defined( VULKAN_HPP_USE_REFLECT )
100112       return this->reflect() == rhs.reflect();
100113 #else
100114       return ( sType == rhs.sType )
100115           && ( pNext == rhs.pNext )
100116           && ( surfaceFormat == rhs.surfaceFormat );
100117 #endif
100118     }
100119 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR100120     bool operator!=( SurfaceFormat2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
100121     {
100122       return !operator==( rhs );
100123     }
100124 #endif
100125 
100126     public:
100127     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR;
100128     void * pNext = {};
100129     VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {};
100130 
100131   };
100132 
100133   template <>
100134   struct CppType<StructureType, StructureType::eSurfaceFormat2KHR>
100135   {
100136     using Type = SurfaceFormat2KHR;
100137   };
100138 
100139 #if defined( VK_USE_PLATFORM_WIN32_KHR )
100140   struct SurfaceFullScreenExclusiveInfoEXT
100141   {
100142     using NativeType = VkSurfaceFullScreenExclusiveInfoEXT;
100143 
100144     static const bool allowDuplicate = false;
100145     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
100146 
100147 
100148 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT100149 VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT(VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
100150     : pNext( pNext_ ), fullScreenExclusive( fullScreenExclusive_ )
100151     {}
100152 
100153     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100154 
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT100155     SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100156       : SurfaceFullScreenExclusiveInfoEXT( *reinterpret_cast<SurfaceFullScreenExclusiveInfoEXT const *>( &rhs ) )
100157     {}
100158 
100159 
100160     SurfaceFullScreenExclusiveInfoEXT & operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100161 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
100162 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT100163     SurfaceFullScreenExclusiveInfoEXT & operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100164     {
100165       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const *>( &rhs );
100166       return *this;
100167     }
100168 
100169 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT100170     VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
100171     {
100172       pNext = pNext_;
100173       return *this;
100174     }
100175 
setFullScreenExclusiveVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT100176     VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT
100177     {
100178       fullScreenExclusive = fullScreenExclusive_;
100179       return *this;
100180     }
100181 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
100182 
100183 
operator VkSurfaceFullScreenExclusiveInfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT100184     operator VkSurfaceFullScreenExclusiveInfoEXT const &() const VULKAN_HPP_NOEXCEPT
100185     {
100186       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>( this );
100187     }
100188 
operator VkSurfaceFullScreenExclusiveInfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT100189     operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT
100190     {
100191       return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>( this );
100192     }
100193 
100194 #if defined( VULKAN_HPP_USE_REFLECT )
100195 #if 14 <= VULKAN_HPP_CPP_VERSION
100196     auto
100197 #else
100198     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT const &>
100199 #endif
reflectVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT100200       reflect() const VULKAN_HPP_NOEXCEPT
100201     {
100202       return std::tie( sType, pNext, fullScreenExclusive );
100203     }
100204 #endif
100205 
100206 
100207 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
100208 auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const & ) const = default;
100209 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT100210     bool operator==( SurfaceFullScreenExclusiveInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100211     {
100212 #if defined( VULKAN_HPP_USE_REFLECT )
100213       return this->reflect() == rhs.reflect();
100214 #else
100215       return ( sType == rhs.sType )
100216           && ( pNext == rhs.pNext )
100217           && ( fullScreenExclusive == rhs.fullScreenExclusive );
100218 #endif
100219     }
100220 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT100221     bool operator!=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100222     {
100223       return !operator==( rhs );
100224     }
100225 #endif
100226 
100227     public:
100228     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
100229     void * pNext = {};
100230     VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault;
100231 
100232   };
100233 
100234   template <>
100235   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveInfoEXT>
100236   {
100237     using Type = SurfaceFullScreenExclusiveInfoEXT;
100238   };
100239 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
100240 
100241 #if defined( VK_USE_PLATFORM_WIN32_KHR )
100242   struct SurfaceFullScreenExclusiveWin32InfoEXT
100243   {
100244     using NativeType = VkSurfaceFullScreenExclusiveWin32InfoEXT;
100245 
100246     static const bool allowDuplicate = false;
100247     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
100248 
100249 
100250 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT100251 VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT(HMONITOR hmonitor_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
100252     : pNext( pNext_ ), hmonitor( hmonitor_ )
100253     {}
100254 
100255     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100256 
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT100257     SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100258       : SurfaceFullScreenExclusiveWin32InfoEXT( *reinterpret_cast<SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs ) )
100259     {}
100260 
100261 
100262     SurfaceFullScreenExclusiveWin32InfoEXT & operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100263 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
100264 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT100265     SurfaceFullScreenExclusiveWin32InfoEXT & operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100266     {
100267       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs );
100268       return *this;
100269     }
100270 
100271 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT100272     VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
100273     {
100274       pNext = pNext_;
100275       return *this;
100276     }
100277 
setHmonitorVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT100278     VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT
100279     {
100280       hmonitor = hmonitor_;
100281       return *this;
100282     }
100283 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
100284 
100285 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT100286     operator VkSurfaceFullScreenExclusiveWin32InfoEXT const &() const VULKAN_HPP_NOEXCEPT
100287     {
100288       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
100289     }
100290 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT100291     operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT
100292     {
100293       return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
100294     }
100295 
100296 #if defined( VULKAN_HPP_USE_REFLECT )
100297 #if 14 <= VULKAN_HPP_CPP_VERSION
100298     auto
100299 #else
100300     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, HMONITOR const &>
100301 #endif
reflectVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT100302       reflect() const VULKAN_HPP_NOEXCEPT
100303     {
100304       return std::tie( sType, pNext, hmonitor );
100305     }
100306 #endif
100307 
100308 
100309 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
100310 auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const & ) const = default;
100311 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT100312     bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100313     {
100314 #if defined( VULKAN_HPP_USE_REFLECT )
100315       return this->reflect() == rhs.reflect();
100316 #else
100317       return ( sType == rhs.sType )
100318           && ( pNext == rhs.pNext )
100319           && ( hmonitor == rhs.hmonitor );
100320 #endif
100321     }
100322 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT100323     bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100324     {
100325       return !operator==( rhs );
100326     }
100327 #endif
100328 
100329     public:
100330     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
100331     const void * pNext = {};
100332     HMONITOR hmonitor = {};
100333 
100334   };
100335 
100336   template <>
100337   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT>
100338   {
100339     using Type = SurfaceFullScreenExclusiveWin32InfoEXT;
100340   };
100341 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
100342 
100343   struct SurfacePresentModeCompatibilityEXT
100344   {
100345     using NativeType = VkSurfacePresentModeCompatibilityEXT;
100346 
100347     static const bool allowDuplicate = false;
100348     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfacePresentModeCompatibilityEXT;
100349 
100350 
100351 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfacePresentModeCompatibilityEXTVULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100352 VULKAN_HPP_CONSTEXPR SurfacePresentModeCompatibilityEXT(uint32_t presentModeCount_ = {}, VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
100353     : pNext( pNext_ ), presentModeCount( presentModeCount_ ), pPresentModes( pPresentModes_ )
100354     {}
100355 
100356     VULKAN_HPP_CONSTEXPR SurfacePresentModeCompatibilityEXT( SurfacePresentModeCompatibilityEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100357 
SurfacePresentModeCompatibilityEXTVULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100358     SurfacePresentModeCompatibilityEXT( VkSurfacePresentModeCompatibilityEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100359       : SurfacePresentModeCompatibilityEXT( *reinterpret_cast<SurfacePresentModeCompatibilityEXT const *>( &rhs ) )
100360     {}
100361 
100362 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SurfacePresentModeCompatibilityEXTVULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100363     SurfacePresentModeCompatibilityEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_, void * pNext_ = nullptr )
100364     : pNext( pNext_ ), presentModeCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
100365     {}
100366 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
100367 
100368 
100369     SurfacePresentModeCompatibilityEXT & operator=( SurfacePresentModeCompatibilityEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100370 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
100371 
operator =VULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100372     SurfacePresentModeCompatibilityEXT & operator=( VkSurfacePresentModeCompatibilityEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100373     {
100374       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT const *>( &rhs );
100375       return *this;
100376     }
100377 
100378 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100379     VULKAN_HPP_CONSTEXPR_14 SurfacePresentModeCompatibilityEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
100380     {
100381       pNext = pNext_;
100382       return *this;
100383     }
100384 
setPresentModeCountVULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100385     VULKAN_HPP_CONSTEXPR_14 SurfacePresentModeCompatibilityEXT & setPresentModeCount( uint32_t presentModeCount_ ) VULKAN_HPP_NOEXCEPT
100386     {
100387       presentModeCount = presentModeCount_;
100388       return *this;
100389     }
100390 
setPPresentModesVULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100391     VULKAN_HPP_CONSTEXPR_14 SurfacePresentModeCompatibilityEXT & setPPresentModes( VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
100392     {
100393       pPresentModes = pPresentModes_;
100394       return *this;
100395     }
100396 
100397 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPresentModesVULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100398     SurfacePresentModeCompatibilityEXT & setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_ ) VULKAN_HPP_NOEXCEPT
100399     {
100400       presentModeCount = static_cast<uint32_t>( presentModes_.size() );
100401       pPresentModes = presentModes_.data();
100402       return *this;
100403     }
100404 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
100405 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
100406 
100407 
operator VkSurfacePresentModeCompatibilityEXT const&VULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100408     operator VkSurfacePresentModeCompatibilityEXT const &() const VULKAN_HPP_NOEXCEPT
100409     {
100410       return *reinterpret_cast<const VkSurfacePresentModeCompatibilityEXT*>( this );
100411     }
100412 
operator VkSurfacePresentModeCompatibilityEXT&VULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100413     operator VkSurfacePresentModeCompatibilityEXT &() VULKAN_HPP_NOEXCEPT
100414     {
100415       return *reinterpret_cast<VkSurfacePresentModeCompatibilityEXT*>( this );
100416     }
100417 
100418 #if defined( VULKAN_HPP_USE_REFLECT )
100419 #if 14 <= VULKAN_HPP_CPP_VERSION
100420     auto
100421 #else
100422     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
100423 #endif
reflectVULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100424       reflect() const VULKAN_HPP_NOEXCEPT
100425     {
100426       return std::tie( sType, pNext, presentModeCount, pPresentModes );
100427     }
100428 #endif
100429 
100430 
100431 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
100432 auto operator<=>( SurfacePresentModeCompatibilityEXT const & ) const = default;
100433 #else
operator ==VULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100434     bool operator==( SurfacePresentModeCompatibilityEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100435     {
100436 #if defined( VULKAN_HPP_USE_REFLECT )
100437       return this->reflect() == rhs.reflect();
100438 #else
100439       return ( sType == rhs.sType )
100440           && ( pNext == rhs.pNext )
100441           && ( presentModeCount == rhs.presentModeCount )
100442           && ( pPresentModes == rhs.pPresentModes );
100443 #endif
100444     }
100445 
operator !=VULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT100446     bool operator!=( SurfacePresentModeCompatibilityEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100447     {
100448       return !operator==( rhs );
100449     }
100450 #endif
100451 
100452     public:
100453     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfacePresentModeCompatibilityEXT;
100454     void * pNext = {};
100455     uint32_t presentModeCount = {};
100456     VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes = {};
100457 
100458   };
100459 
100460   template <>
100461   struct CppType<StructureType, StructureType::eSurfacePresentModeCompatibilityEXT>
100462   {
100463     using Type = SurfacePresentModeCompatibilityEXT;
100464   };
100465 
100466   struct SurfacePresentModeEXT
100467   {
100468     using NativeType = VkSurfacePresentModeEXT;
100469 
100470     static const bool allowDuplicate = false;
100471     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfacePresentModeEXT;
100472 
100473 
100474 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfacePresentModeEXTVULKAN_HPP_NAMESPACE::SurfacePresentModeEXT100475 VULKAN_HPP_CONSTEXPR SurfacePresentModeEXT(VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
100476     : pNext( pNext_ ), presentMode( presentMode_ )
100477     {}
100478 
100479     VULKAN_HPP_CONSTEXPR SurfacePresentModeEXT( SurfacePresentModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100480 
SurfacePresentModeEXTVULKAN_HPP_NAMESPACE::SurfacePresentModeEXT100481     SurfacePresentModeEXT( VkSurfacePresentModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100482       : SurfacePresentModeEXT( *reinterpret_cast<SurfacePresentModeEXT const *>( &rhs ) )
100483     {}
100484 
100485 
100486     SurfacePresentModeEXT & operator=( SurfacePresentModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100487 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
100488 
operator =VULKAN_HPP_NAMESPACE::SurfacePresentModeEXT100489     SurfacePresentModeEXT & operator=( VkSurfacePresentModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100490     {
100491       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfacePresentModeEXT const *>( &rhs );
100492       return *this;
100493     }
100494 
100495 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SurfacePresentModeEXT100496     VULKAN_HPP_CONSTEXPR_14 SurfacePresentModeEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
100497     {
100498       pNext = pNext_;
100499       return *this;
100500     }
100501 
setPresentModeVULKAN_HPP_NAMESPACE::SurfacePresentModeEXT100502     VULKAN_HPP_CONSTEXPR_14 SurfacePresentModeEXT & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT
100503     {
100504       presentMode = presentMode_;
100505       return *this;
100506     }
100507 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
100508 
100509 
operator VkSurfacePresentModeEXT const&VULKAN_HPP_NAMESPACE::SurfacePresentModeEXT100510     operator VkSurfacePresentModeEXT const &() const VULKAN_HPP_NOEXCEPT
100511     {
100512       return *reinterpret_cast<const VkSurfacePresentModeEXT*>( this );
100513     }
100514 
operator VkSurfacePresentModeEXT&VULKAN_HPP_NAMESPACE::SurfacePresentModeEXT100515     operator VkSurfacePresentModeEXT &() VULKAN_HPP_NOEXCEPT
100516     {
100517       return *reinterpret_cast<VkSurfacePresentModeEXT*>( this );
100518     }
100519 
100520 #if defined( VULKAN_HPP_USE_REFLECT )
100521 #if 14 <= VULKAN_HPP_CPP_VERSION
100522     auto
100523 #else
100524     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PresentModeKHR const &>
100525 #endif
reflectVULKAN_HPP_NAMESPACE::SurfacePresentModeEXT100526       reflect() const VULKAN_HPP_NOEXCEPT
100527     {
100528       return std::tie( sType, pNext, presentMode );
100529     }
100530 #endif
100531 
100532 
100533 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
100534 auto operator<=>( SurfacePresentModeEXT const & ) const = default;
100535 #else
operator ==VULKAN_HPP_NAMESPACE::SurfacePresentModeEXT100536     bool operator==( SurfacePresentModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100537     {
100538 #if defined( VULKAN_HPP_USE_REFLECT )
100539       return this->reflect() == rhs.reflect();
100540 #else
100541       return ( sType == rhs.sType )
100542           && ( pNext == rhs.pNext )
100543           && ( presentMode == rhs.presentMode );
100544 #endif
100545     }
100546 
operator !=VULKAN_HPP_NAMESPACE::SurfacePresentModeEXT100547     bool operator!=( SurfacePresentModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100548     {
100549       return !operator==( rhs );
100550     }
100551 #endif
100552 
100553     public:
100554     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfacePresentModeEXT;
100555     void * pNext = {};
100556     VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate;
100557 
100558   };
100559 
100560   template <>
100561   struct CppType<StructureType, StructureType::eSurfacePresentModeEXT>
100562   {
100563     using Type = SurfacePresentModeEXT;
100564   };
100565 
100566   struct SurfacePresentScalingCapabilitiesEXT
100567   {
100568     using NativeType = VkSurfacePresentScalingCapabilitiesEXT;
100569 
100570     static const bool allowDuplicate = false;
100571     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfacePresentScalingCapabilitiesEXT;
100572 
100573 
100574 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfacePresentScalingCapabilitiesEXTVULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100575 VULKAN_HPP_CONSTEXPR SurfacePresentScalingCapabilitiesEXT(VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT supportedPresentScaling_ = {}, VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityX_ = {}, VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityY_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minScaledImageExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxScaledImageExtent_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
100576     : pNext( pNext_ ), supportedPresentScaling( supportedPresentScaling_ ), supportedPresentGravityX( supportedPresentGravityX_ ), supportedPresentGravityY( supportedPresentGravityY_ ), minScaledImageExtent( minScaledImageExtent_ ), maxScaledImageExtent( maxScaledImageExtent_ )
100577     {}
100578 
100579     VULKAN_HPP_CONSTEXPR SurfacePresentScalingCapabilitiesEXT( SurfacePresentScalingCapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100580 
SurfacePresentScalingCapabilitiesEXTVULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100581     SurfacePresentScalingCapabilitiesEXT( VkSurfacePresentScalingCapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100582       : SurfacePresentScalingCapabilitiesEXT( *reinterpret_cast<SurfacePresentScalingCapabilitiesEXT const *>( &rhs ) )
100583     {}
100584 
100585 
100586     SurfacePresentScalingCapabilitiesEXT & operator=( SurfacePresentScalingCapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100587 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
100588 
operator =VULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100589     SurfacePresentScalingCapabilitiesEXT & operator=( VkSurfacePresentScalingCapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100590     {
100591       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT const *>( &rhs );
100592       return *this;
100593     }
100594 
100595 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100596     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
100597     {
100598       pNext = pNext_;
100599       return *this;
100600     }
100601 
setSupportedPresentScalingVULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100602     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT & setSupportedPresentScaling( VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT supportedPresentScaling_ ) VULKAN_HPP_NOEXCEPT
100603     {
100604       supportedPresentScaling = supportedPresentScaling_;
100605       return *this;
100606     }
100607 
setSupportedPresentGravityXVULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100608     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT & setSupportedPresentGravityX( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityX_ ) VULKAN_HPP_NOEXCEPT
100609     {
100610       supportedPresentGravityX = supportedPresentGravityX_;
100611       return *this;
100612     }
100613 
setSupportedPresentGravityYVULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100614     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT & setSupportedPresentGravityY( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityY_ ) VULKAN_HPP_NOEXCEPT
100615     {
100616       supportedPresentGravityY = supportedPresentGravityY_;
100617       return *this;
100618     }
100619 
setMinScaledImageExtentVULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100620     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT & setMinScaledImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & minScaledImageExtent_ ) VULKAN_HPP_NOEXCEPT
100621     {
100622       minScaledImageExtent = minScaledImageExtent_;
100623       return *this;
100624     }
100625 
setMaxScaledImageExtentVULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100626     VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT & setMaxScaledImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & maxScaledImageExtent_ ) VULKAN_HPP_NOEXCEPT
100627     {
100628       maxScaledImageExtent = maxScaledImageExtent_;
100629       return *this;
100630     }
100631 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
100632 
100633 
operator VkSurfacePresentScalingCapabilitiesEXT const&VULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100634     operator VkSurfacePresentScalingCapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
100635     {
100636       return *reinterpret_cast<const VkSurfacePresentScalingCapabilitiesEXT*>( this );
100637     }
100638 
operator VkSurfacePresentScalingCapabilitiesEXT&VULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100639     operator VkSurfacePresentScalingCapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
100640     {
100641       return *reinterpret_cast<VkSurfacePresentScalingCapabilitiesEXT*>( this );
100642     }
100643 
100644 #if defined( VULKAN_HPP_USE_REFLECT )
100645 #if 14 <= VULKAN_HPP_CPP_VERSION
100646     auto
100647 #else
100648     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT const &, VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT const &, VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
100649 #endif
reflectVULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100650       reflect() const VULKAN_HPP_NOEXCEPT
100651     {
100652       return std::tie( sType, pNext, supportedPresentScaling, supportedPresentGravityX, supportedPresentGravityY, minScaledImageExtent, maxScaledImageExtent );
100653     }
100654 #endif
100655 
100656 
100657 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
100658 auto operator<=>( SurfacePresentScalingCapabilitiesEXT const & ) const = default;
100659 #else
operator ==VULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100660     bool operator==( SurfacePresentScalingCapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100661     {
100662 #if defined( VULKAN_HPP_USE_REFLECT )
100663       return this->reflect() == rhs.reflect();
100664 #else
100665       return ( sType == rhs.sType )
100666           && ( pNext == rhs.pNext )
100667           && ( supportedPresentScaling == rhs.supportedPresentScaling )
100668           && ( supportedPresentGravityX == rhs.supportedPresentGravityX )
100669           && ( supportedPresentGravityY == rhs.supportedPresentGravityY )
100670           && ( minScaledImageExtent == rhs.minScaledImageExtent )
100671           && ( maxScaledImageExtent == rhs.maxScaledImageExtent );
100672 #endif
100673     }
100674 
operator !=VULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT100675     bool operator!=( SurfacePresentScalingCapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100676     {
100677       return !operator==( rhs );
100678     }
100679 #endif
100680 
100681     public:
100682     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfacePresentScalingCapabilitiesEXT;
100683     void * pNext = {};
100684     VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT supportedPresentScaling = {};
100685     VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityX = {};
100686     VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityY = {};
100687     VULKAN_HPP_NAMESPACE::Extent2D minScaledImageExtent = {};
100688     VULKAN_HPP_NAMESPACE::Extent2D maxScaledImageExtent = {};
100689 
100690   };
100691 
100692   template <>
100693   struct CppType<StructureType, StructureType::eSurfacePresentScalingCapabilitiesEXT>
100694   {
100695     using Type = SurfacePresentScalingCapabilitiesEXT;
100696   };
100697 
100698   struct SurfaceProtectedCapabilitiesKHR
100699   {
100700     using NativeType = VkSurfaceProtectedCapabilitiesKHR;
100701 
100702     static const bool allowDuplicate = false;
100703     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR;
100704 
100705 
100706 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR100707 VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR(VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
100708     : pNext( pNext_ ), supportsProtected( supportsProtected_ )
100709     {}
100710 
100711     VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100712 
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR100713     SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
100714       : SurfaceProtectedCapabilitiesKHR( *reinterpret_cast<SurfaceProtectedCapabilitiesKHR const *>( &rhs ) )
100715     {}
100716 
100717 
100718     SurfaceProtectedCapabilitiesKHR & operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100719 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
100720 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR100721     SurfaceProtectedCapabilitiesKHR & operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
100722     {
100723       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const *>( &rhs );
100724       return *this;
100725     }
100726 
100727 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR100728     VULKAN_HPP_CONSTEXPR_14 SurfaceProtectedCapabilitiesKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
100729     {
100730       pNext = pNext_;
100731       return *this;
100732     }
100733 
setSupportsProtectedVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR100734     VULKAN_HPP_CONSTEXPR_14 SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT
100735     {
100736       supportsProtected = supportsProtected_;
100737       return *this;
100738     }
100739 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
100740 
100741 
operator VkSurfaceProtectedCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR100742     operator VkSurfaceProtectedCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
100743     {
100744       return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>( this );
100745     }
100746 
operator VkSurfaceProtectedCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR100747     operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
100748     {
100749       return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>( this );
100750     }
100751 
100752 #if defined( VULKAN_HPP_USE_REFLECT )
100753 #if 14 <= VULKAN_HPP_CPP_VERSION
100754     auto
100755 #else
100756     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
100757 #endif
reflectVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR100758       reflect() const VULKAN_HPP_NOEXCEPT
100759     {
100760       return std::tie( sType, pNext, supportsProtected );
100761     }
100762 #endif
100763 
100764 
100765 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
100766 auto operator<=>( SurfaceProtectedCapabilitiesKHR const & ) const = default;
100767 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR100768     bool operator==( SurfaceProtectedCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
100769     {
100770 #if defined( VULKAN_HPP_USE_REFLECT )
100771       return this->reflect() == rhs.reflect();
100772 #else
100773       return ( sType == rhs.sType )
100774           && ( pNext == rhs.pNext )
100775           && ( supportsProtected == rhs.supportsProtected );
100776 #endif
100777     }
100778 
operator !=VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR100779     bool operator!=( SurfaceProtectedCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
100780     {
100781       return !operator==( rhs );
100782     }
100783 #endif
100784 
100785     public:
100786     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR;
100787     const void * pNext = {};
100788     VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {};
100789 
100790   };
100791 
100792   template <>
100793   struct CppType<StructureType, StructureType::eSurfaceProtectedCapabilitiesKHR>
100794   {
100795     using Type = SurfaceProtectedCapabilitiesKHR;
100796   };
100797 
100798   struct SwapchainCounterCreateInfoEXT
100799   {
100800     using NativeType = VkSwapchainCounterCreateInfoEXT;
100801 
100802     static const bool allowDuplicate = false;
100803     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT;
100804 
100805 
100806 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT100807 VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
100808     : pNext( pNext_ ), surfaceCounters( surfaceCounters_ )
100809     {}
100810 
100811     VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100812 
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT100813     SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100814       : SwapchainCounterCreateInfoEXT( *reinterpret_cast<SwapchainCounterCreateInfoEXT const *>( &rhs ) )
100815     {}
100816 
100817 
100818     SwapchainCounterCreateInfoEXT & operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100819 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
100820 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT100821     SwapchainCounterCreateInfoEXT & operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
100822     {
100823       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const *>( &rhs );
100824       return *this;
100825     }
100826 
100827 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT100828     VULKAN_HPP_CONSTEXPR_14 SwapchainCounterCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
100829     {
100830       pNext = pNext_;
100831       return *this;
100832     }
100833 
setSurfaceCountersVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT100834     VULKAN_HPP_CONSTEXPR_14 SwapchainCounterCreateInfoEXT & setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT
100835     {
100836       surfaceCounters = surfaceCounters_;
100837       return *this;
100838     }
100839 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
100840 
100841 
operator VkSwapchainCounterCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT100842     operator VkSwapchainCounterCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
100843     {
100844       return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>( this );
100845     }
100846 
operator VkSwapchainCounterCreateInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT100847     operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
100848     {
100849       return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>( this );
100850     }
100851 
100852 #if defined( VULKAN_HPP_USE_REFLECT )
100853 #if 14 <= VULKAN_HPP_CPP_VERSION
100854     auto
100855 #else
100856     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT const &>
100857 #endif
reflectVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT100858       reflect() const VULKAN_HPP_NOEXCEPT
100859     {
100860       return std::tie( sType, pNext, surfaceCounters );
100861     }
100862 #endif
100863 
100864 
100865 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
100866 auto operator<=>( SwapchainCounterCreateInfoEXT const & ) const = default;
100867 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT100868     bool operator==( SwapchainCounterCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100869     {
100870 #if defined( VULKAN_HPP_USE_REFLECT )
100871       return this->reflect() == rhs.reflect();
100872 #else
100873       return ( sType == rhs.sType )
100874           && ( pNext == rhs.pNext )
100875           && ( surfaceCounters == rhs.surfaceCounters );
100876 #endif
100877     }
100878 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT100879     bool operator!=( SwapchainCounterCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
100880     {
100881       return !operator==( rhs );
100882     }
100883 #endif
100884 
100885     public:
100886     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT;
100887     const void * pNext = {};
100888     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {};
100889 
100890   };
100891 
100892   template <>
100893   struct CppType<StructureType, StructureType::eSwapchainCounterCreateInfoEXT>
100894   {
100895     using Type = SwapchainCounterCreateInfoEXT;
100896   };
100897 
100898   struct SwapchainCreateInfoKHR
100899   {
100900     using NativeType = VkSwapchainCreateInfoKHR;
100901 
100902     static const bool allowDuplicate = false;
100903     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR;
100904 
100905 
100906 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100907 VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}, uint32_t minImageCount_ = {}, VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {}, uint32_t imageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t * pQueueFamilyIndices_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
100908     : pNext( pNext_ ), flags( flags_ ), surface( surface_ ), minImageCount( minImageCount_ ), imageFormat( imageFormat_ ), imageColorSpace( imageColorSpace_ ), imageExtent( imageExtent_ ), imageArrayLayers( imageArrayLayers_ ), imageUsage( imageUsage_ ), imageSharingMode( imageSharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ), preTransform( preTransform_ ), compositeAlpha( compositeAlpha_ ), presentMode( presentMode_ ), clipped( clipped_ ), oldSwapchain( oldSwapchain_ )
100909     {}
100910 
100911     VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100912 
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100913     SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
100914       : SwapchainCreateInfoKHR( *reinterpret_cast<SwapchainCreateInfoKHR const *>( &rhs ) )
100915     {}
100916 
100917 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100918     SwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_, VULKAN_HPP_NAMESPACE::SurfaceKHR surface_, uint32_t minImageCount_, VULKAN_HPP_NAMESPACE::Format imageFormat_, VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_, uint32_t imageArrayLayers_, VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_, VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {}, const void * pNext_ = nullptr )
100919     : pNext( pNext_ ), flags( flags_ ), surface( surface_ ), minImageCount( minImageCount_ ), imageFormat( imageFormat_ ), imageColorSpace( imageColorSpace_ ), imageExtent( imageExtent_ ), imageArrayLayers( imageArrayLayers_ ), imageUsage( imageUsage_ ), imageSharingMode( imageSharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ), preTransform( preTransform_ ), compositeAlpha( compositeAlpha_ ), presentMode( presentMode_ ), clipped( clipped_ ), oldSwapchain( oldSwapchain_ )
100920     {}
100921 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
100922 
100923 
100924     SwapchainCreateInfoKHR & operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
100925 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
100926 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100927     SwapchainCreateInfoKHR & operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
100928     {
100929       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const *>( &rhs );
100930       return *this;
100931     }
100932 
100933 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100934     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
100935     {
100936       pNext = pNext_;
100937       return *this;
100938     }
100939 
setFlagsVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100940     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
100941     {
100942       flags = flags_;
100943       return *this;
100944     }
100945 
setSurfaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100946     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
100947     {
100948       surface = surface_;
100949       return *this;
100950     }
100951 
setMinImageCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100952     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT
100953     {
100954       minImageCount = minImageCount_;
100955       return *this;
100956     }
100957 
setImageFormatVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100958     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT
100959     {
100960       imageFormat = imageFormat_;
100961       return *this;
100962     }
100963 
setImageColorSpaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100964     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT
100965     {
100966       imageColorSpace = imageColorSpace_;
100967       return *this;
100968     }
100969 
setImageExtentVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100970     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
100971     {
100972       imageExtent = imageExtent_;
100973       return *this;
100974     }
100975 
setImageArrayLayersVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100976     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT
100977     {
100978       imageArrayLayers = imageArrayLayers_;
100979       return *this;
100980     }
100981 
setImageUsageVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100982     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
100983     {
100984       imageUsage = imageUsage_;
100985       return *this;
100986     }
100987 
setImageSharingModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100988     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT
100989     {
100990       imageSharingMode = imageSharingMode_;
100991       return *this;
100992     }
100993 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR100994     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
100995     {
100996       queueFamilyIndexCount = queueFamilyIndexCount_;
100997       return *this;
100998     }
100999 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101000     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
101001     {
101002       pQueueFamilyIndices = pQueueFamilyIndices_;
101003       return *this;
101004     }
101005 
101006 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101007     SwapchainCreateInfoKHR & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
101008     {
101009       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
101010       pQueueFamilyIndices = queueFamilyIndices_.data();
101011       return *this;
101012     }
101013 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
101014 
setPreTransformVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101015     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT
101016     {
101017       preTransform = preTransform_;
101018       return *this;
101019     }
101020 
setCompositeAlphaVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101021     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT
101022     {
101023       compositeAlpha = compositeAlpha_;
101024       return *this;
101025     }
101026 
setPresentModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101027     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT
101028     {
101029       presentMode = presentMode_;
101030       return *this;
101031     }
101032 
setClippedVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101033     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT
101034     {
101035       clipped = clipped_;
101036       return *this;
101037     }
101038 
setOldSwapchainVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101039     VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT
101040     {
101041       oldSwapchain = oldSwapchain_;
101042       return *this;
101043     }
101044 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
101045 
101046 
operator VkSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101047     operator VkSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
101048     {
101049       return *reinterpret_cast<const VkSwapchainCreateInfoKHR*>( this );
101050     }
101051 
operator VkSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101052     operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
101053     {
101054       return *reinterpret_cast<VkSwapchainCreateInfoKHR*>( this );
101055     }
101056 
101057 #if defined( VULKAN_HPP_USE_REFLECT )
101058 #if 14 <= VULKAN_HPP_CPP_VERSION
101059     auto
101060 #else
101061     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR const &, VULKAN_HPP_NAMESPACE::SurfaceKHR const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::ColorSpaceKHR const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &, VULKAN_HPP_NAMESPACE::SharingMode const &, uint32_t const &, const uint32_t * const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR const &, VULKAN_HPP_NAMESPACE::PresentModeKHR const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::SwapchainKHR const &>
101062 #endif
reflectVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101063       reflect() const VULKAN_HPP_NOEXCEPT
101064     {
101065       return std::tie( sType, pNext, flags, surface, minImageCount, imageFormat, imageColorSpace, imageExtent, imageArrayLayers, imageUsage, imageSharingMode, queueFamilyIndexCount, pQueueFamilyIndices, preTransform, compositeAlpha, presentMode, clipped, oldSwapchain );
101066     }
101067 #endif
101068 
101069 
101070 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
101071 auto operator<=>( SwapchainCreateInfoKHR const & ) const = default;
101072 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101073     bool operator==( SwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
101074     {
101075 #if defined( VULKAN_HPP_USE_REFLECT )
101076       return this->reflect() == rhs.reflect();
101077 #else
101078       return ( sType == rhs.sType )
101079           && ( pNext == rhs.pNext )
101080           && ( flags == rhs.flags )
101081           && ( surface == rhs.surface )
101082           && ( minImageCount == rhs.minImageCount )
101083           && ( imageFormat == rhs.imageFormat )
101084           && ( imageColorSpace == rhs.imageColorSpace )
101085           && ( imageExtent == rhs.imageExtent )
101086           && ( imageArrayLayers == rhs.imageArrayLayers )
101087           && ( imageUsage == rhs.imageUsage )
101088           && ( imageSharingMode == rhs.imageSharingMode )
101089           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
101090           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
101091           && ( preTransform == rhs.preTransform )
101092           && ( compositeAlpha == rhs.compositeAlpha )
101093           && ( presentMode == rhs.presentMode )
101094           && ( clipped == rhs.clipped )
101095           && ( oldSwapchain == rhs.oldSwapchain );
101096 #endif
101097     }
101098 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR101099     bool operator!=( SwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
101100     {
101101       return !operator==( rhs );
101102     }
101103 #endif
101104 
101105     public:
101106     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR;
101107     const void * pNext = {};
101108     VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {};
101109     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
101110     uint32_t minImageCount = {};
101111     VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
101112     VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
101113     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
101114     uint32_t imageArrayLayers = {};
101115     VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
101116     VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
101117     uint32_t queueFamilyIndexCount = {};
101118     const uint32_t * pQueueFamilyIndices = {};
101119     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
101120     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque;
101121     VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate;
101122     VULKAN_HPP_NAMESPACE::Bool32 clipped = {};
101123     VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {};
101124 
101125   };
101126 
101127   template <>
101128   struct CppType<StructureType, StructureType::eSwapchainCreateInfoKHR>
101129   {
101130     using Type = SwapchainCreateInfoKHR;
101131   };
101132 
101133   struct SwapchainDisplayNativeHdrCreateInfoAMD
101134   {
101135     using NativeType = VkSwapchainDisplayNativeHdrCreateInfoAMD;
101136 
101137     static const bool allowDuplicate = false;
101138     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
101139 
101140 
101141 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD101142 VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
101143     : pNext( pNext_ ), localDimmingEnable( localDimmingEnable_ )
101144     {}
101145 
101146     VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101147 
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD101148     SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
101149       : SwapchainDisplayNativeHdrCreateInfoAMD( *reinterpret_cast<SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs ) )
101150     {}
101151 
101152 
101153     SwapchainDisplayNativeHdrCreateInfoAMD & operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101154 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
101155 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD101156     SwapchainDisplayNativeHdrCreateInfoAMD & operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
101157     {
101158       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs );
101159       return *this;
101160     }
101161 
101162 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD101163     VULKAN_HPP_CONSTEXPR_14 SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
101164     {
101165       pNext = pNext_;
101166       return *this;
101167     }
101168 
setLocalDimmingEnableVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD101169     VULKAN_HPP_CONSTEXPR_14 SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT
101170     {
101171       localDimmingEnable = localDimmingEnable_;
101172       return *this;
101173     }
101174 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
101175 
101176 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD101177     operator VkSwapchainDisplayNativeHdrCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
101178     {
101179       return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
101180     }
101181 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD101182     operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
101183     {
101184       return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
101185     }
101186 
101187 #if defined( VULKAN_HPP_USE_REFLECT )
101188 #if 14 <= VULKAN_HPP_CPP_VERSION
101189     auto
101190 #else
101191     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
101192 #endif
reflectVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD101193       reflect() const VULKAN_HPP_NOEXCEPT
101194     {
101195       return std::tie( sType, pNext, localDimmingEnable );
101196     }
101197 #endif
101198 
101199 
101200 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
101201 auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const & ) const = default;
101202 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD101203     bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
101204     {
101205 #if defined( VULKAN_HPP_USE_REFLECT )
101206       return this->reflect() == rhs.reflect();
101207 #else
101208       return ( sType == rhs.sType )
101209           && ( pNext == rhs.pNext )
101210           && ( localDimmingEnable == rhs.localDimmingEnable );
101211 #endif
101212     }
101213 
operator !=VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD101214     bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
101215     {
101216       return !operator==( rhs );
101217     }
101218 #endif
101219 
101220     public:
101221     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
101222     const void * pNext = {};
101223     VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {};
101224 
101225   };
101226 
101227   template <>
101228   struct CppType<StructureType, StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD>
101229   {
101230     using Type = SwapchainDisplayNativeHdrCreateInfoAMD;
101231   };
101232 
101233   struct SwapchainLatencyCreateInfoNV
101234   {
101235     using NativeType = VkSwapchainLatencyCreateInfoNV;
101236 
101237     static const bool allowDuplicate = false;
101238     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainLatencyCreateInfoNV;
101239 
101240 
101241 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainLatencyCreateInfoNVVULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV101242 VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
101243     : pNext( pNext_ ), latencyModeEnable( latencyModeEnable_ )
101244     {}
101245 
101246     VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV( SwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101247 
SwapchainLatencyCreateInfoNVVULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV101248     SwapchainLatencyCreateInfoNV( VkSwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
101249       : SwapchainLatencyCreateInfoNV( *reinterpret_cast<SwapchainLatencyCreateInfoNV const *>( &rhs ) )
101250     {}
101251 
101252 
101253     SwapchainLatencyCreateInfoNV & operator=( SwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101254 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
101255 
operator =VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV101256     SwapchainLatencyCreateInfoNV & operator=( VkSwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
101257     {
101258       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV const *>( &rhs );
101259       return *this;
101260     }
101261 
101262 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV101263     VULKAN_HPP_CONSTEXPR_14 SwapchainLatencyCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
101264     {
101265       pNext = pNext_;
101266       return *this;
101267     }
101268 
setLatencyModeEnableVULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV101269     VULKAN_HPP_CONSTEXPR_14 SwapchainLatencyCreateInfoNV & setLatencyModeEnable( VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ ) VULKAN_HPP_NOEXCEPT
101270     {
101271       latencyModeEnable = latencyModeEnable_;
101272       return *this;
101273     }
101274 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
101275 
101276 
operator VkSwapchainLatencyCreateInfoNV const&VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV101277     operator VkSwapchainLatencyCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
101278     {
101279       return *reinterpret_cast<const VkSwapchainLatencyCreateInfoNV*>( this );
101280     }
101281 
operator VkSwapchainLatencyCreateInfoNV&VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV101282     operator VkSwapchainLatencyCreateInfoNV &() VULKAN_HPP_NOEXCEPT
101283     {
101284       return *reinterpret_cast<VkSwapchainLatencyCreateInfoNV*>( this );
101285     }
101286 
101287 #if defined( VULKAN_HPP_USE_REFLECT )
101288 #if 14 <= VULKAN_HPP_CPP_VERSION
101289     auto
101290 #else
101291     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
101292 #endif
reflectVULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV101293       reflect() const VULKAN_HPP_NOEXCEPT
101294     {
101295       return std::tie( sType, pNext, latencyModeEnable );
101296     }
101297 #endif
101298 
101299 
101300 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
101301 auto operator<=>( SwapchainLatencyCreateInfoNV const & ) const = default;
101302 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV101303     bool operator==( SwapchainLatencyCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
101304     {
101305 #if defined( VULKAN_HPP_USE_REFLECT )
101306       return this->reflect() == rhs.reflect();
101307 #else
101308       return ( sType == rhs.sType )
101309           && ( pNext == rhs.pNext )
101310           && ( latencyModeEnable == rhs.latencyModeEnable );
101311 #endif
101312     }
101313 
operator !=VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV101314     bool operator!=( SwapchainLatencyCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
101315     {
101316       return !operator==( rhs );
101317     }
101318 #endif
101319 
101320     public:
101321     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainLatencyCreateInfoNV;
101322     const void * pNext = {};
101323     VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable = {};
101324 
101325   };
101326 
101327   template <>
101328   struct CppType<StructureType, StructureType::eSwapchainLatencyCreateInfoNV>
101329   {
101330     using Type = SwapchainLatencyCreateInfoNV;
101331   };
101332 
101333   struct SwapchainPresentBarrierCreateInfoNV
101334   {
101335     using NativeType = VkSwapchainPresentBarrierCreateInfoNV;
101336 
101337     static const bool allowDuplicate = false;
101338     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainPresentBarrierCreateInfoNV;
101339 
101340 
101341 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainPresentBarrierCreateInfoNVVULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV101342 VULKAN_HPP_CONSTEXPR SwapchainPresentBarrierCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 presentBarrierEnable_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
101343     : pNext( pNext_ ), presentBarrierEnable( presentBarrierEnable_ )
101344     {}
101345 
101346     VULKAN_HPP_CONSTEXPR SwapchainPresentBarrierCreateInfoNV( SwapchainPresentBarrierCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101347 
SwapchainPresentBarrierCreateInfoNVVULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV101348     SwapchainPresentBarrierCreateInfoNV( VkSwapchainPresentBarrierCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
101349       : SwapchainPresentBarrierCreateInfoNV( *reinterpret_cast<SwapchainPresentBarrierCreateInfoNV const *>( &rhs ) )
101350     {}
101351 
101352 
101353     SwapchainPresentBarrierCreateInfoNV & operator=( SwapchainPresentBarrierCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101354 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
101355 
operator =VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV101356     SwapchainPresentBarrierCreateInfoNV & operator=( VkSwapchainPresentBarrierCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
101357     {
101358       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV const *>( &rhs );
101359       return *this;
101360     }
101361 
101362 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV101363     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentBarrierCreateInfoNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
101364     {
101365       pNext = pNext_;
101366       return *this;
101367     }
101368 
setPresentBarrierEnableVULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV101369     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentBarrierCreateInfoNV & setPresentBarrierEnable( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierEnable_ ) VULKAN_HPP_NOEXCEPT
101370     {
101371       presentBarrierEnable = presentBarrierEnable_;
101372       return *this;
101373     }
101374 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
101375 
101376 
operator VkSwapchainPresentBarrierCreateInfoNV const&VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV101377     operator VkSwapchainPresentBarrierCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
101378     {
101379       return *reinterpret_cast<const VkSwapchainPresentBarrierCreateInfoNV*>( this );
101380     }
101381 
operator VkSwapchainPresentBarrierCreateInfoNV&VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV101382     operator VkSwapchainPresentBarrierCreateInfoNV &() VULKAN_HPP_NOEXCEPT
101383     {
101384       return *reinterpret_cast<VkSwapchainPresentBarrierCreateInfoNV*>( this );
101385     }
101386 
101387 #if defined( VULKAN_HPP_USE_REFLECT )
101388 #if 14 <= VULKAN_HPP_CPP_VERSION
101389     auto
101390 #else
101391     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
101392 #endif
reflectVULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV101393       reflect() const VULKAN_HPP_NOEXCEPT
101394     {
101395       return std::tie( sType, pNext, presentBarrierEnable );
101396     }
101397 #endif
101398 
101399 
101400 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
101401 auto operator<=>( SwapchainPresentBarrierCreateInfoNV const & ) const = default;
101402 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV101403     bool operator==( SwapchainPresentBarrierCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
101404     {
101405 #if defined( VULKAN_HPP_USE_REFLECT )
101406       return this->reflect() == rhs.reflect();
101407 #else
101408       return ( sType == rhs.sType )
101409           && ( pNext == rhs.pNext )
101410           && ( presentBarrierEnable == rhs.presentBarrierEnable );
101411 #endif
101412     }
101413 
operator !=VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV101414     bool operator!=( SwapchainPresentBarrierCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
101415     {
101416       return !operator==( rhs );
101417     }
101418 #endif
101419 
101420     public:
101421     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainPresentBarrierCreateInfoNV;
101422     void * pNext = {};
101423     VULKAN_HPP_NAMESPACE::Bool32 presentBarrierEnable = {};
101424 
101425   };
101426 
101427   template <>
101428   struct CppType<StructureType, StructureType::eSwapchainPresentBarrierCreateInfoNV>
101429   {
101430     using Type = SwapchainPresentBarrierCreateInfoNV;
101431   };
101432 
101433   struct SwapchainPresentFenceInfoEXT
101434   {
101435     using NativeType = VkSwapchainPresentFenceInfoEXT;
101436 
101437     static const bool allowDuplicate = false;
101438     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainPresentFenceInfoEXT;
101439 
101440 
101441 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainPresentFenceInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101442 VULKAN_HPP_CONSTEXPR SwapchainPresentFenceInfoEXT(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::Fence * pFences_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
101443     : pNext( pNext_ ), swapchainCount( swapchainCount_ ), pFences( pFences_ )
101444     {}
101445 
101446     VULKAN_HPP_CONSTEXPR SwapchainPresentFenceInfoEXT( SwapchainPresentFenceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101447 
SwapchainPresentFenceInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101448     SwapchainPresentFenceInfoEXT( VkSwapchainPresentFenceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
101449       : SwapchainPresentFenceInfoEXT( *reinterpret_cast<SwapchainPresentFenceInfoEXT const *>( &rhs ) )
101450     {}
101451 
101452 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SwapchainPresentFenceInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101453     SwapchainPresentFenceInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Fence> const & fences_, const void * pNext_ = nullptr )
101454     : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( fences_.size() ) ), pFences( fences_.data() )
101455     {}
101456 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
101457 
101458 
101459     SwapchainPresentFenceInfoEXT & operator=( SwapchainPresentFenceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101460 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
101461 
operator =VULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101462     SwapchainPresentFenceInfoEXT & operator=( VkSwapchainPresentFenceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
101463     {
101464       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT const *>( &rhs );
101465       return *this;
101466     }
101467 
101468 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101469     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentFenceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
101470     {
101471       pNext = pNext_;
101472       return *this;
101473     }
101474 
setSwapchainCountVULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101475     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentFenceInfoEXT & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
101476     {
101477       swapchainCount = swapchainCount_;
101478       return *this;
101479     }
101480 
setPFencesVULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101481     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentFenceInfoEXT & setPFences( const VULKAN_HPP_NAMESPACE::Fence * pFences_ ) VULKAN_HPP_NOEXCEPT
101482     {
101483       pFences = pFences_;
101484       return *this;
101485     }
101486 
101487 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setFencesVULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101488     SwapchainPresentFenceInfoEXT & setFences( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Fence> const & fences_ ) VULKAN_HPP_NOEXCEPT
101489     {
101490       swapchainCount = static_cast<uint32_t>( fences_.size() );
101491       pFences = fences_.data();
101492       return *this;
101493     }
101494 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
101495 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
101496 
101497 
operator VkSwapchainPresentFenceInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101498     operator VkSwapchainPresentFenceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
101499     {
101500       return *reinterpret_cast<const VkSwapchainPresentFenceInfoEXT*>( this );
101501     }
101502 
operator VkSwapchainPresentFenceInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101503     operator VkSwapchainPresentFenceInfoEXT &() VULKAN_HPP_NOEXCEPT
101504     {
101505       return *reinterpret_cast<VkSwapchainPresentFenceInfoEXT*>( this );
101506     }
101507 
101508 #if defined( VULKAN_HPP_USE_REFLECT )
101509 #if 14 <= VULKAN_HPP_CPP_VERSION
101510     auto
101511 #else
101512     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Fence * const &>
101513 #endif
reflectVULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101514       reflect() const VULKAN_HPP_NOEXCEPT
101515     {
101516       return std::tie( sType, pNext, swapchainCount, pFences );
101517     }
101518 #endif
101519 
101520 
101521 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
101522 auto operator<=>( SwapchainPresentFenceInfoEXT const & ) const = default;
101523 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101524     bool operator==( SwapchainPresentFenceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
101525     {
101526 #if defined( VULKAN_HPP_USE_REFLECT )
101527       return this->reflect() == rhs.reflect();
101528 #else
101529       return ( sType == rhs.sType )
101530           && ( pNext == rhs.pNext )
101531           && ( swapchainCount == rhs.swapchainCount )
101532           && ( pFences == rhs.pFences );
101533 #endif
101534     }
101535 
operator !=VULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT101536     bool operator!=( SwapchainPresentFenceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
101537     {
101538       return !operator==( rhs );
101539     }
101540 #endif
101541 
101542     public:
101543     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainPresentFenceInfoEXT;
101544     const void * pNext = {};
101545     uint32_t swapchainCount = {};
101546     const VULKAN_HPP_NAMESPACE::Fence * pFences = {};
101547 
101548   };
101549 
101550   template <>
101551   struct CppType<StructureType, StructureType::eSwapchainPresentFenceInfoEXT>
101552   {
101553     using Type = SwapchainPresentFenceInfoEXT;
101554   };
101555 
101556   struct SwapchainPresentModeInfoEXT
101557   {
101558     using NativeType = VkSwapchainPresentModeInfoEXT;
101559 
101560     static const bool allowDuplicate = false;
101561     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainPresentModeInfoEXT;
101562 
101563 
101564 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainPresentModeInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101565 VULKAN_HPP_CONSTEXPR SwapchainPresentModeInfoEXT(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
101566     : pNext( pNext_ ), swapchainCount( swapchainCount_ ), pPresentModes( pPresentModes_ )
101567     {}
101568 
101569     VULKAN_HPP_CONSTEXPR SwapchainPresentModeInfoEXT( SwapchainPresentModeInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101570 
SwapchainPresentModeInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101571     SwapchainPresentModeInfoEXT( VkSwapchainPresentModeInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
101572       : SwapchainPresentModeInfoEXT( *reinterpret_cast<SwapchainPresentModeInfoEXT const *>( &rhs ) )
101573     {}
101574 
101575 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SwapchainPresentModeInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101576     SwapchainPresentModeInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_, const void * pNext_ = nullptr )
101577     : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
101578     {}
101579 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
101580 
101581 
101582     SwapchainPresentModeInfoEXT & operator=( SwapchainPresentModeInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101583 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
101584 
operator =VULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101585     SwapchainPresentModeInfoEXT & operator=( VkSwapchainPresentModeInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
101586     {
101587       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT const *>( &rhs );
101588       return *this;
101589     }
101590 
101591 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101592     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModeInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
101593     {
101594       pNext = pNext_;
101595       return *this;
101596     }
101597 
setSwapchainCountVULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101598     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModeInfoEXT & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
101599     {
101600       swapchainCount = swapchainCount_;
101601       return *this;
101602     }
101603 
setPPresentModesVULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101604     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModeInfoEXT & setPPresentModes( const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
101605     {
101606       pPresentModes = pPresentModes_;
101607       return *this;
101608     }
101609 
101610 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPresentModesVULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101611     SwapchainPresentModeInfoEXT & setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_ ) VULKAN_HPP_NOEXCEPT
101612     {
101613       swapchainCount = static_cast<uint32_t>( presentModes_.size() );
101614       pPresentModes = presentModes_.data();
101615       return *this;
101616     }
101617 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
101618 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
101619 
101620 
operator VkSwapchainPresentModeInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101621     operator VkSwapchainPresentModeInfoEXT const &() const VULKAN_HPP_NOEXCEPT
101622     {
101623       return *reinterpret_cast<const VkSwapchainPresentModeInfoEXT*>( this );
101624     }
101625 
operator VkSwapchainPresentModeInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101626     operator VkSwapchainPresentModeInfoEXT &() VULKAN_HPP_NOEXCEPT
101627     {
101628       return *reinterpret_cast<VkSwapchainPresentModeInfoEXT*>( this );
101629     }
101630 
101631 #if defined( VULKAN_HPP_USE_REFLECT )
101632 #if 14 <= VULKAN_HPP_CPP_VERSION
101633     auto
101634 #else
101635     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
101636 #endif
reflectVULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101637       reflect() const VULKAN_HPP_NOEXCEPT
101638     {
101639       return std::tie( sType, pNext, swapchainCount, pPresentModes );
101640     }
101641 #endif
101642 
101643 
101644 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
101645 auto operator<=>( SwapchainPresentModeInfoEXT const & ) const = default;
101646 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101647     bool operator==( SwapchainPresentModeInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
101648     {
101649 #if defined( VULKAN_HPP_USE_REFLECT )
101650       return this->reflect() == rhs.reflect();
101651 #else
101652       return ( sType == rhs.sType )
101653           && ( pNext == rhs.pNext )
101654           && ( swapchainCount == rhs.swapchainCount )
101655           && ( pPresentModes == rhs.pPresentModes );
101656 #endif
101657     }
101658 
operator !=VULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT101659     bool operator!=( SwapchainPresentModeInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
101660     {
101661       return !operator==( rhs );
101662     }
101663 #endif
101664 
101665     public:
101666     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainPresentModeInfoEXT;
101667     const void * pNext = {};
101668     uint32_t swapchainCount = {};
101669     const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes = {};
101670 
101671   };
101672 
101673   template <>
101674   struct CppType<StructureType, StructureType::eSwapchainPresentModeInfoEXT>
101675   {
101676     using Type = SwapchainPresentModeInfoEXT;
101677   };
101678 
101679   struct SwapchainPresentModesCreateInfoEXT
101680   {
101681     using NativeType = VkSwapchainPresentModesCreateInfoEXT;
101682 
101683     static const bool allowDuplicate = false;
101684     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainPresentModesCreateInfoEXT;
101685 
101686 
101687 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainPresentModesCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101688 VULKAN_HPP_CONSTEXPR SwapchainPresentModesCreateInfoEXT(uint32_t presentModeCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
101689     : pNext( pNext_ ), presentModeCount( presentModeCount_ ), pPresentModes( pPresentModes_ )
101690     {}
101691 
101692     VULKAN_HPP_CONSTEXPR SwapchainPresentModesCreateInfoEXT( SwapchainPresentModesCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101693 
SwapchainPresentModesCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101694     SwapchainPresentModesCreateInfoEXT( VkSwapchainPresentModesCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
101695       : SwapchainPresentModesCreateInfoEXT( *reinterpret_cast<SwapchainPresentModesCreateInfoEXT const *>( &rhs ) )
101696     {}
101697 
101698 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
SwapchainPresentModesCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101699     SwapchainPresentModesCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_, const void * pNext_ = nullptr )
101700     : pNext( pNext_ ), presentModeCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
101701     {}
101702 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
101703 
101704 
101705     SwapchainPresentModesCreateInfoEXT & operator=( SwapchainPresentModesCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101706 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
101707 
operator =VULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101708     SwapchainPresentModesCreateInfoEXT & operator=( VkSwapchainPresentModesCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
101709     {
101710       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT const *>( &rhs );
101711       return *this;
101712     }
101713 
101714 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101715     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModesCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
101716     {
101717       pNext = pNext_;
101718       return *this;
101719     }
101720 
setPresentModeCountVULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101721     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModesCreateInfoEXT & setPresentModeCount( uint32_t presentModeCount_ ) VULKAN_HPP_NOEXCEPT
101722     {
101723       presentModeCount = presentModeCount_;
101724       return *this;
101725     }
101726 
setPPresentModesVULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101727     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModesCreateInfoEXT & setPPresentModes( const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
101728     {
101729       pPresentModes = pPresentModes_;
101730       return *this;
101731     }
101732 
101733 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setPresentModesVULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101734     SwapchainPresentModesCreateInfoEXT & setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_ ) VULKAN_HPP_NOEXCEPT
101735     {
101736       presentModeCount = static_cast<uint32_t>( presentModes_.size() );
101737       pPresentModes = presentModes_.data();
101738       return *this;
101739     }
101740 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
101741 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
101742 
101743 
operator VkSwapchainPresentModesCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101744     operator VkSwapchainPresentModesCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
101745     {
101746       return *reinterpret_cast<const VkSwapchainPresentModesCreateInfoEXT*>( this );
101747     }
101748 
operator VkSwapchainPresentModesCreateInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101749     operator VkSwapchainPresentModesCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
101750     {
101751       return *reinterpret_cast<VkSwapchainPresentModesCreateInfoEXT*>( this );
101752     }
101753 
101754 #if defined( VULKAN_HPP_USE_REFLECT )
101755 #if 14 <= VULKAN_HPP_CPP_VERSION
101756     auto
101757 #else
101758     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
101759 #endif
reflectVULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101760       reflect() const VULKAN_HPP_NOEXCEPT
101761     {
101762       return std::tie( sType, pNext, presentModeCount, pPresentModes );
101763     }
101764 #endif
101765 
101766 
101767 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
101768 auto operator<=>( SwapchainPresentModesCreateInfoEXT const & ) const = default;
101769 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101770     bool operator==( SwapchainPresentModesCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
101771     {
101772 #if defined( VULKAN_HPP_USE_REFLECT )
101773       return this->reflect() == rhs.reflect();
101774 #else
101775       return ( sType == rhs.sType )
101776           && ( pNext == rhs.pNext )
101777           && ( presentModeCount == rhs.presentModeCount )
101778           && ( pPresentModes == rhs.pPresentModes );
101779 #endif
101780     }
101781 
operator !=VULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT101782     bool operator!=( SwapchainPresentModesCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
101783     {
101784       return !operator==( rhs );
101785     }
101786 #endif
101787 
101788     public:
101789     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainPresentModesCreateInfoEXT;
101790     const void * pNext = {};
101791     uint32_t presentModeCount = {};
101792     const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes = {};
101793 
101794   };
101795 
101796   template <>
101797   struct CppType<StructureType, StructureType::eSwapchainPresentModesCreateInfoEXT>
101798   {
101799     using Type = SwapchainPresentModesCreateInfoEXT;
101800   };
101801 
101802   struct SwapchainPresentScalingCreateInfoEXT
101803   {
101804     using NativeType = VkSwapchainPresentScalingCreateInfoEXT;
101805 
101806     static const bool allowDuplicate = false;
101807     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainPresentScalingCreateInfoEXT;
101808 
101809 
101810 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainPresentScalingCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101811 VULKAN_HPP_CONSTEXPR SwapchainPresentScalingCreateInfoEXT(VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT scalingBehavior_ = {}, VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityX_ = {}, VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityY_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
101812     : pNext( pNext_ ), scalingBehavior( scalingBehavior_ ), presentGravityX( presentGravityX_ ), presentGravityY( presentGravityY_ )
101813     {}
101814 
101815     VULKAN_HPP_CONSTEXPR SwapchainPresentScalingCreateInfoEXT( SwapchainPresentScalingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101816 
SwapchainPresentScalingCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101817     SwapchainPresentScalingCreateInfoEXT( VkSwapchainPresentScalingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
101818       : SwapchainPresentScalingCreateInfoEXT( *reinterpret_cast<SwapchainPresentScalingCreateInfoEXT const *>( &rhs ) )
101819     {}
101820 
101821 
101822     SwapchainPresentScalingCreateInfoEXT & operator=( SwapchainPresentScalingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101823 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
101824 
operator =VULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101825     SwapchainPresentScalingCreateInfoEXT & operator=( VkSwapchainPresentScalingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
101826     {
101827       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT const *>( &rhs );
101828       return *this;
101829     }
101830 
101831 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101832     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
101833     {
101834       pNext = pNext_;
101835       return *this;
101836     }
101837 
setScalingBehaviorVULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101838     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT & setScalingBehavior( VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT scalingBehavior_ ) VULKAN_HPP_NOEXCEPT
101839     {
101840       scalingBehavior = scalingBehavior_;
101841       return *this;
101842     }
101843 
setPresentGravityXVULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101844     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT & setPresentGravityX( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityX_ ) VULKAN_HPP_NOEXCEPT
101845     {
101846       presentGravityX = presentGravityX_;
101847       return *this;
101848     }
101849 
setPresentGravityYVULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101850     VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT & setPresentGravityY( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityY_ ) VULKAN_HPP_NOEXCEPT
101851     {
101852       presentGravityY = presentGravityY_;
101853       return *this;
101854     }
101855 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
101856 
101857 
operator VkSwapchainPresentScalingCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101858     operator VkSwapchainPresentScalingCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
101859     {
101860       return *reinterpret_cast<const VkSwapchainPresentScalingCreateInfoEXT*>( this );
101861     }
101862 
operator VkSwapchainPresentScalingCreateInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101863     operator VkSwapchainPresentScalingCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
101864     {
101865       return *reinterpret_cast<VkSwapchainPresentScalingCreateInfoEXT*>( this );
101866     }
101867 
101868 #if defined( VULKAN_HPP_USE_REFLECT )
101869 #if 14 <= VULKAN_HPP_CPP_VERSION
101870     auto
101871 #else
101872     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT const &, VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT const &, VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT const &>
101873 #endif
reflectVULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101874       reflect() const VULKAN_HPP_NOEXCEPT
101875     {
101876       return std::tie( sType, pNext, scalingBehavior, presentGravityX, presentGravityY );
101877     }
101878 #endif
101879 
101880 
101881 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
101882 auto operator<=>( SwapchainPresentScalingCreateInfoEXT const & ) const = default;
101883 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101884     bool operator==( SwapchainPresentScalingCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
101885     {
101886 #if defined( VULKAN_HPP_USE_REFLECT )
101887       return this->reflect() == rhs.reflect();
101888 #else
101889       return ( sType == rhs.sType )
101890           && ( pNext == rhs.pNext )
101891           && ( scalingBehavior == rhs.scalingBehavior )
101892           && ( presentGravityX == rhs.presentGravityX )
101893           && ( presentGravityY == rhs.presentGravityY );
101894 #endif
101895     }
101896 
operator !=VULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT101897     bool operator!=( SwapchainPresentScalingCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
101898     {
101899       return !operator==( rhs );
101900     }
101901 #endif
101902 
101903     public:
101904     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainPresentScalingCreateInfoEXT;
101905     const void * pNext = {};
101906     VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT scalingBehavior = {};
101907     VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityX = {};
101908     VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityY = {};
101909 
101910   };
101911 
101912   template <>
101913   struct CppType<StructureType, StructureType::eSwapchainPresentScalingCreateInfoEXT>
101914   {
101915     using Type = SwapchainPresentScalingCreateInfoEXT;
101916   };
101917 
101918   struct TextureLODGatherFormatPropertiesAMD
101919   {
101920     using NativeType = VkTextureLODGatherFormatPropertiesAMD;
101921 
101922     static const bool allowDuplicate = false;
101923     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTextureLodGatherFormatPropertiesAMD;
101924 
101925 
101926 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD101927 VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD(VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
101928     : pNext( pNext_ ), supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ )
101929     {}
101930 
101931     VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101932 
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD101933     TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
101934       : TextureLODGatherFormatPropertiesAMD( *reinterpret_cast<TextureLODGatherFormatPropertiesAMD const *>( &rhs ) )
101935     {}
101936 
101937 
101938     TextureLODGatherFormatPropertiesAMD & operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
101939 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
101940 
operator =VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD101941     TextureLODGatherFormatPropertiesAMD & operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
101942     {
101943       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const *>( &rhs );
101944       return *this;
101945     }
101946 
101947 
operator VkTextureLODGatherFormatPropertiesAMD const&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD101948     operator VkTextureLODGatherFormatPropertiesAMD const &() const VULKAN_HPP_NOEXCEPT
101949     {
101950       return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>( this );
101951     }
101952 
operator VkTextureLODGatherFormatPropertiesAMD&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD101953     operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT
101954     {
101955       return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>( this );
101956     }
101957 
101958 #if defined( VULKAN_HPP_USE_REFLECT )
101959 #if 14 <= VULKAN_HPP_CPP_VERSION
101960     auto
101961 #else
101962     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
101963 #endif
reflectVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD101964       reflect() const VULKAN_HPP_NOEXCEPT
101965     {
101966       return std::tie( sType, pNext, supportsTextureGatherLODBiasAMD );
101967     }
101968 #endif
101969 
101970 
101971 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
101972 auto operator<=>( TextureLODGatherFormatPropertiesAMD const & ) const = default;
101973 #else
operator ==VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD101974     bool operator==( TextureLODGatherFormatPropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
101975     {
101976 #if defined( VULKAN_HPP_USE_REFLECT )
101977       return this->reflect() == rhs.reflect();
101978 #else
101979       return ( sType == rhs.sType )
101980           && ( pNext == rhs.pNext )
101981           && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD );
101982 #endif
101983     }
101984 
operator !=VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD101985     bool operator!=( TextureLODGatherFormatPropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
101986     {
101987       return !operator==( rhs );
101988     }
101989 #endif
101990 
101991     public:
101992     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD;
101993     void * pNext = {};
101994     VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {};
101995 
101996   };
101997 
101998   template <>
101999   struct CppType<StructureType, StructureType::eTextureLodGatherFormatPropertiesAMD>
102000   {
102001     using Type = TextureLODGatherFormatPropertiesAMD;
102002   };
102003 
102004   struct TilePropertiesQCOM
102005   {
102006     using NativeType = VkTilePropertiesQCOM;
102007 
102008     static const bool allowDuplicate = false;
102009     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTilePropertiesQCOM;
102010 
102011 
102012 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TilePropertiesQCOMVULKAN_HPP_NAMESPACE::TilePropertiesQCOM102013 VULKAN_HPP_CONSTEXPR TilePropertiesQCOM(VULKAN_HPP_NAMESPACE::Extent3D tileSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D apronSize_ = {}, VULKAN_HPP_NAMESPACE::Offset2D origin_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
102014     : pNext( pNext_ ), tileSize( tileSize_ ), apronSize( apronSize_ ), origin( origin_ )
102015     {}
102016 
102017     VULKAN_HPP_CONSTEXPR TilePropertiesQCOM( TilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102018 
TilePropertiesQCOMVULKAN_HPP_NAMESPACE::TilePropertiesQCOM102019     TilePropertiesQCOM( VkTilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
102020       : TilePropertiesQCOM( *reinterpret_cast<TilePropertiesQCOM const *>( &rhs ) )
102021     {}
102022 
102023 
102024     TilePropertiesQCOM & operator=( TilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102025 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
102026 
operator =VULKAN_HPP_NAMESPACE::TilePropertiesQCOM102027     TilePropertiesQCOM & operator=( VkTilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
102028     {
102029       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM const *>( &rhs );
102030       return *this;
102031     }
102032 
102033 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::TilePropertiesQCOM102034     VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
102035     {
102036       pNext = pNext_;
102037       return *this;
102038     }
102039 
setTileSizeVULKAN_HPP_NAMESPACE::TilePropertiesQCOM102040     VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setTileSize( VULKAN_HPP_NAMESPACE::Extent3D const & tileSize_ ) VULKAN_HPP_NOEXCEPT
102041     {
102042       tileSize = tileSize_;
102043       return *this;
102044     }
102045 
setApronSizeVULKAN_HPP_NAMESPACE::TilePropertiesQCOM102046     VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setApronSize( VULKAN_HPP_NAMESPACE::Extent2D const & apronSize_ ) VULKAN_HPP_NOEXCEPT
102047     {
102048       apronSize = apronSize_;
102049       return *this;
102050     }
102051 
setOriginVULKAN_HPP_NAMESPACE::TilePropertiesQCOM102052     VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setOrigin( VULKAN_HPP_NAMESPACE::Offset2D const & origin_ ) VULKAN_HPP_NOEXCEPT
102053     {
102054       origin = origin_;
102055       return *this;
102056     }
102057 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
102058 
102059 
operator VkTilePropertiesQCOM const&VULKAN_HPP_NAMESPACE::TilePropertiesQCOM102060     operator VkTilePropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
102061     {
102062       return *reinterpret_cast<const VkTilePropertiesQCOM*>( this );
102063     }
102064 
operator VkTilePropertiesQCOM&VULKAN_HPP_NAMESPACE::TilePropertiesQCOM102065     operator VkTilePropertiesQCOM &() VULKAN_HPP_NOEXCEPT
102066     {
102067       return *reinterpret_cast<VkTilePropertiesQCOM*>( this );
102068     }
102069 
102070 #if defined( VULKAN_HPP_USE_REFLECT )
102071 #if 14 <= VULKAN_HPP_CPP_VERSION
102072     auto
102073 #else
102074     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent3D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Offset2D const &>
102075 #endif
reflectVULKAN_HPP_NAMESPACE::TilePropertiesQCOM102076       reflect() const VULKAN_HPP_NOEXCEPT
102077     {
102078       return std::tie( sType, pNext, tileSize, apronSize, origin );
102079     }
102080 #endif
102081 
102082 
102083 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
102084 auto operator<=>( TilePropertiesQCOM const & ) const = default;
102085 #else
operator ==VULKAN_HPP_NAMESPACE::TilePropertiesQCOM102086     bool operator==( TilePropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
102087     {
102088 #if defined( VULKAN_HPP_USE_REFLECT )
102089       return this->reflect() == rhs.reflect();
102090 #else
102091       return ( sType == rhs.sType )
102092           && ( pNext == rhs.pNext )
102093           && ( tileSize == rhs.tileSize )
102094           && ( apronSize == rhs.apronSize )
102095           && ( origin == rhs.origin );
102096 #endif
102097     }
102098 
operator !=VULKAN_HPP_NAMESPACE::TilePropertiesQCOM102099     bool operator!=( TilePropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
102100     {
102101       return !operator==( rhs );
102102     }
102103 #endif
102104 
102105     public:
102106     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTilePropertiesQCOM;
102107     void * pNext = {};
102108     VULKAN_HPP_NAMESPACE::Extent3D tileSize = {};
102109     VULKAN_HPP_NAMESPACE::Extent2D apronSize = {};
102110     VULKAN_HPP_NAMESPACE::Offset2D origin = {};
102111 
102112   };
102113 
102114   template <>
102115   struct CppType<StructureType, StructureType::eTilePropertiesQCOM>
102116   {
102117     using Type = TilePropertiesQCOM;
102118   };
102119 
102120   struct TimelineSemaphoreSubmitInfo
102121   {
102122     using NativeType = VkTimelineSemaphoreSubmitInfo;
102123 
102124     static const bool allowDuplicate = false;
102125     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo;
102126 
102127 
102128 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102129 VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo(uint32_t waitSemaphoreValueCount_ = {}, const uint64_t * pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValueCount_ = {}, const uint64_t * pSignalSemaphoreValues_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
102130     : pNext( pNext_ ), waitSemaphoreValueCount( waitSemaphoreValueCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValueCount( signalSemaphoreValueCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ )
102131     {}
102132 
102133     VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102134 
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102135     TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
102136       : TimelineSemaphoreSubmitInfo( *reinterpret_cast<TimelineSemaphoreSubmitInfo const *>( &rhs ) )
102137     {}
102138 
102139 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102140     TimelineSemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {}, const void * pNext_ = nullptr )
102141     : pNext( pNext_ ), waitSemaphoreValueCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValueCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() )
102142     {}
102143 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
102144 
102145 
102146     TimelineSemaphoreSubmitInfo & operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102147 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
102148 
operator =VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102149     TimelineSemaphoreSubmitInfo & operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
102150     {
102151       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const *>( &rhs );
102152       return *this;
102153     }
102154 
102155 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102156     VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
102157     {
102158       pNext = pNext_;
102159       return *this;
102160     }
102161 
setWaitSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102162     VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
102163     {
102164       waitSemaphoreValueCount = waitSemaphoreValueCount_;
102165       return *this;
102166     }
102167 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102168     VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t * pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
102169     {
102170       pWaitSemaphoreValues = pWaitSemaphoreValues_;
102171       return *this;
102172     }
102173 
102174 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102175     TimelineSemaphoreSubmitInfo & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
102176     {
102177       waitSemaphoreValueCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
102178       pWaitSemaphoreValues = waitSemaphoreValues_.data();
102179       return *this;
102180     }
102181 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
102182 
setSignalSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102183     VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
102184     {
102185       signalSemaphoreValueCount = signalSemaphoreValueCount_;
102186       return *this;
102187     }
102188 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102189     VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t * pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
102190     {
102191       pSignalSemaphoreValues = pSignalSemaphoreValues_;
102192       return *this;
102193     }
102194 
102195 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102196     TimelineSemaphoreSubmitInfo & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
102197     {
102198       signalSemaphoreValueCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
102199       pSignalSemaphoreValues = signalSemaphoreValues_.data();
102200       return *this;
102201     }
102202 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
102203 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
102204 
102205 
operator VkTimelineSemaphoreSubmitInfo const&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102206     operator VkTimelineSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
102207     {
102208       return *reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>( this );
102209     }
102210 
operator VkTimelineSemaphoreSubmitInfo&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102211     operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
102212     {
102213       return *reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>( this );
102214     }
102215 
102216 #if defined( VULKAN_HPP_USE_REFLECT )
102217 #if 14 <= VULKAN_HPP_CPP_VERSION
102218     auto
102219 #else
102220     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint64_t * const &, uint32_t const &, const uint64_t * const &>
102221 #endif
reflectVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102222       reflect() const VULKAN_HPP_NOEXCEPT
102223     {
102224       return std::tie( sType, pNext, waitSemaphoreValueCount, pWaitSemaphoreValues, signalSemaphoreValueCount, pSignalSemaphoreValues );
102225     }
102226 #endif
102227 
102228 
102229 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
102230 auto operator<=>( TimelineSemaphoreSubmitInfo const & ) const = default;
102231 #else
operator ==VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102232     bool operator==( TimelineSemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
102233     {
102234 #if defined( VULKAN_HPP_USE_REFLECT )
102235       return this->reflect() == rhs.reflect();
102236 #else
102237       return ( sType == rhs.sType )
102238           && ( pNext == rhs.pNext )
102239           && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount )
102240           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
102241           && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount )
102242           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
102243 #endif
102244     }
102245 
operator !=VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo102246     bool operator!=( TimelineSemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
102247     {
102248       return !operator==( rhs );
102249     }
102250 #endif
102251 
102252     public:
102253     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo;
102254     const void * pNext = {};
102255     uint32_t waitSemaphoreValueCount = {};
102256     const uint64_t * pWaitSemaphoreValues = {};
102257     uint32_t signalSemaphoreValueCount = {};
102258     const uint64_t * pSignalSemaphoreValues = {};
102259 
102260   };
102261 
102262   template <>
102263   struct CppType<StructureType, StructureType::eTimelineSemaphoreSubmitInfo>
102264   {
102265     using Type = TimelineSemaphoreSubmitInfo;
102266   };
102267   using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
102268 
102269   struct TraceRaysIndirectCommand2KHR
102270   {
102271     using NativeType = VkTraceRaysIndirectCommand2KHR;
102272 
102273 
102274 
102275 
102276 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TraceRaysIndirectCommand2KHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102277 VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommand2KHR(VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride_ = {}, VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride_ = {}, VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride_ = {}, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
102278     : raygenShaderRecordAddress( raygenShaderRecordAddress_ ), raygenShaderRecordSize( raygenShaderRecordSize_ ), missShaderBindingTableAddress( missShaderBindingTableAddress_ ), missShaderBindingTableSize( missShaderBindingTableSize_ ), missShaderBindingTableStride( missShaderBindingTableStride_ ), hitShaderBindingTableAddress( hitShaderBindingTableAddress_ ), hitShaderBindingTableSize( hitShaderBindingTableSize_ ), hitShaderBindingTableStride( hitShaderBindingTableStride_ ), callableShaderBindingTableAddress( callableShaderBindingTableAddress_ ), callableShaderBindingTableSize( callableShaderBindingTableSize_ ), callableShaderBindingTableStride( callableShaderBindingTableStride_ ), width( width_ ), height( height_ ), depth( depth_ )
102279     {}
102280 
102281     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommand2KHR( TraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102282 
TraceRaysIndirectCommand2KHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102283     TraceRaysIndirectCommand2KHR( VkTraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
102284       : TraceRaysIndirectCommand2KHR( *reinterpret_cast<TraceRaysIndirectCommand2KHR const *>( &rhs ) )
102285     {}
102286 
102287 
102288     TraceRaysIndirectCommand2KHR & operator=( TraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102289 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
102290 
operator =VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102291     TraceRaysIndirectCommand2KHR & operator=( VkTraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
102292     {
102293       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR const *>( &rhs );
102294       return *this;
102295     }
102296 
102297 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setRaygenShaderRecordAddressVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102298     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setRaygenShaderRecordAddress( VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress_ ) VULKAN_HPP_NOEXCEPT
102299     {
102300       raygenShaderRecordAddress = raygenShaderRecordAddress_;
102301       return *this;
102302     }
102303 
setRaygenShaderRecordSizeVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102304     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setRaygenShaderRecordSize( VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize_ ) VULKAN_HPP_NOEXCEPT
102305     {
102306       raygenShaderRecordSize = raygenShaderRecordSize_;
102307       return *this;
102308     }
102309 
setMissShaderBindingTableAddressVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102310     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setMissShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
102311     {
102312       missShaderBindingTableAddress = missShaderBindingTableAddress_;
102313       return *this;
102314     }
102315 
setMissShaderBindingTableSizeVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102316     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setMissShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
102317     {
102318       missShaderBindingTableSize = missShaderBindingTableSize_;
102319       return *this;
102320     }
102321 
setMissShaderBindingTableStrideVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102322     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setMissShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
102323     {
102324       missShaderBindingTableStride = missShaderBindingTableStride_;
102325       return *this;
102326     }
102327 
setHitShaderBindingTableAddressVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102328     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setHitShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
102329     {
102330       hitShaderBindingTableAddress = hitShaderBindingTableAddress_;
102331       return *this;
102332     }
102333 
setHitShaderBindingTableSizeVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102334     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setHitShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
102335     {
102336       hitShaderBindingTableSize = hitShaderBindingTableSize_;
102337       return *this;
102338     }
102339 
setHitShaderBindingTableStrideVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102340     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setHitShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
102341     {
102342       hitShaderBindingTableStride = hitShaderBindingTableStride_;
102343       return *this;
102344     }
102345 
setCallableShaderBindingTableAddressVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102346     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setCallableShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
102347     {
102348       callableShaderBindingTableAddress = callableShaderBindingTableAddress_;
102349       return *this;
102350     }
102351 
setCallableShaderBindingTableSizeVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102352     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setCallableShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
102353     {
102354       callableShaderBindingTableSize = callableShaderBindingTableSize_;
102355       return *this;
102356     }
102357 
setCallableShaderBindingTableStrideVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102358     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setCallableShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
102359     {
102360       callableShaderBindingTableStride = callableShaderBindingTableStride_;
102361       return *this;
102362     }
102363 
setWidthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102364     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
102365     {
102366       width = width_;
102367       return *this;
102368     }
102369 
setHeightVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102370     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
102371     {
102372       height = height_;
102373       return *this;
102374     }
102375 
setDepthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102376     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
102377     {
102378       depth = depth_;
102379       return *this;
102380     }
102381 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
102382 
102383 
operator VkTraceRaysIndirectCommand2KHR const&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102384     operator VkTraceRaysIndirectCommand2KHR const &() const VULKAN_HPP_NOEXCEPT
102385     {
102386       return *reinterpret_cast<const VkTraceRaysIndirectCommand2KHR*>( this );
102387     }
102388 
operator VkTraceRaysIndirectCommand2KHR&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102389     operator VkTraceRaysIndirectCommand2KHR &() VULKAN_HPP_NOEXCEPT
102390     {
102391       return *reinterpret_cast<VkTraceRaysIndirectCommand2KHR*>( this );
102392     }
102393 
102394 #if defined( VULKAN_HPP_USE_REFLECT )
102395 #if 14 <= VULKAN_HPP_CPP_VERSION
102396     auto
102397 #else
102398     std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &, uint32_t const &, uint32_t const &>
102399 #endif
reflectVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102400       reflect() const VULKAN_HPP_NOEXCEPT
102401     {
102402       return std::tie( raygenShaderRecordAddress, raygenShaderRecordSize, missShaderBindingTableAddress, missShaderBindingTableSize, missShaderBindingTableStride, hitShaderBindingTableAddress, hitShaderBindingTableSize, hitShaderBindingTableStride, callableShaderBindingTableAddress, callableShaderBindingTableSize, callableShaderBindingTableStride, width, height, depth );
102403     }
102404 #endif
102405 
102406 
102407 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
102408 auto operator<=>( TraceRaysIndirectCommand2KHR const & ) const = default;
102409 #else
operator ==VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102410     bool operator==( TraceRaysIndirectCommand2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
102411     {
102412 #if defined( VULKAN_HPP_USE_REFLECT )
102413       return this->reflect() == rhs.reflect();
102414 #else
102415       return ( raygenShaderRecordAddress == rhs.raygenShaderRecordAddress )
102416           && ( raygenShaderRecordSize == rhs.raygenShaderRecordSize )
102417           && ( missShaderBindingTableAddress == rhs.missShaderBindingTableAddress )
102418           && ( missShaderBindingTableSize == rhs.missShaderBindingTableSize )
102419           && ( missShaderBindingTableStride == rhs.missShaderBindingTableStride )
102420           && ( hitShaderBindingTableAddress == rhs.hitShaderBindingTableAddress )
102421           && ( hitShaderBindingTableSize == rhs.hitShaderBindingTableSize )
102422           && ( hitShaderBindingTableStride == rhs.hitShaderBindingTableStride )
102423           && ( callableShaderBindingTableAddress == rhs.callableShaderBindingTableAddress )
102424           && ( callableShaderBindingTableSize == rhs.callableShaderBindingTableSize )
102425           && ( callableShaderBindingTableStride == rhs.callableShaderBindingTableStride )
102426           && ( width == rhs.width )
102427           && ( height == rhs.height )
102428           && ( depth == rhs.depth );
102429 #endif
102430     }
102431 
operator !=VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR102432     bool operator!=( TraceRaysIndirectCommand2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
102433     {
102434       return !operator==( rhs );
102435     }
102436 #endif
102437 
102438     public:
102439     VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress = {};
102440     VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize = {};
102441     VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress = {};
102442     VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize = {};
102443     VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride = {};
102444     VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress = {};
102445     VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize = {};
102446     VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride = {};
102447     VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress = {};
102448     VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize = {};
102449     VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride = {};
102450     uint32_t width = {};
102451     uint32_t height = {};
102452     uint32_t depth = {};
102453 
102454   };
102455 
102456   struct TraceRaysIndirectCommandKHR
102457   {
102458     using NativeType = VkTraceRaysIndirectCommandKHR;
102459 
102460 
102461 
102462 
102463 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102464 VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
102465     : width( width_ ), height( height_ ), depth( depth_ )
102466     {}
102467 
102468     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102469 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102470     TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
102471       : TraceRaysIndirectCommandKHR( *reinterpret_cast<TraceRaysIndirectCommandKHR const *>( &rhs ) )
102472     {}
102473 
102474 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102475     explicit TraceRaysIndirectCommandKHR( Extent2D const & extent2D, uint32_t depth_ = {} )
102476       : width( extent2D.width )
102477       , height( extent2D.height )
102478     , depth( depth_ )
102479     {}
102480 
102481     TraceRaysIndirectCommandKHR & operator=( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102482 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
102483 
operator =VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102484     TraceRaysIndirectCommandKHR & operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
102485     {
102486       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR const *>( &rhs );
102487       return *this;
102488     }
102489 
102490 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setWidthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102491     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
102492     {
102493       width = width_;
102494       return *this;
102495     }
102496 
setHeightVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102497     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
102498     {
102499       height = height_;
102500       return *this;
102501     }
102502 
setDepthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102503     VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
102504     {
102505       depth = depth_;
102506       return *this;
102507     }
102508 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
102509 
102510 
operator VkTraceRaysIndirectCommandKHR const&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102511     operator VkTraceRaysIndirectCommandKHR const &() const VULKAN_HPP_NOEXCEPT
102512     {
102513       return *reinterpret_cast<const VkTraceRaysIndirectCommandKHR*>( this );
102514     }
102515 
operator VkTraceRaysIndirectCommandKHR&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102516     operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT
102517     {
102518       return *reinterpret_cast<VkTraceRaysIndirectCommandKHR*>( this );
102519     }
102520 
102521 #if defined( VULKAN_HPP_USE_REFLECT )
102522 #if 14 <= VULKAN_HPP_CPP_VERSION
102523     auto
102524 #else
102525     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
102526 #endif
reflectVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102527       reflect() const VULKAN_HPP_NOEXCEPT
102528     {
102529       return std::tie( width, height, depth );
102530     }
102531 #endif
102532 
102533 
102534 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
102535 auto operator<=>( TraceRaysIndirectCommandKHR const & ) const = default;
102536 #else
operator ==VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102537     bool operator==( TraceRaysIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
102538     {
102539 #if defined( VULKAN_HPP_USE_REFLECT )
102540       return this->reflect() == rhs.reflect();
102541 #else
102542       return ( width == rhs.width )
102543           && ( height == rhs.height )
102544           && ( depth == rhs.depth );
102545 #endif
102546     }
102547 
operator !=VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR102548     bool operator!=( TraceRaysIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
102549     {
102550       return !operator==( rhs );
102551     }
102552 #endif
102553 
102554     public:
102555     uint32_t width = {};
102556     uint32_t height = {};
102557     uint32_t depth = {};
102558 
102559   };
102560 
102561   struct ValidationCacheCreateInfoEXT
102562   {
102563     using NativeType = VkValidationCacheCreateInfoEXT;
102564 
102565     static const bool allowDuplicate = false;
102566     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT;
102567 
102568 
102569 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102570 VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {}, size_t initialDataSize_ = {}, const void * pInitialData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
102571     : pNext( pNext_ ), flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ )
102572     {}
102573 
102574     VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102575 
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102576     ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
102577       : ValidationCacheCreateInfoEXT( *reinterpret_cast<ValidationCacheCreateInfoEXT const *>( &rhs ) )
102578     {}
102579 
102580 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
102581     template <typename T>
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102582     ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_, const void * pNext_ = nullptr )
102583     : pNext( pNext_ ), flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() )
102584     {}
102585 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
102586 
102587 
102588     ValidationCacheCreateInfoEXT & operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102589 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
102590 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102591     ValidationCacheCreateInfoEXT & operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
102592     {
102593       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const *>( &rhs );
102594       return *this;
102595     }
102596 
102597 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102598     VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
102599     {
102600       pNext = pNext_;
102601       return *this;
102602     }
102603 
setFlagsVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102604     VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
102605     {
102606       flags = flags_;
102607       return *this;
102608     }
102609 
setInitialDataSizeVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102610     VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
102611     {
102612       initialDataSize = initialDataSize_;
102613       return *this;
102614     }
102615 
setPInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102616     VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setPInitialData( const void * pInitialData_ ) VULKAN_HPP_NOEXCEPT
102617     {
102618       pInitialData = pInitialData_;
102619       return *this;
102620     }
102621 
102622 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
102623     template <typename T>
setInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102624     ValidationCacheCreateInfoEXT & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
102625     {
102626       initialDataSize = initialData_.size() * sizeof(T);
102627       pInitialData = initialData_.data();
102628       return *this;
102629     }
102630 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
102631 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
102632 
102633 
operator VkValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102634     operator VkValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
102635     {
102636       return *reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( this );
102637     }
102638 
operator VkValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102639     operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
102640     {
102641       return *reinterpret_cast<VkValidationCacheCreateInfoEXT*>( this );
102642     }
102643 
102644 #if defined( VULKAN_HPP_USE_REFLECT )
102645 #if 14 <= VULKAN_HPP_CPP_VERSION
102646     auto
102647 #else
102648     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT const &, size_t const &, const void * const &>
102649 #endif
reflectVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102650       reflect() const VULKAN_HPP_NOEXCEPT
102651     {
102652       return std::tie( sType, pNext, flags, initialDataSize, pInitialData );
102653     }
102654 #endif
102655 
102656 
102657 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
102658 auto operator<=>( ValidationCacheCreateInfoEXT const & ) const = default;
102659 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102660     bool operator==( ValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
102661     {
102662 #if defined( VULKAN_HPP_USE_REFLECT )
102663       return this->reflect() == rhs.reflect();
102664 #else
102665       return ( sType == rhs.sType )
102666           && ( pNext == rhs.pNext )
102667           && ( flags == rhs.flags )
102668           && ( initialDataSize == rhs.initialDataSize )
102669           && ( pInitialData == rhs.pInitialData );
102670 #endif
102671     }
102672 
operator !=VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT102673     bool operator!=( ValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
102674     {
102675       return !operator==( rhs );
102676     }
102677 #endif
102678 
102679     public:
102680     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT;
102681     const void * pNext = {};
102682     VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {};
102683     size_t initialDataSize = {};
102684     const void * pInitialData = {};
102685 
102686   };
102687 
102688   template <>
102689   struct CppType<StructureType, StructureType::eValidationCacheCreateInfoEXT>
102690   {
102691     using Type = ValidationCacheCreateInfoEXT;
102692   };
102693 
102694   struct ValidationFeaturesEXT
102695   {
102696     using NativeType = VkValidationFeaturesEXT;
102697 
102698     static const bool allowDuplicate = false;
102699     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT;
102700 
102701 
102702 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102703 VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT(uint32_t enabledValidationFeatureCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures_ = {}, uint32_t disabledValidationFeatureCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
102704     : pNext( pNext_ ), enabledValidationFeatureCount( enabledValidationFeatureCount_ ), pEnabledValidationFeatures( pEnabledValidationFeatures_ ), disabledValidationFeatureCount( disabledValidationFeatureCount_ ), pDisabledValidationFeatures( pDisabledValidationFeatures_ )
102705     {}
102706 
102707     VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102708 
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102709     ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
102710       : ValidationFeaturesEXT( *reinterpret_cast<ValidationFeaturesEXT const *>( &rhs ) )
102711     {}
102712 
102713 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102714     ValidationFeaturesEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ = {}, const void * pNext_ = nullptr )
102715     : pNext( pNext_ ), enabledValidationFeatureCount( static_cast<uint32_t>( enabledValidationFeatures_.size() ) ), pEnabledValidationFeatures( enabledValidationFeatures_.data() ), disabledValidationFeatureCount( static_cast<uint32_t>( disabledValidationFeatures_.size() ) ), pDisabledValidationFeatures( disabledValidationFeatures_.data() )
102716     {}
102717 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
102718 
102719 
102720     ValidationFeaturesEXT & operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102721 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
102722 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102723     ValidationFeaturesEXT & operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
102724     {
102725       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const *>( &rhs );
102726       return *this;
102727     }
102728 
102729 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102730     VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
102731     {
102732       pNext = pNext_;
102733       return *this;
102734     }
102735 
setEnabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102736     VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
102737     {
102738       enabledValidationFeatureCount = enabledValidationFeatureCount_;
102739       return *this;
102740     }
102741 
setPEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102742     VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
102743     {
102744       pEnabledValidationFeatures = pEnabledValidationFeatures_;
102745       return *this;
102746     }
102747 
102748 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102749     ValidationFeaturesEXT & setEnabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
102750     {
102751       enabledValidationFeatureCount = static_cast<uint32_t>( enabledValidationFeatures_.size() );
102752       pEnabledValidationFeatures = enabledValidationFeatures_.data();
102753       return *this;
102754     }
102755 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
102756 
setDisabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102757     VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
102758     {
102759       disabledValidationFeatureCount = disabledValidationFeatureCount_;
102760       return *this;
102761     }
102762 
setPDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102763     VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
102764     {
102765       pDisabledValidationFeatures = pDisabledValidationFeatures_;
102766       return *this;
102767     }
102768 
102769 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102770     ValidationFeaturesEXT & setDisabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
102771     {
102772       disabledValidationFeatureCount = static_cast<uint32_t>( disabledValidationFeatures_.size() );
102773       pDisabledValidationFeatures = disabledValidationFeatures_.data();
102774       return *this;
102775     }
102776 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
102777 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
102778 
102779 
operator VkValidationFeaturesEXT const&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102780     operator VkValidationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
102781     {
102782       return *reinterpret_cast<const VkValidationFeaturesEXT*>( this );
102783     }
102784 
operator VkValidationFeaturesEXT&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102785     operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
102786     {
102787       return *reinterpret_cast<VkValidationFeaturesEXT*>( this );
102788     }
102789 
102790 #if defined( VULKAN_HPP_USE_REFLECT )
102791 #if 14 <= VULKAN_HPP_CPP_VERSION
102792     auto
102793 #else
102794     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * const &>
102795 #endif
reflectVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102796       reflect() const VULKAN_HPP_NOEXCEPT
102797     {
102798       return std::tie( sType, pNext, enabledValidationFeatureCount, pEnabledValidationFeatures, disabledValidationFeatureCount, pDisabledValidationFeatures );
102799     }
102800 #endif
102801 
102802 
102803 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
102804 auto operator<=>( ValidationFeaturesEXT const & ) const = default;
102805 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102806     bool operator==( ValidationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
102807     {
102808 #if defined( VULKAN_HPP_USE_REFLECT )
102809       return this->reflect() == rhs.reflect();
102810 #else
102811       return ( sType == rhs.sType )
102812           && ( pNext == rhs.pNext )
102813           && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount )
102814           && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures )
102815           && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount )
102816           && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures );
102817 #endif
102818     }
102819 
operator !=VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT102820     bool operator!=( ValidationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
102821     {
102822       return !operator==( rhs );
102823     }
102824 #endif
102825 
102826     public:
102827     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT;
102828     const void * pNext = {};
102829     uint32_t enabledValidationFeatureCount = {};
102830     const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures = {};
102831     uint32_t disabledValidationFeatureCount = {};
102832     const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures = {};
102833 
102834   };
102835 
102836   template <>
102837   struct CppType<StructureType, StructureType::eValidationFeaturesEXT>
102838   {
102839     using Type = ValidationFeaturesEXT;
102840   };
102841 
102842   struct ValidationFlagsEXT
102843   {
102844     using NativeType = VkValidationFlagsEXT;
102845 
102846     static const bool allowDuplicate = false;
102847     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT;
102848 
102849 
102850 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT102851 VULKAN_HPP_CONSTEXPR ValidationFlagsEXT(uint32_t disabledValidationCheckCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
102852     : pNext( pNext_ ), disabledValidationCheckCount( disabledValidationCheckCount_ ), pDisabledValidationChecks( pDisabledValidationChecks_ )
102853     {}
102854 
102855     VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102856 
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT102857     ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
102858       : ValidationFlagsEXT( *reinterpret_cast<ValidationFlagsEXT const *>( &rhs ) )
102859     {}
102860 
102861 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT102862     ValidationFlagsEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_, const void * pNext_ = nullptr )
102863     : pNext( pNext_ ), disabledValidationCheckCount( static_cast<uint32_t>( disabledValidationChecks_.size() ) ), pDisabledValidationChecks( disabledValidationChecks_.data() )
102864     {}
102865 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
102866 
102867 
102868     ValidationFlagsEXT & operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102869 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
102870 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT102871     ValidationFlagsEXT & operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
102872     {
102873       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const *>( &rhs );
102874       return *this;
102875     }
102876 
102877 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ValidationFlagsEXT102878     VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
102879     {
102880       pNext = pNext_;
102881       return *this;
102882     }
102883 
setDisabledValidationCheckCountVULKAN_HPP_NAMESPACE::ValidationFlagsEXT102884     VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT
102885     {
102886       disabledValidationCheckCount = disabledValidationCheckCount_;
102887       return *this;
102888     }
102889 
setPDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT102890     VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT & setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
102891     {
102892       pDisabledValidationChecks = pDisabledValidationChecks_;
102893       return *this;
102894     }
102895 
102896 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT102897     ValidationFlagsEXT & setDisabledValidationChecks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
102898     {
102899       disabledValidationCheckCount = static_cast<uint32_t>( disabledValidationChecks_.size() );
102900       pDisabledValidationChecks = disabledValidationChecks_.data();
102901       return *this;
102902     }
102903 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
102904 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
102905 
102906 
operator VkValidationFlagsEXT const&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT102907     operator VkValidationFlagsEXT const &() const VULKAN_HPP_NOEXCEPT
102908     {
102909       return *reinterpret_cast<const VkValidationFlagsEXT*>( this );
102910     }
102911 
operator VkValidationFlagsEXT&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT102912     operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT
102913     {
102914       return *reinterpret_cast<VkValidationFlagsEXT*>( this );
102915     }
102916 
102917 #if defined( VULKAN_HPP_USE_REFLECT )
102918 #if 14 <= VULKAN_HPP_CPP_VERSION
102919     auto
102920 #else
102921     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * const &>
102922 #endif
reflectVULKAN_HPP_NAMESPACE::ValidationFlagsEXT102923       reflect() const VULKAN_HPP_NOEXCEPT
102924     {
102925       return std::tie( sType, pNext, disabledValidationCheckCount, pDisabledValidationChecks );
102926     }
102927 #endif
102928 
102929 
102930 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
102931 auto operator<=>( ValidationFlagsEXT const & ) const = default;
102932 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFlagsEXT102933     bool operator==( ValidationFlagsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
102934     {
102935 #if defined( VULKAN_HPP_USE_REFLECT )
102936       return this->reflect() == rhs.reflect();
102937 #else
102938       return ( sType == rhs.sType )
102939           && ( pNext == rhs.pNext )
102940           && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount )
102941           && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks );
102942 #endif
102943     }
102944 
operator !=VULKAN_HPP_NAMESPACE::ValidationFlagsEXT102945     bool operator!=( ValidationFlagsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
102946     {
102947       return !operator==( rhs );
102948     }
102949 #endif
102950 
102951     public:
102952     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT;
102953     const void * pNext = {};
102954     uint32_t disabledValidationCheckCount = {};
102955     const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks = {};
102956 
102957   };
102958 
102959   template <>
102960   struct CppType<StructureType, StructureType::eValidationFlagsEXT>
102961   {
102962     using Type = ValidationFlagsEXT;
102963   };
102964 
102965   struct VertexInputAttributeDescription2EXT
102966   {
102967     using NativeType = VkVertexInputAttributeDescription2EXT;
102968 
102969     static const bool allowDuplicate = false;
102970     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVertexInputAttributeDescription2EXT;
102971 
102972 
102973 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputAttributeDescription2EXTVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT102974 VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription2EXT(uint32_t location_ = {}, uint32_t binding_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint32_t offset_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
102975     : pNext( pNext_ ), location( location_ ), binding( binding_ ), format( format_ ), offset( offset_ )
102976     {}
102977 
102978     VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription2EXT( VertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102979 
VertexInputAttributeDescription2EXTVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT102980     VertexInputAttributeDescription2EXT( VkVertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
102981       : VertexInputAttributeDescription2EXT( *reinterpret_cast<VertexInputAttributeDescription2EXT const *>( &rhs ) )
102982     {}
102983 
102984 
102985     VertexInputAttributeDescription2EXT & operator=( VertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
102986 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
102987 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT102988     VertexInputAttributeDescription2EXT & operator=( VkVertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
102989     {
102990       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT const *>( &rhs );
102991       return *this;
102992     }
102993 
102994 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT102995     VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
102996     {
102997       pNext = pNext_;
102998       return *this;
102999     }
103000 
setLocationVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT103001     VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
103002     {
103003       location = location_;
103004       return *this;
103005     }
103006 
setBindingVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT103007     VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
103008     {
103009       binding = binding_;
103010       return *this;
103011     }
103012 
setFormatVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT103013     VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
103014     {
103015       format = format_;
103016       return *this;
103017     }
103018 
setOffsetVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT103019     VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
103020     {
103021       offset = offset_;
103022       return *this;
103023     }
103024 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
103025 
103026 
operator VkVertexInputAttributeDescription2EXT const&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT103027     operator VkVertexInputAttributeDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
103028     {
103029       return *reinterpret_cast<const VkVertexInputAttributeDescription2EXT*>( this );
103030     }
103031 
operator VkVertexInputAttributeDescription2EXT&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT103032     operator VkVertexInputAttributeDescription2EXT &() VULKAN_HPP_NOEXCEPT
103033     {
103034       return *reinterpret_cast<VkVertexInputAttributeDescription2EXT*>( this );
103035     }
103036 
103037 #if defined( VULKAN_HPP_USE_REFLECT )
103038 #if 14 <= VULKAN_HPP_CPP_VERSION
103039     auto
103040 #else
103041     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Format const &, uint32_t const &>
103042 #endif
reflectVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT103043       reflect() const VULKAN_HPP_NOEXCEPT
103044     {
103045       return std::tie( sType, pNext, location, binding, format, offset );
103046     }
103047 #endif
103048 
103049 
103050 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
103051 auto operator<=>( VertexInputAttributeDescription2EXT const & ) const = default;
103052 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT103053     bool operator==( VertexInputAttributeDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
103054     {
103055 #if defined( VULKAN_HPP_USE_REFLECT )
103056       return this->reflect() == rhs.reflect();
103057 #else
103058       return ( sType == rhs.sType )
103059           && ( pNext == rhs.pNext )
103060           && ( location == rhs.location )
103061           && ( binding == rhs.binding )
103062           && ( format == rhs.format )
103063           && ( offset == rhs.offset );
103064 #endif
103065     }
103066 
operator !=VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT103067     bool operator!=( VertexInputAttributeDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
103068     {
103069       return !operator==( rhs );
103070     }
103071 #endif
103072 
103073     public:
103074     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVertexInputAttributeDescription2EXT;
103075     void * pNext = {};
103076     uint32_t location = {};
103077     uint32_t binding = {};
103078     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
103079     uint32_t offset = {};
103080 
103081   };
103082 
103083   template <>
103084   struct CppType<StructureType, StructureType::eVertexInputAttributeDescription2EXT>
103085   {
103086     using Type = VertexInputAttributeDescription2EXT;
103087   };
103088 
103089   struct VertexInputBindingDescription2EXT
103090   {
103091     using NativeType = VkVertexInputBindingDescription2EXT;
103092 
103093     static const bool allowDuplicate = false;
103094     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVertexInputBindingDescription2EXT;
103095 
103096 
103097 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDescription2EXTVULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103098 VULKAN_HPP_CONSTEXPR VertexInputBindingDescription2EXT(uint32_t binding_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex, uint32_t divisor_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
103099     : pNext( pNext_ ), binding( binding_ ), stride( stride_ ), inputRate( inputRate_ ), divisor( divisor_ )
103100     {}
103101 
103102     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription2EXT( VertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103103 
VertexInputBindingDescription2EXTVULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103104     VertexInputBindingDescription2EXT( VkVertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
103105       : VertexInputBindingDescription2EXT( *reinterpret_cast<VertexInputBindingDescription2EXT const *>( &rhs ) )
103106     {}
103107 
103108 
103109     VertexInputBindingDescription2EXT & operator=( VertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103110 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
103111 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103112     VertexInputBindingDescription2EXT & operator=( VkVertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
103113     {
103114       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT const *>( &rhs );
103115       return *this;
103116     }
103117 
103118 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103119     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
103120     {
103121       pNext = pNext_;
103122       return *this;
103123     }
103124 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103125     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
103126     {
103127       binding = binding_;
103128       return *this;
103129     }
103130 
setStrideVULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103131     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
103132     {
103133       stride = stride_;
103134       return *this;
103135     }
103136 
setInputRateVULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103137     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
103138     {
103139       inputRate = inputRate_;
103140       return *this;
103141     }
103142 
setDivisorVULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103143     VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
103144     {
103145       divisor = divisor_;
103146       return *this;
103147     }
103148 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
103149 
103150 
operator VkVertexInputBindingDescription2EXT const&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103151     operator VkVertexInputBindingDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
103152     {
103153       return *reinterpret_cast<const VkVertexInputBindingDescription2EXT*>( this );
103154     }
103155 
operator VkVertexInputBindingDescription2EXT&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103156     operator VkVertexInputBindingDescription2EXT &() VULKAN_HPP_NOEXCEPT
103157     {
103158       return *reinterpret_cast<VkVertexInputBindingDescription2EXT*>( this );
103159     }
103160 
103161 #if defined( VULKAN_HPP_USE_REFLECT )
103162 #if 14 <= VULKAN_HPP_CPP_VERSION
103163     auto
103164 #else
103165     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::VertexInputRate const &, uint32_t const &>
103166 #endif
reflectVULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103167       reflect() const VULKAN_HPP_NOEXCEPT
103168     {
103169       return std::tie( sType, pNext, binding, stride, inputRate, divisor );
103170     }
103171 #endif
103172 
103173 
103174 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
103175 auto operator<=>( VertexInputBindingDescription2EXT const & ) const = default;
103176 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103177     bool operator==( VertexInputBindingDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
103178     {
103179 #if defined( VULKAN_HPP_USE_REFLECT )
103180       return this->reflect() == rhs.reflect();
103181 #else
103182       return ( sType == rhs.sType )
103183           && ( pNext == rhs.pNext )
103184           && ( binding == rhs.binding )
103185           && ( stride == rhs.stride )
103186           && ( inputRate == rhs.inputRate )
103187           && ( divisor == rhs.divisor );
103188 #endif
103189     }
103190 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT103191     bool operator!=( VertexInputBindingDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
103192     {
103193       return !operator==( rhs );
103194     }
103195 #endif
103196 
103197     public:
103198     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVertexInputBindingDescription2EXT;
103199     void * pNext = {};
103200     uint32_t binding = {};
103201     uint32_t stride = {};
103202     VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
103203     uint32_t divisor = {};
103204 
103205   };
103206 
103207   template <>
103208   struct CppType<StructureType, StructureType::eVertexInputBindingDescription2EXT>
103209   {
103210     using Type = VertexInputBindingDescription2EXT;
103211   };
103212 
103213 #if defined( VK_USE_PLATFORM_VI_NN )
103214   struct ViSurfaceCreateInfoNN
103215   {
103216     using NativeType = VkViSurfaceCreateInfoNN;
103217 
103218     static const bool allowDuplicate = false;
103219     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN;
103220 
103221 
103222 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103223 VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN(VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, void * window_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
103224     : pNext( pNext_ ), flags( flags_ ), window( window_ )
103225     {}
103226 
103227     VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103228 
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103229     ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
103230       : ViSurfaceCreateInfoNN( *reinterpret_cast<ViSurfaceCreateInfoNN const *>( &rhs ) )
103231     {}
103232 
103233 
103234     ViSurfaceCreateInfoNN & operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103235 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
103236 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103237     ViSurfaceCreateInfoNN & operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
103238     {
103239       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const *>( &rhs );
103240       return *this;
103241     }
103242 
103243 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103244     VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
103245     {
103246       pNext = pNext_;
103247       return *this;
103248     }
103249 
setFlagsVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103250     VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT
103251     {
103252       flags = flags_;
103253       return *this;
103254     }
103255 
setWindowVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103256     VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & setWindow( void * window_ ) VULKAN_HPP_NOEXCEPT
103257     {
103258       window = window_;
103259       return *this;
103260     }
103261 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
103262 
103263 
operator VkViSurfaceCreateInfoNN const&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103264     operator VkViSurfaceCreateInfoNN const &() const VULKAN_HPP_NOEXCEPT
103265     {
103266       return *reinterpret_cast<const VkViSurfaceCreateInfoNN*>( this );
103267     }
103268 
operator VkViSurfaceCreateInfoNN&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103269     operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT
103270     {
103271       return *reinterpret_cast<VkViSurfaceCreateInfoNN*>( this );
103272     }
103273 
103274 #if defined( VULKAN_HPP_USE_REFLECT )
103275 #if 14 <= VULKAN_HPP_CPP_VERSION
103276     auto
103277 #else
103278     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN const &, void * const &>
103279 #endif
reflectVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103280       reflect() const VULKAN_HPP_NOEXCEPT
103281     {
103282       return std::tie( sType, pNext, flags, window );
103283     }
103284 #endif
103285 
103286 
103287 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
103288 auto operator<=>( ViSurfaceCreateInfoNN const & ) const = default;
103289 #else
operator ==VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103290     bool operator==( ViSurfaceCreateInfoNN const & rhs ) const VULKAN_HPP_NOEXCEPT
103291     {
103292 #if defined( VULKAN_HPP_USE_REFLECT )
103293       return this->reflect() == rhs.reflect();
103294 #else
103295       return ( sType == rhs.sType )
103296           && ( pNext == rhs.pNext )
103297           && ( flags == rhs.flags )
103298           && ( window == rhs.window );
103299 #endif
103300     }
103301 
operator !=VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN103302     bool operator!=( ViSurfaceCreateInfoNN const & rhs ) const VULKAN_HPP_NOEXCEPT
103303     {
103304       return !operator==( rhs );
103305     }
103306 #endif
103307 
103308     public:
103309     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN;
103310     const void * pNext = {};
103311     VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {};
103312     void * window = {};
103313 
103314   };
103315 
103316   template <>
103317   struct CppType<StructureType, StructureType::eViSurfaceCreateInfoNN>
103318   {
103319     using Type = ViSurfaceCreateInfoNN;
103320   };
103321 #endif /*VK_USE_PLATFORM_VI_NN*/
103322 
103323   struct VideoPictureResourceInfoKHR
103324   {
103325     using NativeType = VkVideoPictureResourceInfoKHR;
103326 
103327     static const bool allowDuplicate = false;
103328     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoPictureResourceInfoKHR;
103329 
103330 
103331 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoPictureResourceInfoKHRVULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103332 VULKAN_HPP_CONSTEXPR VideoPictureResourceInfoKHR(VULKAN_HPP_NAMESPACE::Offset2D codedOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D codedExtent_ = {}, uint32_t baseArrayLayer_ = {}, VULKAN_HPP_NAMESPACE::ImageView imageViewBinding_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
103333     : pNext( pNext_ ), codedOffset( codedOffset_ ), codedExtent( codedExtent_ ), baseArrayLayer( baseArrayLayer_ ), imageViewBinding( imageViewBinding_ )
103334     {}
103335 
103336     VULKAN_HPP_CONSTEXPR VideoPictureResourceInfoKHR( VideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103337 
VideoPictureResourceInfoKHRVULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103338     VideoPictureResourceInfoKHR( VkVideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103339       : VideoPictureResourceInfoKHR( *reinterpret_cast<VideoPictureResourceInfoKHR const *>( &rhs ) )
103340     {}
103341 
103342 
103343     VideoPictureResourceInfoKHR & operator=( VideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103344 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
103345 
operator =VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103346     VideoPictureResourceInfoKHR & operator=( VkVideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103347     {
103348       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const *>( &rhs );
103349       return *this;
103350     }
103351 
103352 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103353     VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
103354     {
103355       pNext = pNext_;
103356       return *this;
103357     }
103358 
setCodedOffsetVULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103359     VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setCodedOffset( VULKAN_HPP_NAMESPACE::Offset2D const & codedOffset_ ) VULKAN_HPP_NOEXCEPT
103360     {
103361       codedOffset = codedOffset_;
103362       return *this;
103363     }
103364 
setCodedExtentVULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103365     VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setCodedExtent( VULKAN_HPP_NAMESPACE::Extent2D const & codedExtent_ ) VULKAN_HPP_NOEXCEPT
103366     {
103367       codedExtent = codedExtent_;
103368       return *this;
103369     }
103370 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103371     VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
103372     {
103373       baseArrayLayer = baseArrayLayer_;
103374       return *this;
103375     }
103376 
setImageViewBindingVULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103377     VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setImageViewBinding( VULKAN_HPP_NAMESPACE::ImageView imageViewBinding_ ) VULKAN_HPP_NOEXCEPT
103378     {
103379       imageViewBinding = imageViewBinding_;
103380       return *this;
103381     }
103382 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
103383 
103384 
operator VkVideoPictureResourceInfoKHR const&VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103385     operator VkVideoPictureResourceInfoKHR const &() const VULKAN_HPP_NOEXCEPT
103386     {
103387       return *reinterpret_cast<const VkVideoPictureResourceInfoKHR*>( this );
103388     }
103389 
operator VkVideoPictureResourceInfoKHR&VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103390     operator VkVideoPictureResourceInfoKHR &() VULKAN_HPP_NOEXCEPT
103391     {
103392       return *reinterpret_cast<VkVideoPictureResourceInfoKHR*>( this );
103393     }
103394 
103395 #if defined( VULKAN_HPP_USE_REFLECT )
103396 #if 14 <= VULKAN_HPP_CPP_VERSION
103397     auto
103398 #else
103399     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageView const &>
103400 #endif
reflectVULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103401       reflect() const VULKAN_HPP_NOEXCEPT
103402     {
103403       return std::tie( sType, pNext, codedOffset, codedExtent, baseArrayLayer, imageViewBinding );
103404     }
103405 #endif
103406 
103407 
103408 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
103409 auto operator<=>( VideoPictureResourceInfoKHR const & ) const = default;
103410 #else
operator ==VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103411     bool operator==( VideoPictureResourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103412     {
103413 #if defined( VULKAN_HPP_USE_REFLECT )
103414       return this->reflect() == rhs.reflect();
103415 #else
103416       return ( sType == rhs.sType )
103417           && ( pNext == rhs.pNext )
103418           && ( codedOffset == rhs.codedOffset )
103419           && ( codedExtent == rhs.codedExtent )
103420           && ( baseArrayLayer == rhs.baseArrayLayer )
103421           && ( imageViewBinding == rhs.imageViewBinding );
103422 #endif
103423     }
103424 
operator !=VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR103425     bool operator!=( VideoPictureResourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103426     {
103427       return !operator==( rhs );
103428     }
103429 #endif
103430 
103431     public:
103432     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoPictureResourceInfoKHR;
103433     const void * pNext = {};
103434     VULKAN_HPP_NAMESPACE::Offset2D codedOffset = {};
103435     VULKAN_HPP_NAMESPACE::Extent2D codedExtent = {};
103436     uint32_t baseArrayLayer = {};
103437     VULKAN_HPP_NAMESPACE::ImageView imageViewBinding = {};
103438 
103439   };
103440 
103441   template <>
103442   struct CppType<StructureType, StructureType::eVideoPictureResourceInfoKHR>
103443   {
103444     using Type = VideoPictureResourceInfoKHR;
103445   };
103446 
103447   struct VideoReferenceSlotInfoKHR
103448   {
103449     using NativeType = VkVideoReferenceSlotInfoKHR;
103450 
103451     static const bool allowDuplicate = false;
103452     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoReferenceSlotInfoKHR;
103453 
103454 
103455 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoReferenceSlotInfoKHRVULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103456 VULKAN_HPP_CONSTEXPR VideoReferenceSlotInfoKHR(int32_t slotIndex_ = {}, const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
103457     : pNext( pNext_ ), slotIndex( slotIndex_ ), pPictureResource( pPictureResource_ )
103458     {}
103459 
103460     VULKAN_HPP_CONSTEXPR VideoReferenceSlotInfoKHR( VideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103461 
VideoReferenceSlotInfoKHRVULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103462     VideoReferenceSlotInfoKHR( VkVideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103463       : VideoReferenceSlotInfoKHR( *reinterpret_cast<VideoReferenceSlotInfoKHR const *>( &rhs ) )
103464     {}
103465 
103466 
103467     VideoReferenceSlotInfoKHR & operator=( VideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103468 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
103469 
operator =VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103470     VideoReferenceSlotInfoKHR & operator=( VkVideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103471     {
103472       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR const *>( &rhs );
103473       return *this;
103474     }
103475 
103476 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103477     VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
103478     {
103479       pNext = pNext_;
103480       return *this;
103481     }
103482 
setSlotIndexVULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103483     VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR & setSlotIndex( int32_t slotIndex_ ) VULKAN_HPP_NOEXCEPT
103484     {
103485       slotIndex = slotIndex_;
103486       return *this;
103487     }
103488 
setPPictureResourceVULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103489     VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR & setPPictureResource( const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource_ ) VULKAN_HPP_NOEXCEPT
103490     {
103491       pPictureResource = pPictureResource_;
103492       return *this;
103493     }
103494 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
103495 
103496 
operator VkVideoReferenceSlotInfoKHR const&VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103497     operator VkVideoReferenceSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
103498     {
103499       return *reinterpret_cast<const VkVideoReferenceSlotInfoKHR*>( this );
103500     }
103501 
operator VkVideoReferenceSlotInfoKHR&VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103502     operator VkVideoReferenceSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
103503     {
103504       return *reinterpret_cast<VkVideoReferenceSlotInfoKHR*>( this );
103505     }
103506 
103507 #if defined( VULKAN_HPP_USE_REFLECT )
103508 #if 14 <= VULKAN_HPP_CPP_VERSION
103509     auto
103510 #else
103511     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int32_t const &, const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * const &>
103512 #endif
reflectVULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103513       reflect() const VULKAN_HPP_NOEXCEPT
103514     {
103515       return std::tie( sType, pNext, slotIndex, pPictureResource );
103516     }
103517 #endif
103518 
103519 
103520 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
103521 auto operator<=>( VideoReferenceSlotInfoKHR const & ) const = default;
103522 #else
operator ==VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103523     bool operator==( VideoReferenceSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103524     {
103525 #if defined( VULKAN_HPP_USE_REFLECT )
103526       return this->reflect() == rhs.reflect();
103527 #else
103528       return ( sType == rhs.sType )
103529           && ( pNext == rhs.pNext )
103530           && ( slotIndex == rhs.slotIndex )
103531           && ( pPictureResource == rhs.pPictureResource );
103532 #endif
103533     }
103534 
operator !=VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR103535     bool operator!=( VideoReferenceSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103536     {
103537       return !operator==( rhs );
103538     }
103539 #endif
103540 
103541     public:
103542     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoReferenceSlotInfoKHR;
103543     const void * pNext = {};
103544     int32_t slotIndex = {};
103545     const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource = {};
103546 
103547   };
103548 
103549   template <>
103550   struct CppType<StructureType, StructureType::eVideoReferenceSlotInfoKHR>
103551   {
103552     using Type = VideoReferenceSlotInfoKHR;
103553   };
103554 
103555   struct VideoBeginCodingInfoKHR
103556   {
103557     using NativeType = VkVideoBeginCodingInfoKHR;
103558 
103559     static const bool allowDuplicate = false;
103560     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoBeginCodingInfoKHR;
103561 
103562 
103563 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoBeginCodingInfoKHRVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103564 VULKAN_HPP_CONSTEXPR VideoBeginCodingInfoKHR(VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ = {}, VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ = {}, uint32_t referenceSlotCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
103565     : pNext( pNext_ ), flags( flags_ ), videoSession( videoSession_ ), videoSessionParameters( videoSessionParameters_ ), referenceSlotCount( referenceSlotCount_ ), pReferenceSlots( pReferenceSlots_ )
103566     {}
103567 
103568     VULKAN_HPP_CONSTEXPR VideoBeginCodingInfoKHR( VideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103569 
VideoBeginCodingInfoKHRVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103570     VideoBeginCodingInfoKHR( VkVideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103571       : VideoBeginCodingInfoKHR( *reinterpret_cast<VideoBeginCodingInfoKHR const *>( &rhs ) )
103572     {}
103573 
103574 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoBeginCodingInfoKHRVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103575     VideoBeginCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_, VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_, VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_, const void * pNext_ = nullptr )
103576     : pNext( pNext_ ), flags( flags_ ), videoSession( videoSession_ ), videoSessionParameters( videoSessionParameters_ ), referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) ), pReferenceSlots( referenceSlots_.data() )
103577     {}
103578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
103579 
103580 
103581     VideoBeginCodingInfoKHR & operator=( VideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103582 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
103583 
operator =VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103584     VideoBeginCodingInfoKHR & operator=( VkVideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103585     {
103586       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR const *>( &rhs );
103587       return *this;
103588     }
103589 
103590 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103591     VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
103592     {
103593       pNext = pNext_;
103594       return *this;
103595     }
103596 
setFlagsVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103597     VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
103598     {
103599       flags = flags_;
103600       return *this;
103601     }
103602 
setVideoSessionVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103603     VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setVideoSession( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ ) VULKAN_HPP_NOEXCEPT
103604     {
103605       videoSession = videoSession_;
103606       return *this;
103607     }
103608 
setVideoSessionParametersVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103609     VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setVideoSessionParameters( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ ) VULKAN_HPP_NOEXCEPT
103610     {
103611       videoSessionParameters = videoSessionParameters_;
103612       return *this;
103613     }
103614 
setReferenceSlotCountVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103615     VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT
103616     {
103617       referenceSlotCount = referenceSlotCount_;
103618       return *this;
103619     }
103620 
setPReferenceSlotsVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103621     VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
103622     {
103623       pReferenceSlots = pReferenceSlots_;
103624       return *this;
103625     }
103626 
103627 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setReferenceSlotsVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103628     VideoBeginCodingInfoKHR & setReferenceSlots( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
103629     {
103630       referenceSlotCount = static_cast<uint32_t>( referenceSlots_.size() );
103631       pReferenceSlots = referenceSlots_.data();
103632       return *this;
103633     }
103634 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
103635 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
103636 
103637 
operator VkVideoBeginCodingInfoKHR const&VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103638     operator VkVideoBeginCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
103639     {
103640       return *reinterpret_cast<const VkVideoBeginCodingInfoKHR*>( this );
103641     }
103642 
operator VkVideoBeginCodingInfoKHR&VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103643     operator VkVideoBeginCodingInfoKHR &() VULKAN_HPP_NOEXCEPT
103644     {
103645       return *reinterpret_cast<VkVideoBeginCodingInfoKHR*>( this );
103646     }
103647 
103648 #if defined( VULKAN_HPP_USE_REFLECT )
103649 #if 14 <= VULKAN_HPP_CPP_VERSION
103650     auto
103651 #else
103652     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR const &, VULKAN_HPP_NAMESPACE::VideoSessionKHR const &, VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &>
103653 #endif
reflectVULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103654       reflect() const VULKAN_HPP_NOEXCEPT
103655     {
103656       return std::tie( sType, pNext, flags, videoSession, videoSessionParameters, referenceSlotCount, pReferenceSlots );
103657     }
103658 #endif
103659 
103660 
103661 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
103662 auto operator<=>( VideoBeginCodingInfoKHR const & ) const = default;
103663 #else
operator ==VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103664     bool operator==( VideoBeginCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103665     {
103666 #if defined( VULKAN_HPP_USE_REFLECT )
103667       return this->reflect() == rhs.reflect();
103668 #else
103669       return ( sType == rhs.sType )
103670           && ( pNext == rhs.pNext )
103671           && ( flags == rhs.flags )
103672           && ( videoSession == rhs.videoSession )
103673           && ( videoSessionParameters == rhs.videoSessionParameters )
103674           && ( referenceSlotCount == rhs.referenceSlotCount )
103675           && ( pReferenceSlots == rhs.pReferenceSlots );
103676 #endif
103677     }
103678 
operator !=VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR103679     bool operator!=( VideoBeginCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103680     {
103681       return !operator==( rhs );
103682     }
103683 #endif
103684 
103685     public:
103686     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoBeginCodingInfoKHR;
103687     const void * pNext = {};
103688     VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags = {};
103689     VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession = {};
103690     VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters = {};
103691     uint32_t referenceSlotCount = {};
103692     const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots = {};
103693 
103694   };
103695 
103696   template <>
103697   struct CppType<StructureType, StructureType::eVideoBeginCodingInfoKHR>
103698   {
103699     using Type = VideoBeginCodingInfoKHR;
103700   };
103701 
103702   struct VideoCapabilitiesKHR
103703   {
103704     using NativeType = VkVideoCapabilitiesKHR;
103705 
103706     static const bool allowDuplicate = false;
103707     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoCapabilitiesKHR;
103708 
103709 
103710 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoCapabilitiesKHRVULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR103711 VULKAN_HPP_CONSTEXPR_14 VideoCapabilitiesKHR(VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment_ = {}, VULKAN_HPP_NAMESPACE::Extent2D pictureAccessGranularity_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minCodedExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent_ = {}, uint32_t maxDpbSlots_ = {}, uint32_t maxActiveReferencePictures_ = {}, VULKAN_HPP_NAMESPACE::ExtensionProperties stdHeaderVersion_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
103712     : pNext( pNext_ ), flags( flags_ ), minBitstreamBufferOffsetAlignment( minBitstreamBufferOffsetAlignment_ ), minBitstreamBufferSizeAlignment( minBitstreamBufferSizeAlignment_ ), pictureAccessGranularity( pictureAccessGranularity_ ), minCodedExtent( minCodedExtent_ ), maxCodedExtent( maxCodedExtent_ ), maxDpbSlots( maxDpbSlots_ ), maxActiveReferencePictures( maxActiveReferencePictures_ ), stdHeaderVersion( stdHeaderVersion_ )
103713     {}
103714 
103715     VULKAN_HPP_CONSTEXPR_14 VideoCapabilitiesKHR( VideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103716 
VideoCapabilitiesKHRVULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR103717     VideoCapabilitiesKHR( VkVideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103718       : VideoCapabilitiesKHR( *reinterpret_cast<VideoCapabilitiesKHR const *>( &rhs ) )
103719     {}
103720 
103721 
103722     VideoCapabilitiesKHR & operator=( VideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103723 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
103724 
operator =VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR103725     VideoCapabilitiesKHR & operator=( VkVideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103726     {
103727       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR const *>( &rhs );
103728       return *this;
103729     }
103730 
103731 
operator VkVideoCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR103732     operator VkVideoCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
103733     {
103734       return *reinterpret_cast<const VkVideoCapabilitiesKHR*>( this );
103735     }
103736 
operator VkVideoCapabilitiesKHR&VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR103737     operator VkVideoCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
103738     {
103739       return *reinterpret_cast<VkVideoCapabilitiesKHR*>( this );
103740     }
103741 
103742 #if defined( VULKAN_HPP_USE_REFLECT )
103743 #if 14 <= VULKAN_HPP_CPP_VERSION
103744     auto
103745 #else
103746     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ExtensionProperties const &>
103747 #endif
reflectVULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR103748       reflect() const VULKAN_HPP_NOEXCEPT
103749     {
103750       return std::tie( sType, pNext, flags, minBitstreamBufferOffsetAlignment, minBitstreamBufferSizeAlignment, pictureAccessGranularity, minCodedExtent, maxCodedExtent, maxDpbSlots, maxActiveReferencePictures, stdHeaderVersion );
103751     }
103752 #endif
103753 
103754 
103755 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
103756 auto operator<=>( VideoCapabilitiesKHR const & ) const = default;
103757 #else
operator ==VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR103758     bool operator==( VideoCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103759     {
103760 #if defined( VULKAN_HPP_USE_REFLECT )
103761       return this->reflect() == rhs.reflect();
103762 #else
103763       return ( sType == rhs.sType )
103764           && ( pNext == rhs.pNext )
103765           && ( flags == rhs.flags )
103766           && ( minBitstreamBufferOffsetAlignment == rhs.minBitstreamBufferOffsetAlignment )
103767           && ( minBitstreamBufferSizeAlignment == rhs.minBitstreamBufferSizeAlignment )
103768           && ( pictureAccessGranularity == rhs.pictureAccessGranularity )
103769           && ( minCodedExtent == rhs.minCodedExtent )
103770           && ( maxCodedExtent == rhs.maxCodedExtent )
103771           && ( maxDpbSlots == rhs.maxDpbSlots )
103772           && ( maxActiveReferencePictures == rhs.maxActiveReferencePictures )
103773           && ( stdHeaderVersion == rhs.stdHeaderVersion );
103774 #endif
103775     }
103776 
operator !=VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR103777     bool operator!=( VideoCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103778     {
103779       return !operator==( rhs );
103780     }
103781 #endif
103782 
103783     public:
103784     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoCapabilitiesKHR;
103785     void * pNext = {};
103786     VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR flags = {};
103787     VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment = {};
103788     VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment = {};
103789     VULKAN_HPP_NAMESPACE::Extent2D pictureAccessGranularity = {};
103790     VULKAN_HPP_NAMESPACE::Extent2D minCodedExtent = {};
103791     VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent = {};
103792     uint32_t maxDpbSlots = {};
103793     uint32_t maxActiveReferencePictures = {};
103794     VULKAN_HPP_NAMESPACE::ExtensionProperties stdHeaderVersion = {};
103795 
103796   };
103797 
103798   template <>
103799   struct CppType<StructureType, StructureType::eVideoCapabilitiesKHR>
103800   {
103801     using Type = VideoCapabilitiesKHR;
103802   };
103803 
103804   struct VideoCodingControlInfoKHR
103805   {
103806     using NativeType = VkVideoCodingControlInfoKHR;
103807 
103808     static const bool allowDuplicate = false;
103809     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoCodingControlInfoKHR;
103810 
103811 
103812 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoCodingControlInfoKHRVULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR103813 VULKAN_HPP_CONSTEXPR VideoCodingControlInfoKHR(VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
103814     : pNext( pNext_ ), flags( flags_ )
103815     {}
103816 
103817     VULKAN_HPP_CONSTEXPR VideoCodingControlInfoKHR( VideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103818 
VideoCodingControlInfoKHRVULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR103819     VideoCodingControlInfoKHR( VkVideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103820       : VideoCodingControlInfoKHR( *reinterpret_cast<VideoCodingControlInfoKHR const *>( &rhs ) )
103821     {}
103822 
103823 
103824     VideoCodingControlInfoKHR & operator=( VideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103825 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
103826 
operator =VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR103827     VideoCodingControlInfoKHR & operator=( VkVideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103828     {
103829       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR const *>( &rhs );
103830       return *this;
103831     }
103832 
103833 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR103834     VULKAN_HPP_CONSTEXPR_14 VideoCodingControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
103835     {
103836       pNext = pNext_;
103837       return *this;
103838     }
103839 
setFlagsVULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR103840     VULKAN_HPP_CONSTEXPR_14 VideoCodingControlInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
103841     {
103842       flags = flags_;
103843       return *this;
103844     }
103845 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
103846 
103847 
operator VkVideoCodingControlInfoKHR const&VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR103848     operator VkVideoCodingControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
103849     {
103850       return *reinterpret_cast<const VkVideoCodingControlInfoKHR*>( this );
103851     }
103852 
operator VkVideoCodingControlInfoKHR&VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR103853     operator VkVideoCodingControlInfoKHR &() VULKAN_HPP_NOEXCEPT
103854     {
103855       return *reinterpret_cast<VkVideoCodingControlInfoKHR*>( this );
103856     }
103857 
103858 #if defined( VULKAN_HPP_USE_REFLECT )
103859 #if 14 <= VULKAN_HPP_CPP_VERSION
103860     auto
103861 #else
103862     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR const &>
103863 #endif
reflectVULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR103864       reflect() const VULKAN_HPP_NOEXCEPT
103865     {
103866       return std::tie( sType, pNext, flags );
103867     }
103868 #endif
103869 
103870 
103871 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
103872 auto operator<=>( VideoCodingControlInfoKHR const & ) const = default;
103873 #else
operator ==VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR103874     bool operator==( VideoCodingControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103875     {
103876 #if defined( VULKAN_HPP_USE_REFLECT )
103877       return this->reflect() == rhs.reflect();
103878 #else
103879       return ( sType == rhs.sType )
103880           && ( pNext == rhs.pNext )
103881           && ( flags == rhs.flags );
103882 #endif
103883     }
103884 
operator !=VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR103885     bool operator!=( VideoCodingControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103886     {
103887       return !operator==( rhs );
103888     }
103889 #endif
103890 
103891     public:
103892     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoCodingControlInfoKHR;
103893     const void * pNext = {};
103894     VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags = {};
103895 
103896   };
103897 
103898   template <>
103899   struct CppType<StructureType, StructureType::eVideoCodingControlInfoKHR>
103900   {
103901     using Type = VideoCodingControlInfoKHR;
103902   };
103903 
103904   struct VideoDecodeCapabilitiesKHR
103905   {
103906     using NativeType = VkVideoDecodeCapabilitiesKHR;
103907 
103908     static const bool allowDuplicate = false;
103909     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeCapabilitiesKHR;
103910 
103911 
103912 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeCapabilitiesKHRVULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR103913 VULKAN_HPP_CONSTEXPR VideoDecodeCapabilitiesKHR(VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR flags_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
103914     : pNext( pNext_ ), flags( flags_ )
103915     {}
103916 
103917     VULKAN_HPP_CONSTEXPR VideoDecodeCapabilitiesKHR( VideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103918 
VideoDecodeCapabilitiesKHRVULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR103919     VideoDecodeCapabilitiesKHR( VkVideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103920       : VideoDecodeCapabilitiesKHR( *reinterpret_cast<VideoDecodeCapabilitiesKHR const *>( &rhs ) )
103921     {}
103922 
103923 
103924     VideoDecodeCapabilitiesKHR & operator=( VideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
103925 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
103926 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR103927     VideoDecodeCapabilitiesKHR & operator=( VkVideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
103928     {
103929       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR const *>( &rhs );
103930       return *this;
103931     }
103932 
103933 
operator VkVideoDecodeCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR103934     operator VkVideoDecodeCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
103935     {
103936       return *reinterpret_cast<const VkVideoDecodeCapabilitiesKHR*>( this );
103937     }
103938 
operator VkVideoDecodeCapabilitiesKHR&VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR103939     operator VkVideoDecodeCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
103940     {
103941       return *reinterpret_cast<VkVideoDecodeCapabilitiesKHR*>( this );
103942     }
103943 
103944 #if defined( VULKAN_HPP_USE_REFLECT )
103945 #if 14 <= VULKAN_HPP_CPP_VERSION
103946     auto
103947 #else
103948     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR const &>
103949 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR103950       reflect() const VULKAN_HPP_NOEXCEPT
103951     {
103952       return std::tie( sType, pNext, flags );
103953     }
103954 #endif
103955 
103956 
103957 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
103958 auto operator<=>( VideoDecodeCapabilitiesKHR const & ) const = default;
103959 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR103960     bool operator==( VideoDecodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103961     {
103962 #if defined( VULKAN_HPP_USE_REFLECT )
103963       return this->reflect() == rhs.reflect();
103964 #else
103965       return ( sType == rhs.sType )
103966           && ( pNext == rhs.pNext )
103967           && ( flags == rhs.flags );
103968 #endif
103969     }
103970 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR103971     bool operator!=( VideoDecodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
103972     {
103973       return !operator==( rhs );
103974     }
103975 #endif
103976 
103977     public:
103978     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeCapabilitiesKHR;
103979     void * pNext = {};
103980     VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR flags = {};
103981 
103982   };
103983 
103984   template <>
103985   struct CppType<StructureType, StructureType::eVideoDecodeCapabilitiesKHR>
103986   {
103987     using Type = VideoDecodeCapabilitiesKHR;
103988   };
103989 
103990   struct VideoDecodeH264CapabilitiesKHR
103991   {
103992     using NativeType = VkVideoDecodeH264CapabilitiesKHR;
103993 
103994     static const bool allowDuplicate = false;
103995     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264CapabilitiesKHR;
103996 
103997 
103998 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH264CapabilitiesKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR103999 VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesKHR(StdVideoH264LevelIdc maxLevelIdc_ = {}, VULKAN_HPP_NAMESPACE::Offset2D fieldOffsetGranularity_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
104000     : pNext( pNext_ ), maxLevelIdc( maxLevelIdc_ ), fieldOffsetGranularity( fieldOffsetGranularity_ )
104001     {}
104002 
104003     VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesKHR( VideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104004 
VideoDecodeH264CapabilitiesKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR104005     VideoDecodeH264CapabilitiesKHR( VkVideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104006       : VideoDecodeH264CapabilitiesKHR( *reinterpret_cast<VideoDecodeH264CapabilitiesKHR const *>( &rhs ) )
104007     {}
104008 
104009 
104010     VideoDecodeH264CapabilitiesKHR & operator=( VideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104011 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
104012 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR104013     VideoDecodeH264CapabilitiesKHR & operator=( VkVideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104014     {
104015       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR const *>( &rhs );
104016       return *this;
104017     }
104018 
104019 
operator VkVideoDecodeH264CapabilitiesKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR104020     operator VkVideoDecodeH264CapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
104021     {
104022       return *reinterpret_cast<const VkVideoDecodeH264CapabilitiesKHR*>( this );
104023     }
104024 
operator VkVideoDecodeH264CapabilitiesKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR104025     operator VkVideoDecodeH264CapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
104026     {
104027       return *reinterpret_cast<VkVideoDecodeH264CapabilitiesKHR*>( this );
104028     }
104029 
104030 #if defined( VULKAN_HPP_USE_REFLECT )
104031 #if 14 <= VULKAN_HPP_CPP_VERSION
104032     auto
104033 #else
104034     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, StdVideoH264LevelIdc const &, VULKAN_HPP_NAMESPACE::Offset2D const &>
104035 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR104036       reflect() const VULKAN_HPP_NOEXCEPT
104037     {
104038       return std::tie( sType, pNext, maxLevelIdc, fieldOffsetGranularity );
104039     }
104040 #endif
104041 
104042 
104043 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR104044     std::strong_ordering operator<=>( VideoDecodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104045     {
104046       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
104047       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
104048       if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ); cmp != 0 )
104049         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
104050       if ( auto cmp = fieldOffsetGranularity <=> rhs.fieldOffsetGranularity; cmp != 0 ) return cmp;
104051 
104052       return std::strong_ordering::equivalent;
104053     }
104054 #endif
104055 
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR104056     bool operator==( VideoDecodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104057     {
104058       return ( sType == rhs.sType )
104059           && ( pNext == rhs.pNext )
104060           && ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ) == 0 )
104061           && ( fieldOffsetGranularity == rhs.fieldOffsetGranularity );
104062     }
104063 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR104064     bool operator!=( VideoDecodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104065     {
104066       return !operator==( rhs );
104067     }
104068 
104069     public:
104070     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264CapabilitiesKHR;
104071     void * pNext = {};
104072     StdVideoH264LevelIdc maxLevelIdc = {};
104073     VULKAN_HPP_NAMESPACE::Offset2D fieldOffsetGranularity = {};
104074 
104075   };
104076 
104077   template <>
104078   struct CppType<StructureType, StructureType::eVideoDecodeH264CapabilitiesKHR>
104079   {
104080     using Type = VideoDecodeH264CapabilitiesKHR;
104081   };
104082 
104083   struct VideoDecodeH264DpbSlotInfoKHR
104084   {
104085     using NativeType = VkVideoDecodeH264DpbSlotInfoKHR;
104086 
104087     static const bool allowDuplicate = false;
104088     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264DpbSlotInfoKHR;
104089 
104090 
104091 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH264DpbSlotInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR104092 VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoKHR(const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
104093     : pNext( pNext_ ), pStdReferenceInfo( pStdReferenceInfo_ )
104094     {}
104095 
104096     VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoKHR( VideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104097 
VideoDecodeH264DpbSlotInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR104098     VideoDecodeH264DpbSlotInfoKHR( VkVideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104099       : VideoDecodeH264DpbSlotInfoKHR( *reinterpret_cast<VideoDecodeH264DpbSlotInfoKHR const *>( &rhs ) )
104100     {}
104101 
104102 
104103     VideoDecodeH264DpbSlotInfoKHR & operator=( VideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104104 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
104105 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR104106     VideoDecodeH264DpbSlotInfoKHR & operator=( VkVideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104107     {
104108       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR const *>( &rhs );
104109       return *this;
104110     }
104111 
104112 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR104113     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
104114     {
104115       pNext = pNext_;
104116       return *this;
104117     }
104118 
setPStdReferenceInfoVULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR104119     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoKHR & setPStdReferenceInfo( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
104120     {
104121       pStdReferenceInfo = pStdReferenceInfo_;
104122       return *this;
104123     }
104124 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
104125 
104126 
operator VkVideoDecodeH264DpbSlotInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR104127     operator VkVideoDecodeH264DpbSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
104128     {
104129       return *reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoKHR*>( this );
104130     }
104131 
operator VkVideoDecodeH264DpbSlotInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR104132     operator VkVideoDecodeH264DpbSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
104133     {
104134       return *reinterpret_cast<VkVideoDecodeH264DpbSlotInfoKHR*>( this );
104135     }
104136 
104137 #if defined( VULKAN_HPP_USE_REFLECT )
104138 #if 14 <= VULKAN_HPP_CPP_VERSION
104139     auto
104140 #else
104141     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH264ReferenceInfo * const &>
104142 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR104143       reflect() const VULKAN_HPP_NOEXCEPT
104144     {
104145       return std::tie( sType, pNext, pStdReferenceInfo );
104146     }
104147 #endif
104148 
104149 
104150 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
104151 auto operator<=>( VideoDecodeH264DpbSlotInfoKHR const & ) const = default;
104152 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR104153     bool operator==( VideoDecodeH264DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104154     {
104155 #if defined( VULKAN_HPP_USE_REFLECT )
104156       return this->reflect() == rhs.reflect();
104157 #else
104158       return ( sType == rhs.sType )
104159           && ( pNext == rhs.pNext )
104160           && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
104161 #endif
104162     }
104163 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR104164     bool operator!=( VideoDecodeH264DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104165     {
104166       return !operator==( rhs );
104167     }
104168 #endif
104169 
104170     public:
104171     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264DpbSlotInfoKHR;
104172     const void * pNext = {};
104173     const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo = {};
104174 
104175   };
104176 
104177   template <>
104178   struct CppType<StructureType, StructureType::eVideoDecodeH264DpbSlotInfoKHR>
104179   {
104180     using Type = VideoDecodeH264DpbSlotInfoKHR;
104181   };
104182 
104183   struct VideoDecodeH264PictureInfoKHR
104184   {
104185     using NativeType = VkVideoDecodeH264PictureInfoKHR;
104186 
104187     static const bool allowDuplicate = false;
104188     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264PictureInfoKHR;
104189 
104190 
104191 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH264PictureInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104192 VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoKHR(const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ = {}, uint32_t sliceCount_ = {}, const uint32_t * pSliceOffsets_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
104193     : pNext( pNext_ ), pStdPictureInfo( pStdPictureInfo_ ), sliceCount( sliceCount_ ), pSliceOffsets( pSliceOffsets_ )
104194     {}
104195 
104196     VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoKHR( VideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104197 
VideoDecodeH264PictureInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104198     VideoDecodeH264PictureInfoKHR( VkVideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104199       : VideoDecodeH264PictureInfoKHR( *reinterpret_cast<VideoDecodeH264PictureInfoKHR const *>( &rhs ) )
104200     {}
104201 
104202 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeH264PictureInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104203     VideoDecodeH264PictureInfoKHR( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceOffsets_, const void * pNext_ = nullptr )
104204     : pNext( pNext_ ), pStdPictureInfo( pStdPictureInfo_ ), sliceCount( static_cast<uint32_t>( sliceOffsets_.size() ) ), pSliceOffsets( sliceOffsets_.data() )
104205     {}
104206 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
104207 
104208 
104209     VideoDecodeH264PictureInfoKHR & operator=( VideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104210 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
104211 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104212     VideoDecodeH264PictureInfoKHR & operator=( VkVideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104213     {
104214       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR const *>( &rhs );
104215       return *this;
104216     }
104217 
104218 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104219     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
104220     {
104221       pNext = pNext_;
104222       return *this;
104223     }
104224 
setPStdPictureInfoVULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104225     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setPStdPictureInfo( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
104226     {
104227       pStdPictureInfo = pStdPictureInfo_;
104228       return *this;
104229     }
104230 
setSliceCountVULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104231     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setSliceCount( uint32_t sliceCount_ ) VULKAN_HPP_NOEXCEPT
104232     {
104233       sliceCount = sliceCount_;
104234       return *this;
104235     }
104236 
setPSliceOffsetsVULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104237     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setPSliceOffsets( const uint32_t * pSliceOffsets_ ) VULKAN_HPP_NOEXCEPT
104238     {
104239       pSliceOffsets = pSliceOffsets_;
104240       return *this;
104241     }
104242 
104243 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSliceOffsetsVULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104244     VideoDecodeH264PictureInfoKHR & setSliceOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceOffsets_ ) VULKAN_HPP_NOEXCEPT
104245     {
104246       sliceCount = static_cast<uint32_t>( sliceOffsets_.size() );
104247       pSliceOffsets = sliceOffsets_.data();
104248       return *this;
104249     }
104250 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
104251 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
104252 
104253 
operator VkVideoDecodeH264PictureInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104254     operator VkVideoDecodeH264PictureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
104255     {
104256       return *reinterpret_cast<const VkVideoDecodeH264PictureInfoKHR*>( this );
104257     }
104258 
operator VkVideoDecodeH264PictureInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104259     operator VkVideoDecodeH264PictureInfoKHR &() VULKAN_HPP_NOEXCEPT
104260     {
104261       return *reinterpret_cast<VkVideoDecodeH264PictureInfoKHR*>( this );
104262     }
104263 
104264 #if defined( VULKAN_HPP_USE_REFLECT )
104265 #if 14 <= VULKAN_HPP_CPP_VERSION
104266     auto
104267 #else
104268     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH264PictureInfo * const &, uint32_t const &, const uint32_t * const &>
104269 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104270       reflect() const VULKAN_HPP_NOEXCEPT
104271     {
104272       return std::tie( sType, pNext, pStdPictureInfo, sliceCount, pSliceOffsets );
104273     }
104274 #endif
104275 
104276 
104277 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
104278 auto operator<=>( VideoDecodeH264PictureInfoKHR const & ) const = default;
104279 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104280     bool operator==( VideoDecodeH264PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104281     {
104282 #if defined( VULKAN_HPP_USE_REFLECT )
104283       return this->reflect() == rhs.reflect();
104284 #else
104285       return ( sType == rhs.sType )
104286           && ( pNext == rhs.pNext )
104287           && ( pStdPictureInfo == rhs.pStdPictureInfo )
104288           && ( sliceCount == rhs.sliceCount )
104289           && ( pSliceOffsets == rhs.pSliceOffsets );
104290 #endif
104291     }
104292 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR104293     bool operator!=( VideoDecodeH264PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104294     {
104295       return !operator==( rhs );
104296     }
104297 #endif
104298 
104299     public:
104300     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264PictureInfoKHR;
104301     const void * pNext = {};
104302     const StdVideoDecodeH264PictureInfo * pStdPictureInfo = {};
104303     uint32_t sliceCount = {};
104304     const uint32_t * pSliceOffsets = {};
104305 
104306   };
104307 
104308   template <>
104309   struct CppType<StructureType, StructureType::eVideoDecodeH264PictureInfoKHR>
104310   {
104311     using Type = VideoDecodeH264PictureInfoKHR;
104312   };
104313 
104314   struct VideoDecodeH264ProfileInfoKHR
104315   {
104316     using NativeType = VkVideoDecodeH264ProfileInfoKHR;
104317 
104318     static const bool allowDuplicate = false;
104319     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264ProfileInfoKHR;
104320 
104321 
104322 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH264ProfileInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104323 VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileInfoKHR(StdVideoH264ProfileIdc stdProfileIdc_ = {}, VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout_ = VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR::eProgressive, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
104324     : pNext( pNext_ ), stdProfileIdc( stdProfileIdc_ ), pictureLayout( pictureLayout_ )
104325     {}
104326 
104327     VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileInfoKHR( VideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104328 
VideoDecodeH264ProfileInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104329     VideoDecodeH264ProfileInfoKHR( VkVideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104330       : VideoDecodeH264ProfileInfoKHR( *reinterpret_cast<VideoDecodeH264ProfileInfoKHR const *>( &rhs ) )
104331     {}
104332 
104333 
104334     VideoDecodeH264ProfileInfoKHR & operator=( VideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104335 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
104336 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104337     VideoDecodeH264ProfileInfoKHR & operator=( VkVideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104338     {
104339       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR const *>( &rhs );
104340       return *this;
104341     }
104342 
104343 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104344     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
104345     {
104346       pNext = pNext_;
104347       return *this;
104348     }
104349 
setStdProfileIdcVULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104350     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoKHR & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
104351     {
104352       stdProfileIdc = stdProfileIdc_;
104353       return *this;
104354     }
104355 
setPictureLayoutVULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104356     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoKHR & setPictureLayout( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout_ ) VULKAN_HPP_NOEXCEPT
104357     {
104358       pictureLayout = pictureLayout_;
104359       return *this;
104360     }
104361 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
104362 
104363 
operator VkVideoDecodeH264ProfileInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104364     operator VkVideoDecodeH264ProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
104365     {
104366       return *reinterpret_cast<const VkVideoDecodeH264ProfileInfoKHR*>( this );
104367     }
104368 
operator VkVideoDecodeH264ProfileInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104369     operator VkVideoDecodeH264ProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
104370     {
104371       return *reinterpret_cast<VkVideoDecodeH264ProfileInfoKHR*>( this );
104372     }
104373 
104374 #if defined( VULKAN_HPP_USE_REFLECT )
104375 #if 14 <= VULKAN_HPP_CPP_VERSION
104376     auto
104377 #else
104378     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH264ProfileIdc const &, VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR const &>
104379 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104380       reflect() const VULKAN_HPP_NOEXCEPT
104381     {
104382       return std::tie( sType, pNext, stdProfileIdc, pictureLayout );
104383     }
104384 #endif
104385 
104386 
104387 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104388     std::strong_ordering operator<=>( VideoDecodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104389     {
104390       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
104391       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
104392       if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ); cmp != 0 )
104393         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
104394       if ( auto cmp = pictureLayout <=> rhs.pictureLayout; cmp != 0 ) return cmp;
104395 
104396       return std::strong_ordering::equivalent;
104397     }
104398 #endif
104399 
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104400     bool operator==( VideoDecodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104401     {
104402       return ( sType == rhs.sType )
104403           && ( pNext == rhs.pNext )
104404           && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 )
104405           && ( pictureLayout == rhs.pictureLayout );
104406     }
104407 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR104408     bool operator!=( VideoDecodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104409     {
104410       return !operator==( rhs );
104411     }
104412 
104413     public:
104414     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264ProfileInfoKHR;
104415     const void * pNext = {};
104416     StdVideoH264ProfileIdc stdProfileIdc = {};
104417     VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout = VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR::eProgressive;
104418 
104419   };
104420 
104421   template <>
104422   struct CppType<StructureType, StructureType::eVideoDecodeH264ProfileInfoKHR>
104423   {
104424     using Type = VideoDecodeH264ProfileInfoKHR;
104425   };
104426 
104427   struct VideoDecodeH264SessionParametersAddInfoKHR
104428   {
104429     using NativeType = VkVideoDecodeH264SessionParametersAddInfoKHR;
104430 
104431     static const bool allowDuplicate = false;
104432     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264SessionParametersAddInfoKHR;
104433 
104434 
104435 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH264SessionParametersAddInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104436 VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoKHR(uint32_t stdSPSCount_ = {}, const StdVideoH264SequenceParameterSet * pStdSPSs_ = {}, uint32_t stdPPSCount_ = {}, const StdVideoH264PictureParameterSet * pStdPPSs_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
104437     : pNext( pNext_ ), stdSPSCount( stdSPSCount_ ), pStdSPSs( pStdSPSs_ ), stdPPSCount( stdPPSCount_ ), pStdPPSs( pStdPPSs_ )
104438     {}
104439 
104440     VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoKHR( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104441 
VideoDecodeH264SessionParametersAddInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104442     VideoDecodeH264SessionParametersAddInfoKHR( VkVideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104443       : VideoDecodeH264SessionParametersAddInfoKHR( *reinterpret_cast<VideoDecodeH264SessionParametersAddInfoKHR const *>( &rhs ) )
104444     {}
104445 
104446 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeH264SessionParametersAddInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104447     VideoDecodeH264SessionParametersAddInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & stdPPSs_ = {}, const void * pNext_ = nullptr )
104448     : pNext( pNext_ ), stdSPSCount( static_cast<uint32_t>( stdSPSs_.size() ) ), pStdSPSs( stdSPSs_.data() ), stdPPSCount( static_cast<uint32_t>( stdPPSs_.size() ) ), pStdPPSs( stdPPSs_.data() )
104449     {}
104450 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
104451 
104452 
104453     VideoDecodeH264SessionParametersAddInfoKHR & operator=( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104454 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
104455 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104456     VideoDecodeH264SessionParametersAddInfoKHR & operator=( VkVideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104457     {
104458       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR const *>( &rhs );
104459       return *this;
104460     }
104461 
104462 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104463     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
104464     {
104465       pNext = pNext_;
104466       return *this;
104467     }
104468 
setStdSPSCountVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104469     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
104470     {
104471       stdSPSCount = stdSPSCount_;
104472       return *this;
104473     }
104474 
setPStdSPSsVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104475     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setPStdSPSs( const StdVideoH264SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
104476     {
104477       pStdSPSs = pStdSPSs_;
104478       return *this;
104479     }
104480 
104481 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStdSPSsVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104482     VideoDecodeH264SessionParametersAddInfoKHR & setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
104483     {
104484       stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
104485       pStdSPSs = stdSPSs_.data();
104486       return *this;
104487     }
104488 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
104489 
setStdPPSCountVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104490     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
104491     {
104492       stdPPSCount = stdPPSCount_;
104493       return *this;
104494     }
104495 
setPStdPPSsVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104496     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setPStdPPSs( const StdVideoH264PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
104497     {
104498       pStdPPSs = pStdPPSs_;
104499       return *this;
104500     }
104501 
104502 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStdPPSsVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104503     VideoDecodeH264SessionParametersAddInfoKHR & setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
104504     {
104505       stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
104506       pStdPPSs = stdPPSs_.data();
104507       return *this;
104508     }
104509 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
104510 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
104511 
104512 
operator VkVideoDecodeH264SessionParametersAddInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104513     operator VkVideoDecodeH264SessionParametersAddInfoKHR const &() const VULKAN_HPP_NOEXCEPT
104514     {
104515       return *reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoKHR*>( this );
104516     }
104517 
operator VkVideoDecodeH264SessionParametersAddInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104518     operator VkVideoDecodeH264SessionParametersAddInfoKHR &() VULKAN_HPP_NOEXCEPT
104519     {
104520       return *reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoKHR*>( this );
104521     }
104522 
104523 #if defined( VULKAN_HPP_USE_REFLECT )
104524 #if 14 <= VULKAN_HPP_CPP_VERSION
104525     auto
104526 #else
104527     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const StdVideoH264SequenceParameterSet * const &, uint32_t const &, const StdVideoH264PictureParameterSet * const &>
104528 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104529       reflect() const VULKAN_HPP_NOEXCEPT
104530     {
104531       return std::tie( sType, pNext, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
104532     }
104533 #endif
104534 
104535 
104536 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
104537 auto operator<=>( VideoDecodeH264SessionParametersAddInfoKHR const & ) const = default;
104538 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104539     bool operator==( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104540     {
104541 #if defined( VULKAN_HPP_USE_REFLECT )
104542       return this->reflect() == rhs.reflect();
104543 #else
104544       return ( sType == rhs.sType )
104545           && ( pNext == rhs.pNext )
104546           && ( stdSPSCount == rhs.stdSPSCount )
104547           && ( pStdSPSs == rhs.pStdSPSs )
104548           && ( stdPPSCount == rhs.stdPPSCount )
104549           && ( pStdPPSs == rhs.pStdPPSs );
104550 #endif
104551     }
104552 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR104553     bool operator!=( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104554     {
104555       return !operator==( rhs );
104556     }
104557 #endif
104558 
104559     public:
104560     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264SessionParametersAddInfoKHR;
104561     const void * pNext = {};
104562     uint32_t stdSPSCount = {};
104563     const StdVideoH264SequenceParameterSet * pStdSPSs = {};
104564     uint32_t stdPPSCount = {};
104565     const StdVideoH264PictureParameterSet * pStdPPSs = {};
104566 
104567   };
104568 
104569   template <>
104570   struct CppType<StructureType, StructureType::eVideoDecodeH264SessionParametersAddInfoKHR>
104571   {
104572     using Type = VideoDecodeH264SessionParametersAddInfoKHR;
104573   };
104574 
104575   struct VideoDecodeH264SessionParametersCreateInfoKHR
104576   {
104577     using NativeType = VkVideoDecodeH264SessionParametersCreateInfoKHR;
104578 
104579     static const bool allowDuplicate = false;
104580     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264SessionParametersCreateInfoKHR;
104581 
104582 
104583 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH264SessionParametersCreateInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104584 VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersCreateInfoKHR(uint32_t maxStdSPSCount_ = {}, uint32_t maxStdPPSCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * pParametersAddInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
104585     : pNext( pNext_ ), maxStdSPSCount( maxStdSPSCount_ ), maxStdPPSCount( maxStdPPSCount_ ), pParametersAddInfo( pParametersAddInfo_ )
104586     {}
104587 
104588     VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersCreateInfoKHR( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104589 
VideoDecodeH264SessionParametersCreateInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104590     VideoDecodeH264SessionParametersCreateInfoKHR( VkVideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104591       : VideoDecodeH264SessionParametersCreateInfoKHR( *reinterpret_cast<VideoDecodeH264SessionParametersCreateInfoKHR const *>( &rhs ) )
104592     {}
104593 
104594 
104595     VideoDecodeH264SessionParametersCreateInfoKHR & operator=( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104596 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
104597 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104598     VideoDecodeH264SessionParametersCreateInfoKHR & operator=( VkVideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104599     {
104600       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR const *>( &rhs );
104601       return *this;
104602     }
104603 
104604 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104605     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
104606     {
104607       pNext = pNext_;
104608       return *this;
104609     }
104610 
setMaxStdSPSCountVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104611     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
104612     {
104613       maxStdSPSCount = maxStdSPSCount_;
104614       return *this;
104615     }
104616 
setMaxStdPPSCountVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104617     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
104618     {
104619       maxStdPPSCount = maxStdPPSCount_;
104620       return *this;
104621     }
104622 
setPParametersAddInfoVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104623     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR & setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
104624     {
104625       pParametersAddInfo = pParametersAddInfo_;
104626       return *this;
104627     }
104628 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
104629 
104630 
operator VkVideoDecodeH264SessionParametersCreateInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104631     operator VkVideoDecodeH264SessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
104632     {
104633       return *reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoKHR*>( this );
104634     }
104635 
operator VkVideoDecodeH264SessionParametersCreateInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104636     operator VkVideoDecodeH264SessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
104637     {
104638       return *reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoKHR*>( this );
104639     }
104640 
104641 #if defined( VULKAN_HPP_USE_REFLECT )
104642 #if 14 <= VULKAN_HPP_CPP_VERSION
104643     auto
104644 #else
104645     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * const &>
104646 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104647       reflect() const VULKAN_HPP_NOEXCEPT
104648     {
104649       return std::tie( sType, pNext, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
104650     }
104651 #endif
104652 
104653 
104654 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
104655 auto operator<=>( VideoDecodeH264SessionParametersCreateInfoKHR const & ) const = default;
104656 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104657     bool operator==( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104658     {
104659 #if defined( VULKAN_HPP_USE_REFLECT )
104660       return this->reflect() == rhs.reflect();
104661 #else
104662       return ( sType == rhs.sType )
104663           && ( pNext == rhs.pNext )
104664           && ( maxStdSPSCount == rhs.maxStdSPSCount )
104665           && ( maxStdPPSCount == rhs.maxStdPPSCount )
104666           && ( pParametersAddInfo == rhs.pParametersAddInfo );
104667 #endif
104668     }
104669 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR104670     bool operator!=( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104671     {
104672       return !operator==( rhs );
104673     }
104674 #endif
104675 
104676     public:
104677     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264SessionParametersCreateInfoKHR;
104678     const void * pNext = {};
104679     uint32_t maxStdSPSCount = {};
104680     uint32_t maxStdPPSCount = {};
104681     const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * pParametersAddInfo = {};
104682 
104683   };
104684 
104685   template <>
104686   struct CppType<StructureType, StructureType::eVideoDecodeH264SessionParametersCreateInfoKHR>
104687   {
104688     using Type = VideoDecodeH264SessionParametersCreateInfoKHR;
104689   };
104690 
104691   struct VideoDecodeH265CapabilitiesKHR
104692   {
104693     using NativeType = VkVideoDecodeH265CapabilitiesKHR;
104694 
104695     static const bool allowDuplicate = false;
104696     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265CapabilitiesKHR;
104697 
104698 
104699 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH265CapabilitiesKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR104700 VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesKHR(StdVideoH265LevelIdc maxLevelIdc_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
104701     : pNext( pNext_ ), maxLevelIdc( maxLevelIdc_ )
104702     {}
104703 
104704     VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesKHR( VideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104705 
VideoDecodeH265CapabilitiesKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR104706     VideoDecodeH265CapabilitiesKHR( VkVideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104707       : VideoDecodeH265CapabilitiesKHR( *reinterpret_cast<VideoDecodeH265CapabilitiesKHR const *>( &rhs ) )
104708     {}
104709 
104710 
104711     VideoDecodeH265CapabilitiesKHR & operator=( VideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104712 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
104713 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR104714     VideoDecodeH265CapabilitiesKHR & operator=( VkVideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104715     {
104716       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR const *>( &rhs );
104717       return *this;
104718     }
104719 
104720 
operator VkVideoDecodeH265CapabilitiesKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR104721     operator VkVideoDecodeH265CapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
104722     {
104723       return *reinterpret_cast<const VkVideoDecodeH265CapabilitiesKHR*>( this );
104724     }
104725 
operator VkVideoDecodeH265CapabilitiesKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR104726     operator VkVideoDecodeH265CapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
104727     {
104728       return *reinterpret_cast<VkVideoDecodeH265CapabilitiesKHR*>( this );
104729     }
104730 
104731 #if defined( VULKAN_HPP_USE_REFLECT )
104732 #if 14 <= VULKAN_HPP_CPP_VERSION
104733     auto
104734 #else
104735     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, StdVideoH265LevelIdc const &>
104736 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR104737       reflect() const VULKAN_HPP_NOEXCEPT
104738     {
104739       return std::tie( sType, pNext, maxLevelIdc );
104740     }
104741 #endif
104742 
104743 
104744 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR104745     std::strong_ordering operator<=>( VideoDecodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104746     {
104747       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
104748       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
104749       if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ); cmp != 0 )
104750         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
104751 
104752       return std::strong_ordering::equivalent;
104753     }
104754 #endif
104755 
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR104756     bool operator==( VideoDecodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104757     {
104758       return ( sType == rhs.sType )
104759           && ( pNext == rhs.pNext )
104760           && ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ) == 0 );
104761     }
104762 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR104763     bool operator!=( VideoDecodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104764     {
104765       return !operator==( rhs );
104766     }
104767 
104768     public:
104769     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265CapabilitiesKHR;
104770     void * pNext = {};
104771     StdVideoH265LevelIdc maxLevelIdc = {};
104772 
104773   };
104774 
104775   template <>
104776   struct CppType<StructureType, StructureType::eVideoDecodeH265CapabilitiesKHR>
104777   {
104778     using Type = VideoDecodeH265CapabilitiesKHR;
104779   };
104780 
104781   struct VideoDecodeH265DpbSlotInfoKHR
104782   {
104783     using NativeType = VkVideoDecodeH265DpbSlotInfoKHR;
104784 
104785     static const bool allowDuplicate = false;
104786     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265DpbSlotInfoKHR;
104787 
104788 
104789 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH265DpbSlotInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR104790 VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoKHR(const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
104791     : pNext( pNext_ ), pStdReferenceInfo( pStdReferenceInfo_ )
104792     {}
104793 
104794     VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoKHR( VideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104795 
VideoDecodeH265DpbSlotInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR104796     VideoDecodeH265DpbSlotInfoKHR( VkVideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104797       : VideoDecodeH265DpbSlotInfoKHR( *reinterpret_cast<VideoDecodeH265DpbSlotInfoKHR const *>( &rhs ) )
104798     {}
104799 
104800 
104801     VideoDecodeH265DpbSlotInfoKHR & operator=( VideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104802 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
104803 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR104804     VideoDecodeH265DpbSlotInfoKHR & operator=( VkVideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104805     {
104806       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR const *>( &rhs );
104807       return *this;
104808     }
104809 
104810 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR104811     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
104812     {
104813       pNext = pNext_;
104814       return *this;
104815     }
104816 
setPStdReferenceInfoVULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR104817     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoKHR & setPStdReferenceInfo( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
104818     {
104819       pStdReferenceInfo = pStdReferenceInfo_;
104820       return *this;
104821     }
104822 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
104823 
104824 
operator VkVideoDecodeH265DpbSlotInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR104825     operator VkVideoDecodeH265DpbSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
104826     {
104827       return *reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoKHR*>( this );
104828     }
104829 
operator VkVideoDecodeH265DpbSlotInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR104830     operator VkVideoDecodeH265DpbSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
104831     {
104832       return *reinterpret_cast<VkVideoDecodeH265DpbSlotInfoKHR*>( this );
104833     }
104834 
104835 #if defined( VULKAN_HPP_USE_REFLECT )
104836 #if 14 <= VULKAN_HPP_CPP_VERSION
104837     auto
104838 #else
104839     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH265ReferenceInfo * const &>
104840 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR104841       reflect() const VULKAN_HPP_NOEXCEPT
104842     {
104843       return std::tie( sType, pNext, pStdReferenceInfo );
104844     }
104845 #endif
104846 
104847 
104848 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
104849 auto operator<=>( VideoDecodeH265DpbSlotInfoKHR const & ) const = default;
104850 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR104851     bool operator==( VideoDecodeH265DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104852     {
104853 #if defined( VULKAN_HPP_USE_REFLECT )
104854       return this->reflect() == rhs.reflect();
104855 #else
104856       return ( sType == rhs.sType )
104857           && ( pNext == rhs.pNext )
104858           && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
104859 #endif
104860     }
104861 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR104862     bool operator!=( VideoDecodeH265DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104863     {
104864       return !operator==( rhs );
104865     }
104866 #endif
104867 
104868     public:
104869     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265DpbSlotInfoKHR;
104870     const void * pNext = {};
104871     const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo = {};
104872 
104873   };
104874 
104875   template <>
104876   struct CppType<StructureType, StructureType::eVideoDecodeH265DpbSlotInfoKHR>
104877   {
104878     using Type = VideoDecodeH265DpbSlotInfoKHR;
104879   };
104880 
104881   struct VideoDecodeH265PictureInfoKHR
104882   {
104883     using NativeType = VkVideoDecodeH265PictureInfoKHR;
104884 
104885     static const bool allowDuplicate = false;
104886     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265PictureInfoKHR;
104887 
104888 
104889 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH265PictureInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104890 VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoKHR(const StdVideoDecodeH265PictureInfo * pStdPictureInfo_ = {}, uint32_t sliceSegmentCount_ = {}, const uint32_t * pSliceSegmentOffsets_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
104891     : pNext( pNext_ ), pStdPictureInfo( pStdPictureInfo_ ), sliceSegmentCount( sliceSegmentCount_ ), pSliceSegmentOffsets( pSliceSegmentOffsets_ )
104892     {}
104893 
104894     VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoKHR( VideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104895 
VideoDecodeH265PictureInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104896     VideoDecodeH265PictureInfoKHR( VkVideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104897       : VideoDecodeH265PictureInfoKHR( *reinterpret_cast<VideoDecodeH265PictureInfoKHR const *>( &rhs ) )
104898     {}
104899 
104900 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeH265PictureInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104901     VideoDecodeH265PictureInfoKHR( const StdVideoDecodeH265PictureInfo * pStdPictureInfo_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceSegmentOffsets_, const void * pNext_ = nullptr )
104902     : pNext( pNext_ ), pStdPictureInfo( pStdPictureInfo_ ), sliceSegmentCount( static_cast<uint32_t>( sliceSegmentOffsets_.size() ) ), pSliceSegmentOffsets( sliceSegmentOffsets_.data() )
104903     {}
104904 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
104905 
104906 
104907     VideoDecodeH265PictureInfoKHR & operator=( VideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
104908 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
104909 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104910     VideoDecodeH265PictureInfoKHR & operator=( VkVideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
104911     {
104912       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR const *>( &rhs );
104913       return *this;
104914     }
104915 
104916 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104917     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
104918     {
104919       pNext = pNext_;
104920       return *this;
104921     }
104922 
setPStdPictureInfoVULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104923     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setPStdPictureInfo( const StdVideoDecodeH265PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
104924     {
104925       pStdPictureInfo = pStdPictureInfo_;
104926       return *this;
104927     }
104928 
setSliceSegmentCountVULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104929     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setSliceSegmentCount( uint32_t sliceSegmentCount_ ) VULKAN_HPP_NOEXCEPT
104930     {
104931       sliceSegmentCount = sliceSegmentCount_;
104932       return *this;
104933     }
104934 
setPSliceSegmentOffsetsVULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104935     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setPSliceSegmentOffsets( const uint32_t * pSliceSegmentOffsets_ ) VULKAN_HPP_NOEXCEPT
104936     {
104937       pSliceSegmentOffsets = pSliceSegmentOffsets_;
104938       return *this;
104939     }
104940 
104941 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setSliceSegmentOffsetsVULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104942     VideoDecodeH265PictureInfoKHR & setSliceSegmentOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceSegmentOffsets_ ) VULKAN_HPP_NOEXCEPT
104943     {
104944       sliceSegmentCount = static_cast<uint32_t>( sliceSegmentOffsets_.size() );
104945       pSliceSegmentOffsets = sliceSegmentOffsets_.data();
104946       return *this;
104947     }
104948 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
104949 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
104950 
104951 
operator VkVideoDecodeH265PictureInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104952     operator VkVideoDecodeH265PictureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
104953     {
104954       return *reinterpret_cast<const VkVideoDecodeH265PictureInfoKHR*>( this );
104955     }
104956 
operator VkVideoDecodeH265PictureInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104957     operator VkVideoDecodeH265PictureInfoKHR &() VULKAN_HPP_NOEXCEPT
104958     {
104959       return *reinterpret_cast<VkVideoDecodeH265PictureInfoKHR*>( this );
104960     }
104961 
104962 #if defined( VULKAN_HPP_USE_REFLECT )
104963 #if 14 <= VULKAN_HPP_CPP_VERSION
104964     auto
104965 #else
104966     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH265PictureInfo * const &, uint32_t const &, const uint32_t * const &>
104967 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104968       reflect() const VULKAN_HPP_NOEXCEPT
104969     {
104970       return std::tie( sType, pNext, pStdPictureInfo, sliceSegmentCount, pSliceSegmentOffsets );
104971     }
104972 #endif
104973 
104974 
104975 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
104976 auto operator<=>( VideoDecodeH265PictureInfoKHR const & ) const = default;
104977 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104978     bool operator==( VideoDecodeH265PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104979     {
104980 #if defined( VULKAN_HPP_USE_REFLECT )
104981       return this->reflect() == rhs.reflect();
104982 #else
104983       return ( sType == rhs.sType )
104984           && ( pNext == rhs.pNext )
104985           && ( pStdPictureInfo == rhs.pStdPictureInfo )
104986           && ( sliceSegmentCount == rhs.sliceSegmentCount )
104987           && ( pSliceSegmentOffsets == rhs.pSliceSegmentOffsets );
104988 #endif
104989     }
104990 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR104991     bool operator!=( VideoDecodeH265PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
104992     {
104993       return !operator==( rhs );
104994     }
104995 #endif
104996 
104997     public:
104998     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265PictureInfoKHR;
104999     const void * pNext = {};
105000     const StdVideoDecodeH265PictureInfo * pStdPictureInfo = {};
105001     uint32_t sliceSegmentCount = {};
105002     const uint32_t * pSliceSegmentOffsets = {};
105003 
105004   };
105005 
105006   template <>
105007   struct CppType<StructureType, StructureType::eVideoDecodeH265PictureInfoKHR>
105008   {
105009     using Type = VideoDecodeH265PictureInfoKHR;
105010   };
105011 
105012   struct VideoDecodeH265ProfileInfoKHR
105013   {
105014     using NativeType = VkVideoDecodeH265ProfileInfoKHR;
105015 
105016     static const bool allowDuplicate = false;
105017     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265ProfileInfoKHR;
105018 
105019 
105020 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH265ProfileInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105021 VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoKHR(StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
105022     : pNext( pNext_ ), stdProfileIdc( stdProfileIdc_ )
105023     {}
105024 
105025     VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoKHR( VideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105026 
VideoDecodeH265ProfileInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105027     VideoDecodeH265ProfileInfoKHR( VkVideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105028       : VideoDecodeH265ProfileInfoKHR( *reinterpret_cast<VideoDecodeH265ProfileInfoKHR const *>( &rhs ) )
105029     {}
105030 
105031 
105032     VideoDecodeH265ProfileInfoKHR & operator=( VideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105033 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
105034 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105035     VideoDecodeH265ProfileInfoKHR & operator=( VkVideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105036     {
105037       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR const *>( &rhs );
105038       return *this;
105039     }
105040 
105041 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105042     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
105043     {
105044       pNext = pNext_;
105045       return *this;
105046     }
105047 
setStdProfileIdcVULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105048     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileInfoKHR & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
105049     {
105050       stdProfileIdc = stdProfileIdc_;
105051       return *this;
105052     }
105053 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
105054 
105055 
operator VkVideoDecodeH265ProfileInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105056     operator VkVideoDecodeH265ProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
105057     {
105058       return *reinterpret_cast<const VkVideoDecodeH265ProfileInfoKHR*>( this );
105059     }
105060 
operator VkVideoDecodeH265ProfileInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105061     operator VkVideoDecodeH265ProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
105062     {
105063       return *reinterpret_cast<VkVideoDecodeH265ProfileInfoKHR*>( this );
105064     }
105065 
105066 #if defined( VULKAN_HPP_USE_REFLECT )
105067 #if 14 <= VULKAN_HPP_CPP_VERSION
105068     auto
105069 #else
105070     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH265ProfileIdc const &>
105071 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105072       reflect() const VULKAN_HPP_NOEXCEPT
105073     {
105074       return std::tie( sType, pNext, stdProfileIdc );
105075     }
105076 #endif
105077 
105078 
105079 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105080     std::strong_ordering operator<=>( VideoDecodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105081     {
105082       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
105083       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
105084       if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ); cmp != 0 )
105085         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
105086 
105087       return std::strong_ordering::equivalent;
105088     }
105089 #endif
105090 
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105091     bool operator==( VideoDecodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105092     {
105093       return ( sType == rhs.sType )
105094           && ( pNext == rhs.pNext )
105095           && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 );
105096     }
105097 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR105098     bool operator!=( VideoDecodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105099     {
105100       return !operator==( rhs );
105101     }
105102 
105103     public:
105104     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265ProfileInfoKHR;
105105     const void * pNext = {};
105106     StdVideoH265ProfileIdc stdProfileIdc = {};
105107 
105108   };
105109 
105110   template <>
105111   struct CppType<StructureType, StructureType::eVideoDecodeH265ProfileInfoKHR>
105112   {
105113     using Type = VideoDecodeH265ProfileInfoKHR;
105114   };
105115 
105116   struct VideoDecodeH265SessionParametersAddInfoKHR
105117   {
105118     using NativeType = VkVideoDecodeH265SessionParametersAddInfoKHR;
105119 
105120     static const bool allowDuplicate = false;
105121     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265SessionParametersAddInfoKHR;
105122 
105123 
105124 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH265SessionParametersAddInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105125 VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoKHR(uint32_t stdVPSCount_ = {}, const StdVideoH265VideoParameterSet * pStdVPSs_ = {}, uint32_t stdSPSCount_ = {}, const StdVideoH265SequenceParameterSet * pStdSPSs_ = {}, uint32_t stdPPSCount_ = {}, const StdVideoH265PictureParameterSet * pStdPPSs_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
105126     : pNext( pNext_ ), stdVPSCount( stdVPSCount_ ), pStdVPSs( pStdVPSs_ ), stdSPSCount( stdSPSCount_ ), pStdSPSs( pStdSPSs_ ), stdPPSCount( stdPPSCount_ ), pStdPPSs( pStdPPSs_ )
105127     {}
105128 
105129     VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoKHR( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105130 
VideoDecodeH265SessionParametersAddInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105131     VideoDecodeH265SessionParametersAddInfoKHR( VkVideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105132       : VideoDecodeH265SessionParametersAddInfoKHR( *reinterpret_cast<VideoDecodeH265SessionParametersAddInfoKHR const *>( &rhs ) )
105133     {}
105134 
105135 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeH265SessionParametersAddInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105136     VideoDecodeH265SessionParametersAddInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & stdVPSs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & stdPPSs_ = {}, const void * pNext_ = nullptr )
105137     : pNext( pNext_ ), stdVPSCount( static_cast<uint32_t>( stdVPSs_.size() ) ), pStdVPSs( stdVPSs_.data() ), stdSPSCount( static_cast<uint32_t>( stdSPSs_.size() ) ), pStdSPSs( stdSPSs_.data() ), stdPPSCount( static_cast<uint32_t>( stdPPSs_.size() ) ), pStdPPSs( stdPPSs_.data() )
105138     {}
105139 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
105140 
105141 
105142     VideoDecodeH265SessionParametersAddInfoKHR & operator=( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105143 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
105144 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105145     VideoDecodeH265SessionParametersAddInfoKHR & operator=( VkVideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105146     {
105147       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR const *>( &rhs );
105148       return *this;
105149     }
105150 
105151 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105152     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
105153     {
105154       pNext = pNext_;
105155       return *this;
105156     }
105157 
setStdVPSCountVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105158     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setStdVPSCount( uint32_t stdVPSCount_ ) VULKAN_HPP_NOEXCEPT
105159     {
105160       stdVPSCount = stdVPSCount_;
105161       return *this;
105162     }
105163 
setPStdVPSsVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105164     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPStdVPSs( const StdVideoH265VideoParameterSet * pStdVPSs_ ) VULKAN_HPP_NOEXCEPT
105165     {
105166       pStdVPSs = pStdVPSs_;
105167       return *this;
105168     }
105169 
105170 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStdVPSsVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105171     VideoDecodeH265SessionParametersAddInfoKHR & setStdVPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & stdVPSs_ ) VULKAN_HPP_NOEXCEPT
105172     {
105173       stdVPSCount = static_cast<uint32_t>( stdVPSs_.size() );
105174       pStdVPSs = stdVPSs_.data();
105175       return *this;
105176     }
105177 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
105178 
setStdSPSCountVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105179     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
105180     {
105181       stdSPSCount = stdSPSCount_;
105182       return *this;
105183     }
105184 
setPStdSPSsVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105185     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPStdSPSs( const StdVideoH265SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
105186     {
105187       pStdSPSs = pStdSPSs_;
105188       return *this;
105189     }
105190 
105191 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStdSPSsVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105192     VideoDecodeH265SessionParametersAddInfoKHR & setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
105193     {
105194       stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
105195       pStdSPSs = stdSPSs_.data();
105196       return *this;
105197     }
105198 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
105199 
setStdPPSCountVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105200     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
105201     {
105202       stdPPSCount = stdPPSCount_;
105203       return *this;
105204     }
105205 
setPStdPPSsVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105206     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPStdPPSs( const StdVideoH265PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
105207     {
105208       pStdPPSs = pStdPPSs_;
105209       return *this;
105210     }
105211 
105212 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStdPPSsVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105213     VideoDecodeH265SessionParametersAddInfoKHR & setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
105214     {
105215       stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
105216       pStdPPSs = stdPPSs_.data();
105217       return *this;
105218     }
105219 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
105220 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
105221 
105222 
operator VkVideoDecodeH265SessionParametersAddInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105223     operator VkVideoDecodeH265SessionParametersAddInfoKHR const &() const VULKAN_HPP_NOEXCEPT
105224     {
105225       return *reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoKHR*>( this );
105226     }
105227 
operator VkVideoDecodeH265SessionParametersAddInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105228     operator VkVideoDecodeH265SessionParametersAddInfoKHR &() VULKAN_HPP_NOEXCEPT
105229     {
105230       return *reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoKHR*>( this );
105231     }
105232 
105233 #if defined( VULKAN_HPP_USE_REFLECT )
105234 #if 14 <= VULKAN_HPP_CPP_VERSION
105235     auto
105236 #else
105237     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const StdVideoH265VideoParameterSet * const &, uint32_t const &, const StdVideoH265SequenceParameterSet * const &, uint32_t const &, const StdVideoH265PictureParameterSet * const &>
105238 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105239       reflect() const VULKAN_HPP_NOEXCEPT
105240     {
105241       return std::tie( sType, pNext, stdVPSCount, pStdVPSs, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
105242     }
105243 #endif
105244 
105245 
105246 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
105247 auto operator<=>( VideoDecodeH265SessionParametersAddInfoKHR const & ) const = default;
105248 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105249     bool operator==( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105250     {
105251 #if defined( VULKAN_HPP_USE_REFLECT )
105252       return this->reflect() == rhs.reflect();
105253 #else
105254       return ( sType == rhs.sType )
105255           && ( pNext == rhs.pNext )
105256           && ( stdVPSCount == rhs.stdVPSCount )
105257           && ( pStdVPSs == rhs.pStdVPSs )
105258           && ( stdSPSCount == rhs.stdSPSCount )
105259           && ( pStdSPSs == rhs.pStdSPSs )
105260           && ( stdPPSCount == rhs.stdPPSCount )
105261           && ( pStdPPSs == rhs.pStdPPSs );
105262 #endif
105263     }
105264 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR105265     bool operator!=( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105266     {
105267       return !operator==( rhs );
105268     }
105269 #endif
105270 
105271     public:
105272     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265SessionParametersAddInfoKHR;
105273     const void * pNext = {};
105274     uint32_t stdVPSCount = {};
105275     const StdVideoH265VideoParameterSet * pStdVPSs = {};
105276     uint32_t stdSPSCount = {};
105277     const StdVideoH265SequenceParameterSet * pStdSPSs = {};
105278     uint32_t stdPPSCount = {};
105279     const StdVideoH265PictureParameterSet * pStdPPSs = {};
105280 
105281   };
105282 
105283   template <>
105284   struct CppType<StructureType, StructureType::eVideoDecodeH265SessionParametersAddInfoKHR>
105285   {
105286     using Type = VideoDecodeH265SessionParametersAddInfoKHR;
105287   };
105288 
105289   struct VideoDecodeH265SessionParametersCreateInfoKHR
105290   {
105291     using NativeType = VkVideoDecodeH265SessionParametersCreateInfoKHR;
105292 
105293     static const bool allowDuplicate = false;
105294     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265SessionParametersCreateInfoKHR;
105295 
105296 
105297 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeH265SessionParametersCreateInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105298 VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersCreateInfoKHR(uint32_t maxStdVPSCount_ = {}, uint32_t maxStdSPSCount_ = {}, uint32_t maxStdPPSCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * pParametersAddInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
105299     : pNext( pNext_ ), maxStdVPSCount( maxStdVPSCount_ ), maxStdSPSCount( maxStdSPSCount_ ), maxStdPPSCount( maxStdPPSCount_ ), pParametersAddInfo( pParametersAddInfo_ )
105300     {}
105301 
105302     VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersCreateInfoKHR( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105303 
VideoDecodeH265SessionParametersCreateInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105304     VideoDecodeH265SessionParametersCreateInfoKHR( VkVideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105305       : VideoDecodeH265SessionParametersCreateInfoKHR( *reinterpret_cast<VideoDecodeH265SessionParametersCreateInfoKHR const *>( &rhs ) )
105306     {}
105307 
105308 
105309     VideoDecodeH265SessionParametersCreateInfoKHR & operator=( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105310 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
105311 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105312     VideoDecodeH265SessionParametersCreateInfoKHR & operator=( VkVideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105313     {
105314       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR const *>( &rhs );
105315       return *this;
105316     }
105317 
105318 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105319     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
105320     {
105321       pNext = pNext_;
105322       return *this;
105323     }
105324 
setMaxStdVPSCountVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105325     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setMaxStdVPSCount( uint32_t maxStdVPSCount_ ) VULKAN_HPP_NOEXCEPT
105326     {
105327       maxStdVPSCount = maxStdVPSCount_;
105328       return *this;
105329     }
105330 
setMaxStdSPSCountVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105331     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
105332     {
105333       maxStdSPSCount = maxStdSPSCount_;
105334       return *this;
105335     }
105336 
setMaxStdPPSCountVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105337     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
105338     {
105339       maxStdPPSCount = maxStdPPSCount_;
105340       return *this;
105341     }
105342 
setPParametersAddInfoVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105343     VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
105344     {
105345       pParametersAddInfo = pParametersAddInfo_;
105346       return *this;
105347     }
105348 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
105349 
105350 
operator VkVideoDecodeH265SessionParametersCreateInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105351     operator VkVideoDecodeH265SessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
105352     {
105353       return *reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoKHR*>( this );
105354     }
105355 
operator VkVideoDecodeH265SessionParametersCreateInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105356     operator VkVideoDecodeH265SessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
105357     {
105358       return *reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoKHR*>( this );
105359     }
105360 
105361 #if defined( VULKAN_HPP_USE_REFLECT )
105362 #if 14 <= VULKAN_HPP_CPP_VERSION
105363     auto
105364 #else
105365     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * const &>
105366 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105367       reflect() const VULKAN_HPP_NOEXCEPT
105368     {
105369       return std::tie( sType, pNext, maxStdVPSCount, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
105370     }
105371 #endif
105372 
105373 
105374 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
105375 auto operator<=>( VideoDecodeH265SessionParametersCreateInfoKHR const & ) const = default;
105376 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105377     bool operator==( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105378     {
105379 #if defined( VULKAN_HPP_USE_REFLECT )
105380       return this->reflect() == rhs.reflect();
105381 #else
105382       return ( sType == rhs.sType )
105383           && ( pNext == rhs.pNext )
105384           && ( maxStdVPSCount == rhs.maxStdVPSCount )
105385           && ( maxStdSPSCount == rhs.maxStdSPSCount )
105386           && ( maxStdPPSCount == rhs.maxStdPPSCount )
105387           && ( pParametersAddInfo == rhs.pParametersAddInfo );
105388 #endif
105389     }
105390 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR105391     bool operator!=( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105392     {
105393       return !operator==( rhs );
105394     }
105395 #endif
105396 
105397     public:
105398     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265SessionParametersCreateInfoKHR;
105399     const void * pNext = {};
105400     uint32_t maxStdVPSCount = {};
105401     uint32_t maxStdSPSCount = {};
105402     uint32_t maxStdPPSCount = {};
105403     const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * pParametersAddInfo = {};
105404 
105405   };
105406 
105407   template <>
105408   struct CppType<StructureType, StructureType::eVideoDecodeH265SessionParametersCreateInfoKHR>
105409   {
105410     using Type = VideoDecodeH265SessionParametersCreateInfoKHR;
105411   };
105412 
105413   struct VideoDecodeInfoKHR
105414   {
105415     using NativeType = VkVideoDecodeInfoKHR;
105416 
105417     static const bool allowDuplicate = false;
105418     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeInfoKHR;
105419 
105420 
105421 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105422 VULKAN_HPP_CONSTEXPR VideoDecodeInfoKHR(VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_ = {}, VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR dstPictureResource_ = {}, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ = {}, uint32_t referenceSlotCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
105423     : pNext( pNext_ ), flags( flags_ ), srcBuffer( srcBuffer_ ), srcBufferOffset( srcBufferOffset_ ), srcBufferRange( srcBufferRange_ ), dstPictureResource( dstPictureResource_ ), pSetupReferenceSlot( pSetupReferenceSlot_ ), referenceSlotCount( referenceSlotCount_ ), pReferenceSlots( pReferenceSlots_ )
105424     {}
105425 
105426     VULKAN_HPP_CONSTEXPR VideoDecodeInfoKHR( VideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105427 
VideoDecodeInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105428     VideoDecodeInfoKHR( VkVideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105429       : VideoDecodeInfoKHR( *reinterpret_cast<VideoDecodeInfoKHR const *>( &rhs ) )
105430     {}
105431 
105432 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoDecodeInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105433     VideoDecodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_, VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_, VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_, VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR dstPictureResource_, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_, const void * pNext_ = nullptr )
105434     : pNext( pNext_ ), flags( flags_ ), srcBuffer( srcBuffer_ ), srcBufferOffset( srcBufferOffset_ ), srcBufferRange( srcBufferRange_ ), dstPictureResource( dstPictureResource_ ), pSetupReferenceSlot( pSetupReferenceSlot_ ), referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) ), pReferenceSlots( referenceSlots_.data() )
105435     {}
105436 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
105437 
105438 
105439     VideoDecodeInfoKHR & operator=( VideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105440 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
105441 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105442     VideoDecodeInfoKHR & operator=( VkVideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105443     {
105444       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR const *>( &rhs );
105445       return *this;
105446     }
105447 
105448 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105449     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
105450     {
105451       pNext = pNext_;
105452       return *this;
105453     }
105454 
setFlagsVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105455     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
105456     {
105457       flags = flags_;
105458       return *this;
105459     }
105460 
setSrcBufferVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105461     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
105462     {
105463       srcBuffer = srcBuffer_;
105464       return *this;
105465     }
105466 
setSrcBufferOffsetVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105467     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setSrcBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_ ) VULKAN_HPP_NOEXCEPT
105468     {
105469       srcBufferOffset = srcBufferOffset_;
105470       return *this;
105471     }
105472 
setSrcBufferRangeVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105473     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setSrcBufferRange( VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_ ) VULKAN_HPP_NOEXCEPT
105474     {
105475       srcBufferRange = srcBufferRange_;
105476       return *this;
105477     }
105478 
setDstPictureResourceVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105479     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setDstPictureResource( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & dstPictureResource_ ) VULKAN_HPP_NOEXCEPT
105480     {
105481       dstPictureResource = dstPictureResource_;
105482       return *this;
105483     }
105484 
setPSetupReferenceSlotVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105485     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setPSetupReferenceSlot( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT
105486     {
105487       pSetupReferenceSlot = pSetupReferenceSlot_;
105488       return *this;
105489     }
105490 
setReferenceSlotCountVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105491     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT
105492     {
105493       referenceSlotCount = referenceSlotCount_;
105494       return *this;
105495     }
105496 
setPReferenceSlotsVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105497     VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
105498     {
105499       pReferenceSlots = pReferenceSlots_;
105500       return *this;
105501     }
105502 
105503 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setReferenceSlotsVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105504     VideoDecodeInfoKHR & setReferenceSlots( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
105505     {
105506       referenceSlotCount = static_cast<uint32_t>( referenceSlots_.size() );
105507       pReferenceSlots = referenceSlots_.data();
105508       return *this;
105509     }
105510 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
105511 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
105512 
105513 
operator VkVideoDecodeInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105514     operator VkVideoDecodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
105515     {
105516       return *reinterpret_cast<const VkVideoDecodeInfoKHR*>( this );
105517     }
105518 
operator VkVideoDecodeInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105519     operator VkVideoDecodeInfoKHR &() VULKAN_HPP_NOEXCEPT
105520     {
105521       return *reinterpret_cast<VkVideoDecodeInfoKHR*>( this );
105522     }
105523 
105524 #if defined( VULKAN_HPP_USE_REFLECT )
105525 #if 14 <= VULKAN_HPP_CPP_VERSION
105526     auto
105527 #else
105528     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const &, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &>
105529 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105530       reflect() const VULKAN_HPP_NOEXCEPT
105531     {
105532       return std::tie( sType, pNext, flags, srcBuffer, srcBufferOffset, srcBufferRange, dstPictureResource, pSetupReferenceSlot, referenceSlotCount, pReferenceSlots );
105533     }
105534 #endif
105535 
105536 
105537 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
105538 auto operator<=>( VideoDecodeInfoKHR const & ) const = default;
105539 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105540     bool operator==( VideoDecodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105541     {
105542 #if defined( VULKAN_HPP_USE_REFLECT )
105543       return this->reflect() == rhs.reflect();
105544 #else
105545       return ( sType == rhs.sType )
105546           && ( pNext == rhs.pNext )
105547           && ( flags == rhs.flags )
105548           && ( srcBuffer == rhs.srcBuffer )
105549           && ( srcBufferOffset == rhs.srcBufferOffset )
105550           && ( srcBufferRange == rhs.srcBufferRange )
105551           && ( dstPictureResource == rhs.dstPictureResource )
105552           && ( pSetupReferenceSlot == rhs.pSetupReferenceSlot )
105553           && ( referenceSlotCount == rhs.referenceSlotCount )
105554           && ( pReferenceSlots == rhs.pReferenceSlots );
105555 #endif
105556     }
105557 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR105558     bool operator!=( VideoDecodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105559     {
105560       return !operator==( rhs );
105561     }
105562 #endif
105563 
105564     public:
105565     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeInfoKHR;
105566     const void * pNext = {};
105567     VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags = {};
105568     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
105569     VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset = {};
105570     VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange = {};
105571     VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR dstPictureResource = {};
105572     const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot = {};
105573     uint32_t referenceSlotCount = {};
105574     const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots = {};
105575 
105576   };
105577 
105578   template <>
105579   struct CppType<StructureType, StructureType::eVideoDecodeInfoKHR>
105580   {
105581     using Type = VideoDecodeInfoKHR;
105582   };
105583 
105584   struct VideoDecodeUsageInfoKHR
105585   {
105586     using NativeType = VkVideoDecodeUsageInfoKHR;
105587 
105588     static const bool allowDuplicate = false;
105589     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeUsageInfoKHR;
105590 
105591 
105592 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoDecodeUsageInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR105593 VULKAN_HPP_CONSTEXPR VideoDecodeUsageInfoKHR(VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
105594     : pNext( pNext_ ), videoUsageHints( videoUsageHints_ )
105595     {}
105596 
105597     VULKAN_HPP_CONSTEXPR VideoDecodeUsageInfoKHR( VideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105598 
VideoDecodeUsageInfoKHRVULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR105599     VideoDecodeUsageInfoKHR( VkVideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105600       : VideoDecodeUsageInfoKHR( *reinterpret_cast<VideoDecodeUsageInfoKHR const *>( &rhs ) )
105601     {}
105602 
105603 
105604     VideoDecodeUsageInfoKHR & operator=( VideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105605 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
105606 
operator =VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR105607     VideoDecodeUsageInfoKHR & operator=( VkVideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105608     {
105609       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR const *>( &rhs );
105610       return *this;
105611     }
105612 
105613 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR105614     VULKAN_HPP_CONSTEXPR_14 VideoDecodeUsageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
105615     {
105616       pNext = pNext_;
105617       return *this;
105618     }
105619 
setVideoUsageHintsVULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR105620     VULKAN_HPP_CONSTEXPR_14 VideoDecodeUsageInfoKHR & setVideoUsageHints( VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints_ ) VULKAN_HPP_NOEXCEPT
105621     {
105622       videoUsageHints = videoUsageHints_;
105623       return *this;
105624     }
105625 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
105626 
105627 
operator VkVideoDecodeUsageInfoKHR const&VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR105628     operator VkVideoDecodeUsageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
105629     {
105630       return *reinterpret_cast<const VkVideoDecodeUsageInfoKHR*>( this );
105631     }
105632 
operator VkVideoDecodeUsageInfoKHR&VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR105633     operator VkVideoDecodeUsageInfoKHR &() VULKAN_HPP_NOEXCEPT
105634     {
105635       return *reinterpret_cast<VkVideoDecodeUsageInfoKHR*>( this );
105636     }
105637 
105638 #if defined( VULKAN_HPP_USE_REFLECT )
105639 #if 14 <= VULKAN_HPP_CPP_VERSION
105640     auto
105641 #else
105642     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR const &>
105643 #endif
reflectVULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR105644       reflect() const VULKAN_HPP_NOEXCEPT
105645     {
105646       return std::tie( sType, pNext, videoUsageHints );
105647     }
105648 #endif
105649 
105650 
105651 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
105652 auto operator<=>( VideoDecodeUsageInfoKHR const & ) const = default;
105653 #else
operator ==VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR105654     bool operator==( VideoDecodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105655     {
105656 #if defined( VULKAN_HPP_USE_REFLECT )
105657       return this->reflect() == rhs.reflect();
105658 #else
105659       return ( sType == rhs.sType )
105660           && ( pNext == rhs.pNext )
105661           && ( videoUsageHints == rhs.videoUsageHints );
105662 #endif
105663     }
105664 
operator !=VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR105665     bool operator!=( VideoDecodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105666     {
105667       return !operator==( rhs );
105668     }
105669 #endif
105670 
105671     public:
105672     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeUsageInfoKHR;
105673     const void * pNext = {};
105674     VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints = {};
105675 
105676   };
105677 
105678   template <>
105679   struct CppType<StructureType, StructureType::eVideoDecodeUsageInfoKHR>
105680   {
105681     using Type = VideoDecodeUsageInfoKHR;
105682   };
105683 
105684 #if defined( VK_ENABLE_BETA_EXTENSIONS )
105685   struct VideoEncodeCapabilitiesKHR
105686   {
105687     using NativeType = VkVideoEncodeCapabilitiesKHR;
105688 
105689     static const bool allowDuplicate = false;
105690     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeCapabilitiesKHR;
105691 
105692 
105693 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeCapabilitiesKHRVULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR105694 VULKAN_HPP_CONSTEXPR VideoEncodeCapabilitiesKHR(VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR rateControlModes_ = {}, uint32_t maxRateControlLayers_ = {}, uint64_t maxBitrate_ = {}, uint32_t maxQualityLevels_ = {}, VULKAN_HPP_NAMESPACE::Extent2D encodeInputPictureGranularity_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
105695     : pNext( pNext_ ), flags( flags_ ), rateControlModes( rateControlModes_ ), maxRateControlLayers( maxRateControlLayers_ ), maxBitrate( maxBitrate_ ), maxQualityLevels( maxQualityLevels_ ), encodeInputPictureGranularity( encodeInputPictureGranularity_ ), supportedEncodeFeedbackFlags( supportedEncodeFeedbackFlags_ )
105696     {}
105697 
105698     VULKAN_HPP_CONSTEXPR VideoEncodeCapabilitiesKHR( VideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105699 
VideoEncodeCapabilitiesKHRVULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR105700     VideoEncodeCapabilitiesKHR( VkVideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105701       : VideoEncodeCapabilitiesKHR( *reinterpret_cast<VideoEncodeCapabilitiesKHR const *>( &rhs ) )
105702     {}
105703 
105704 
105705     VideoEncodeCapabilitiesKHR & operator=( VideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105706 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
105707 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR105708     VideoEncodeCapabilitiesKHR & operator=( VkVideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
105709     {
105710       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR const *>( &rhs );
105711       return *this;
105712     }
105713 
105714 
operator VkVideoEncodeCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR105715     operator VkVideoEncodeCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
105716     {
105717       return *reinterpret_cast<const VkVideoEncodeCapabilitiesKHR*>( this );
105718     }
105719 
operator VkVideoEncodeCapabilitiesKHR&VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR105720     operator VkVideoEncodeCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
105721     {
105722       return *reinterpret_cast<VkVideoEncodeCapabilitiesKHR*>( this );
105723     }
105724 
105725 #if defined( VULKAN_HPP_USE_REFLECT )
105726 #if 14 <= VULKAN_HPP_CPP_VERSION
105727     auto
105728 #else
105729     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR const &, VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR const &, uint32_t const &, uint64_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR const &>
105730 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR105731       reflect() const VULKAN_HPP_NOEXCEPT
105732     {
105733       return std::tie( sType, pNext, flags, rateControlModes, maxRateControlLayers, maxBitrate, maxQualityLevels, encodeInputPictureGranularity, supportedEncodeFeedbackFlags );
105734     }
105735 #endif
105736 
105737 
105738 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
105739 auto operator<=>( VideoEncodeCapabilitiesKHR const & ) const = default;
105740 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR105741     bool operator==( VideoEncodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105742     {
105743 #if defined( VULKAN_HPP_USE_REFLECT )
105744       return this->reflect() == rhs.reflect();
105745 #else
105746       return ( sType == rhs.sType )
105747           && ( pNext == rhs.pNext )
105748           && ( flags == rhs.flags )
105749           && ( rateControlModes == rhs.rateControlModes )
105750           && ( maxRateControlLayers == rhs.maxRateControlLayers )
105751           && ( maxBitrate == rhs.maxBitrate )
105752           && ( maxQualityLevels == rhs.maxQualityLevels )
105753           && ( encodeInputPictureGranularity == rhs.encodeInputPictureGranularity )
105754           && ( supportedEncodeFeedbackFlags == rhs.supportedEncodeFeedbackFlags );
105755 #endif
105756     }
105757 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR105758     bool operator!=( VideoEncodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
105759     {
105760       return !operator==( rhs );
105761     }
105762 #endif
105763 
105764     public:
105765     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeCapabilitiesKHR;
105766     void * pNext = {};
105767     VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR flags = {};
105768     VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR rateControlModes = {};
105769     uint32_t maxRateControlLayers = {};
105770     uint64_t maxBitrate = {};
105771     uint32_t maxQualityLevels = {};
105772     VULKAN_HPP_NAMESPACE::Extent2D encodeInputPictureGranularity = {};
105773     VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags = {};
105774 
105775   };
105776 
105777   template <>
105778   struct CppType<StructureType, StructureType::eVideoEncodeCapabilitiesKHR>
105779   {
105780     using Type = VideoEncodeCapabilitiesKHR;
105781   };
105782 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
105783 
105784 #if defined( VK_ENABLE_BETA_EXTENSIONS )
105785   struct VideoEncodeH264CapabilitiesEXT
105786   {
105787     using NativeType = VkVideoEncodeH264CapabilitiesEXT;
105788 
105789     static const bool allowDuplicate = false;
105790     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264CapabilitiesEXT;
105791 
105792 
105793 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264CapabilitiesEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT105794 VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesEXT(VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags_ = {}, StdVideoH264LevelIdc maxLevelIdc_ = {}, uint32_t maxSliceCount_ = {}, uint32_t maxPPictureL0ReferenceCount_ = {}, uint32_t maxBPictureL0ReferenceCount_ = {}, uint32_t maxL1ReferenceCount_ = {}, uint32_t maxTemporalLayerCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 expectDyadicTemporalLayerPattern_ = {}, int32_t minQp_ = {}, int32_t maxQp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 prefersGopRemainingFrames_ = {}, VULKAN_HPP_NAMESPACE::Bool32 requiresGopRemainingFrames_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsEXT stdSyntaxFlags_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
105795     : pNext( pNext_ ), flags( flags_ ), maxLevelIdc( maxLevelIdc_ ), maxSliceCount( maxSliceCount_ ), maxPPictureL0ReferenceCount( maxPPictureL0ReferenceCount_ ), maxBPictureL0ReferenceCount( maxBPictureL0ReferenceCount_ ), maxL1ReferenceCount( maxL1ReferenceCount_ ), maxTemporalLayerCount( maxTemporalLayerCount_ ), expectDyadicTemporalLayerPattern( expectDyadicTemporalLayerPattern_ ), minQp( minQp_ ), maxQp( maxQp_ ), prefersGopRemainingFrames( prefersGopRemainingFrames_ ), requiresGopRemainingFrames( requiresGopRemainingFrames_ ), stdSyntaxFlags( stdSyntaxFlags_ )
105796     {}
105797 
105798     VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesEXT( VideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105799 
VideoEncodeH264CapabilitiesEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT105800     VideoEncodeH264CapabilitiesEXT( VkVideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
105801       : VideoEncodeH264CapabilitiesEXT( *reinterpret_cast<VideoEncodeH264CapabilitiesEXT const *>( &rhs ) )
105802     {}
105803 
105804 
105805     VideoEncodeH264CapabilitiesEXT & operator=( VideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105806 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
105807 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT105808     VideoEncodeH264CapabilitiesEXT & operator=( VkVideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
105809     {
105810       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT const *>( &rhs );
105811       return *this;
105812     }
105813 
105814 
operator VkVideoEncodeH264CapabilitiesEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT105815     operator VkVideoEncodeH264CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
105816     {
105817       return *reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT*>( this );
105818     }
105819 
operator VkVideoEncodeH264CapabilitiesEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT105820     operator VkVideoEncodeH264CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
105821     {
105822       return *reinterpret_cast<VkVideoEncodeH264CapabilitiesEXT*>( this );
105823     }
105824 
105825 #if defined( VULKAN_HPP_USE_REFLECT )
105826 #if 14 <= VULKAN_HPP_CPP_VERSION
105827     auto
105828 #else
105829     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT const &, StdVideoH264LevelIdc const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, int32_t const &, int32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsEXT const &>
105830 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT105831       reflect() const VULKAN_HPP_NOEXCEPT
105832     {
105833       return std::tie( sType, pNext, flags, maxLevelIdc, maxSliceCount, maxPPictureL0ReferenceCount, maxBPictureL0ReferenceCount, maxL1ReferenceCount, maxTemporalLayerCount, expectDyadicTemporalLayerPattern, minQp, maxQp, prefersGopRemainingFrames, requiresGopRemainingFrames, stdSyntaxFlags );
105834     }
105835 #endif
105836 
105837 
105838 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT105839     std::strong_ordering operator<=>( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
105840     {
105841       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
105842       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
105843       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
105844       if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ); cmp != 0 )
105845         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
105846       if ( auto cmp = maxSliceCount <=> rhs.maxSliceCount; cmp != 0 ) return cmp;
105847       if ( auto cmp = maxPPictureL0ReferenceCount <=> rhs.maxPPictureL0ReferenceCount; cmp != 0 ) return cmp;
105848       if ( auto cmp = maxBPictureL0ReferenceCount <=> rhs.maxBPictureL0ReferenceCount; cmp != 0 ) return cmp;
105849       if ( auto cmp = maxL1ReferenceCount <=> rhs.maxL1ReferenceCount; cmp != 0 ) return cmp;
105850       if ( auto cmp = maxTemporalLayerCount <=> rhs.maxTemporalLayerCount; cmp != 0 ) return cmp;
105851       if ( auto cmp = expectDyadicTemporalLayerPattern <=> rhs.expectDyadicTemporalLayerPattern; cmp != 0 ) return cmp;
105852       if ( auto cmp = minQp <=> rhs.minQp; cmp != 0 ) return cmp;
105853       if ( auto cmp = maxQp <=> rhs.maxQp; cmp != 0 ) return cmp;
105854       if ( auto cmp = prefersGopRemainingFrames <=> rhs.prefersGopRemainingFrames; cmp != 0 ) return cmp;
105855       if ( auto cmp = requiresGopRemainingFrames <=> rhs.requiresGopRemainingFrames; cmp != 0 ) return cmp;
105856       if ( auto cmp = stdSyntaxFlags <=> rhs.stdSyntaxFlags; cmp != 0 ) return cmp;
105857 
105858       return std::strong_ordering::equivalent;
105859     }
105860 #endif
105861 
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT105862     bool operator==( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
105863     {
105864       return ( sType == rhs.sType )
105865           && ( pNext == rhs.pNext )
105866           && ( flags == rhs.flags )
105867           && ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ) == 0 )
105868           && ( maxSliceCount == rhs.maxSliceCount )
105869           && ( maxPPictureL0ReferenceCount == rhs.maxPPictureL0ReferenceCount )
105870           && ( maxBPictureL0ReferenceCount == rhs.maxBPictureL0ReferenceCount )
105871           && ( maxL1ReferenceCount == rhs.maxL1ReferenceCount )
105872           && ( maxTemporalLayerCount == rhs.maxTemporalLayerCount )
105873           && ( expectDyadicTemporalLayerPattern == rhs.expectDyadicTemporalLayerPattern )
105874           && ( minQp == rhs.minQp )
105875           && ( maxQp == rhs.maxQp )
105876           && ( prefersGopRemainingFrames == rhs.prefersGopRemainingFrames )
105877           && ( requiresGopRemainingFrames == rhs.requiresGopRemainingFrames )
105878           && ( stdSyntaxFlags == rhs.stdSyntaxFlags );
105879     }
105880 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT105881     bool operator!=( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
105882     {
105883       return !operator==( rhs );
105884     }
105885 
105886     public:
105887     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264CapabilitiesEXT;
105888     void * pNext = {};
105889     VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags = {};
105890     StdVideoH264LevelIdc maxLevelIdc = {};
105891     uint32_t maxSliceCount = {};
105892     uint32_t maxPPictureL0ReferenceCount = {};
105893     uint32_t maxBPictureL0ReferenceCount = {};
105894     uint32_t maxL1ReferenceCount = {};
105895     uint32_t maxTemporalLayerCount = {};
105896     VULKAN_HPP_NAMESPACE::Bool32 expectDyadicTemporalLayerPattern = {};
105897     int32_t minQp = {};
105898     int32_t maxQp = {};
105899     VULKAN_HPP_NAMESPACE::Bool32 prefersGopRemainingFrames = {};
105900     VULKAN_HPP_NAMESPACE::Bool32 requiresGopRemainingFrames = {};
105901     VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsEXT stdSyntaxFlags = {};
105902 
105903   };
105904 
105905   template <>
105906   struct CppType<StructureType, StructureType::eVideoEncodeH264CapabilitiesEXT>
105907   {
105908     using Type = VideoEncodeH264CapabilitiesEXT;
105909   };
105910 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
105911 
105912 #if defined( VK_ENABLE_BETA_EXTENSIONS )
105913   struct VideoEncodeH264DpbSlotInfoEXT
105914   {
105915     using NativeType = VkVideoEncodeH264DpbSlotInfoEXT;
105916 
105917     static const bool allowDuplicate = false;
105918     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264DpbSlotInfoEXT;
105919 
105920 
105921 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264DpbSlotInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT105922 VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoEXT(const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
105923     : pNext( pNext_ ), pStdReferenceInfo( pStdReferenceInfo_ )
105924     {}
105925 
105926     VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoEXT( VideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105927 
VideoEncodeH264DpbSlotInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT105928     VideoEncodeH264DpbSlotInfoEXT( VkVideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
105929       : VideoEncodeH264DpbSlotInfoEXT( *reinterpret_cast<VideoEncodeH264DpbSlotInfoEXT const *>( &rhs ) )
105930     {}
105931 
105932 
105933     VideoEncodeH264DpbSlotInfoEXT & operator=( VideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
105934 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
105935 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT105936     VideoEncodeH264DpbSlotInfoEXT & operator=( VkVideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
105937     {
105938       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT const *>( &rhs );
105939       return *this;
105940     }
105941 
105942 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT105943     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
105944     {
105945       pNext = pNext_;
105946       return *this;
105947     }
105948 
setPStdReferenceInfoVULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT105949     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT & setPStdReferenceInfo( const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
105950     {
105951       pStdReferenceInfo = pStdReferenceInfo_;
105952       return *this;
105953     }
105954 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
105955 
105956 
operator VkVideoEncodeH264DpbSlotInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT105957     operator VkVideoEncodeH264DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
105958     {
105959       return *reinterpret_cast<const VkVideoEncodeH264DpbSlotInfoEXT*>( this );
105960     }
105961 
operator VkVideoEncodeH264DpbSlotInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT105962     operator VkVideoEncodeH264DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
105963     {
105964       return *reinterpret_cast<VkVideoEncodeH264DpbSlotInfoEXT*>( this );
105965     }
105966 
105967 #if defined( VULKAN_HPP_USE_REFLECT )
105968 #if 14 <= VULKAN_HPP_CPP_VERSION
105969     auto
105970 #else
105971     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoEncodeH264ReferenceInfo * const &>
105972 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT105973       reflect() const VULKAN_HPP_NOEXCEPT
105974     {
105975       return std::tie( sType, pNext, pStdReferenceInfo );
105976     }
105977 #endif
105978 
105979 
105980 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
105981 auto operator<=>( VideoEncodeH264DpbSlotInfoEXT const & ) const = default;
105982 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT105983     bool operator==( VideoEncodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
105984     {
105985 #if defined( VULKAN_HPP_USE_REFLECT )
105986       return this->reflect() == rhs.reflect();
105987 #else
105988       return ( sType == rhs.sType )
105989           && ( pNext == rhs.pNext )
105990           && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
105991 #endif
105992     }
105993 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT105994     bool operator!=( VideoEncodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
105995     {
105996       return !operator==( rhs );
105997     }
105998 #endif
105999 
106000     public:
106001     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264DpbSlotInfoEXT;
106002     const void * pNext = {};
106003     const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo = {};
106004 
106005   };
106006 
106007   template <>
106008   struct CppType<StructureType, StructureType::eVideoEncodeH264DpbSlotInfoEXT>
106009   {
106010     using Type = VideoEncodeH264DpbSlotInfoEXT;
106011   };
106012 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
106013 
106014 #if defined( VK_ENABLE_BETA_EXTENSIONS )
106015   struct VideoEncodeH264FrameSizeEXT
106016   {
106017     using NativeType = VkVideoEncodeH264FrameSizeEXT;
106018 
106019 
106020 
106021 
106022 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264FrameSizeEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106023 VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeEXT(uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {}) VULKAN_HPP_NOEXCEPT
106024     : frameISize( frameISize_ ), framePSize( framePSize_ ), frameBSize( frameBSize_ )
106025     {}
106026 
106027     VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeEXT( VideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106028 
VideoEncodeH264FrameSizeEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106029     VideoEncodeH264FrameSizeEXT( VkVideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106030       : VideoEncodeH264FrameSizeEXT( *reinterpret_cast<VideoEncodeH264FrameSizeEXT const *>( &rhs ) )
106031     {}
106032 
106033 
106034     VideoEncodeH264FrameSizeEXT & operator=( VideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106035 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
106036 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106037     VideoEncodeH264FrameSizeEXT & operator=( VkVideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106038     {
106039       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const *>( &rhs );
106040       return *this;
106041     }
106042 
106043 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setFrameISizeVULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106044     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
106045     {
106046       frameISize = frameISize_;
106047       return *this;
106048     }
106049 
setFramePSizeVULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106050     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
106051     {
106052       framePSize = framePSize_;
106053       return *this;
106054     }
106055 
setFrameBSizeVULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106056     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
106057     {
106058       frameBSize = frameBSize_;
106059       return *this;
106060     }
106061 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
106062 
106063 
operator VkVideoEncodeH264FrameSizeEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106064     operator VkVideoEncodeH264FrameSizeEXT const &() const VULKAN_HPP_NOEXCEPT
106065     {
106066       return *reinterpret_cast<const VkVideoEncodeH264FrameSizeEXT*>( this );
106067     }
106068 
operator VkVideoEncodeH264FrameSizeEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106069     operator VkVideoEncodeH264FrameSizeEXT &() VULKAN_HPP_NOEXCEPT
106070     {
106071       return *reinterpret_cast<VkVideoEncodeH264FrameSizeEXT*>( this );
106072     }
106073 
106074 #if defined( VULKAN_HPP_USE_REFLECT )
106075 #if 14 <= VULKAN_HPP_CPP_VERSION
106076     auto
106077 #else
106078     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
106079 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106080       reflect() const VULKAN_HPP_NOEXCEPT
106081     {
106082       return std::tie( frameISize, framePSize, frameBSize );
106083     }
106084 #endif
106085 
106086 
106087 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
106088 auto operator<=>( VideoEncodeH264FrameSizeEXT const & ) const = default;
106089 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106090     bool operator==( VideoEncodeH264FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106091     {
106092 #if defined( VULKAN_HPP_USE_REFLECT )
106093       return this->reflect() == rhs.reflect();
106094 #else
106095       return ( frameISize == rhs.frameISize )
106096           && ( framePSize == rhs.framePSize )
106097           && ( frameBSize == rhs.frameBSize );
106098 #endif
106099     }
106100 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT106101     bool operator!=( VideoEncodeH264FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106102     {
106103       return !operator==( rhs );
106104     }
106105 #endif
106106 
106107     public:
106108     uint32_t frameISize = {};
106109     uint32_t framePSize = {};
106110     uint32_t frameBSize = {};
106111 
106112   };
106113 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
106114 
106115 #if defined( VK_ENABLE_BETA_EXTENSIONS )
106116   struct VideoEncodeH264GopRemainingFrameInfoEXT
106117   {
106118     using NativeType = VkVideoEncodeH264GopRemainingFrameInfoEXT;
106119 
106120     static const bool allowDuplicate = false;
106121     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264GopRemainingFrameInfoEXT;
106122 
106123 
106124 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264GopRemainingFrameInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106125 VULKAN_HPP_CONSTEXPR VideoEncodeH264GopRemainingFrameInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ = {}, uint32_t gopRemainingI_ = {}, uint32_t gopRemainingP_ = {}, uint32_t gopRemainingB_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
106126     : pNext( pNext_ ), useGopRemainingFrames( useGopRemainingFrames_ ), gopRemainingI( gopRemainingI_ ), gopRemainingP( gopRemainingP_ ), gopRemainingB( gopRemainingB_ )
106127     {}
106128 
106129     VULKAN_HPP_CONSTEXPR VideoEncodeH264GopRemainingFrameInfoEXT( VideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106130 
VideoEncodeH264GopRemainingFrameInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106131     VideoEncodeH264GopRemainingFrameInfoEXT( VkVideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106132       : VideoEncodeH264GopRemainingFrameInfoEXT( *reinterpret_cast<VideoEncodeH264GopRemainingFrameInfoEXT const *>( &rhs ) )
106133     {}
106134 
106135 
106136     VideoEncodeH264GopRemainingFrameInfoEXT & operator=( VideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106137 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
106138 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106139     VideoEncodeH264GopRemainingFrameInfoEXT & operator=( VkVideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106140     {
106141       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT const *>( &rhs );
106142       return *this;
106143     }
106144 
106145 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106146     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
106147     {
106148       pNext = pNext_;
106149       return *this;
106150     }
106151 
setUseGopRemainingFramesVULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106152     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoEXT & setUseGopRemainingFrames( VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ ) VULKAN_HPP_NOEXCEPT
106153     {
106154       useGopRemainingFrames = useGopRemainingFrames_;
106155       return *this;
106156     }
106157 
setGopRemainingIVULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106158     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoEXT & setGopRemainingI( uint32_t gopRemainingI_ ) VULKAN_HPP_NOEXCEPT
106159     {
106160       gopRemainingI = gopRemainingI_;
106161       return *this;
106162     }
106163 
setGopRemainingPVULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106164     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoEXT & setGopRemainingP( uint32_t gopRemainingP_ ) VULKAN_HPP_NOEXCEPT
106165     {
106166       gopRemainingP = gopRemainingP_;
106167       return *this;
106168     }
106169 
setGopRemainingBVULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106170     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoEXT & setGopRemainingB( uint32_t gopRemainingB_ ) VULKAN_HPP_NOEXCEPT
106171     {
106172       gopRemainingB = gopRemainingB_;
106173       return *this;
106174     }
106175 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
106176 
106177 
operator VkVideoEncodeH264GopRemainingFrameInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106178     operator VkVideoEncodeH264GopRemainingFrameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
106179     {
106180       return *reinterpret_cast<const VkVideoEncodeH264GopRemainingFrameInfoEXT*>( this );
106181     }
106182 
operator VkVideoEncodeH264GopRemainingFrameInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106183     operator VkVideoEncodeH264GopRemainingFrameInfoEXT &() VULKAN_HPP_NOEXCEPT
106184     {
106185       return *reinterpret_cast<VkVideoEncodeH264GopRemainingFrameInfoEXT*>( this );
106186     }
106187 
106188 #if defined( VULKAN_HPP_USE_REFLECT )
106189 #if 14 <= VULKAN_HPP_CPP_VERSION
106190     auto
106191 #else
106192     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, uint32_t const &, uint32_t const &>
106193 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106194       reflect() const VULKAN_HPP_NOEXCEPT
106195     {
106196       return std::tie( sType, pNext, useGopRemainingFrames, gopRemainingI, gopRemainingP, gopRemainingB );
106197     }
106198 #endif
106199 
106200 
106201 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
106202 auto operator<=>( VideoEncodeH264GopRemainingFrameInfoEXT const & ) const = default;
106203 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106204     bool operator==( VideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106205     {
106206 #if defined( VULKAN_HPP_USE_REFLECT )
106207       return this->reflect() == rhs.reflect();
106208 #else
106209       return ( sType == rhs.sType )
106210           && ( pNext == rhs.pNext )
106211           && ( useGopRemainingFrames == rhs.useGopRemainingFrames )
106212           && ( gopRemainingI == rhs.gopRemainingI )
106213           && ( gopRemainingP == rhs.gopRemainingP )
106214           && ( gopRemainingB == rhs.gopRemainingB );
106215 #endif
106216     }
106217 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT106218     bool operator!=( VideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106219     {
106220       return !operator==( rhs );
106221     }
106222 #endif
106223 
106224     public:
106225     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264GopRemainingFrameInfoEXT;
106226     const void * pNext = {};
106227     VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames = {};
106228     uint32_t gopRemainingI = {};
106229     uint32_t gopRemainingP = {};
106230     uint32_t gopRemainingB = {};
106231 
106232   };
106233 
106234   template <>
106235   struct CppType<StructureType, StructureType::eVideoEncodeH264GopRemainingFrameInfoEXT>
106236   {
106237     using Type = VideoEncodeH264GopRemainingFrameInfoEXT;
106238   };
106239 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
106240 
106241 #if defined( VK_ENABLE_BETA_EXTENSIONS )
106242   struct VideoEncodeH264NaluSliceInfoEXT
106243   {
106244     using NativeType = VkVideoEncodeH264NaluSliceInfoEXT;
106245 
106246     static const bool allowDuplicate = false;
106247     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264NaluSliceInfoEXT;
106248 
106249 
106250 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264NaluSliceInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106251 VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoEXT(int32_t constantQp_ = {}, const StdVideoEncodeH264SliceHeader * pStdSliceHeader_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
106252     : pNext( pNext_ ), constantQp( constantQp_ ), pStdSliceHeader( pStdSliceHeader_ )
106253     {}
106254 
106255     VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoEXT( VideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106256 
VideoEncodeH264NaluSliceInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106257     VideoEncodeH264NaluSliceInfoEXT( VkVideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106258       : VideoEncodeH264NaluSliceInfoEXT( *reinterpret_cast<VideoEncodeH264NaluSliceInfoEXT const *>( &rhs ) )
106259     {}
106260 
106261 
106262     VideoEncodeH264NaluSliceInfoEXT & operator=( VideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106263 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
106264 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106265     VideoEncodeH264NaluSliceInfoEXT & operator=( VkVideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106266     {
106267       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT const *>( &rhs );
106268       return *this;
106269     }
106270 
106271 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106272     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
106273     {
106274       pNext = pNext_;
106275       return *this;
106276     }
106277 
setConstantQpVULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106278     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setConstantQp( int32_t constantQp_ ) VULKAN_HPP_NOEXCEPT
106279     {
106280       constantQp = constantQp_;
106281       return *this;
106282     }
106283 
setPStdSliceHeaderVULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106284     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setPStdSliceHeader( const StdVideoEncodeH264SliceHeader * pStdSliceHeader_ ) VULKAN_HPP_NOEXCEPT
106285     {
106286       pStdSliceHeader = pStdSliceHeader_;
106287       return *this;
106288     }
106289 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
106290 
106291 
operator VkVideoEncodeH264NaluSliceInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106292     operator VkVideoEncodeH264NaluSliceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
106293     {
106294       return *reinterpret_cast<const VkVideoEncodeH264NaluSliceInfoEXT*>( this );
106295     }
106296 
operator VkVideoEncodeH264NaluSliceInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106297     operator VkVideoEncodeH264NaluSliceInfoEXT &() VULKAN_HPP_NOEXCEPT
106298     {
106299       return *reinterpret_cast<VkVideoEncodeH264NaluSliceInfoEXT*>( this );
106300     }
106301 
106302 #if defined( VULKAN_HPP_USE_REFLECT )
106303 #if 14 <= VULKAN_HPP_CPP_VERSION
106304     auto
106305 #else
106306     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int32_t const &, const StdVideoEncodeH264SliceHeader * const &>
106307 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106308       reflect() const VULKAN_HPP_NOEXCEPT
106309     {
106310       return std::tie( sType, pNext, constantQp, pStdSliceHeader );
106311     }
106312 #endif
106313 
106314 
106315 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
106316 auto operator<=>( VideoEncodeH264NaluSliceInfoEXT const & ) const = default;
106317 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106318     bool operator==( VideoEncodeH264NaluSliceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106319     {
106320 #if defined( VULKAN_HPP_USE_REFLECT )
106321       return this->reflect() == rhs.reflect();
106322 #else
106323       return ( sType == rhs.sType )
106324           && ( pNext == rhs.pNext )
106325           && ( constantQp == rhs.constantQp )
106326           && ( pStdSliceHeader == rhs.pStdSliceHeader );
106327 #endif
106328     }
106329 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT106330     bool operator!=( VideoEncodeH264NaluSliceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106331     {
106332       return !operator==( rhs );
106333     }
106334 #endif
106335 
106336     public:
106337     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264NaluSliceInfoEXT;
106338     const void * pNext = {};
106339     int32_t constantQp = {};
106340     const StdVideoEncodeH264SliceHeader * pStdSliceHeader = {};
106341 
106342   };
106343 
106344   template <>
106345   struct CppType<StructureType, StructureType::eVideoEncodeH264NaluSliceInfoEXT>
106346   {
106347     using Type = VideoEncodeH264NaluSliceInfoEXT;
106348   };
106349 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
106350 
106351 #if defined( VK_ENABLE_BETA_EXTENSIONS )
106352   struct VideoEncodeH264PictureInfoEXT
106353   {
106354     using NativeType = VkVideoEncodeH264PictureInfoEXT;
106355 
106356     static const bool allowDuplicate = false;
106357     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264PictureInfoEXT;
106358 
106359 
106360 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264PictureInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106361 VULKAN_HPP_CONSTEXPR VideoEncodeH264PictureInfoEXT(uint32_t naluSliceEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * pNaluSliceEntries_ = {}, const StdVideoEncodeH264PictureInfo * pStdPictureInfo_ = {}, VULKAN_HPP_NAMESPACE::Bool32 generatePrefixNalu_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
106362     : pNext( pNext_ ), naluSliceEntryCount( naluSliceEntryCount_ ), pNaluSliceEntries( pNaluSliceEntries_ ), pStdPictureInfo( pStdPictureInfo_ ), generatePrefixNalu( generatePrefixNalu_ )
106363     {}
106364 
106365     VULKAN_HPP_CONSTEXPR VideoEncodeH264PictureInfoEXT( VideoEncodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106366 
VideoEncodeH264PictureInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106367     VideoEncodeH264PictureInfoEXT( VkVideoEncodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106368       : VideoEncodeH264PictureInfoEXT( *reinterpret_cast<VideoEncodeH264PictureInfoEXT const *>( &rhs ) )
106369     {}
106370 
106371 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH264PictureInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106372     VideoEncodeH264PictureInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT> const & naluSliceEntries_, const StdVideoEncodeH264PictureInfo * pStdPictureInfo_ = {}, VULKAN_HPP_NAMESPACE::Bool32 generatePrefixNalu_ = {}, const void * pNext_ = nullptr )
106373     : pNext( pNext_ ), naluSliceEntryCount( static_cast<uint32_t>( naluSliceEntries_.size() ) ), pNaluSliceEntries( naluSliceEntries_.data() ), pStdPictureInfo( pStdPictureInfo_ ), generatePrefixNalu( generatePrefixNalu_ )
106374     {}
106375 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
106376 
106377 
106378     VideoEncodeH264PictureInfoEXT & operator=( VideoEncodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106379 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
106380 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106381     VideoEncodeH264PictureInfoEXT & operator=( VkVideoEncodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106382     {
106383       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT const *>( &rhs );
106384       return *this;
106385     }
106386 
106387 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106388     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
106389     {
106390       pNext = pNext_;
106391       return *this;
106392     }
106393 
setNaluSliceEntryCountVULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106394     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoEXT & setNaluSliceEntryCount( uint32_t naluSliceEntryCount_ ) VULKAN_HPP_NOEXCEPT
106395     {
106396       naluSliceEntryCount = naluSliceEntryCount_;
106397       return *this;
106398     }
106399 
setPNaluSliceEntriesVULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106400     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoEXT & setPNaluSliceEntries( const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * pNaluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
106401     {
106402       pNaluSliceEntries = pNaluSliceEntries_;
106403       return *this;
106404     }
106405 
106406 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setNaluSliceEntriesVULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106407     VideoEncodeH264PictureInfoEXT & setNaluSliceEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT> const & naluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
106408     {
106409       naluSliceEntryCount = static_cast<uint32_t>( naluSliceEntries_.size() );
106410       pNaluSliceEntries = naluSliceEntries_.data();
106411       return *this;
106412     }
106413 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
106414 
setPStdPictureInfoVULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106415     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoEXT & setPStdPictureInfo( const StdVideoEncodeH264PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
106416     {
106417       pStdPictureInfo = pStdPictureInfo_;
106418       return *this;
106419     }
106420 
setGeneratePrefixNaluVULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106421     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoEXT & setGeneratePrefixNalu( VULKAN_HPP_NAMESPACE::Bool32 generatePrefixNalu_ ) VULKAN_HPP_NOEXCEPT
106422     {
106423       generatePrefixNalu = generatePrefixNalu_;
106424       return *this;
106425     }
106426 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
106427 
106428 
operator VkVideoEncodeH264PictureInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106429     operator VkVideoEncodeH264PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
106430     {
106431       return *reinterpret_cast<const VkVideoEncodeH264PictureInfoEXT*>( this );
106432     }
106433 
operator VkVideoEncodeH264PictureInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106434     operator VkVideoEncodeH264PictureInfoEXT &() VULKAN_HPP_NOEXCEPT
106435     {
106436       return *reinterpret_cast<VkVideoEncodeH264PictureInfoEXT*>( this );
106437     }
106438 
106439 #if defined( VULKAN_HPP_USE_REFLECT )
106440 #if 14 <= VULKAN_HPP_CPP_VERSION
106441     auto
106442 #else
106443     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * const &, const StdVideoEncodeH264PictureInfo * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
106444 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106445       reflect() const VULKAN_HPP_NOEXCEPT
106446     {
106447       return std::tie( sType, pNext, naluSliceEntryCount, pNaluSliceEntries, pStdPictureInfo, generatePrefixNalu );
106448     }
106449 #endif
106450 
106451 
106452 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
106453 auto operator<=>( VideoEncodeH264PictureInfoEXT const & ) const = default;
106454 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106455     bool operator==( VideoEncodeH264PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106456     {
106457 #if defined( VULKAN_HPP_USE_REFLECT )
106458       return this->reflect() == rhs.reflect();
106459 #else
106460       return ( sType == rhs.sType )
106461           && ( pNext == rhs.pNext )
106462           && ( naluSliceEntryCount == rhs.naluSliceEntryCount )
106463           && ( pNaluSliceEntries == rhs.pNaluSliceEntries )
106464           && ( pStdPictureInfo == rhs.pStdPictureInfo )
106465           && ( generatePrefixNalu == rhs.generatePrefixNalu );
106466 #endif
106467     }
106468 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT106469     bool operator!=( VideoEncodeH264PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106470     {
106471       return !operator==( rhs );
106472     }
106473 #endif
106474 
106475     public:
106476     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264PictureInfoEXT;
106477     const void * pNext = {};
106478     uint32_t naluSliceEntryCount = {};
106479     const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * pNaluSliceEntries = {};
106480     const StdVideoEncodeH264PictureInfo * pStdPictureInfo = {};
106481     VULKAN_HPP_NAMESPACE::Bool32 generatePrefixNalu = {};
106482 
106483   };
106484 
106485   template <>
106486   struct CppType<StructureType, StructureType::eVideoEncodeH264PictureInfoEXT>
106487   {
106488     using Type = VideoEncodeH264PictureInfoEXT;
106489   };
106490 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
106491 
106492 #if defined( VK_ENABLE_BETA_EXTENSIONS )
106493   struct VideoEncodeH264ProfileInfoEXT
106494   {
106495     using NativeType = VkVideoEncodeH264ProfileInfoEXT;
106496 
106497     static const bool allowDuplicate = false;
106498     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264ProfileInfoEXT;
106499 
106500 
106501 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264ProfileInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106502 VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoEXT(StdVideoH264ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
106503     : pNext( pNext_ ), stdProfileIdc( stdProfileIdc_ )
106504     {}
106505 
106506     VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoEXT( VideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106507 
VideoEncodeH264ProfileInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106508     VideoEncodeH264ProfileInfoEXT( VkVideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106509       : VideoEncodeH264ProfileInfoEXT( *reinterpret_cast<VideoEncodeH264ProfileInfoEXT const *>( &rhs ) )
106510     {}
106511 
106512 
106513     VideoEncodeH264ProfileInfoEXT & operator=( VideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106514 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
106515 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106516     VideoEncodeH264ProfileInfoEXT & operator=( VkVideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106517     {
106518       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT const *>( &rhs );
106519       return *this;
106520     }
106521 
106522 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106523     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
106524     {
106525       pNext = pNext_;
106526       return *this;
106527     }
106528 
setStdProfileIdcVULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106529     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileInfoEXT & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
106530     {
106531       stdProfileIdc = stdProfileIdc_;
106532       return *this;
106533     }
106534 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
106535 
106536 
operator VkVideoEncodeH264ProfileInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106537     operator VkVideoEncodeH264ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
106538     {
106539       return *reinterpret_cast<const VkVideoEncodeH264ProfileInfoEXT*>( this );
106540     }
106541 
operator VkVideoEncodeH264ProfileInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106542     operator VkVideoEncodeH264ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
106543     {
106544       return *reinterpret_cast<VkVideoEncodeH264ProfileInfoEXT*>( this );
106545     }
106546 
106547 #if defined( VULKAN_HPP_USE_REFLECT )
106548 #if 14 <= VULKAN_HPP_CPP_VERSION
106549     auto
106550 #else
106551     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH264ProfileIdc const &>
106552 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106553       reflect() const VULKAN_HPP_NOEXCEPT
106554     {
106555       return std::tie( sType, pNext, stdProfileIdc );
106556     }
106557 #endif
106558 
106559 
106560 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106561     std::strong_ordering operator<=>( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106562     {
106563       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
106564       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
106565       if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ); cmp != 0 )
106566         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
106567 
106568       return std::strong_ordering::equivalent;
106569     }
106570 #endif
106571 
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106572     bool operator==( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106573     {
106574       return ( sType == rhs.sType )
106575           && ( pNext == rhs.pNext )
106576           && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 );
106577     }
106578 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT106579     bool operator!=( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106580     {
106581       return !operator==( rhs );
106582     }
106583 
106584     public:
106585     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264ProfileInfoEXT;
106586     const void * pNext = {};
106587     StdVideoH264ProfileIdc stdProfileIdc = {};
106588 
106589   };
106590 
106591   template <>
106592   struct CppType<StructureType, StructureType::eVideoEncodeH264ProfileInfoEXT>
106593   {
106594     using Type = VideoEncodeH264ProfileInfoEXT;
106595   };
106596 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
106597 
106598 #if defined( VK_ENABLE_BETA_EXTENSIONS )
106599   struct VideoEncodeH264QpEXT
106600   {
106601     using NativeType = VkVideoEncodeH264QpEXT;
106602 
106603 
106604 
106605 
106606 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264QpEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106607 VULKAN_HPP_CONSTEXPR VideoEncodeH264QpEXT(int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {}) VULKAN_HPP_NOEXCEPT
106608     : qpI( qpI_ ), qpP( qpP_ ), qpB( qpB_ )
106609     {}
106610 
106611     VULKAN_HPP_CONSTEXPR VideoEncodeH264QpEXT( VideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106612 
VideoEncodeH264QpEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106613     VideoEncodeH264QpEXT( VkVideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106614       : VideoEncodeH264QpEXT( *reinterpret_cast<VideoEncodeH264QpEXT const *>( &rhs ) )
106615     {}
106616 
106617 
106618     VideoEncodeH264QpEXT & operator=( VideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106619 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
106620 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106621     VideoEncodeH264QpEXT & operator=( VkVideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106622     {
106623       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const *>( &rhs );
106624       return *this;
106625     }
106626 
106627 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setQpIVULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106628     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
106629     {
106630       qpI = qpI_;
106631       return *this;
106632     }
106633 
setQpPVULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106634     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
106635     {
106636       qpP = qpP_;
106637       return *this;
106638     }
106639 
setQpBVULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106640     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
106641     {
106642       qpB = qpB_;
106643       return *this;
106644     }
106645 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
106646 
106647 
operator VkVideoEncodeH264QpEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106648     operator VkVideoEncodeH264QpEXT const &() const VULKAN_HPP_NOEXCEPT
106649     {
106650       return *reinterpret_cast<const VkVideoEncodeH264QpEXT*>( this );
106651     }
106652 
operator VkVideoEncodeH264QpEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106653     operator VkVideoEncodeH264QpEXT &() VULKAN_HPP_NOEXCEPT
106654     {
106655       return *reinterpret_cast<VkVideoEncodeH264QpEXT*>( this );
106656     }
106657 
106658 #if defined( VULKAN_HPP_USE_REFLECT )
106659 #if 14 <= VULKAN_HPP_CPP_VERSION
106660     auto
106661 #else
106662     std::tuple<int32_t const &, int32_t const &, int32_t const &>
106663 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106664       reflect() const VULKAN_HPP_NOEXCEPT
106665     {
106666       return std::tie( qpI, qpP, qpB );
106667     }
106668 #endif
106669 
106670 
106671 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
106672 auto operator<=>( VideoEncodeH264QpEXT const & ) const = default;
106673 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106674     bool operator==( VideoEncodeH264QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106675     {
106676 #if defined( VULKAN_HPP_USE_REFLECT )
106677       return this->reflect() == rhs.reflect();
106678 #else
106679       return ( qpI == rhs.qpI )
106680           && ( qpP == rhs.qpP )
106681           && ( qpB == rhs.qpB );
106682 #endif
106683     }
106684 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT106685     bool operator!=( VideoEncodeH264QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106686     {
106687       return !operator==( rhs );
106688     }
106689 #endif
106690 
106691     public:
106692     int32_t qpI = {};
106693     int32_t qpP = {};
106694     int32_t qpB = {};
106695 
106696   };
106697 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
106698 
106699 #if defined( VK_ENABLE_BETA_EXTENSIONS )
106700   struct VideoEncodeH264QualityLevelPropertiesEXT
106701   {
106702     using NativeType = VkVideoEncodeH264QualityLevelPropertiesEXT;
106703 
106704     static const bool allowDuplicate = false;
106705     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264QualityLevelPropertiesEXT;
106706 
106707 
106708 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264QualityLevelPropertiesEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesEXT106709 VULKAN_HPP_CONSTEXPR VideoEncodeH264QualityLevelPropertiesEXT(VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT preferredRateControlFlags_ = {}, uint32_t preferredGopFrameCount_ = {}, uint32_t preferredIdrPeriod_ = {}, uint32_t preferredConsecutiveBFrameCount_ = {}, uint32_t preferredTemporalLayerCount_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT preferredConstantQp_ = {}, uint32_t preferredMaxL0ReferenceCount_ = {}, uint32_t preferredMaxL1ReferenceCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 preferredStdEntropyCodingModeFlag_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
106710     : pNext( pNext_ ), preferredRateControlFlags( preferredRateControlFlags_ ), preferredGopFrameCount( preferredGopFrameCount_ ), preferredIdrPeriod( preferredIdrPeriod_ ), preferredConsecutiveBFrameCount( preferredConsecutiveBFrameCount_ ), preferredTemporalLayerCount( preferredTemporalLayerCount_ ), preferredConstantQp( preferredConstantQp_ ), preferredMaxL0ReferenceCount( preferredMaxL0ReferenceCount_ ), preferredMaxL1ReferenceCount( preferredMaxL1ReferenceCount_ ), preferredStdEntropyCodingModeFlag( preferredStdEntropyCodingModeFlag_ )
106711     {}
106712 
106713     VULKAN_HPP_CONSTEXPR VideoEncodeH264QualityLevelPropertiesEXT( VideoEncodeH264QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106714 
VideoEncodeH264QualityLevelPropertiesEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesEXT106715     VideoEncodeH264QualityLevelPropertiesEXT( VkVideoEncodeH264QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106716       : VideoEncodeH264QualityLevelPropertiesEXT( *reinterpret_cast<VideoEncodeH264QualityLevelPropertiesEXT const *>( &rhs ) )
106717     {}
106718 
106719 
106720     VideoEncodeH264QualityLevelPropertiesEXT & operator=( VideoEncodeH264QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106721 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
106722 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesEXT106723     VideoEncodeH264QualityLevelPropertiesEXT & operator=( VkVideoEncodeH264QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106724     {
106725       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesEXT const *>( &rhs );
106726       return *this;
106727     }
106728 
106729 
operator VkVideoEncodeH264QualityLevelPropertiesEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesEXT106730     operator VkVideoEncodeH264QualityLevelPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
106731     {
106732       return *reinterpret_cast<const VkVideoEncodeH264QualityLevelPropertiesEXT*>( this );
106733     }
106734 
operator VkVideoEncodeH264QualityLevelPropertiesEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesEXT106735     operator VkVideoEncodeH264QualityLevelPropertiesEXT &() VULKAN_HPP_NOEXCEPT
106736     {
106737       return *reinterpret_cast<VkVideoEncodeH264QualityLevelPropertiesEXT*>( this );
106738     }
106739 
106740 #if defined( VULKAN_HPP_USE_REFLECT )
106741 #if 14 <= VULKAN_HPP_CPP_VERSION
106742     auto
106743 #else
106744     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
106745 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesEXT106746       reflect() const VULKAN_HPP_NOEXCEPT
106747     {
106748       return std::tie( sType, pNext, preferredRateControlFlags, preferredGopFrameCount, preferredIdrPeriod, preferredConsecutiveBFrameCount, preferredTemporalLayerCount, preferredConstantQp, preferredMaxL0ReferenceCount, preferredMaxL1ReferenceCount, preferredStdEntropyCodingModeFlag );
106749     }
106750 #endif
106751 
106752 
106753 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
106754 auto operator<=>( VideoEncodeH264QualityLevelPropertiesEXT const & ) const = default;
106755 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesEXT106756     bool operator==( VideoEncodeH264QualityLevelPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106757     {
106758 #if defined( VULKAN_HPP_USE_REFLECT )
106759       return this->reflect() == rhs.reflect();
106760 #else
106761       return ( sType == rhs.sType )
106762           && ( pNext == rhs.pNext )
106763           && ( preferredRateControlFlags == rhs.preferredRateControlFlags )
106764           && ( preferredGopFrameCount == rhs.preferredGopFrameCount )
106765           && ( preferredIdrPeriod == rhs.preferredIdrPeriod )
106766           && ( preferredConsecutiveBFrameCount == rhs.preferredConsecutiveBFrameCount )
106767           && ( preferredTemporalLayerCount == rhs.preferredTemporalLayerCount )
106768           && ( preferredConstantQp == rhs.preferredConstantQp )
106769           && ( preferredMaxL0ReferenceCount == rhs.preferredMaxL0ReferenceCount )
106770           && ( preferredMaxL1ReferenceCount == rhs.preferredMaxL1ReferenceCount )
106771           && ( preferredStdEntropyCodingModeFlag == rhs.preferredStdEntropyCodingModeFlag );
106772 #endif
106773     }
106774 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesEXT106775     bool operator!=( VideoEncodeH264QualityLevelPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106776     {
106777       return !operator==( rhs );
106778     }
106779 #endif
106780 
106781     public:
106782     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264QualityLevelPropertiesEXT;
106783     void * pNext = {};
106784     VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT preferredRateControlFlags = {};
106785     uint32_t preferredGopFrameCount = {};
106786     uint32_t preferredIdrPeriod = {};
106787     uint32_t preferredConsecutiveBFrameCount = {};
106788     uint32_t preferredTemporalLayerCount = {};
106789     VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT preferredConstantQp = {};
106790     uint32_t preferredMaxL0ReferenceCount = {};
106791     uint32_t preferredMaxL1ReferenceCount = {};
106792     VULKAN_HPP_NAMESPACE::Bool32 preferredStdEntropyCodingModeFlag = {};
106793 
106794   };
106795 
106796   template <>
106797   struct CppType<StructureType, StructureType::eVideoEncodeH264QualityLevelPropertiesEXT>
106798   {
106799     using Type = VideoEncodeH264QualityLevelPropertiesEXT;
106800   };
106801 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
106802 
106803 #if defined( VK_ENABLE_BETA_EXTENSIONS )
106804   struct VideoEncodeH264RateControlInfoEXT
106805   {
106806     using NativeType = VkVideoEncodeH264RateControlInfoEXT;
106807 
106808     static const bool allowDuplicate = false;
106809     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264RateControlInfoEXT;
106810 
106811 
106812 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264RateControlInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106813 VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoEXT(VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT flags_ = {}, uint32_t gopFrameCount_ = {}, uint32_t idrPeriod_ = {}, uint32_t consecutiveBFrameCount_ = {}, uint32_t temporalLayerCount_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
106814     : pNext( pNext_ ), flags( flags_ ), gopFrameCount( gopFrameCount_ ), idrPeriod( idrPeriod_ ), consecutiveBFrameCount( consecutiveBFrameCount_ ), temporalLayerCount( temporalLayerCount_ )
106815     {}
106816 
106817     VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoEXT( VideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106818 
VideoEncodeH264RateControlInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106819     VideoEncodeH264RateControlInfoEXT( VkVideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106820       : VideoEncodeH264RateControlInfoEXT( *reinterpret_cast<VideoEncodeH264RateControlInfoEXT const *>( &rhs ) )
106821     {}
106822 
106823 
106824     VideoEncodeH264RateControlInfoEXT & operator=( VideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106825 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
106826 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106827     VideoEncodeH264RateControlInfoEXT & operator=( VkVideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106828     {
106829       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT const *>( &rhs );
106830       return *this;
106831     }
106832 
106833 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106834     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
106835     {
106836       pNext = pNext_;
106837       return *this;
106838     }
106839 
setFlagsVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106840     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
106841     {
106842       flags = flags_;
106843       return *this;
106844     }
106845 
setGopFrameCountVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106846     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
106847     {
106848       gopFrameCount = gopFrameCount_;
106849       return *this;
106850     }
106851 
setIdrPeriodVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106852     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
106853     {
106854       idrPeriod = idrPeriod_;
106855       return *this;
106856     }
106857 
setConsecutiveBFrameCountVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106858     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
106859     {
106860       consecutiveBFrameCount = consecutiveBFrameCount_;
106861       return *this;
106862     }
106863 
setTemporalLayerCountVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106864     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setTemporalLayerCount( uint32_t temporalLayerCount_ ) VULKAN_HPP_NOEXCEPT
106865     {
106866       temporalLayerCount = temporalLayerCount_;
106867       return *this;
106868     }
106869 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
106870 
106871 
operator VkVideoEncodeH264RateControlInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106872     operator VkVideoEncodeH264RateControlInfoEXT const &() const VULKAN_HPP_NOEXCEPT
106873     {
106874       return *reinterpret_cast<const VkVideoEncodeH264RateControlInfoEXT*>( this );
106875     }
106876 
operator VkVideoEncodeH264RateControlInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106877     operator VkVideoEncodeH264RateControlInfoEXT &() VULKAN_HPP_NOEXCEPT
106878     {
106879       return *reinterpret_cast<VkVideoEncodeH264RateControlInfoEXT*>( this );
106880     }
106881 
106882 #if defined( VULKAN_HPP_USE_REFLECT )
106883 #if 14 <= VULKAN_HPP_CPP_VERSION
106884     auto
106885 #else
106886     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
106887 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106888       reflect() const VULKAN_HPP_NOEXCEPT
106889     {
106890       return std::tie( sType, pNext, flags, gopFrameCount, idrPeriod, consecutiveBFrameCount, temporalLayerCount );
106891     }
106892 #endif
106893 
106894 
106895 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
106896 auto operator<=>( VideoEncodeH264RateControlInfoEXT const & ) const = default;
106897 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106898     bool operator==( VideoEncodeH264RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106899     {
106900 #if defined( VULKAN_HPP_USE_REFLECT )
106901       return this->reflect() == rhs.reflect();
106902 #else
106903       return ( sType == rhs.sType )
106904           && ( pNext == rhs.pNext )
106905           && ( flags == rhs.flags )
106906           && ( gopFrameCount == rhs.gopFrameCount )
106907           && ( idrPeriod == rhs.idrPeriod )
106908           && ( consecutiveBFrameCount == rhs.consecutiveBFrameCount )
106909           && ( temporalLayerCount == rhs.temporalLayerCount );
106910 #endif
106911     }
106912 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT106913     bool operator!=( VideoEncodeH264RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
106914     {
106915       return !operator==( rhs );
106916     }
106917 #endif
106918 
106919     public:
106920     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264RateControlInfoEXT;
106921     const void * pNext = {};
106922     VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT flags = {};
106923     uint32_t gopFrameCount = {};
106924     uint32_t idrPeriod = {};
106925     uint32_t consecutiveBFrameCount = {};
106926     uint32_t temporalLayerCount = {};
106927 
106928   };
106929 
106930   template <>
106931   struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlInfoEXT>
106932   {
106933     using Type = VideoEncodeH264RateControlInfoEXT;
106934   };
106935 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
106936 
106937 #if defined( VK_ENABLE_BETA_EXTENSIONS )
106938   struct VideoEncodeH264RateControlLayerInfoEXT
106939   {
106940     using NativeType = VkVideoEncodeH264RateControlLayerInfoEXT;
106941 
106942     static const bool allowDuplicate = false;
106943     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264RateControlLayerInfoEXT;
106944 
106945 
106946 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264RateControlLayerInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT106947 VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT minQp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT maxQp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT maxFrameSize_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
106948     : pNext( pNext_ ), useMinQp( useMinQp_ ), minQp( minQp_ ), useMaxQp( useMaxQp_ ), maxQp( maxQp_ ), useMaxFrameSize( useMaxFrameSize_ ), maxFrameSize( maxFrameSize_ )
106949     {}
106950 
106951     VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoEXT( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106952 
VideoEncodeH264RateControlLayerInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT106953     VideoEncodeH264RateControlLayerInfoEXT( VkVideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106954       : VideoEncodeH264RateControlLayerInfoEXT( *reinterpret_cast<VideoEncodeH264RateControlLayerInfoEXT const *>( &rhs ) )
106955     {}
106956 
106957 
106958     VideoEncodeH264RateControlLayerInfoEXT & operator=( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
106959 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
106960 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT106961     VideoEncodeH264RateControlLayerInfoEXT & operator=( VkVideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
106962     {
106963       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT const *>( &rhs );
106964       return *this;
106965     }
106966 
106967 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT106968     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
106969     {
106970       pNext = pNext_;
106971       return *this;
106972     }
106973 
setUseMinQpVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT106974     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
106975     {
106976       useMinQp = useMinQp_;
106977       return *this;
106978     }
106979 
setMinQpVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT106980     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & minQp_ ) VULKAN_HPP_NOEXCEPT
106981     {
106982       minQp = minQp_;
106983       return *this;
106984     }
106985 
setUseMaxQpVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT106986     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
106987     {
106988       useMaxQp = useMaxQp_;
106989       return *this;
106990     }
106991 
setMaxQpVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT106992     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & maxQp_ ) VULKAN_HPP_NOEXCEPT
106993     {
106994       maxQp = maxQp_;
106995       return *this;
106996     }
106997 
setUseMaxFrameSizeVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT106998     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
106999     {
107000       useMaxFrameSize = useMaxFrameSize_;
107001       return *this;
107002     }
107003 
setMaxFrameSizeVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT107004     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
107005     {
107006       maxFrameSize = maxFrameSize_;
107007       return *this;
107008     }
107009 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
107010 
107011 
operator VkVideoEncodeH264RateControlLayerInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT107012     operator VkVideoEncodeH264RateControlLayerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
107013     {
107014       return *reinterpret_cast<const VkVideoEncodeH264RateControlLayerInfoEXT*>( this );
107015     }
107016 
operator VkVideoEncodeH264RateControlLayerInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT107017     operator VkVideoEncodeH264RateControlLayerInfoEXT &() VULKAN_HPP_NOEXCEPT
107018     {
107019       return *reinterpret_cast<VkVideoEncodeH264RateControlLayerInfoEXT*>( this );
107020     }
107021 
107022 #if defined( VULKAN_HPP_USE_REFLECT )
107023 #if 14 <= VULKAN_HPP_CPP_VERSION
107024     auto
107025 #else
107026     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const &>
107027 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT107028       reflect() const VULKAN_HPP_NOEXCEPT
107029     {
107030       return std::tie( sType, pNext, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize );
107031     }
107032 #endif
107033 
107034 
107035 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
107036 auto operator<=>( VideoEncodeH264RateControlLayerInfoEXT const & ) const = default;
107037 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT107038     bool operator==( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107039     {
107040 #if defined( VULKAN_HPP_USE_REFLECT )
107041       return this->reflect() == rhs.reflect();
107042 #else
107043       return ( sType == rhs.sType )
107044           && ( pNext == rhs.pNext )
107045           && ( useMinQp == rhs.useMinQp )
107046           && ( minQp == rhs.minQp )
107047           && ( useMaxQp == rhs.useMaxQp )
107048           && ( maxQp == rhs.maxQp )
107049           && ( useMaxFrameSize == rhs.useMaxFrameSize )
107050           && ( maxFrameSize == rhs.maxFrameSize );
107051 #endif
107052     }
107053 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT107054     bool operator!=( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107055     {
107056       return !operator==( rhs );
107057     }
107058 #endif
107059 
107060     public:
107061     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264RateControlLayerInfoEXT;
107062     const void * pNext = {};
107063     VULKAN_HPP_NAMESPACE::Bool32 useMinQp = {};
107064     VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT minQp = {};
107065     VULKAN_HPP_NAMESPACE::Bool32 useMaxQp = {};
107066     VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT maxQp = {};
107067     VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize = {};
107068     VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT maxFrameSize = {};
107069 
107070   };
107071 
107072   template <>
107073   struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlLayerInfoEXT>
107074   {
107075     using Type = VideoEncodeH264RateControlLayerInfoEXT;
107076   };
107077 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
107078 
107079 #if defined( VK_ENABLE_BETA_EXTENSIONS )
107080   struct VideoEncodeH264SessionCreateInfoEXT
107081   {
107082     using NativeType = VkVideoEncodeH264SessionCreateInfoEXT;
107083 
107084     static const bool allowDuplicate = false;
107085     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionCreateInfoEXT;
107086 
107087 
107088 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264SessionCreateInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107089 VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ = {}, StdVideoH264LevelIdc maxLevelIdc_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
107090     : pNext( pNext_ ), useMaxLevelIdc( useMaxLevelIdc_ ), maxLevelIdc( maxLevelIdc_ )
107091     {}
107092 
107093     VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionCreateInfoEXT( VideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107094 
VideoEncodeH264SessionCreateInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107095     VideoEncodeH264SessionCreateInfoEXT( VkVideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107096       : VideoEncodeH264SessionCreateInfoEXT( *reinterpret_cast<VideoEncodeH264SessionCreateInfoEXT const *>( &rhs ) )
107097     {}
107098 
107099 
107100     VideoEncodeH264SessionCreateInfoEXT & operator=( VideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107101 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
107102 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107103     VideoEncodeH264SessionCreateInfoEXT & operator=( VkVideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107104     {
107105       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT const *>( &rhs );
107106       return *this;
107107     }
107108 
107109 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107110     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
107111     {
107112       pNext = pNext_;
107113       return *this;
107114     }
107115 
setUseMaxLevelIdcVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107116     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & setUseMaxLevelIdc( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
107117     {
107118       useMaxLevelIdc = useMaxLevelIdc_;
107119       return *this;
107120     }
107121 
setMaxLevelIdcVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107122     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & setMaxLevelIdc( StdVideoH264LevelIdc maxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
107123     {
107124       maxLevelIdc = maxLevelIdc_;
107125       return *this;
107126     }
107127 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
107128 
107129 
operator VkVideoEncodeH264SessionCreateInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107130     operator VkVideoEncodeH264SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
107131     {
107132       return *reinterpret_cast<const VkVideoEncodeH264SessionCreateInfoEXT*>( this );
107133     }
107134 
operator VkVideoEncodeH264SessionCreateInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107135     operator VkVideoEncodeH264SessionCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
107136     {
107137       return *reinterpret_cast<VkVideoEncodeH264SessionCreateInfoEXT*>( this );
107138     }
107139 
107140 #if defined( VULKAN_HPP_USE_REFLECT )
107141 #if 14 <= VULKAN_HPP_CPP_VERSION
107142     auto
107143 #else
107144     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, StdVideoH264LevelIdc const &>
107145 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107146       reflect() const VULKAN_HPP_NOEXCEPT
107147     {
107148       return std::tie( sType, pNext, useMaxLevelIdc, maxLevelIdc );
107149     }
107150 #endif
107151 
107152 
107153 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107154     std::strong_ordering operator<=>( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107155     {
107156       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
107157       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
107158       if ( auto cmp = useMaxLevelIdc <=> rhs.useMaxLevelIdc; cmp != 0 ) return cmp;
107159       if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ); cmp != 0 )
107160         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
107161 
107162       return std::strong_ordering::equivalent;
107163     }
107164 #endif
107165 
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107166     bool operator==( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107167     {
107168       return ( sType == rhs.sType )
107169           && ( pNext == rhs.pNext )
107170           && ( useMaxLevelIdc == rhs.useMaxLevelIdc )
107171           && ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ) == 0 );
107172     }
107173 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT107174     bool operator!=( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107175     {
107176       return !operator==( rhs );
107177     }
107178 
107179     public:
107180     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionCreateInfoEXT;
107181     const void * pNext = {};
107182     VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc = {};
107183     StdVideoH264LevelIdc maxLevelIdc = {};
107184 
107185   };
107186 
107187   template <>
107188   struct CppType<StructureType, StructureType::eVideoEncodeH264SessionCreateInfoEXT>
107189   {
107190     using Type = VideoEncodeH264SessionCreateInfoEXT;
107191   };
107192 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
107193 
107194 #if defined( VK_ENABLE_BETA_EXTENSIONS )
107195   struct VideoEncodeH264SessionParametersAddInfoEXT
107196   {
107197     using NativeType = VkVideoEncodeH264SessionParametersAddInfoEXT;
107198 
107199     static const bool allowDuplicate = false;
107200     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
107201 
107202 
107203 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264SessionParametersAddInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107204 VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT(uint32_t stdSPSCount_ = {}, const StdVideoH264SequenceParameterSet * pStdSPSs_ = {}, uint32_t stdPPSCount_ = {}, const StdVideoH264PictureParameterSet * pStdPPSs_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
107205     : pNext( pNext_ ), stdSPSCount( stdSPSCount_ ), pStdSPSs( pStdSPSs_ ), stdPPSCount( stdPPSCount_ ), pStdPPSs( pStdPPSs_ )
107206     {}
107207 
107208     VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107209 
VideoEncodeH264SessionParametersAddInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107210     VideoEncodeH264SessionParametersAddInfoEXT( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107211       : VideoEncodeH264SessionParametersAddInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs ) )
107212     {}
107213 
107214 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH264SessionParametersAddInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107215     VideoEncodeH264SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & stdPPSs_ = {}, const void * pNext_ = nullptr )
107216     : pNext( pNext_ ), stdSPSCount( static_cast<uint32_t>( stdSPSs_.size() ) ), pStdSPSs( stdSPSs_.data() ), stdPPSCount( static_cast<uint32_t>( stdPPSs_.size() ) ), pStdPPSs( stdPPSs_.data() )
107217     {}
107218 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
107219 
107220 
107221     VideoEncodeH264SessionParametersAddInfoEXT & operator=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107222 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
107223 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107224     VideoEncodeH264SessionParametersAddInfoEXT & operator=( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107225     {
107226       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs );
107227       return *this;
107228     }
107229 
107230 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107231     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
107232     {
107233       pNext = pNext_;
107234       return *this;
107235     }
107236 
setStdSPSCountVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107237     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
107238     {
107239       stdSPSCount = stdSPSCount_;
107240       return *this;
107241     }
107242 
setPStdSPSsVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107243     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPStdSPSs( const StdVideoH264SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
107244     {
107245       pStdSPSs = pStdSPSs_;
107246       return *this;
107247     }
107248 
107249 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStdSPSsVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107250     VideoEncodeH264SessionParametersAddInfoEXT & setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
107251     {
107252       stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
107253       pStdSPSs = stdSPSs_.data();
107254       return *this;
107255     }
107256 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
107257 
setStdPPSCountVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107258     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
107259     {
107260       stdPPSCount = stdPPSCount_;
107261       return *this;
107262     }
107263 
setPStdPPSsVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107264     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPStdPPSs( const StdVideoH264PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
107265     {
107266       pStdPPSs = pStdPPSs_;
107267       return *this;
107268     }
107269 
107270 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStdPPSsVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107271     VideoEncodeH264SessionParametersAddInfoEXT & setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
107272     {
107273       stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
107274       pStdPPSs = stdPPSs_.data();
107275       return *this;
107276     }
107277 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
107278 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
107279 
107280 
operator VkVideoEncodeH264SessionParametersAddInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107281     operator VkVideoEncodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
107282     {
107283       return *reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT*>( this );
107284     }
107285 
operator VkVideoEncodeH264SessionParametersAddInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107286     operator VkVideoEncodeH264SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
107287     {
107288       return *reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT*>( this );
107289     }
107290 
107291 #if defined( VULKAN_HPP_USE_REFLECT )
107292 #if 14 <= VULKAN_HPP_CPP_VERSION
107293     auto
107294 #else
107295     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const StdVideoH264SequenceParameterSet * const &, uint32_t const &, const StdVideoH264PictureParameterSet * const &>
107296 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107297       reflect() const VULKAN_HPP_NOEXCEPT
107298     {
107299       return std::tie( sType, pNext, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
107300     }
107301 #endif
107302 
107303 
107304 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
107305 auto operator<=>( VideoEncodeH264SessionParametersAddInfoEXT const & ) const = default;
107306 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107307     bool operator==( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107308     {
107309 #if defined( VULKAN_HPP_USE_REFLECT )
107310       return this->reflect() == rhs.reflect();
107311 #else
107312       return ( sType == rhs.sType )
107313           && ( pNext == rhs.pNext )
107314           && ( stdSPSCount == rhs.stdSPSCount )
107315           && ( pStdSPSs == rhs.pStdSPSs )
107316           && ( stdPPSCount == rhs.stdPPSCount )
107317           && ( pStdPPSs == rhs.pStdPPSs );
107318 #endif
107319     }
107320 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT107321     bool operator!=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107322     {
107323       return !operator==( rhs );
107324     }
107325 #endif
107326 
107327     public:
107328     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
107329     const void * pNext = {};
107330     uint32_t stdSPSCount = {};
107331     const StdVideoH264SequenceParameterSet * pStdSPSs = {};
107332     uint32_t stdPPSCount = {};
107333     const StdVideoH264PictureParameterSet * pStdPPSs = {};
107334 
107335   };
107336 
107337   template <>
107338   struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersAddInfoEXT>
107339   {
107340     using Type = VideoEncodeH264SessionParametersAddInfoEXT;
107341   };
107342 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
107343 
107344 #if defined( VK_ENABLE_BETA_EXTENSIONS )
107345   struct VideoEncodeH264SessionParametersCreateInfoEXT
107346   {
107347     using NativeType = VkVideoEncodeH264SessionParametersCreateInfoEXT;
107348 
107349     static const bool allowDuplicate = false;
107350     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT;
107351 
107352 
107353 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264SessionParametersCreateInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107354 VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersCreateInfoEXT(uint32_t maxStdSPSCount_ = {}, uint32_t maxStdPPSCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
107355     : pNext( pNext_ ), maxStdSPSCount( maxStdSPSCount_ ), maxStdPPSCount( maxStdPPSCount_ ), pParametersAddInfo( pParametersAddInfo_ )
107356     {}
107357 
107358     VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersCreateInfoEXT( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107359 
VideoEncodeH264SessionParametersCreateInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107360     VideoEncodeH264SessionParametersCreateInfoEXT( VkVideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107361       : VideoEncodeH264SessionParametersCreateInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersCreateInfoEXT const *>( &rhs ) )
107362     {}
107363 
107364 
107365     VideoEncodeH264SessionParametersCreateInfoEXT & operator=( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107366 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
107367 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107368     VideoEncodeH264SessionParametersCreateInfoEXT & operator=( VkVideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107369     {
107370       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT const *>( &rhs );
107371       return *this;
107372     }
107373 
107374 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107375     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
107376     {
107377       pNext = pNext_;
107378       return *this;
107379     }
107380 
setMaxStdSPSCountVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107381     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
107382     {
107383       maxStdSPSCount = maxStdSPSCount_;
107384       return *this;
107385     }
107386 
setMaxStdPPSCountVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107387     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
107388     {
107389       maxStdPPSCount = maxStdPPSCount_;
107390       return *this;
107391     }
107392 
setPParametersAddInfoVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107393     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
107394     {
107395       pParametersAddInfo = pParametersAddInfo_;
107396       return *this;
107397     }
107398 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
107399 
107400 
operator VkVideoEncodeH264SessionParametersCreateInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107401     operator VkVideoEncodeH264SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
107402     {
107403       return *reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT*>( this );
107404     }
107405 
operator VkVideoEncodeH264SessionParametersCreateInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107406     operator VkVideoEncodeH264SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
107407     {
107408       return *reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT*>( this );
107409     }
107410 
107411 #if defined( VULKAN_HPP_USE_REFLECT )
107412 #if 14 <= VULKAN_HPP_CPP_VERSION
107413     auto
107414 #else
107415     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * const &>
107416 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107417       reflect() const VULKAN_HPP_NOEXCEPT
107418     {
107419       return std::tie( sType, pNext, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
107420     }
107421 #endif
107422 
107423 
107424 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
107425 auto operator<=>( VideoEncodeH264SessionParametersCreateInfoEXT const & ) const = default;
107426 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107427     bool operator==( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107428     {
107429 #if defined( VULKAN_HPP_USE_REFLECT )
107430       return this->reflect() == rhs.reflect();
107431 #else
107432       return ( sType == rhs.sType )
107433           && ( pNext == rhs.pNext )
107434           && ( maxStdSPSCount == rhs.maxStdSPSCount )
107435           && ( maxStdPPSCount == rhs.maxStdPPSCount )
107436           && ( pParametersAddInfo == rhs.pParametersAddInfo );
107437 #endif
107438     }
107439 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT107440     bool operator!=( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107441     {
107442       return !operator==( rhs );
107443     }
107444 #endif
107445 
107446     public:
107447     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT;
107448     const void * pNext = {};
107449     uint32_t maxStdSPSCount = {};
107450     uint32_t maxStdPPSCount = {};
107451     const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo = {};
107452 
107453   };
107454 
107455   template <>
107456   struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT>
107457   {
107458     using Type = VideoEncodeH264SessionParametersCreateInfoEXT;
107459   };
107460 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
107461 
107462 #if defined( VK_ENABLE_BETA_EXTENSIONS )
107463   struct VideoEncodeH264SessionParametersFeedbackInfoEXT
107464   {
107465     using NativeType = VkVideoEncodeH264SessionParametersFeedbackInfoEXT;
107466 
107467     static const bool allowDuplicate = false;
107468     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionParametersFeedbackInfoEXT;
107469 
107470 
107471 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264SessionParametersFeedbackInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoEXT107472 VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersFeedbackInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides_ = {}, VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
107473     : pNext( pNext_ ), hasStdSPSOverrides( hasStdSPSOverrides_ ), hasStdPPSOverrides( hasStdPPSOverrides_ )
107474     {}
107475 
107476     VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersFeedbackInfoEXT( VideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107477 
VideoEncodeH264SessionParametersFeedbackInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoEXT107478     VideoEncodeH264SessionParametersFeedbackInfoEXT( VkVideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107479       : VideoEncodeH264SessionParametersFeedbackInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersFeedbackInfoEXT const *>( &rhs ) )
107480     {}
107481 
107482 
107483     VideoEncodeH264SessionParametersFeedbackInfoEXT & operator=( VideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107484 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
107485 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoEXT107486     VideoEncodeH264SessionParametersFeedbackInfoEXT & operator=( VkVideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107487     {
107488       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoEXT const *>( &rhs );
107489       return *this;
107490     }
107491 
107492 
operator VkVideoEncodeH264SessionParametersFeedbackInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoEXT107493     operator VkVideoEncodeH264SessionParametersFeedbackInfoEXT const &() const VULKAN_HPP_NOEXCEPT
107494     {
107495       return *reinterpret_cast<const VkVideoEncodeH264SessionParametersFeedbackInfoEXT*>( this );
107496     }
107497 
operator VkVideoEncodeH264SessionParametersFeedbackInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoEXT107498     operator VkVideoEncodeH264SessionParametersFeedbackInfoEXT &() VULKAN_HPP_NOEXCEPT
107499     {
107500       return *reinterpret_cast<VkVideoEncodeH264SessionParametersFeedbackInfoEXT*>( this );
107501     }
107502 
107503 #if defined( VULKAN_HPP_USE_REFLECT )
107504 #if 14 <= VULKAN_HPP_CPP_VERSION
107505     auto
107506 #else
107507     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
107508 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoEXT107509       reflect() const VULKAN_HPP_NOEXCEPT
107510     {
107511       return std::tie( sType, pNext, hasStdSPSOverrides, hasStdPPSOverrides );
107512     }
107513 #endif
107514 
107515 
107516 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
107517 auto operator<=>( VideoEncodeH264SessionParametersFeedbackInfoEXT const & ) const = default;
107518 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoEXT107519     bool operator==( VideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107520     {
107521 #if defined( VULKAN_HPP_USE_REFLECT )
107522       return this->reflect() == rhs.reflect();
107523 #else
107524       return ( sType == rhs.sType )
107525           && ( pNext == rhs.pNext )
107526           && ( hasStdSPSOverrides == rhs.hasStdSPSOverrides )
107527           && ( hasStdPPSOverrides == rhs.hasStdPPSOverrides );
107528 #endif
107529     }
107530 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoEXT107531     bool operator!=( VideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107532     {
107533       return !operator==( rhs );
107534     }
107535 #endif
107536 
107537     public:
107538     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersFeedbackInfoEXT;
107539     void * pNext = {};
107540     VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides = {};
107541     VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides = {};
107542 
107543   };
107544 
107545   template <>
107546   struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersFeedbackInfoEXT>
107547   {
107548     using Type = VideoEncodeH264SessionParametersFeedbackInfoEXT;
107549   };
107550 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
107551 
107552 #if defined( VK_ENABLE_BETA_EXTENSIONS )
107553   struct VideoEncodeH264SessionParametersGetInfoEXT
107554   {
107555     using NativeType = VkVideoEncodeH264SessionParametersGetInfoEXT;
107556 
107557     static const bool allowDuplicate = false;
107558     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionParametersGetInfoEXT;
107559 
107560 
107561 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH264SessionParametersGetInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107562 VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersGetInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ = {}, VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ = {}, uint32_t stdSPSId_ = {}, uint32_t stdPPSId_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
107563     : pNext( pNext_ ), writeStdSPS( writeStdSPS_ ), writeStdPPS( writeStdPPS_ ), stdSPSId( stdSPSId_ ), stdPPSId( stdPPSId_ )
107564     {}
107565 
107566     VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersGetInfoEXT( VideoEncodeH264SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107567 
VideoEncodeH264SessionParametersGetInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107568     VideoEncodeH264SessionParametersGetInfoEXT( VkVideoEncodeH264SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107569       : VideoEncodeH264SessionParametersGetInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersGetInfoEXT const *>( &rhs ) )
107570     {}
107571 
107572 
107573     VideoEncodeH264SessionParametersGetInfoEXT & operator=( VideoEncodeH264SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107574 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
107575 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107576     VideoEncodeH264SessionParametersGetInfoEXT & operator=( VkVideoEncodeH264SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107577     {
107578       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT const *>( &rhs );
107579       return *this;
107580     }
107581 
107582 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107583     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
107584     {
107585       pNext = pNext_;
107586       return *this;
107587     }
107588 
setWriteStdSPSVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107589     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoEXT & setWriteStdSPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ ) VULKAN_HPP_NOEXCEPT
107590     {
107591       writeStdSPS = writeStdSPS_;
107592       return *this;
107593     }
107594 
setWriteStdPPSVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107595     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoEXT & setWriteStdPPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ ) VULKAN_HPP_NOEXCEPT
107596     {
107597       writeStdPPS = writeStdPPS_;
107598       return *this;
107599     }
107600 
setStdSPSIdVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107601     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoEXT & setStdSPSId( uint32_t stdSPSId_ ) VULKAN_HPP_NOEXCEPT
107602     {
107603       stdSPSId = stdSPSId_;
107604       return *this;
107605     }
107606 
setStdPPSIdVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107607     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoEXT & setStdPPSId( uint32_t stdPPSId_ ) VULKAN_HPP_NOEXCEPT
107608     {
107609       stdPPSId = stdPPSId_;
107610       return *this;
107611     }
107612 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
107613 
107614 
operator VkVideoEncodeH264SessionParametersGetInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107615     operator VkVideoEncodeH264SessionParametersGetInfoEXT const &() const VULKAN_HPP_NOEXCEPT
107616     {
107617       return *reinterpret_cast<const VkVideoEncodeH264SessionParametersGetInfoEXT*>( this );
107618     }
107619 
operator VkVideoEncodeH264SessionParametersGetInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107620     operator VkVideoEncodeH264SessionParametersGetInfoEXT &() VULKAN_HPP_NOEXCEPT
107621     {
107622       return *reinterpret_cast<VkVideoEncodeH264SessionParametersGetInfoEXT*>( this );
107623     }
107624 
107625 #if defined( VULKAN_HPP_USE_REFLECT )
107626 #if 14 <= VULKAN_HPP_CPP_VERSION
107627     auto
107628 #else
107629     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, uint32_t const &>
107630 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107631       reflect() const VULKAN_HPP_NOEXCEPT
107632     {
107633       return std::tie( sType, pNext, writeStdSPS, writeStdPPS, stdSPSId, stdPPSId );
107634     }
107635 #endif
107636 
107637 
107638 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
107639 auto operator<=>( VideoEncodeH264SessionParametersGetInfoEXT const & ) const = default;
107640 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107641     bool operator==( VideoEncodeH264SessionParametersGetInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107642     {
107643 #if defined( VULKAN_HPP_USE_REFLECT )
107644       return this->reflect() == rhs.reflect();
107645 #else
107646       return ( sType == rhs.sType )
107647           && ( pNext == rhs.pNext )
107648           && ( writeStdSPS == rhs.writeStdSPS )
107649           && ( writeStdPPS == rhs.writeStdPPS )
107650           && ( stdSPSId == rhs.stdSPSId )
107651           && ( stdPPSId == rhs.stdPPSId );
107652 #endif
107653     }
107654 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT107655     bool operator!=( VideoEncodeH264SessionParametersGetInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107656     {
107657       return !operator==( rhs );
107658     }
107659 #endif
107660 
107661     public:
107662     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersGetInfoEXT;
107663     const void * pNext = {};
107664     VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS = {};
107665     VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS = {};
107666     uint32_t stdSPSId = {};
107667     uint32_t stdPPSId = {};
107668 
107669   };
107670 
107671   template <>
107672   struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersGetInfoEXT>
107673   {
107674     using Type = VideoEncodeH264SessionParametersGetInfoEXT;
107675   };
107676 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
107677 
107678 #if defined( VK_ENABLE_BETA_EXTENSIONS )
107679   struct VideoEncodeH265CapabilitiesEXT
107680   {
107681     using NativeType = VkVideoEncodeH265CapabilitiesEXT;
107682 
107683     static const bool allowDuplicate = false;
107684     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265CapabilitiesEXT;
107685 
107686 
107687 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265CapabilitiesEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT107688 VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilitiesEXT(VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT flags_ = {}, StdVideoH265LevelIdc maxLevelIdc_ = {}, uint32_t maxSliceSegmentCount_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxTiles_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT ctbSizes_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes_ = {}, uint32_t maxPPictureL0ReferenceCount_ = {}, uint32_t maxBPictureL0ReferenceCount_ = {}, uint32_t maxL1ReferenceCount_ = {}, uint32_t maxSubLayerCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 expectDyadicTemporalSubLayerPattern_ = {}, int32_t minQp_ = {}, int32_t maxQp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 prefersGopRemainingFrames_ = {}, VULKAN_HPP_NAMESPACE::Bool32 requiresGopRemainingFrames_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsEXT stdSyntaxFlags_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
107689     : pNext( pNext_ ), flags( flags_ ), maxLevelIdc( maxLevelIdc_ ), maxSliceSegmentCount( maxSliceSegmentCount_ ), maxTiles( maxTiles_ ), ctbSizes( ctbSizes_ ), transformBlockSizes( transformBlockSizes_ ), maxPPictureL0ReferenceCount( maxPPictureL0ReferenceCount_ ), maxBPictureL0ReferenceCount( maxBPictureL0ReferenceCount_ ), maxL1ReferenceCount( maxL1ReferenceCount_ ), maxSubLayerCount( maxSubLayerCount_ ), expectDyadicTemporalSubLayerPattern( expectDyadicTemporalSubLayerPattern_ ), minQp( minQp_ ), maxQp( maxQp_ ), prefersGopRemainingFrames( prefersGopRemainingFrames_ ), requiresGopRemainingFrames( requiresGopRemainingFrames_ ), stdSyntaxFlags( stdSyntaxFlags_ )
107690     {}
107691 
107692     VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilitiesEXT( VideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107693 
VideoEncodeH265CapabilitiesEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT107694     VideoEncodeH265CapabilitiesEXT( VkVideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107695       : VideoEncodeH265CapabilitiesEXT( *reinterpret_cast<VideoEncodeH265CapabilitiesEXT const *>( &rhs ) )
107696     {}
107697 
107698 
107699     VideoEncodeH265CapabilitiesEXT & operator=( VideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107700 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
107701 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT107702     VideoEncodeH265CapabilitiesEXT & operator=( VkVideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107703     {
107704       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT const *>( &rhs );
107705       return *this;
107706     }
107707 
107708 
operator VkVideoEncodeH265CapabilitiesEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT107709     operator VkVideoEncodeH265CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
107710     {
107711       return *reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT*>( this );
107712     }
107713 
operator VkVideoEncodeH265CapabilitiesEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT107714     operator VkVideoEncodeH265CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
107715     {
107716       return *reinterpret_cast<VkVideoEncodeH265CapabilitiesEXT*>( this );
107717     }
107718 
107719 #if defined( VULKAN_HPP_USE_REFLECT )
107720 #if 14 <= VULKAN_HPP_CPP_VERSION
107721     auto
107722 #else
107723     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT const &, StdVideoH265LevelIdc const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT const &, VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, int32_t const &, int32_t const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsEXT const &>
107724 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT107725       reflect() const VULKAN_HPP_NOEXCEPT
107726     {
107727       return std::tie( sType, pNext, flags, maxLevelIdc, maxSliceSegmentCount, maxTiles, ctbSizes, transformBlockSizes, maxPPictureL0ReferenceCount, maxBPictureL0ReferenceCount, maxL1ReferenceCount, maxSubLayerCount, expectDyadicTemporalSubLayerPattern, minQp, maxQp, prefersGopRemainingFrames, requiresGopRemainingFrames, stdSyntaxFlags );
107728     }
107729 #endif
107730 
107731 
107732 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT107733     std::strong_ordering operator<=>( VideoEncodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107734     {
107735       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
107736       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
107737       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
107738       if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ); cmp != 0 )
107739         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
107740       if ( auto cmp = maxSliceSegmentCount <=> rhs.maxSliceSegmentCount; cmp != 0 ) return cmp;
107741       if ( auto cmp = maxTiles <=> rhs.maxTiles; cmp != 0 ) return cmp;
107742       if ( auto cmp = ctbSizes <=> rhs.ctbSizes; cmp != 0 ) return cmp;
107743       if ( auto cmp = transformBlockSizes <=> rhs.transformBlockSizes; cmp != 0 ) return cmp;
107744       if ( auto cmp = maxPPictureL0ReferenceCount <=> rhs.maxPPictureL0ReferenceCount; cmp != 0 ) return cmp;
107745       if ( auto cmp = maxBPictureL0ReferenceCount <=> rhs.maxBPictureL0ReferenceCount; cmp != 0 ) return cmp;
107746       if ( auto cmp = maxL1ReferenceCount <=> rhs.maxL1ReferenceCount; cmp != 0 ) return cmp;
107747       if ( auto cmp = maxSubLayerCount <=> rhs.maxSubLayerCount; cmp != 0 ) return cmp;
107748       if ( auto cmp = expectDyadicTemporalSubLayerPattern <=> rhs.expectDyadicTemporalSubLayerPattern; cmp != 0 ) return cmp;
107749       if ( auto cmp = minQp <=> rhs.minQp; cmp != 0 ) return cmp;
107750       if ( auto cmp = maxQp <=> rhs.maxQp; cmp != 0 ) return cmp;
107751       if ( auto cmp = prefersGopRemainingFrames <=> rhs.prefersGopRemainingFrames; cmp != 0 ) return cmp;
107752       if ( auto cmp = requiresGopRemainingFrames <=> rhs.requiresGopRemainingFrames; cmp != 0 ) return cmp;
107753       if ( auto cmp = stdSyntaxFlags <=> rhs.stdSyntaxFlags; cmp != 0 ) return cmp;
107754 
107755       return std::strong_ordering::equivalent;
107756     }
107757 #endif
107758 
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT107759     bool operator==( VideoEncodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107760     {
107761       return ( sType == rhs.sType )
107762           && ( pNext == rhs.pNext )
107763           && ( flags == rhs.flags )
107764           && ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ) == 0 )
107765           && ( maxSliceSegmentCount == rhs.maxSliceSegmentCount )
107766           && ( maxTiles == rhs.maxTiles )
107767           && ( ctbSizes == rhs.ctbSizes )
107768           && ( transformBlockSizes == rhs.transformBlockSizes )
107769           && ( maxPPictureL0ReferenceCount == rhs.maxPPictureL0ReferenceCount )
107770           && ( maxBPictureL0ReferenceCount == rhs.maxBPictureL0ReferenceCount )
107771           && ( maxL1ReferenceCount == rhs.maxL1ReferenceCount )
107772           && ( maxSubLayerCount == rhs.maxSubLayerCount )
107773           && ( expectDyadicTemporalSubLayerPattern == rhs.expectDyadicTemporalSubLayerPattern )
107774           && ( minQp == rhs.minQp )
107775           && ( maxQp == rhs.maxQp )
107776           && ( prefersGopRemainingFrames == rhs.prefersGopRemainingFrames )
107777           && ( requiresGopRemainingFrames == rhs.requiresGopRemainingFrames )
107778           && ( stdSyntaxFlags == rhs.stdSyntaxFlags );
107779     }
107780 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT107781     bool operator!=( VideoEncodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107782     {
107783       return !operator==( rhs );
107784     }
107785 
107786     public:
107787     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265CapabilitiesEXT;
107788     void * pNext = {};
107789     VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT flags = {};
107790     StdVideoH265LevelIdc maxLevelIdc = {};
107791     uint32_t maxSliceSegmentCount = {};
107792     VULKAN_HPP_NAMESPACE::Extent2D maxTiles = {};
107793     VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT ctbSizes = {};
107794     VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes = {};
107795     uint32_t maxPPictureL0ReferenceCount = {};
107796     uint32_t maxBPictureL0ReferenceCount = {};
107797     uint32_t maxL1ReferenceCount = {};
107798     uint32_t maxSubLayerCount = {};
107799     VULKAN_HPP_NAMESPACE::Bool32 expectDyadicTemporalSubLayerPattern = {};
107800     int32_t minQp = {};
107801     int32_t maxQp = {};
107802     VULKAN_HPP_NAMESPACE::Bool32 prefersGopRemainingFrames = {};
107803     VULKAN_HPP_NAMESPACE::Bool32 requiresGopRemainingFrames = {};
107804     VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsEXT stdSyntaxFlags = {};
107805 
107806   };
107807 
107808   template <>
107809   struct CppType<StructureType, StructureType::eVideoEncodeH265CapabilitiesEXT>
107810   {
107811     using Type = VideoEncodeH265CapabilitiesEXT;
107812   };
107813 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
107814 
107815 #if defined( VK_ENABLE_BETA_EXTENSIONS )
107816   struct VideoEncodeH265DpbSlotInfoEXT
107817   {
107818     using NativeType = VkVideoEncodeH265DpbSlotInfoEXT;
107819 
107820     static const bool allowDuplicate = false;
107821     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265DpbSlotInfoEXT;
107822 
107823 
107824 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265DpbSlotInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT107825 VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoEXT(const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
107826     : pNext( pNext_ ), pStdReferenceInfo( pStdReferenceInfo_ )
107827     {}
107828 
107829     VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoEXT( VideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107830 
VideoEncodeH265DpbSlotInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT107831     VideoEncodeH265DpbSlotInfoEXT( VkVideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107832       : VideoEncodeH265DpbSlotInfoEXT( *reinterpret_cast<VideoEncodeH265DpbSlotInfoEXT const *>( &rhs ) )
107833     {}
107834 
107835 
107836     VideoEncodeH265DpbSlotInfoEXT & operator=( VideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107837 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
107838 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT107839     VideoEncodeH265DpbSlotInfoEXT & operator=( VkVideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107840     {
107841       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT const *>( &rhs );
107842       return *this;
107843     }
107844 
107845 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT107846     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
107847     {
107848       pNext = pNext_;
107849       return *this;
107850     }
107851 
setPStdReferenceInfoVULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT107852     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoEXT & setPStdReferenceInfo( const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
107853     {
107854       pStdReferenceInfo = pStdReferenceInfo_;
107855       return *this;
107856     }
107857 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
107858 
107859 
operator VkVideoEncodeH265DpbSlotInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT107860     operator VkVideoEncodeH265DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
107861     {
107862       return *reinterpret_cast<const VkVideoEncodeH265DpbSlotInfoEXT*>( this );
107863     }
107864 
operator VkVideoEncodeH265DpbSlotInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT107865     operator VkVideoEncodeH265DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
107866     {
107867       return *reinterpret_cast<VkVideoEncodeH265DpbSlotInfoEXT*>( this );
107868     }
107869 
107870 #if defined( VULKAN_HPP_USE_REFLECT )
107871 #if 14 <= VULKAN_HPP_CPP_VERSION
107872     auto
107873 #else
107874     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoEncodeH265ReferenceInfo * const &>
107875 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT107876       reflect() const VULKAN_HPP_NOEXCEPT
107877     {
107878       return std::tie( sType, pNext, pStdReferenceInfo );
107879     }
107880 #endif
107881 
107882 
107883 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
107884 auto operator<=>( VideoEncodeH265DpbSlotInfoEXT const & ) const = default;
107885 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT107886     bool operator==( VideoEncodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107887     {
107888 #if defined( VULKAN_HPP_USE_REFLECT )
107889       return this->reflect() == rhs.reflect();
107890 #else
107891       return ( sType == rhs.sType )
107892           && ( pNext == rhs.pNext )
107893           && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
107894 #endif
107895     }
107896 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT107897     bool operator!=( VideoEncodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107898     {
107899       return !operator==( rhs );
107900     }
107901 #endif
107902 
107903     public:
107904     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265DpbSlotInfoEXT;
107905     const void * pNext = {};
107906     const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo = {};
107907 
107908   };
107909 
107910   template <>
107911   struct CppType<StructureType, StructureType::eVideoEncodeH265DpbSlotInfoEXT>
107912   {
107913     using Type = VideoEncodeH265DpbSlotInfoEXT;
107914   };
107915 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
107916 
107917 #if defined( VK_ENABLE_BETA_EXTENSIONS )
107918   struct VideoEncodeH265FrameSizeEXT
107919   {
107920     using NativeType = VkVideoEncodeH265FrameSizeEXT;
107921 
107922 
107923 
107924 
107925 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265FrameSizeEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT107926 VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeEXT(uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {}) VULKAN_HPP_NOEXCEPT
107927     : frameISize( frameISize_ ), framePSize( framePSize_ ), frameBSize( frameBSize_ )
107928     {}
107929 
107930     VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeEXT( VideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107931 
VideoEncodeH265FrameSizeEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT107932     VideoEncodeH265FrameSizeEXT( VkVideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107933       : VideoEncodeH265FrameSizeEXT( *reinterpret_cast<VideoEncodeH265FrameSizeEXT const *>( &rhs ) )
107934     {}
107935 
107936 
107937     VideoEncodeH265FrameSizeEXT & operator=( VideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
107938 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
107939 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT107940     VideoEncodeH265FrameSizeEXT & operator=( VkVideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
107941     {
107942       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const *>( &rhs );
107943       return *this;
107944     }
107945 
107946 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setFrameISizeVULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT107947     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
107948     {
107949       frameISize = frameISize_;
107950       return *this;
107951     }
107952 
setFramePSizeVULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT107953     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
107954     {
107955       framePSize = framePSize_;
107956       return *this;
107957     }
107958 
setFrameBSizeVULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT107959     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
107960     {
107961       frameBSize = frameBSize_;
107962       return *this;
107963     }
107964 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
107965 
107966 
operator VkVideoEncodeH265FrameSizeEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT107967     operator VkVideoEncodeH265FrameSizeEXT const &() const VULKAN_HPP_NOEXCEPT
107968     {
107969       return *reinterpret_cast<const VkVideoEncodeH265FrameSizeEXT*>( this );
107970     }
107971 
operator VkVideoEncodeH265FrameSizeEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT107972     operator VkVideoEncodeH265FrameSizeEXT &() VULKAN_HPP_NOEXCEPT
107973     {
107974       return *reinterpret_cast<VkVideoEncodeH265FrameSizeEXT*>( this );
107975     }
107976 
107977 #if defined( VULKAN_HPP_USE_REFLECT )
107978 #if 14 <= VULKAN_HPP_CPP_VERSION
107979     auto
107980 #else
107981     std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
107982 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT107983       reflect() const VULKAN_HPP_NOEXCEPT
107984     {
107985       return std::tie( frameISize, framePSize, frameBSize );
107986     }
107987 #endif
107988 
107989 
107990 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
107991 auto operator<=>( VideoEncodeH265FrameSizeEXT const & ) const = default;
107992 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT107993     bool operator==( VideoEncodeH265FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
107994     {
107995 #if defined( VULKAN_HPP_USE_REFLECT )
107996       return this->reflect() == rhs.reflect();
107997 #else
107998       return ( frameISize == rhs.frameISize )
107999           && ( framePSize == rhs.framePSize )
108000           && ( frameBSize == rhs.frameBSize );
108001 #endif
108002     }
108003 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT108004     bool operator!=( VideoEncodeH265FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108005     {
108006       return !operator==( rhs );
108007     }
108008 #endif
108009 
108010     public:
108011     uint32_t frameISize = {};
108012     uint32_t framePSize = {};
108013     uint32_t frameBSize = {};
108014 
108015   };
108016 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
108017 
108018 #if defined( VK_ENABLE_BETA_EXTENSIONS )
108019   struct VideoEncodeH265GopRemainingFrameInfoEXT
108020   {
108021     using NativeType = VkVideoEncodeH265GopRemainingFrameInfoEXT;
108022 
108023     static const bool allowDuplicate = false;
108024     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265GopRemainingFrameInfoEXT;
108025 
108026 
108027 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265GopRemainingFrameInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108028 VULKAN_HPP_CONSTEXPR VideoEncodeH265GopRemainingFrameInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ = {}, uint32_t gopRemainingI_ = {}, uint32_t gopRemainingP_ = {}, uint32_t gopRemainingB_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
108029     : pNext( pNext_ ), useGopRemainingFrames( useGopRemainingFrames_ ), gopRemainingI( gopRemainingI_ ), gopRemainingP( gopRemainingP_ ), gopRemainingB( gopRemainingB_ )
108030     {}
108031 
108032     VULKAN_HPP_CONSTEXPR VideoEncodeH265GopRemainingFrameInfoEXT( VideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108033 
VideoEncodeH265GopRemainingFrameInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108034     VideoEncodeH265GopRemainingFrameInfoEXT( VkVideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108035       : VideoEncodeH265GopRemainingFrameInfoEXT( *reinterpret_cast<VideoEncodeH265GopRemainingFrameInfoEXT const *>( &rhs ) )
108036     {}
108037 
108038 
108039     VideoEncodeH265GopRemainingFrameInfoEXT & operator=( VideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108040 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
108041 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108042     VideoEncodeH265GopRemainingFrameInfoEXT & operator=( VkVideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108043     {
108044       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT const *>( &rhs );
108045       return *this;
108046     }
108047 
108048 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108049     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
108050     {
108051       pNext = pNext_;
108052       return *this;
108053     }
108054 
setUseGopRemainingFramesVULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108055     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoEXT & setUseGopRemainingFrames( VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ ) VULKAN_HPP_NOEXCEPT
108056     {
108057       useGopRemainingFrames = useGopRemainingFrames_;
108058       return *this;
108059     }
108060 
setGopRemainingIVULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108061     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoEXT & setGopRemainingI( uint32_t gopRemainingI_ ) VULKAN_HPP_NOEXCEPT
108062     {
108063       gopRemainingI = gopRemainingI_;
108064       return *this;
108065     }
108066 
setGopRemainingPVULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108067     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoEXT & setGopRemainingP( uint32_t gopRemainingP_ ) VULKAN_HPP_NOEXCEPT
108068     {
108069       gopRemainingP = gopRemainingP_;
108070       return *this;
108071     }
108072 
setGopRemainingBVULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108073     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoEXT & setGopRemainingB( uint32_t gopRemainingB_ ) VULKAN_HPP_NOEXCEPT
108074     {
108075       gopRemainingB = gopRemainingB_;
108076       return *this;
108077     }
108078 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
108079 
108080 
operator VkVideoEncodeH265GopRemainingFrameInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108081     operator VkVideoEncodeH265GopRemainingFrameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
108082     {
108083       return *reinterpret_cast<const VkVideoEncodeH265GopRemainingFrameInfoEXT*>( this );
108084     }
108085 
operator VkVideoEncodeH265GopRemainingFrameInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108086     operator VkVideoEncodeH265GopRemainingFrameInfoEXT &() VULKAN_HPP_NOEXCEPT
108087     {
108088       return *reinterpret_cast<VkVideoEncodeH265GopRemainingFrameInfoEXT*>( this );
108089     }
108090 
108091 #if defined( VULKAN_HPP_USE_REFLECT )
108092 #if 14 <= VULKAN_HPP_CPP_VERSION
108093     auto
108094 #else
108095     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, uint32_t const &, uint32_t const &>
108096 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108097       reflect() const VULKAN_HPP_NOEXCEPT
108098     {
108099       return std::tie( sType, pNext, useGopRemainingFrames, gopRemainingI, gopRemainingP, gopRemainingB );
108100     }
108101 #endif
108102 
108103 
108104 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
108105 auto operator<=>( VideoEncodeH265GopRemainingFrameInfoEXT const & ) const = default;
108106 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108107     bool operator==( VideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108108     {
108109 #if defined( VULKAN_HPP_USE_REFLECT )
108110       return this->reflect() == rhs.reflect();
108111 #else
108112       return ( sType == rhs.sType )
108113           && ( pNext == rhs.pNext )
108114           && ( useGopRemainingFrames == rhs.useGopRemainingFrames )
108115           && ( gopRemainingI == rhs.gopRemainingI )
108116           && ( gopRemainingP == rhs.gopRemainingP )
108117           && ( gopRemainingB == rhs.gopRemainingB );
108118 #endif
108119     }
108120 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT108121     bool operator!=( VideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108122     {
108123       return !operator==( rhs );
108124     }
108125 #endif
108126 
108127     public:
108128     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265GopRemainingFrameInfoEXT;
108129     const void * pNext = {};
108130     VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames = {};
108131     uint32_t gopRemainingI = {};
108132     uint32_t gopRemainingP = {};
108133     uint32_t gopRemainingB = {};
108134 
108135   };
108136 
108137   template <>
108138   struct CppType<StructureType, StructureType::eVideoEncodeH265GopRemainingFrameInfoEXT>
108139   {
108140     using Type = VideoEncodeH265GopRemainingFrameInfoEXT;
108141   };
108142 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
108143 
108144 #if defined( VK_ENABLE_BETA_EXTENSIONS )
108145   struct VideoEncodeH265NaluSliceSegmentInfoEXT
108146   {
108147     using NativeType = VkVideoEncodeH265NaluSliceSegmentInfoEXT;
108148 
108149     static const bool allowDuplicate = false;
108150     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT;
108151 
108152 
108153 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265NaluSliceSegmentInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108154 VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoEXT(int32_t constantQp_ = {}, const StdVideoEncodeH265SliceSegmentHeader * pStdSliceSegmentHeader_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
108155     : pNext( pNext_ ), constantQp( constantQp_ ), pStdSliceSegmentHeader( pStdSliceSegmentHeader_ )
108156     {}
108157 
108158     VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoEXT( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108159 
VideoEncodeH265NaluSliceSegmentInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108160     VideoEncodeH265NaluSliceSegmentInfoEXT( VkVideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108161       : VideoEncodeH265NaluSliceSegmentInfoEXT( *reinterpret_cast<VideoEncodeH265NaluSliceSegmentInfoEXT const *>( &rhs ) )
108162     {}
108163 
108164 
108165     VideoEncodeH265NaluSliceSegmentInfoEXT & operator=( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108166 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
108167 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108168     VideoEncodeH265NaluSliceSegmentInfoEXT & operator=( VkVideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108169     {
108170       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT const *>( &rhs );
108171       return *this;
108172     }
108173 
108174 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108175     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
108176     {
108177       pNext = pNext_;
108178       return *this;
108179     }
108180 
setConstantQpVULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108181     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT & setConstantQp( int32_t constantQp_ ) VULKAN_HPP_NOEXCEPT
108182     {
108183       constantQp = constantQp_;
108184       return *this;
108185     }
108186 
setPStdSliceSegmentHeaderVULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108187     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT & setPStdSliceSegmentHeader( const StdVideoEncodeH265SliceSegmentHeader * pStdSliceSegmentHeader_ ) VULKAN_HPP_NOEXCEPT
108188     {
108189       pStdSliceSegmentHeader = pStdSliceSegmentHeader_;
108190       return *this;
108191     }
108192 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
108193 
108194 
operator VkVideoEncodeH265NaluSliceSegmentInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108195     operator VkVideoEncodeH265NaluSliceSegmentInfoEXT const &() const VULKAN_HPP_NOEXCEPT
108196     {
108197       return *reinterpret_cast<const VkVideoEncodeH265NaluSliceSegmentInfoEXT*>( this );
108198     }
108199 
operator VkVideoEncodeH265NaluSliceSegmentInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108200     operator VkVideoEncodeH265NaluSliceSegmentInfoEXT &() VULKAN_HPP_NOEXCEPT
108201     {
108202       return *reinterpret_cast<VkVideoEncodeH265NaluSliceSegmentInfoEXT*>( this );
108203     }
108204 
108205 #if defined( VULKAN_HPP_USE_REFLECT )
108206 #if 14 <= VULKAN_HPP_CPP_VERSION
108207     auto
108208 #else
108209     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int32_t const &, const StdVideoEncodeH265SliceSegmentHeader * const &>
108210 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108211       reflect() const VULKAN_HPP_NOEXCEPT
108212     {
108213       return std::tie( sType, pNext, constantQp, pStdSliceSegmentHeader );
108214     }
108215 #endif
108216 
108217 
108218 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
108219 auto operator<=>( VideoEncodeH265NaluSliceSegmentInfoEXT const & ) const = default;
108220 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108221     bool operator==( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108222     {
108223 #if defined( VULKAN_HPP_USE_REFLECT )
108224       return this->reflect() == rhs.reflect();
108225 #else
108226       return ( sType == rhs.sType )
108227           && ( pNext == rhs.pNext )
108228           && ( constantQp == rhs.constantQp )
108229           && ( pStdSliceSegmentHeader == rhs.pStdSliceSegmentHeader );
108230 #endif
108231     }
108232 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT108233     bool operator!=( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108234     {
108235       return !operator==( rhs );
108236     }
108237 #endif
108238 
108239     public:
108240     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT;
108241     const void * pNext = {};
108242     int32_t constantQp = {};
108243     const StdVideoEncodeH265SliceSegmentHeader * pStdSliceSegmentHeader = {};
108244 
108245   };
108246 
108247   template <>
108248   struct CppType<StructureType, StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT>
108249   {
108250     using Type = VideoEncodeH265NaluSliceSegmentInfoEXT;
108251   };
108252 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
108253 
108254 #if defined( VK_ENABLE_BETA_EXTENSIONS )
108255   struct VideoEncodeH265PictureInfoEXT
108256   {
108257     using NativeType = VkVideoEncodeH265PictureInfoEXT;
108258 
108259     static const bool allowDuplicate = false;
108260     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265PictureInfoEXT;
108261 
108262 
108263 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265PictureInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108264 VULKAN_HPP_CONSTEXPR VideoEncodeH265PictureInfoEXT(uint32_t naluSliceSegmentEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries_ = {}, const StdVideoEncodeH265PictureInfo * pStdPictureInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
108265     : pNext( pNext_ ), naluSliceSegmentEntryCount( naluSliceSegmentEntryCount_ ), pNaluSliceSegmentEntries( pNaluSliceSegmentEntries_ ), pStdPictureInfo( pStdPictureInfo_ )
108266     {}
108267 
108268     VULKAN_HPP_CONSTEXPR VideoEncodeH265PictureInfoEXT( VideoEncodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108269 
VideoEncodeH265PictureInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108270     VideoEncodeH265PictureInfoEXT( VkVideoEncodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108271       : VideoEncodeH265PictureInfoEXT( *reinterpret_cast<VideoEncodeH265PictureInfoEXT const *>( &rhs ) )
108272     {}
108273 
108274 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH265PictureInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108275     VideoEncodeH265PictureInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT> const & naluSliceSegmentEntries_, const StdVideoEncodeH265PictureInfo * pStdPictureInfo_ = {}, const void * pNext_ = nullptr )
108276     : pNext( pNext_ ), naluSliceSegmentEntryCount( static_cast<uint32_t>( naluSliceSegmentEntries_.size() ) ), pNaluSliceSegmentEntries( naluSliceSegmentEntries_.data() ), pStdPictureInfo( pStdPictureInfo_ )
108277     {}
108278 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
108279 
108280 
108281     VideoEncodeH265PictureInfoEXT & operator=( VideoEncodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108282 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
108283 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108284     VideoEncodeH265PictureInfoEXT & operator=( VkVideoEncodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108285     {
108286       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT const *>( &rhs );
108287       return *this;
108288     }
108289 
108290 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108291     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
108292     {
108293       pNext = pNext_;
108294       return *this;
108295     }
108296 
setNaluSliceSegmentEntryCountVULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108297     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoEXT & setNaluSliceSegmentEntryCount( uint32_t naluSliceSegmentEntryCount_ ) VULKAN_HPP_NOEXCEPT
108298     {
108299       naluSliceSegmentEntryCount = naluSliceSegmentEntryCount_;
108300       return *this;
108301     }
108302 
setPNaluSliceSegmentEntriesVULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108303     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoEXT & setPNaluSliceSegmentEntries( const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries_ ) VULKAN_HPP_NOEXCEPT
108304     {
108305       pNaluSliceSegmentEntries = pNaluSliceSegmentEntries_;
108306       return *this;
108307     }
108308 
108309 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setNaluSliceSegmentEntriesVULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108310     VideoEncodeH265PictureInfoEXT & setNaluSliceSegmentEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT> const & naluSliceSegmentEntries_ ) VULKAN_HPP_NOEXCEPT
108311     {
108312       naluSliceSegmentEntryCount = static_cast<uint32_t>( naluSliceSegmentEntries_.size() );
108313       pNaluSliceSegmentEntries = naluSliceSegmentEntries_.data();
108314       return *this;
108315     }
108316 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
108317 
setPStdPictureInfoVULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108318     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoEXT & setPStdPictureInfo( const StdVideoEncodeH265PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
108319     {
108320       pStdPictureInfo = pStdPictureInfo_;
108321       return *this;
108322     }
108323 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
108324 
108325 
operator VkVideoEncodeH265PictureInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108326     operator VkVideoEncodeH265PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
108327     {
108328       return *reinterpret_cast<const VkVideoEncodeH265PictureInfoEXT*>( this );
108329     }
108330 
operator VkVideoEncodeH265PictureInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108331     operator VkVideoEncodeH265PictureInfoEXT &() VULKAN_HPP_NOEXCEPT
108332     {
108333       return *reinterpret_cast<VkVideoEncodeH265PictureInfoEXT*>( this );
108334     }
108335 
108336 #if defined( VULKAN_HPP_USE_REFLECT )
108337 #if 14 <= VULKAN_HPP_CPP_VERSION
108338     auto
108339 #else
108340     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * const &, const StdVideoEncodeH265PictureInfo * const &>
108341 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108342       reflect() const VULKAN_HPP_NOEXCEPT
108343     {
108344       return std::tie( sType, pNext, naluSliceSegmentEntryCount, pNaluSliceSegmentEntries, pStdPictureInfo );
108345     }
108346 #endif
108347 
108348 
108349 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
108350 auto operator<=>( VideoEncodeH265PictureInfoEXT const & ) const = default;
108351 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108352     bool operator==( VideoEncodeH265PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108353     {
108354 #if defined( VULKAN_HPP_USE_REFLECT )
108355       return this->reflect() == rhs.reflect();
108356 #else
108357       return ( sType == rhs.sType )
108358           && ( pNext == rhs.pNext )
108359           && ( naluSliceSegmentEntryCount == rhs.naluSliceSegmentEntryCount )
108360           && ( pNaluSliceSegmentEntries == rhs.pNaluSliceSegmentEntries )
108361           && ( pStdPictureInfo == rhs.pStdPictureInfo );
108362 #endif
108363     }
108364 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT108365     bool operator!=( VideoEncodeH265PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108366     {
108367       return !operator==( rhs );
108368     }
108369 #endif
108370 
108371     public:
108372     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265PictureInfoEXT;
108373     const void * pNext = {};
108374     uint32_t naluSliceSegmentEntryCount = {};
108375     const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries = {};
108376     const StdVideoEncodeH265PictureInfo * pStdPictureInfo = {};
108377 
108378   };
108379 
108380   template <>
108381   struct CppType<StructureType, StructureType::eVideoEncodeH265PictureInfoEXT>
108382   {
108383     using Type = VideoEncodeH265PictureInfoEXT;
108384   };
108385 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
108386 
108387 #if defined( VK_ENABLE_BETA_EXTENSIONS )
108388   struct VideoEncodeH265ProfileInfoEXT
108389   {
108390     using NativeType = VkVideoEncodeH265ProfileInfoEXT;
108391 
108392     static const bool allowDuplicate = false;
108393     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265ProfileInfoEXT;
108394 
108395 
108396 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265ProfileInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108397 VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoEXT(StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
108398     : pNext( pNext_ ), stdProfileIdc( stdProfileIdc_ )
108399     {}
108400 
108401     VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoEXT( VideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108402 
VideoEncodeH265ProfileInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108403     VideoEncodeH265ProfileInfoEXT( VkVideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108404       : VideoEncodeH265ProfileInfoEXT( *reinterpret_cast<VideoEncodeH265ProfileInfoEXT const *>( &rhs ) )
108405     {}
108406 
108407 
108408     VideoEncodeH265ProfileInfoEXT & operator=( VideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108409 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
108410 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108411     VideoEncodeH265ProfileInfoEXT & operator=( VkVideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108412     {
108413       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT const *>( &rhs );
108414       return *this;
108415     }
108416 
108417 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108418     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
108419     {
108420       pNext = pNext_;
108421       return *this;
108422     }
108423 
setStdProfileIdcVULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108424     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileInfoEXT & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
108425     {
108426       stdProfileIdc = stdProfileIdc_;
108427       return *this;
108428     }
108429 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
108430 
108431 
operator VkVideoEncodeH265ProfileInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108432     operator VkVideoEncodeH265ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
108433     {
108434       return *reinterpret_cast<const VkVideoEncodeH265ProfileInfoEXT*>( this );
108435     }
108436 
operator VkVideoEncodeH265ProfileInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108437     operator VkVideoEncodeH265ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
108438     {
108439       return *reinterpret_cast<VkVideoEncodeH265ProfileInfoEXT*>( this );
108440     }
108441 
108442 #if defined( VULKAN_HPP_USE_REFLECT )
108443 #if 14 <= VULKAN_HPP_CPP_VERSION
108444     auto
108445 #else
108446     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH265ProfileIdc const &>
108447 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108448       reflect() const VULKAN_HPP_NOEXCEPT
108449     {
108450       return std::tie( sType, pNext, stdProfileIdc );
108451     }
108452 #endif
108453 
108454 
108455 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108456     std::strong_ordering operator<=>( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108457     {
108458       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
108459       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
108460       if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ); cmp != 0 )
108461         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
108462 
108463       return std::strong_ordering::equivalent;
108464     }
108465 #endif
108466 
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108467     bool operator==( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108468     {
108469       return ( sType == rhs.sType )
108470           && ( pNext == rhs.pNext )
108471           && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 );
108472     }
108473 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT108474     bool operator!=( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108475     {
108476       return !operator==( rhs );
108477     }
108478 
108479     public:
108480     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265ProfileInfoEXT;
108481     const void * pNext = {};
108482     StdVideoH265ProfileIdc stdProfileIdc = {};
108483 
108484   };
108485 
108486   template <>
108487   struct CppType<StructureType, StructureType::eVideoEncodeH265ProfileInfoEXT>
108488   {
108489     using Type = VideoEncodeH265ProfileInfoEXT;
108490   };
108491 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
108492 
108493 #if defined( VK_ENABLE_BETA_EXTENSIONS )
108494   struct VideoEncodeH265QpEXT
108495   {
108496     using NativeType = VkVideoEncodeH265QpEXT;
108497 
108498 
108499 
108500 
108501 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265QpEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108502 VULKAN_HPP_CONSTEXPR VideoEncodeH265QpEXT(int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {}) VULKAN_HPP_NOEXCEPT
108503     : qpI( qpI_ ), qpP( qpP_ ), qpB( qpB_ )
108504     {}
108505 
108506     VULKAN_HPP_CONSTEXPR VideoEncodeH265QpEXT( VideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108507 
VideoEncodeH265QpEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108508     VideoEncodeH265QpEXT( VkVideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108509       : VideoEncodeH265QpEXT( *reinterpret_cast<VideoEncodeH265QpEXT const *>( &rhs ) )
108510     {}
108511 
108512 
108513     VideoEncodeH265QpEXT & operator=( VideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108514 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
108515 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108516     VideoEncodeH265QpEXT & operator=( VkVideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108517     {
108518       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const *>( &rhs );
108519       return *this;
108520     }
108521 
108522 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setQpIVULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108523     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
108524     {
108525       qpI = qpI_;
108526       return *this;
108527     }
108528 
setQpPVULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108529     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
108530     {
108531       qpP = qpP_;
108532       return *this;
108533     }
108534 
setQpBVULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108535     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
108536     {
108537       qpB = qpB_;
108538       return *this;
108539     }
108540 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
108541 
108542 
operator VkVideoEncodeH265QpEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108543     operator VkVideoEncodeH265QpEXT const &() const VULKAN_HPP_NOEXCEPT
108544     {
108545       return *reinterpret_cast<const VkVideoEncodeH265QpEXT*>( this );
108546     }
108547 
operator VkVideoEncodeH265QpEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108548     operator VkVideoEncodeH265QpEXT &() VULKAN_HPP_NOEXCEPT
108549     {
108550       return *reinterpret_cast<VkVideoEncodeH265QpEXT*>( this );
108551     }
108552 
108553 #if defined( VULKAN_HPP_USE_REFLECT )
108554 #if 14 <= VULKAN_HPP_CPP_VERSION
108555     auto
108556 #else
108557     std::tuple<int32_t const &, int32_t const &, int32_t const &>
108558 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108559       reflect() const VULKAN_HPP_NOEXCEPT
108560     {
108561       return std::tie( qpI, qpP, qpB );
108562     }
108563 #endif
108564 
108565 
108566 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
108567 auto operator<=>( VideoEncodeH265QpEXT const & ) const = default;
108568 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108569     bool operator==( VideoEncodeH265QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108570     {
108571 #if defined( VULKAN_HPP_USE_REFLECT )
108572       return this->reflect() == rhs.reflect();
108573 #else
108574       return ( qpI == rhs.qpI )
108575           && ( qpP == rhs.qpP )
108576           && ( qpB == rhs.qpB );
108577 #endif
108578     }
108579 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT108580     bool operator!=( VideoEncodeH265QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108581     {
108582       return !operator==( rhs );
108583     }
108584 #endif
108585 
108586     public:
108587     int32_t qpI = {};
108588     int32_t qpP = {};
108589     int32_t qpB = {};
108590 
108591   };
108592 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
108593 
108594 #if defined( VK_ENABLE_BETA_EXTENSIONS )
108595   struct VideoEncodeH265QualityLevelPropertiesEXT
108596   {
108597     using NativeType = VkVideoEncodeH265QualityLevelPropertiesEXT;
108598 
108599     static const bool allowDuplicate = false;
108600     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265QualityLevelPropertiesEXT;
108601 
108602 
108603 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265QualityLevelPropertiesEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesEXT108604 VULKAN_HPP_CONSTEXPR VideoEncodeH265QualityLevelPropertiesEXT(VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT preferredRateControlFlags_ = {}, uint32_t preferredGopFrameCount_ = {}, uint32_t preferredIdrPeriod_ = {}, uint32_t preferredConsecutiveBFrameCount_ = {}, uint32_t preferredSubLayerCount_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT preferredConstantQp_ = {}, uint32_t preferredMaxL0ReferenceCount_ = {}, uint32_t preferredMaxL1ReferenceCount_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
108605     : pNext( pNext_ ), preferredRateControlFlags( preferredRateControlFlags_ ), preferredGopFrameCount( preferredGopFrameCount_ ), preferredIdrPeriod( preferredIdrPeriod_ ), preferredConsecutiveBFrameCount( preferredConsecutiveBFrameCount_ ), preferredSubLayerCount( preferredSubLayerCount_ ), preferredConstantQp( preferredConstantQp_ ), preferredMaxL0ReferenceCount( preferredMaxL0ReferenceCount_ ), preferredMaxL1ReferenceCount( preferredMaxL1ReferenceCount_ )
108606     {}
108607 
108608     VULKAN_HPP_CONSTEXPR VideoEncodeH265QualityLevelPropertiesEXT( VideoEncodeH265QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108609 
VideoEncodeH265QualityLevelPropertiesEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesEXT108610     VideoEncodeH265QualityLevelPropertiesEXT( VkVideoEncodeH265QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108611       : VideoEncodeH265QualityLevelPropertiesEXT( *reinterpret_cast<VideoEncodeH265QualityLevelPropertiesEXT const *>( &rhs ) )
108612     {}
108613 
108614 
108615     VideoEncodeH265QualityLevelPropertiesEXT & operator=( VideoEncodeH265QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108616 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
108617 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesEXT108618     VideoEncodeH265QualityLevelPropertiesEXT & operator=( VkVideoEncodeH265QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108619     {
108620       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesEXT const *>( &rhs );
108621       return *this;
108622     }
108623 
108624 
operator VkVideoEncodeH265QualityLevelPropertiesEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesEXT108625     operator VkVideoEncodeH265QualityLevelPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
108626     {
108627       return *reinterpret_cast<const VkVideoEncodeH265QualityLevelPropertiesEXT*>( this );
108628     }
108629 
operator VkVideoEncodeH265QualityLevelPropertiesEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesEXT108630     operator VkVideoEncodeH265QualityLevelPropertiesEXT &() VULKAN_HPP_NOEXCEPT
108631     {
108632       return *reinterpret_cast<VkVideoEncodeH265QualityLevelPropertiesEXT*>( this );
108633     }
108634 
108635 #if defined( VULKAN_HPP_USE_REFLECT )
108636 #if 14 <= VULKAN_HPP_CPP_VERSION
108637     auto
108638 #else
108639     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &, uint32_t const &, uint32_t const &>
108640 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesEXT108641       reflect() const VULKAN_HPP_NOEXCEPT
108642     {
108643       return std::tie( sType, pNext, preferredRateControlFlags, preferredGopFrameCount, preferredIdrPeriod, preferredConsecutiveBFrameCount, preferredSubLayerCount, preferredConstantQp, preferredMaxL0ReferenceCount, preferredMaxL1ReferenceCount );
108644     }
108645 #endif
108646 
108647 
108648 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
108649 auto operator<=>( VideoEncodeH265QualityLevelPropertiesEXT const & ) const = default;
108650 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesEXT108651     bool operator==( VideoEncodeH265QualityLevelPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108652     {
108653 #if defined( VULKAN_HPP_USE_REFLECT )
108654       return this->reflect() == rhs.reflect();
108655 #else
108656       return ( sType == rhs.sType )
108657           && ( pNext == rhs.pNext )
108658           && ( preferredRateControlFlags == rhs.preferredRateControlFlags )
108659           && ( preferredGopFrameCount == rhs.preferredGopFrameCount )
108660           && ( preferredIdrPeriod == rhs.preferredIdrPeriod )
108661           && ( preferredConsecutiveBFrameCount == rhs.preferredConsecutiveBFrameCount )
108662           && ( preferredSubLayerCount == rhs.preferredSubLayerCount )
108663           && ( preferredConstantQp == rhs.preferredConstantQp )
108664           && ( preferredMaxL0ReferenceCount == rhs.preferredMaxL0ReferenceCount )
108665           && ( preferredMaxL1ReferenceCount == rhs.preferredMaxL1ReferenceCount );
108666 #endif
108667     }
108668 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesEXT108669     bool operator!=( VideoEncodeH265QualityLevelPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108670     {
108671       return !operator==( rhs );
108672     }
108673 #endif
108674 
108675     public:
108676     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265QualityLevelPropertiesEXT;
108677     void * pNext = {};
108678     VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT preferredRateControlFlags = {};
108679     uint32_t preferredGopFrameCount = {};
108680     uint32_t preferredIdrPeriod = {};
108681     uint32_t preferredConsecutiveBFrameCount = {};
108682     uint32_t preferredSubLayerCount = {};
108683     VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT preferredConstantQp = {};
108684     uint32_t preferredMaxL0ReferenceCount = {};
108685     uint32_t preferredMaxL1ReferenceCount = {};
108686 
108687   };
108688 
108689   template <>
108690   struct CppType<StructureType, StructureType::eVideoEncodeH265QualityLevelPropertiesEXT>
108691   {
108692     using Type = VideoEncodeH265QualityLevelPropertiesEXT;
108693   };
108694 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
108695 
108696 #if defined( VK_ENABLE_BETA_EXTENSIONS )
108697   struct VideoEncodeH265RateControlInfoEXT
108698   {
108699     using NativeType = VkVideoEncodeH265RateControlInfoEXT;
108700 
108701     static const bool allowDuplicate = false;
108702     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265RateControlInfoEXT;
108703 
108704 
108705 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265RateControlInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108706 VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoEXT(VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT flags_ = {}, uint32_t gopFrameCount_ = {}, uint32_t idrPeriod_ = {}, uint32_t consecutiveBFrameCount_ = {}, uint32_t subLayerCount_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
108707     : pNext( pNext_ ), flags( flags_ ), gopFrameCount( gopFrameCount_ ), idrPeriod( idrPeriod_ ), consecutiveBFrameCount( consecutiveBFrameCount_ ), subLayerCount( subLayerCount_ )
108708     {}
108709 
108710     VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoEXT( VideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108711 
VideoEncodeH265RateControlInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108712     VideoEncodeH265RateControlInfoEXT( VkVideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108713       : VideoEncodeH265RateControlInfoEXT( *reinterpret_cast<VideoEncodeH265RateControlInfoEXT const *>( &rhs ) )
108714     {}
108715 
108716 
108717     VideoEncodeH265RateControlInfoEXT & operator=( VideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108718 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
108719 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108720     VideoEncodeH265RateControlInfoEXT & operator=( VkVideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108721     {
108722       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT const *>( &rhs );
108723       return *this;
108724     }
108725 
108726 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108727     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
108728     {
108729       pNext = pNext_;
108730       return *this;
108731     }
108732 
setFlagsVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108733     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
108734     {
108735       flags = flags_;
108736       return *this;
108737     }
108738 
setGopFrameCountVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108739     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
108740     {
108741       gopFrameCount = gopFrameCount_;
108742       return *this;
108743     }
108744 
setIdrPeriodVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108745     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
108746     {
108747       idrPeriod = idrPeriod_;
108748       return *this;
108749     }
108750 
setConsecutiveBFrameCountVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108751     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
108752     {
108753       consecutiveBFrameCount = consecutiveBFrameCount_;
108754       return *this;
108755     }
108756 
setSubLayerCountVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108757     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setSubLayerCount( uint32_t subLayerCount_ ) VULKAN_HPP_NOEXCEPT
108758     {
108759       subLayerCount = subLayerCount_;
108760       return *this;
108761     }
108762 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
108763 
108764 
operator VkVideoEncodeH265RateControlInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108765     operator VkVideoEncodeH265RateControlInfoEXT const &() const VULKAN_HPP_NOEXCEPT
108766     {
108767       return *reinterpret_cast<const VkVideoEncodeH265RateControlInfoEXT*>( this );
108768     }
108769 
operator VkVideoEncodeH265RateControlInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108770     operator VkVideoEncodeH265RateControlInfoEXT &() VULKAN_HPP_NOEXCEPT
108771     {
108772       return *reinterpret_cast<VkVideoEncodeH265RateControlInfoEXT*>( this );
108773     }
108774 
108775 #if defined( VULKAN_HPP_USE_REFLECT )
108776 #if 14 <= VULKAN_HPP_CPP_VERSION
108777     auto
108778 #else
108779     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
108780 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108781       reflect() const VULKAN_HPP_NOEXCEPT
108782     {
108783       return std::tie( sType, pNext, flags, gopFrameCount, idrPeriod, consecutiveBFrameCount, subLayerCount );
108784     }
108785 #endif
108786 
108787 
108788 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
108789 auto operator<=>( VideoEncodeH265RateControlInfoEXT const & ) const = default;
108790 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108791     bool operator==( VideoEncodeH265RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108792     {
108793 #if defined( VULKAN_HPP_USE_REFLECT )
108794       return this->reflect() == rhs.reflect();
108795 #else
108796       return ( sType == rhs.sType )
108797           && ( pNext == rhs.pNext )
108798           && ( flags == rhs.flags )
108799           && ( gopFrameCount == rhs.gopFrameCount )
108800           && ( idrPeriod == rhs.idrPeriod )
108801           && ( consecutiveBFrameCount == rhs.consecutiveBFrameCount )
108802           && ( subLayerCount == rhs.subLayerCount );
108803 #endif
108804     }
108805 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT108806     bool operator!=( VideoEncodeH265RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108807     {
108808       return !operator==( rhs );
108809     }
108810 #endif
108811 
108812     public:
108813     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265RateControlInfoEXT;
108814     const void * pNext = {};
108815     VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT flags = {};
108816     uint32_t gopFrameCount = {};
108817     uint32_t idrPeriod = {};
108818     uint32_t consecutiveBFrameCount = {};
108819     uint32_t subLayerCount = {};
108820 
108821   };
108822 
108823   template <>
108824   struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlInfoEXT>
108825   {
108826     using Type = VideoEncodeH265RateControlInfoEXT;
108827   };
108828 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
108829 
108830 #if defined( VK_ENABLE_BETA_EXTENSIONS )
108831   struct VideoEncodeH265RateControlLayerInfoEXT
108832   {
108833     using NativeType = VkVideoEncodeH265RateControlLayerInfoEXT;
108834 
108835     static const bool allowDuplicate = false;
108836     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265RateControlLayerInfoEXT;
108837 
108838 
108839 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265RateControlLayerInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108840 VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT minQp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT maxQp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT maxFrameSize_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
108841     : pNext( pNext_ ), useMinQp( useMinQp_ ), minQp( minQp_ ), useMaxQp( useMaxQp_ ), maxQp( maxQp_ ), useMaxFrameSize( useMaxFrameSize_ ), maxFrameSize( maxFrameSize_ )
108842     {}
108843 
108844     VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoEXT( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108845 
VideoEncodeH265RateControlLayerInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108846     VideoEncodeH265RateControlLayerInfoEXT( VkVideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108847       : VideoEncodeH265RateControlLayerInfoEXT( *reinterpret_cast<VideoEncodeH265RateControlLayerInfoEXT const *>( &rhs ) )
108848     {}
108849 
108850 
108851     VideoEncodeH265RateControlLayerInfoEXT & operator=( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108852 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
108853 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108854     VideoEncodeH265RateControlLayerInfoEXT & operator=( VkVideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108855     {
108856       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT const *>( &rhs );
108857       return *this;
108858     }
108859 
108860 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108861     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
108862     {
108863       pNext = pNext_;
108864       return *this;
108865     }
108866 
setUseMinQpVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108867     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
108868     {
108869       useMinQp = useMinQp_;
108870       return *this;
108871     }
108872 
setMinQpVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108873     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & minQp_ ) VULKAN_HPP_NOEXCEPT
108874     {
108875       minQp = minQp_;
108876       return *this;
108877     }
108878 
setUseMaxQpVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108879     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
108880     {
108881       useMaxQp = useMaxQp_;
108882       return *this;
108883     }
108884 
setMaxQpVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108885     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & maxQp_ ) VULKAN_HPP_NOEXCEPT
108886     {
108887       maxQp = maxQp_;
108888       return *this;
108889     }
108890 
setUseMaxFrameSizeVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108891     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
108892     {
108893       useMaxFrameSize = useMaxFrameSize_;
108894       return *this;
108895     }
108896 
setMaxFrameSizeVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108897     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
108898     {
108899       maxFrameSize = maxFrameSize_;
108900       return *this;
108901     }
108902 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
108903 
108904 
operator VkVideoEncodeH265RateControlLayerInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108905     operator VkVideoEncodeH265RateControlLayerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
108906     {
108907       return *reinterpret_cast<const VkVideoEncodeH265RateControlLayerInfoEXT*>( this );
108908     }
108909 
operator VkVideoEncodeH265RateControlLayerInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108910     operator VkVideoEncodeH265RateControlLayerInfoEXT &() VULKAN_HPP_NOEXCEPT
108911     {
108912       return *reinterpret_cast<VkVideoEncodeH265RateControlLayerInfoEXT*>( this );
108913     }
108914 
108915 #if defined( VULKAN_HPP_USE_REFLECT )
108916 #if 14 <= VULKAN_HPP_CPP_VERSION
108917     auto
108918 #else
108919     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const &>
108920 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108921       reflect() const VULKAN_HPP_NOEXCEPT
108922     {
108923       return std::tie( sType, pNext, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize );
108924     }
108925 #endif
108926 
108927 
108928 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
108929 auto operator<=>( VideoEncodeH265RateControlLayerInfoEXT const & ) const = default;
108930 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108931     bool operator==( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108932     {
108933 #if defined( VULKAN_HPP_USE_REFLECT )
108934       return this->reflect() == rhs.reflect();
108935 #else
108936       return ( sType == rhs.sType )
108937           && ( pNext == rhs.pNext )
108938           && ( useMinQp == rhs.useMinQp )
108939           && ( minQp == rhs.minQp )
108940           && ( useMaxQp == rhs.useMaxQp )
108941           && ( maxQp == rhs.maxQp )
108942           && ( useMaxFrameSize == rhs.useMaxFrameSize )
108943           && ( maxFrameSize == rhs.maxFrameSize );
108944 #endif
108945     }
108946 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT108947     bool operator!=( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
108948     {
108949       return !operator==( rhs );
108950     }
108951 #endif
108952 
108953     public:
108954     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265RateControlLayerInfoEXT;
108955     const void * pNext = {};
108956     VULKAN_HPP_NAMESPACE::Bool32 useMinQp = {};
108957     VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT minQp = {};
108958     VULKAN_HPP_NAMESPACE::Bool32 useMaxQp = {};
108959     VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT maxQp = {};
108960     VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize = {};
108961     VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT maxFrameSize = {};
108962 
108963   };
108964 
108965   template <>
108966   struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlLayerInfoEXT>
108967   {
108968     using Type = VideoEncodeH265RateControlLayerInfoEXT;
108969   };
108970 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
108971 
108972 #if defined( VK_ENABLE_BETA_EXTENSIONS )
108973   struct VideoEncodeH265SessionCreateInfoEXT
108974   {
108975     using NativeType = VkVideoEncodeH265SessionCreateInfoEXT;
108976 
108977     static const bool allowDuplicate = false;
108978     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionCreateInfoEXT;
108979 
108980 
108981 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265SessionCreateInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT108982 VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ = {}, StdVideoH265LevelIdc maxLevelIdc_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
108983     : pNext( pNext_ ), useMaxLevelIdc( useMaxLevelIdc_ ), maxLevelIdc( maxLevelIdc_ )
108984     {}
108985 
108986     VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionCreateInfoEXT( VideoEncodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108987 
VideoEncodeH265SessionCreateInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT108988     VideoEncodeH265SessionCreateInfoEXT( VkVideoEncodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108989       : VideoEncodeH265SessionCreateInfoEXT( *reinterpret_cast<VideoEncodeH265SessionCreateInfoEXT const *>( &rhs ) )
108990     {}
108991 
108992 
108993     VideoEncodeH265SessionCreateInfoEXT & operator=( VideoEncodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
108994 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
108995 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT108996     VideoEncodeH265SessionCreateInfoEXT & operator=( VkVideoEncodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
108997     {
108998       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT const *>( &rhs );
108999       return *this;
109000     }
109001 
109002 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT109003     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
109004     {
109005       pNext = pNext_;
109006       return *this;
109007     }
109008 
setUseMaxLevelIdcVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT109009     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionCreateInfoEXT & setUseMaxLevelIdc( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
109010     {
109011       useMaxLevelIdc = useMaxLevelIdc_;
109012       return *this;
109013     }
109014 
setMaxLevelIdcVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT109015     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionCreateInfoEXT & setMaxLevelIdc( StdVideoH265LevelIdc maxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
109016     {
109017       maxLevelIdc = maxLevelIdc_;
109018       return *this;
109019     }
109020 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
109021 
109022 
operator VkVideoEncodeH265SessionCreateInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT109023     operator VkVideoEncodeH265SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
109024     {
109025       return *reinterpret_cast<const VkVideoEncodeH265SessionCreateInfoEXT*>( this );
109026     }
109027 
operator VkVideoEncodeH265SessionCreateInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT109028     operator VkVideoEncodeH265SessionCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
109029     {
109030       return *reinterpret_cast<VkVideoEncodeH265SessionCreateInfoEXT*>( this );
109031     }
109032 
109033 #if defined( VULKAN_HPP_USE_REFLECT )
109034 #if 14 <= VULKAN_HPP_CPP_VERSION
109035     auto
109036 #else
109037     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, StdVideoH265LevelIdc const &>
109038 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT109039       reflect() const VULKAN_HPP_NOEXCEPT
109040     {
109041       return std::tie( sType, pNext, useMaxLevelIdc, maxLevelIdc );
109042     }
109043 #endif
109044 
109045 
109046 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT109047     std::strong_ordering operator<=>( VideoEncodeH265SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109048     {
109049       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
109050       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
109051       if ( auto cmp = useMaxLevelIdc <=> rhs.useMaxLevelIdc; cmp != 0 ) return cmp;
109052       if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ); cmp != 0 )
109053         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
109054 
109055       return std::strong_ordering::equivalent;
109056     }
109057 #endif
109058 
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT109059     bool operator==( VideoEncodeH265SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109060     {
109061       return ( sType == rhs.sType )
109062           && ( pNext == rhs.pNext )
109063           && ( useMaxLevelIdc == rhs.useMaxLevelIdc )
109064           && ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ) == 0 );
109065     }
109066 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT109067     bool operator!=( VideoEncodeH265SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109068     {
109069       return !operator==( rhs );
109070     }
109071 
109072     public:
109073     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionCreateInfoEXT;
109074     const void * pNext = {};
109075     VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc = {};
109076     StdVideoH265LevelIdc maxLevelIdc = {};
109077 
109078   };
109079 
109080   template <>
109081   struct CppType<StructureType, StructureType::eVideoEncodeH265SessionCreateInfoEXT>
109082   {
109083     using Type = VideoEncodeH265SessionCreateInfoEXT;
109084   };
109085 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
109086 
109087 #if defined( VK_ENABLE_BETA_EXTENSIONS )
109088   struct VideoEncodeH265SessionParametersAddInfoEXT
109089   {
109090     using NativeType = VkVideoEncodeH265SessionParametersAddInfoEXT;
109091 
109092     static const bool allowDuplicate = false;
109093     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionParametersAddInfoEXT;
109094 
109095 
109096 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265SessionParametersAddInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109097 VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersAddInfoEXT(uint32_t stdVPSCount_ = {}, const StdVideoH265VideoParameterSet * pStdVPSs_ = {}, uint32_t stdSPSCount_ = {}, const StdVideoH265SequenceParameterSet * pStdSPSs_ = {}, uint32_t stdPPSCount_ = {}, const StdVideoH265PictureParameterSet * pStdPPSs_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
109098     : pNext( pNext_ ), stdVPSCount( stdVPSCount_ ), pStdVPSs( pStdVPSs_ ), stdSPSCount( stdSPSCount_ ), pStdSPSs( pStdSPSs_ ), stdPPSCount( stdPPSCount_ ), pStdPPSs( pStdPPSs_ )
109099     {}
109100 
109101     VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersAddInfoEXT( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109102 
VideoEncodeH265SessionParametersAddInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109103     VideoEncodeH265SessionParametersAddInfoEXT( VkVideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
109104       : VideoEncodeH265SessionParametersAddInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersAddInfoEXT const *>( &rhs ) )
109105     {}
109106 
109107 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeH265SessionParametersAddInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109108     VideoEncodeH265SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & stdVPSs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & stdPPSs_ = {}, const void * pNext_ = nullptr )
109109     : pNext( pNext_ ), stdVPSCount( static_cast<uint32_t>( stdVPSs_.size() ) ), pStdVPSs( stdVPSs_.data() ), stdSPSCount( static_cast<uint32_t>( stdSPSs_.size() ) ), pStdSPSs( stdSPSs_.data() ), stdPPSCount( static_cast<uint32_t>( stdPPSs_.size() ) ), pStdPPSs( stdPPSs_.data() )
109110     {}
109111 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
109112 
109113 
109114     VideoEncodeH265SessionParametersAddInfoEXT & operator=( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109115 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
109116 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109117     VideoEncodeH265SessionParametersAddInfoEXT & operator=( VkVideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
109118     {
109119       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT const *>( &rhs );
109120       return *this;
109121     }
109122 
109123 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109124     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
109125     {
109126       pNext = pNext_;
109127       return *this;
109128     }
109129 
setStdVPSCountVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109130     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setStdVPSCount( uint32_t stdVPSCount_ ) VULKAN_HPP_NOEXCEPT
109131     {
109132       stdVPSCount = stdVPSCount_;
109133       return *this;
109134     }
109135 
setPStdVPSsVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109136     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPStdVPSs( const StdVideoH265VideoParameterSet * pStdVPSs_ ) VULKAN_HPP_NOEXCEPT
109137     {
109138       pStdVPSs = pStdVPSs_;
109139       return *this;
109140     }
109141 
109142 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStdVPSsVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109143     VideoEncodeH265SessionParametersAddInfoEXT & setStdVPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & stdVPSs_ ) VULKAN_HPP_NOEXCEPT
109144     {
109145       stdVPSCount = static_cast<uint32_t>( stdVPSs_.size() );
109146       pStdVPSs = stdVPSs_.data();
109147       return *this;
109148     }
109149 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
109150 
setStdSPSCountVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109151     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
109152     {
109153       stdSPSCount = stdSPSCount_;
109154       return *this;
109155     }
109156 
setPStdSPSsVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109157     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPStdSPSs( const StdVideoH265SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
109158     {
109159       pStdSPSs = pStdSPSs_;
109160       return *this;
109161     }
109162 
109163 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStdSPSsVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109164     VideoEncodeH265SessionParametersAddInfoEXT & setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
109165     {
109166       stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
109167       pStdSPSs = stdSPSs_.data();
109168       return *this;
109169     }
109170 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
109171 
setStdPPSCountVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109172     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
109173     {
109174       stdPPSCount = stdPPSCount_;
109175       return *this;
109176     }
109177 
setPStdPPSsVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109178     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPStdPPSs( const StdVideoH265PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
109179     {
109180       pStdPPSs = pStdPPSs_;
109181       return *this;
109182     }
109183 
109184 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setStdPPSsVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109185     VideoEncodeH265SessionParametersAddInfoEXT & setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
109186     {
109187       stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
109188       pStdPPSs = stdPPSs_.data();
109189       return *this;
109190     }
109191 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
109192 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
109193 
109194 
operator VkVideoEncodeH265SessionParametersAddInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109195     operator VkVideoEncodeH265SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
109196     {
109197       return *reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT*>( this );
109198     }
109199 
operator VkVideoEncodeH265SessionParametersAddInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109200     operator VkVideoEncodeH265SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
109201     {
109202       return *reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoEXT*>( this );
109203     }
109204 
109205 #if defined( VULKAN_HPP_USE_REFLECT )
109206 #if 14 <= VULKAN_HPP_CPP_VERSION
109207     auto
109208 #else
109209     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const StdVideoH265VideoParameterSet * const &, uint32_t const &, const StdVideoH265SequenceParameterSet * const &, uint32_t const &, const StdVideoH265PictureParameterSet * const &>
109210 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109211       reflect() const VULKAN_HPP_NOEXCEPT
109212     {
109213       return std::tie( sType, pNext, stdVPSCount, pStdVPSs, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
109214     }
109215 #endif
109216 
109217 
109218 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
109219 auto operator<=>( VideoEncodeH265SessionParametersAddInfoEXT const & ) const = default;
109220 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109221     bool operator==( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109222     {
109223 #if defined( VULKAN_HPP_USE_REFLECT )
109224       return this->reflect() == rhs.reflect();
109225 #else
109226       return ( sType == rhs.sType )
109227           && ( pNext == rhs.pNext )
109228           && ( stdVPSCount == rhs.stdVPSCount )
109229           && ( pStdVPSs == rhs.pStdVPSs )
109230           && ( stdSPSCount == rhs.stdSPSCount )
109231           && ( pStdSPSs == rhs.pStdSPSs )
109232           && ( stdPPSCount == rhs.stdPPSCount )
109233           && ( pStdPPSs == rhs.pStdPPSs );
109234 #endif
109235     }
109236 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT109237     bool operator!=( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109238     {
109239       return !operator==( rhs );
109240     }
109241 #endif
109242 
109243     public:
109244     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionParametersAddInfoEXT;
109245     const void * pNext = {};
109246     uint32_t stdVPSCount = {};
109247     const StdVideoH265VideoParameterSet * pStdVPSs = {};
109248     uint32_t stdSPSCount = {};
109249     const StdVideoH265SequenceParameterSet * pStdSPSs = {};
109250     uint32_t stdPPSCount = {};
109251     const StdVideoH265PictureParameterSet * pStdPPSs = {};
109252 
109253   };
109254 
109255   template <>
109256   struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersAddInfoEXT>
109257   {
109258     using Type = VideoEncodeH265SessionParametersAddInfoEXT;
109259   };
109260 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
109261 
109262 #if defined( VK_ENABLE_BETA_EXTENSIONS )
109263   struct VideoEncodeH265SessionParametersCreateInfoEXT
109264   {
109265     using NativeType = VkVideoEncodeH265SessionParametersCreateInfoEXT;
109266 
109267     static const bool allowDuplicate = false;
109268     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT;
109269 
109270 
109271 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265SessionParametersCreateInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109272 VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersCreateInfoEXT(uint32_t maxStdVPSCount_ = {}, uint32_t maxStdSPSCount_ = {}, uint32_t maxStdPPSCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
109273     : pNext( pNext_ ), maxStdVPSCount( maxStdVPSCount_ ), maxStdSPSCount( maxStdSPSCount_ ), maxStdPPSCount( maxStdPPSCount_ ), pParametersAddInfo( pParametersAddInfo_ )
109274     {}
109275 
109276     VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersCreateInfoEXT( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109277 
VideoEncodeH265SessionParametersCreateInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109278     VideoEncodeH265SessionParametersCreateInfoEXT( VkVideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
109279       : VideoEncodeH265SessionParametersCreateInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersCreateInfoEXT const *>( &rhs ) )
109280     {}
109281 
109282 
109283     VideoEncodeH265SessionParametersCreateInfoEXT & operator=( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109284 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
109285 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109286     VideoEncodeH265SessionParametersCreateInfoEXT & operator=( VkVideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
109287     {
109288       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT const *>( &rhs );
109289       return *this;
109290     }
109291 
109292 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109293     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
109294     {
109295       pNext = pNext_;
109296       return *this;
109297     }
109298 
setMaxStdVPSCountVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109299     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxStdVPSCount( uint32_t maxStdVPSCount_ ) VULKAN_HPP_NOEXCEPT
109300     {
109301       maxStdVPSCount = maxStdVPSCount_;
109302       return *this;
109303     }
109304 
setMaxStdSPSCountVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109305     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
109306     {
109307       maxStdSPSCount = maxStdSPSCount_;
109308       return *this;
109309     }
109310 
setMaxStdPPSCountVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109311     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
109312     {
109313       maxStdPPSCount = maxStdPPSCount_;
109314       return *this;
109315     }
109316 
setPParametersAddInfoVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109317     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
109318     {
109319       pParametersAddInfo = pParametersAddInfo_;
109320       return *this;
109321     }
109322 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
109323 
109324 
operator VkVideoEncodeH265SessionParametersCreateInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109325     operator VkVideoEncodeH265SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
109326     {
109327       return *reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT*>( this );
109328     }
109329 
operator VkVideoEncodeH265SessionParametersCreateInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109330     operator VkVideoEncodeH265SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
109331     {
109332       return *reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT*>( this );
109333     }
109334 
109335 #if defined( VULKAN_HPP_USE_REFLECT )
109336 #if 14 <= VULKAN_HPP_CPP_VERSION
109337     auto
109338 #else
109339     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * const &>
109340 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109341       reflect() const VULKAN_HPP_NOEXCEPT
109342     {
109343       return std::tie( sType, pNext, maxStdVPSCount, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
109344     }
109345 #endif
109346 
109347 
109348 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
109349 auto operator<=>( VideoEncodeH265SessionParametersCreateInfoEXT const & ) const = default;
109350 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109351     bool operator==( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109352     {
109353 #if defined( VULKAN_HPP_USE_REFLECT )
109354       return this->reflect() == rhs.reflect();
109355 #else
109356       return ( sType == rhs.sType )
109357           && ( pNext == rhs.pNext )
109358           && ( maxStdVPSCount == rhs.maxStdVPSCount )
109359           && ( maxStdSPSCount == rhs.maxStdSPSCount )
109360           && ( maxStdPPSCount == rhs.maxStdPPSCount )
109361           && ( pParametersAddInfo == rhs.pParametersAddInfo );
109362 #endif
109363     }
109364 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT109365     bool operator!=( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109366     {
109367       return !operator==( rhs );
109368     }
109369 #endif
109370 
109371     public:
109372     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT;
109373     const void * pNext = {};
109374     uint32_t maxStdVPSCount = {};
109375     uint32_t maxStdSPSCount = {};
109376     uint32_t maxStdPPSCount = {};
109377     const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo = {};
109378 
109379   };
109380 
109381   template <>
109382   struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT>
109383   {
109384     using Type = VideoEncodeH265SessionParametersCreateInfoEXT;
109385   };
109386 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
109387 
109388 #if defined( VK_ENABLE_BETA_EXTENSIONS )
109389   struct VideoEncodeH265SessionParametersFeedbackInfoEXT
109390   {
109391     using NativeType = VkVideoEncodeH265SessionParametersFeedbackInfoEXT;
109392 
109393     static const bool allowDuplicate = false;
109394     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionParametersFeedbackInfoEXT;
109395 
109396 
109397 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265SessionParametersFeedbackInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoEXT109398 VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersFeedbackInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 hasStdVPSOverrides_ = {}, VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides_ = {}, VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
109399     : pNext( pNext_ ), hasStdVPSOverrides( hasStdVPSOverrides_ ), hasStdSPSOverrides( hasStdSPSOverrides_ ), hasStdPPSOverrides( hasStdPPSOverrides_ )
109400     {}
109401 
109402     VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersFeedbackInfoEXT( VideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109403 
VideoEncodeH265SessionParametersFeedbackInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoEXT109404     VideoEncodeH265SessionParametersFeedbackInfoEXT( VkVideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
109405       : VideoEncodeH265SessionParametersFeedbackInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersFeedbackInfoEXT const *>( &rhs ) )
109406     {}
109407 
109408 
109409     VideoEncodeH265SessionParametersFeedbackInfoEXT & operator=( VideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109410 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
109411 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoEXT109412     VideoEncodeH265SessionParametersFeedbackInfoEXT & operator=( VkVideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
109413     {
109414       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoEXT const *>( &rhs );
109415       return *this;
109416     }
109417 
109418 
operator VkVideoEncodeH265SessionParametersFeedbackInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoEXT109419     operator VkVideoEncodeH265SessionParametersFeedbackInfoEXT const &() const VULKAN_HPP_NOEXCEPT
109420     {
109421       return *reinterpret_cast<const VkVideoEncodeH265SessionParametersFeedbackInfoEXT*>( this );
109422     }
109423 
operator VkVideoEncodeH265SessionParametersFeedbackInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoEXT109424     operator VkVideoEncodeH265SessionParametersFeedbackInfoEXT &() VULKAN_HPP_NOEXCEPT
109425     {
109426       return *reinterpret_cast<VkVideoEncodeH265SessionParametersFeedbackInfoEXT*>( this );
109427     }
109428 
109429 #if defined( VULKAN_HPP_USE_REFLECT )
109430 #if 14 <= VULKAN_HPP_CPP_VERSION
109431     auto
109432 #else
109433     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
109434 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoEXT109435       reflect() const VULKAN_HPP_NOEXCEPT
109436     {
109437       return std::tie( sType, pNext, hasStdVPSOverrides, hasStdSPSOverrides, hasStdPPSOverrides );
109438     }
109439 #endif
109440 
109441 
109442 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
109443 auto operator<=>( VideoEncodeH265SessionParametersFeedbackInfoEXT const & ) const = default;
109444 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoEXT109445     bool operator==( VideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109446     {
109447 #if defined( VULKAN_HPP_USE_REFLECT )
109448       return this->reflect() == rhs.reflect();
109449 #else
109450       return ( sType == rhs.sType )
109451           && ( pNext == rhs.pNext )
109452           && ( hasStdVPSOverrides == rhs.hasStdVPSOverrides )
109453           && ( hasStdSPSOverrides == rhs.hasStdSPSOverrides )
109454           && ( hasStdPPSOverrides == rhs.hasStdPPSOverrides );
109455 #endif
109456     }
109457 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoEXT109458     bool operator!=( VideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109459     {
109460       return !operator==( rhs );
109461     }
109462 #endif
109463 
109464     public:
109465     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionParametersFeedbackInfoEXT;
109466     void * pNext = {};
109467     VULKAN_HPP_NAMESPACE::Bool32 hasStdVPSOverrides = {};
109468     VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides = {};
109469     VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides = {};
109470 
109471   };
109472 
109473   template <>
109474   struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersFeedbackInfoEXT>
109475   {
109476     using Type = VideoEncodeH265SessionParametersFeedbackInfoEXT;
109477   };
109478 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
109479 
109480 #if defined( VK_ENABLE_BETA_EXTENSIONS )
109481   struct VideoEncodeH265SessionParametersGetInfoEXT
109482   {
109483     using NativeType = VkVideoEncodeH265SessionParametersGetInfoEXT;
109484 
109485     static const bool allowDuplicate = false;
109486     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionParametersGetInfoEXT;
109487 
109488 
109489 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeH265SessionParametersGetInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109490 VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersGetInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 writeStdVPS_ = {}, VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ = {}, VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ = {}, uint32_t stdVPSId_ = {}, uint32_t stdSPSId_ = {}, uint32_t stdPPSId_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
109491     : pNext( pNext_ ), writeStdVPS( writeStdVPS_ ), writeStdSPS( writeStdSPS_ ), writeStdPPS( writeStdPPS_ ), stdVPSId( stdVPSId_ ), stdSPSId( stdSPSId_ ), stdPPSId( stdPPSId_ )
109492     {}
109493 
109494     VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersGetInfoEXT( VideoEncodeH265SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109495 
VideoEncodeH265SessionParametersGetInfoEXTVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109496     VideoEncodeH265SessionParametersGetInfoEXT( VkVideoEncodeH265SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
109497       : VideoEncodeH265SessionParametersGetInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersGetInfoEXT const *>( &rhs ) )
109498     {}
109499 
109500 
109501     VideoEncodeH265SessionParametersGetInfoEXT & operator=( VideoEncodeH265SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109502 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
109503 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109504     VideoEncodeH265SessionParametersGetInfoEXT & operator=( VkVideoEncodeH265SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
109505     {
109506       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT const *>( &rhs );
109507       return *this;
109508     }
109509 
109510 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109511     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
109512     {
109513       pNext = pNext_;
109514       return *this;
109515     }
109516 
setWriteStdVPSVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109517     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setWriteStdVPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdVPS_ ) VULKAN_HPP_NOEXCEPT
109518     {
109519       writeStdVPS = writeStdVPS_;
109520       return *this;
109521     }
109522 
setWriteStdSPSVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109523     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setWriteStdSPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ ) VULKAN_HPP_NOEXCEPT
109524     {
109525       writeStdSPS = writeStdSPS_;
109526       return *this;
109527     }
109528 
setWriteStdPPSVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109529     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setWriteStdPPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ ) VULKAN_HPP_NOEXCEPT
109530     {
109531       writeStdPPS = writeStdPPS_;
109532       return *this;
109533     }
109534 
setStdVPSIdVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109535     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setStdVPSId( uint32_t stdVPSId_ ) VULKAN_HPP_NOEXCEPT
109536     {
109537       stdVPSId = stdVPSId_;
109538       return *this;
109539     }
109540 
setStdSPSIdVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109541     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setStdSPSId( uint32_t stdSPSId_ ) VULKAN_HPP_NOEXCEPT
109542     {
109543       stdSPSId = stdSPSId_;
109544       return *this;
109545     }
109546 
setStdPPSIdVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109547     VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setStdPPSId( uint32_t stdPPSId_ ) VULKAN_HPP_NOEXCEPT
109548     {
109549       stdPPSId = stdPPSId_;
109550       return *this;
109551     }
109552 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
109553 
109554 
operator VkVideoEncodeH265SessionParametersGetInfoEXT const&VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109555     operator VkVideoEncodeH265SessionParametersGetInfoEXT const &() const VULKAN_HPP_NOEXCEPT
109556     {
109557       return *reinterpret_cast<const VkVideoEncodeH265SessionParametersGetInfoEXT*>( this );
109558     }
109559 
operator VkVideoEncodeH265SessionParametersGetInfoEXT&VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109560     operator VkVideoEncodeH265SessionParametersGetInfoEXT &() VULKAN_HPP_NOEXCEPT
109561     {
109562       return *reinterpret_cast<VkVideoEncodeH265SessionParametersGetInfoEXT*>( this );
109563     }
109564 
109565 #if defined( VULKAN_HPP_USE_REFLECT )
109566 #if 14 <= VULKAN_HPP_CPP_VERSION
109567     auto
109568 #else
109569     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &, uint32_t const &, uint32_t const &, uint32_t const &>
109570 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109571       reflect() const VULKAN_HPP_NOEXCEPT
109572     {
109573       return std::tie( sType, pNext, writeStdVPS, writeStdSPS, writeStdPPS, stdVPSId, stdSPSId, stdPPSId );
109574     }
109575 #endif
109576 
109577 
109578 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
109579 auto operator<=>( VideoEncodeH265SessionParametersGetInfoEXT const & ) const = default;
109580 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109581     bool operator==( VideoEncodeH265SessionParametersGetInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109582     {
109583 #if defined( VULKAN_HPP_USE_REFLECT )
109584       return this->reflect() == rhs.reflect();
109585 #else
109586       return ( sType == rhs.sType )
109587           && ( pNext == rhs.pNext )
109588           && ( writeStdVPS == rhs.writeStdVPS )
109589           && ( writeStdSPS == rhs.writeStdSPS )
109590           && ( writeStdPPS == rhs.writeStdPPS )
109591           && ( stdVPSId == rhs.stdVPSId )
109592           && ( stdSPSId == rhs.stdSPSId )
109593           && ( stdPPSId == rhs.stdPPSId );
109594 #endif
109595     }
109596 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT109597     bool operator!=( VideoEncodeH265SessionParametersGetInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
109598     {
109599       return !operator==( rhs );
109600     }
109601 #endif
109602 
109603     public:
109604     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionParametersGetInfoEXT;
109605     const void * pNext = {};
109606     VULKAN_HPP_NAMESPACE::Bool32 writeStdVPS = {};
109607     VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS = {};
109608     VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS = {};
109609     uint32_t stdVPSId = {};
109610     uint32_t stdSPSId = {};
109611     uint32_t stdPPSId = {};
109612 
109613   };
109614 
109615   template <>
109616   struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersGetInfoEXT>
109617   {
109618     using Type = VideoEncodeH265SessionParametersGetInfoEXT;
109619   };
109620 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
109621 
109622 #if defined( VK_ENABLE_BETA_EXTENSIONS )
109623   struct VideoEncodeInfoKHR
109624   {
109625     using NativeType = VkVideoEncodeInfoKHR;
109626 
109627     static const bool allowDuplicate = false;
109628     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeInfoKHR;
109629 
109630 
109631 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109632 VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR(VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstBufferOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstBufferRange_ = {}, VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR srcPictureResource_ = {}, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ = {}, uint32_t referenceSlotCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {}, uint32_t precedingExternallyEncodedBytes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
109633     : pNext( pNext_ ), flags( flags_ ), dstBuffer( dstBuffer_ ), dstBufferOffset( dstBufferOffset_ ), dstBufferRange( dstBufferRange_ ), srcPictureResource( srcPictureResource_ ), pSetupReferenceSlot( pSetupReferenceSlot_ ), referenceSlotCount( referenceSlotCount_ ), pReferenceSlots( pReferenceSlots_ ), precedingExternallyEncodedBytes( precedingExternallyEncodedBytes_ )
109634     {}
109635 
109636     VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR( VideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109637 
VideoEncodeInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109638     VideoEncodeInfoKHR( VkVideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
109639       : VideoEncodeInfoKHR( *reinterpret_cast<VideoEncodeInfoKHR const *>( &rhs ) )
109640     {}
109641 
109642 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109643     VideoEncodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::DeviceSize dstBufferOffset_, VULKAN_HPP_NAMESPACE::DeviceSize dstBufferRange_, VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR srcPictureResource_, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_, uint32_t precedingExternallyEncodedBytes_ = {}, const void * pNext_ = nullptr )
109644     : pNext( pNext_ ), flags( flags_ ), dstBuffer( dstBuffer_ ), dstBufferOffset( dstBufferOffset_ ), dstBufferRange( dstBufferRange_ ), srcPictureResource( srcPictureResource_ ), pSetupReferenceSlot( pSetupReferenceSlot_ ), referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) ), pReferenceSlots( referenceSlots_.data() ), precedingExternallyEncodedBytes( precedingExternallyEncodedBytes_ )
109645     {}
109646 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
109647 
109648 
109649     VideoEncodeInfoKHR & operator=( VideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109650 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
109651 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109652     VideoEncodeInfoKHR & operator=( VkVideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
109653     {
109654       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR const *>( &rhs );
109655       return *this;
109656     }
109657 
109658 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109659     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
109660     {
109661       pNext = pNext_;
109662       return *this;
109663     }
109664 
setFlagsVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109665     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
109666     {
109667       flags = flags_;
109668       return *this;
109669     }
109670 
setDstBufferVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109671     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
109672     {
109673       dstBuffer = dstBuffer_;
109674       return *this;
109675     }
109676 
setDstBufferOffsetVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109677     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstBufferOffset_ ) VULKAN_HPP_NOEXCEPT
109678     {
109679       dstBufferOffset = dstBufferOffset_;
109680       return *this;
109681     }
109682 
setDstBufferRangeVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109683     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBufferRange( VULKAN_HPP_NAMESPACE::DeviceSize dstBufferRange_ ) VULKAN_HPP_NOEXCEPT
109684     {
109685       dstBufferRange = dstBufferRange_;
109686       return *this;
109687     }
109688 
setSrcPictureResourceVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109689     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setSrcPictureResource( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & srcPictureResource_ ) VULKAN_HPP_NOEXCEPT
109690     {
109691       srcPictureResource = srcPictureResource_;
109692       return *this;
109693     }
109694 
setPSetupReferenceSlotVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109695     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setPSetupReferenceSlot( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT
109696     {
109697       pSetupReferenceSlot = pSetupReferenceSlot_;
109698       return *this;
109699     }
109700 
setReferenceSlotCountVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109701     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT
109702     {
109703       referenceSlotCount = referenceSlotCount_;
109704       return *this;
109705     }
109706 
setPReferenceSlotsVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109707     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
109708     {
109709       pReferenceSlots = pReferenceSlots_;
109710       return *this;
109711     }
109712 
109713 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setReferenceSlotsVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109714     VideoEncodeInfoKHR & setReferenceSlots( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
109715     {
109716       referenceSlotCount = static_cast<uint32_t>( referenceSlots_.size() );
109717       pReferenceSlots = referenceSlots_.data();
109718       return *this;
109719     }
109720 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
109721 
setPrecedingExternallyEncodedBytesVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109722     VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setPrecedingExternallyEncodedBytes( uint32_t precedingExternallyEncodedBytes_ ) VULKAN_HPP_NOEXCEPT
109723     {
109724       precedingExternallyEncodedBytes = precedingExternallyEncodedBytes_;
109725       return *this;
109726     }
109727 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
109728 
109729 
operator VkVideoEncodeInfoKHR const&VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109730     operator VkVideoEncodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
109731     {
109732       return *reinterpret_cast<const VkVideoEncodeInfoKHR*>( this );
109733     }
109734 
operator VkVideoEncodeInfoKHR&VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109735     operator VkVideoEncodeInfoKHR &() VULKAN_HPP_NOEXCEPT
109736     {
109737       return *reinterpret_cast<VkVideoEncodeInfoKHR*>( this );
109738     }
109739 
109740 #if defined( VULKAN_HPP_USE_REFLECT )
109741 #if 14 <= VULKAN_HPP_CPP_VERSION
109742     auto
109743 #else
109744     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR const &, VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const &, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &, uint32_t const &>
109745 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109746       reflect() const VULKAN_HPP_NOEXCEPT
109747     {
109748       return std::tie( sType, pNext, flags, dstBuffer, dstBufferOffset, dstBufferRange, srcPictureResource, pSetupReferenceSlot, referenceSlotCount, pReferenceSlots, precedingExternallyEncodedBytes );
109749     }
109750 #endif
109751 
109752 
109753 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
109754 auto operator<=>( VideoEncodeInfoKHR const & ) const = default;
109755 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109756     bool operator==( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
109757     {
109758 #if defined( VULKAN_HPP_USE_REFLECT )
109759       return this->reflect() == rhs.reflect();
109760 #else
109761       return ( sType == rhs.sType )
109762           && ( pNext == rhs.pNext )
109763           && ( flags == rhs.flags )
109764           && ( dstBuffer == rhs.dstBuffer )
109765           && ( dstBufferOffset == rhs.dstBufferOffset )
109766           && ( dstBufferRange == rhs.dstBufferRange )
109767           && ( srcPictureResource == rhs.srcPictureResource )
109768           && ( pSetupReferenceSlot == rhs.pSetupReferenceSlot )
109769           && ( referenceSlotCount == rhs.referenceSlotCount )
109770           && ( pReferenceSlots == rhs.pReferenceSlots )
109771           && ( precedingExternallyEncodedBytes == rhs.precedingExternallyEncodedBytes );
109772 #endif
109773     }
109774 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR109775     bool operator!=( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
109776     {
109777       return !operator==( rhs );
109778     }
109779 #endif
109780 
109781     public:
109782     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeInfoKHR;
109783     const void * pNext = {};
109784     VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags = {};
109785     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
109786     VULKAN_HPP_NAMESPACE::DeviceSize dstBufferOffset = {};
109787     VULKAN_HPP_NAMESPACE::DeviceSize dstBufferRange = {};
109788     VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR srcPictureResource = {};
109789     const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot = {};
109790     uint32_t referenceSlotCount = {};
109791     const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots = {};
109792     uint32_t precedingExternallyEncodedBytes = {};
109793 
109794   };
109795 
109796   template <>
109797   struct CppType<StructureType, StructureType::eVideoEncodeInfoKHR>
109798   {
109799     using Type = VideoEncodeInfoKHR;
109800   };
109801 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
109802 
109803 #if defined( VK_ENABLE_BETA_EXTENSIONS )
109804   struct VideoEncodeQualityLevelInfoKHR
109805   {
109806     using NativeType = VkVideoEncodeQualityLevelInfoKHR;
109807 
109808     static const bool allowDuplicate = false;
109809     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeQualityLevelInfoKHR;
109810 
109811 
109812 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeQualityLevelInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR109813 VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelInfoKHR(uint32_t qualityLevel_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
109814     : pNext( pNext_ ), qualityLevel( qualityLevel_ )
109815     {}
109816 
109817     VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelInfoKHR( VideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109818 
VideoEncodeQualityLevelInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR109819     VideoEncodeQualityLevelInfoKHR( VkVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
109820       : VideoEncodeQualityLevelInfoKHR( *reinterpret_cast<VideoEncodeQualityLevelInfoKHR const *>( &rhs ) )
109821     {}
109822 
109823 
109824     VideoEncodeQualityLevelInfoKHR & operator=( VideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109825 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
109826 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR109827     VideoEncodeQualityLevelInfoKHR & operator=( VkVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
109828     {
109829       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR const *>( &rhs );
109830       return *this;
109831     }
109832 
109833 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR109834     VULKAN_HPP_CONSTEXPR_14 VideoEncodeQualityLevelInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
109835     {
109836       pNext = pNext_;
109837       return *this;
109838     }
109839 
setQualityLevelVULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR109840     VULKAN_HPP_CONSTEXPR_14 VideoEncodeQualityLevelInfoKHR & setQualityLevel( uint32_t qualityLevel_ ) VULKAN_HPP_NOEXCEPT
109841     {
109842       qualityLevel = qualityLevel_;
109843       return *this;
109844     }
109845 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
109846 
109847 
operator VkVideoEncodeQualityLevelInfoKHR const&VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR109848     operator VkVideoEncodeQualityLevelInfoKHR const &() const VULKAN_HPP_NOEXCEPT
109849     {
109850       return *reinterpret_cast<const VkVideoEncodeQualityLevelInfoKHR*>( this );
109851     }
109852 
operator VkVideoEncodeQualityLevelInfoKHR&VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR109853     operator VkVideoEncodeQualityLevelInfoKHR &() VULKAN_HPP_NOEXCEPT
109854     {
109855       return *reinterpret_cast<VkVideoEncodeQualityLevelInfoKHR*>( this );
109856     }
109857 
109858 #if defined( VULKAN_HPP_USE_REFLECT )
109859 #if 14 <= VULKAN_HPP_CPP_VERSION
109860     auto
109861 #else
109862     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
109863 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR109864       reflect() const VULKAN_HPP_NOEXCEPT
109865     {
109866       return std::tie( sType, pNext, qualityLevel );
109867     }
109868 #endif
109869 
109870 
109871 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
109872 auto operator<=>( VideoEncodeQualityLevelInfoKHR const & ) const = default;
109873 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR109874     bool operator==( VideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
109875     {
109876 #if defined( VULKAN_HPP_USE_REFLECT )
109877       return this->reflect() == rhs.reflect();
109878 #else
109879       return ( sType == rhs.sType )
109880           && ( pNext == rhs.pNext )
109881           && ( qualityLevel == rhs.qualityLevel );
109882 #endif
109883     }
109884 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR109885     bool operator!=( VideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
109886     {
109887       return !operator==( rhs );
109888     }
109889 #endif
109890 
109891     public:
109892     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeQualityLevelInfoKHR;
109893     const void * pNext = {};
109894     uint32_t qualityLevel = {};
109895 
109896   };
109897 
109898   template <>
109899   struct CppType<StructureType, StructureType::eVideoEncodeQualityLevelInfoKHR>
109900   {
109901     using Type = VideoEncodeQualityLevelInfoKHR;
109902   };
109903 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
109904 
109905 #if defined( VK_ENABLE_BETA_EXTENSIONS )
109906   struct VideoEncodeQualityLevelPropertiesKHR
109907   {
109908     using NativeType = VkVideoEncodeQualityLevelPropertiesKHR;
109909 
109910     static const bool allowDuplicate = false;
109911     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeQualityLevelPropertiesKHR;
109912 
109913 
109914 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeQualityLevelPropertiesKHRVULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR109915 VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelPropertiesKHR(VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode_ = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault, uint32_t preferredRateControlLayerCount_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
109916     : pNext( pNext_ ), preferredRateControlMode( preferredRateControlMode_ ), preferredRateControlLayerCount( preferredRateControlLayerCount_ )
109917     {}
109918 
109919     VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelPropertiesKHR( VideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109920 
VideoEncodeQualityLevelPropertiesKHRVULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR109921     VideoEncodeQualityLevelPropertiesKHR( VkVideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
109922       : VideoEncodeQualityLevelPropertiesKHR( *reinterpret_cast<VideoEncodeQualityLevelPropertiesKHR const *>( &rhs ) )
109923     {}
109924 
109925 
109926     VideoEncodeQualityLevelPropertiesKHR & operator=( VideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
109927 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
109928 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR109929     VideoEncodeQualityLevelPropertiesKHR & operator=( VkVideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
109930     {
109931       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR const *>( &rhs );
109932       return *this;
109933     }
109934 
109935 
operator VkVideoEncodeQualityLevelPropertiesKHR const&VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR109936     operator VkVideoEncodeQualityLevelPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
109937     {
109938       return *reinterpret_cast<const VkVideoEncodeQualityLevelPropertiesKHR*>( this );
109939     }
109940 
operator VkVideoEncodeQualityLevelPropertiesKHR&VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR109941     operator VkVideoEncodeQualityLevelPropertiesKHR &() VULKAN_HPP_NOEXCEPT
109942     {
109943       return *reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR*>( this );
109944     }
109945 
109946 #if defined( VULKAN_HPP_USE_REFLECT )
109947 #if 14 <= VULKAN_HPP_CPP_VERSION
109948     auto
109949 #else
109950     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR const &, uint32_t const &>
109951 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR109952       reflect() const VULKAN_HPP_NOEXCEPT
109953     {
109954       return std::tie( sType, pNext, preferredRateControlMode, preferredRateControlLayerCount );
109955     }
109956 #endif
109957 
109958 
109959 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
109960 auto operator<=>( VideoEncodeQualityLevelPropertiesKHR const & ) const = default;
109961 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR109962     bool operator==( VideoEncodeQualityLevelPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
109963     {
109964 #if defined( VULKAN_HPP_USE_REFLECT )
109965       return this->reflect() == rhs.reflect();
109966 #else
109967       return ( sType == rhs.sType )
109968           && ( pNext == rhs.pNext )
109969           && ( preferredRateControlMode == rhs.preferredRateControlMode )
109970           && ( preferredRateControlLayerCount == rhs.preferredRateControlLayerCount );
109971 #endif
109972     }
109973 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR109974     bool operator!=( VideoEncodeQualityLevelPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
109975     {
109976       return !operator==( rhs );
109977     }
109978 #endif
109979 
109980     public:
109981     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeQualityLevelPropertiesKHR;
109982     void * pNext = {};
109983     VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault;
109984     uint32_t preferredRateControlLayerCount = {};
109985 
109986   };
109987 
109988   template <>
109989   struct CppType<StructureType, StructureType::eVideoEncodeQualityLevelPropertiesKHR>
109990   {
109991     using Type = VideoEncodeQualityLevelPropertiesKHR;
109992   };
109993 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
109994 
109995 #if defined( VK_ENABLE_BETA_EXTENSIONS )
109996   struct VideoEncodeRateControlLayerInfoKHR
109997   {
109998     using NativeType = VkVideoEncodeRateControlLayerInfoKHR;
109999 
110000     static const bool allowDuplicate = false;
110001     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeRateControlLayerInfoKHR;
110002 
110003 
110004 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeRateControlLayerInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110005 VULKAN_HPP_CONSTEXPR VideoEncodeRateControlLayerInfoKHR(uint64_t averageBitrate_ = {}, uint64_t maxBitrate_ = {}, uint32_t frameRateNumerator_ = {}, uint32_t frameRateDenominator_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
110006     : pNext( pNext_ ), averageBitrate( averageBitrate_ ), maxBitrate( maxBitrate_ ), frameRateNumerator( frameRateNumerator_ ), frameRateDenominator( frameRateDenominator_ )
110007     {}
110008 
110009     VULKAN_HPP_CONSTEXPR VideoEncodeRateControlLayerInfoKHR( VideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110010 
VideoEncodeRateControlLayerInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110011     VideoEncodeRateControlLayerInfoKHR( VkVideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110012       : VideoEncodeRateControlLayerInfoKHR( *reinterpret_cast<VideoEncodeRateControlLayerInfoKHR const *>( &rhs ) )
110013     {}
110014 
110015 
110016     VideoEncodeRateControlLayerInfoKHR & operator=( VideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110017 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
110018 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110019     VideoEncodeRateControlLayerInfoKHR & operator=( VkVideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110020     {
110021       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR const *>( &rhs );
110022       return *this;
110023     }
110024 
110025 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110026     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
110027     {
110028       pNext = pNext_;
110029       return *this;
110030     }
110031 
setAverageBitrateVULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110032     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setAverageBitrate( uint64_t averageBitrate_ ) VULKAN_HPP_NOEXCEPT
110033     {
110034       averageBitrate = averageBitrate_;
110035       return *this;
110036     }
110037 
setMaxBitrateVULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110038     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setMaxBitrate( uint64_t maxBitrate_ ) VULKAN_HPP_NOEXCEPT
110039     {
110040       maxBitrate = maxBitrate_;
110041       return *this;
110042     }
110043 
setFrameRateNumeratorVULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110044     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setFrameRateNumerator( uint32_t frameRateNumerator_ ) VULKAN_HPP_NOEXCEPT
110045     {
110046       frameRateNumerator = frameRateNumerator_;
110047       return *this;
110048     }
110049 
setFrameRateDenominatorVULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110050     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setFrameRateDenominator( uint32_t frameRateDenominator_ ) VULKAN_HPP_NOEXCEPT
110051     {
110052       frameRateDenominator = frameRateDenominator_;
110053       return *this;
110054     }
110055 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
110056 
110057 
operator VkVideoEncodeRateControlLayerInfoKHR const&VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110058     operator VkVideoEncodeRateControlLayerInfoKHR const &() const VULKAN_HPP_NOEXCEPT
110059     {
110060       return *reinterpret_cast<const VkVideoEncodeRateControlLayerInfoKHR*>( this );
110061     }
110062 
operator VkVideoEncodeRateControlLayerInfoKHR&VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110063     operator VkVideoEncodeRateControlLayerInfoKHR &() VULKAN_HPP_NOEXCEPT
110064     {
110065       return *reinterpret_cast<VkVideoEncodeRateControlLayerInfoKHR*>( this );
110066     }
110067 
110068 #if defined( VULKAN_HPP_USE_REFLECT )
110069 #if 14 <= VULKAN_HPP_CPP_VERSION
110070     auto
110071 #else
110072     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, uint64_t const &, uint32_t const &, uint32_t const &>
110073 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110074       reflect() const VULKAN_HPP_NOEXCEPT
110075     {
110076       return std::tie( sType, pNext, averageBitrate, maxBitrate, frameRateNumerator, frameRateDenominator );
110077     }
110078 #endif
110079 
110080 
110081 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
110082 auto operator<=>( VideoEncodeRateControlLayerInfoKHR const & ) const = default;
110083 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110084     bool operator==( VideoEncodeRateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110085     {
110086 #if defined( VULKAN_HPP_USE_REFLECT )
110087       return this->reflect() == rhs.reflect();
110088 #else
110089       return ( sType == rhs.sType )
110090           && ( pNext == rhs.pNext )
110091           && ( averageBitrate == rhs.averageBitrate )
110092           && ( maxBitrate == rhs.maxBitrate )
110093           && ( frameRateNumerator == rhs.frameRateNumerator )
110094           && ( frameRateDenominator == rhs.frameRateDenominator );
110095 #endif
110096     }
110097 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR110098     bool operator!=( VideoEncodeRateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110099     {
110100       return !operator==( rhs );
110101     }
110102 #endif
110103 
110104     public:
110105     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeRateControlLayerInfoKHR;
110106     const void * pNext = {};
110107     uint64_t averageBitrate = {};
110108     uint64_t maxBitrate = {};
110109     uint32_t frameRateNumerator = {};
110110     uint32_t frameRateDenominator = {};
110111 
110112   };
110113 
110114   template <>
110115   struct CppType<StructureType, StructureType::eVideoEncodeRateControlLayerInfoKHR>
110116   {
110117     using Type = VideoEncodeRateControlLayerInfoKHR;
110118   };
110119 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
110120 
110121 #if defined( VK_ENABLE_BETA_EXTENSIONS )
110122   struct VideoEncodeRateControlInfoKHR
110123   {
110124     using NativeType = VkVideoEncodeRateControlInfoKHR;
110125 
110126     static const bool allowDuplicate = false;
110127     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeRateControlInfoKHR;
110128 
110129 
110130 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeRateControlInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110131 VULKAN_HPP_CONSTEXPR VideoEncodeRateControlInfoKHR(VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault, uint32_t layerCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayers_ = {}, uint32_t virtualBufferSizeInMs_ = {}, uint32_t initialVirtualBufferSizeInMs_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
110132     : pNext( pNext_ ), flags( flags_ ), rateControlMode( rateControlMode_ ), layerCount( layerCount_ ), pLayers( pLayers_ ), virtualBufferSizeInMs( virtualBufferSizeInMs_ ), initialVirtualBufferSizeInMs( initialVirtualBufferSizeInMs_ )
110133     {}
110134 
110135     VULKAN_HPP_CONSTEXPR VideoEncodeRateControlInfoKHR( VideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110136 
VideoEncodeRateControlInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110137     VideoEncodeRateControlInfoKHR( VkVideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110138       : VideoEncodeRateControlInfoKHR( *reinterpret_cast<VideoEncodeRateControlInfoKHR const *>( &rhs ) )
110139     {}
110140 
110141 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoEncodeRateControlInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110142     VideoEncodeRateControlInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_, VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layers_, uint32_t virtualBufferSizeInMs_ = {}, uint32_t initialVirtualBufferSizeInMs_ = {}, const void * pNext_ = nullptr )
110143     : pNext( pNext_ ), flags( flags_ ), rateControlMode( rateControlMode_ ), layerCount( static_cast<uint32_t>( layers_.size() ) ), pLayers( layers_.data() ), virtualBufferSizeInMs( virtualBufferSizeInMs_ ), initialVirtualBufferSizeInMs( initialVirtualBufferSizeInMs_ )
110144     {}
110145 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
110146 
110147 
110148     VideoEncodeRateControlInfoKHR & operator=( VideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110149 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
110150 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110151     VideoEncodeRateControlInfoKHR & operator=( VkVideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110152     {
110153       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR const *>( &rhs );
110154       return *this;
110155     }
110156 
110157 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110158     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
110159     {
110160       pNext = pNext_;
110161       return *this;
110162     }
110163 
setFlagsVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110164     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
110165     {
110166       flags = flags_;
110167       return *this;
110168     }
110169 
setRateControlModeVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110170     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setRateControlMode( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ ) VULKAN_HPP_NOEXCEPT
110171     {
110172       rateControlMode = rateControlMode_;
110173       return *this;
110174     }
110175 
setLayerCountVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110176     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
110177     {
110178       layerCount = layerCount_;
110179       return *this;
110180     }
110181 
setPLayersVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110182     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setPLayers( const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayers_ ) VULKAN_HPP_NOEXCEPT
110183     {
110184       pLayers = pLayers_;
110185       return *this;
110186     }
110187 
110188 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setLayersVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110189     VideoEncodeRateControlInfoKHR & setLayers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layers_ ) VULKAN_HPP_NOEXCEPT
110190     {
110191       layerCount = static_cast<uint32_t>( layers_.size() );
110192       pLayers = layers_.data();
110193       return *this;
110194     }
110195 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
110196 
setVirtualBufferSizeInMsVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110197     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setVirtualBufferSizeInMs( uint32_t virtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
110198     {
110199       virtualBufferSizeInMs = virtualBufferSizeInMs_;
110200       return *this;
110201     }
110202 
setInitialVirtualBufferSizeInMsVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110203     VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setInitialVirtualBufferSizeInMs( uint32_t initialVirtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
110204     {
110205       initialVirtualBufferSizeInMs = initialVirtualBufferSizeInMs_;
110206       return *this;
110207     }
110208 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
110209 
110210 
operator VkVideoEncodeRateControlInfoKHR const&VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110211     operator VkVideoEncodeRateControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
110212     {
110213       return *reinterpret_cast<const VkVideoEncodeRateControlInfoKHR*>( this );
110214     }
110215 
operator VkVideoEncodeRateControlInfoKHR&VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110216     operator VkVideoEncodeRateControlInfoKHR &() VULKAN_HPP_NOEXCEPT
110217     {
110218       return *reinterpret_cast<VkVideoEncodeRateControlInfoKHR*>( this );
110219     }
110220 
110221 #if defined( VULKAN_HPP_USE_REFLECT )
110222 #if 14 <= VULKAN_HPP_CPP_VERSION
110223     auto
110224 #else
110225     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR const &, VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * const &, uint32_t const &, uint32_t const &>
110226 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110227       reflect() const VULKAN_HPP_NOEXCEPT
110228     {
110229       return std::tie( sType, pNext, flags, rateControlMode, layerCount, pLayers, virtualBufferSizeInMs, initialVirtualBufferSizeInMs );
110230     }
110231 #endif
110232 
110233 
110234 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
110235 auto operator<=>( VideoEncodeRateControlInfoKHR const & ) const = default;
110236 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110237     bool operator==( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110238     {
110239 #if defined( VULKAN_HPP_USE_REFLECT )
110240       return this->reflect() == rhs.reflect();
110241 #else
110242       return ( sType == rhs.sType )
110243           && ( pNext == rhs.pNext )
110244           && ( flags == rhs.flags )
110245           && ( rateControlMode == rhs.rateControlMode )
110246           && ( layerCount == rhs.layerCount )
110247           && ( pLayers == rhs.pLayers )
110248           && ( virtualBufferSizeInMs == rhs.virtualBufferSizeInMs )
110249           && ( initialVirtualBufferSizeInMs == rhs.initialVirtualBufferSizeInMs );
110250 #endif
110251     }
110252 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR110253     bool operator!=( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110254     {
110255       return !operator==( rhs );
110256     }
110257 #endif
110258 
110259     public:
110260     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeRateControlInfoKHR;
110261     const void * pNext = {};
110262     VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags = {};
110263     VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault;
110264     uint32_t layerCount = {};
110265     const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayers = {};
110266     uint32_t virtualBufferSizeInMs = {};
110267     uint32_t initialVirtualBufferSizeInMs = {};
110268 
110269   };
110270 
110271   template <>
110272   struct CppType<StructureType, StructureType::eVideoEncodeRateControlInfoKHR>
110273   {
110274     using Type = VideoEncodeRateControlInfoKHR;
110275   };
110276 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
110277 
110278 #if defined( VK_ENABLE_BETA_EXTENSIONS )
110279   struct VideoEncodeSessionParametersFeedbackInfoKHR
110280   {
110281     using NativeType = VkVideoEncodeSessionParametersFeedbackInfoKHR;
110282 
110283     static const bool allowDuplicate = false;
110284     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeSessionParametersFeedbackInfoKHR;
110285 
110286 
110287 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeSessionParametersFeedbackInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR110288 VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersFeedbackInfoKHR(VULKAN_HPP_NAMESPACE::Bool32 hasOverrides_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
110289     : pNext( pNext_ ), hasOverrides( hasOverrides_ )
110290     {}
110291 
110292     VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersFeedbackInfoKHR( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110293 
VideoEncodeSessionParametersFeedbackInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR110294     VideoEncodeSessionParametersFeedbackInfoKHR( VkVideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110295       : VideoEncodeSessionParametersFeedbackInfoKHR( *reinterpret_cast<VideoEncodeSessionParametersFeedbackInfoKHR const *>( &rhs ) )
110296     {}
110297 
110298 
110299     VideoEncodeSessionParametersFeedbackInfoKHR & operator=( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110300 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
110301 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR110302     VideoEncodeSessionParametersFeedbackInfoKHR & operator=( VkVideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110303     {
110304       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR const *>( &rhs );
110305       return *this;
110306     }
110307 
110308 
operator VkVideoEncodeSessionParametersFeedbackInfoKHR const&VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR110309     operator VkVideoEncodeSessionParametersFeedbackInfoKHR const &() const VULKAN_HPP_NOEXCEPT
110310     {
110311       return *reinterpret_cast<const VkVideoEncodeSessionParametersFeedbackInfoKHR*>( this );
110312     }
110313 
operator VkVideoEncodeSessionParametersFeedbackInfoKHR&VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR110314     operator VkVideoEncodeSessionParametersFeedbackInfoKHR &() VULKAN_HPP_NOEXCEPT
110315     {
110316       return *reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR*>( this );
110317     }
110318 
110319 #if defined( VULKAN_HPP_USE_REFLECT )
110320 #if 14 <= VULKAN_HPP_CPP_VERSION
110321     auto
110322 #else
110323     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
110324 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR110325       reflect() const VULKAN_HPP_NOEXCEPT
110326     {
110327       return std::tie( sType, pNext, hasOverrides );
110328     }
110329 #endif
110330 
110331 
110332 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
110333 auto operator<=>( VideoEncodeSessionParametersFeedbackInfoKHR const & ) const = default;
110334 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR110335     bool operator==( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110336     {
110337 #if defined( VULKAN_HPP_USE_REFLECT )
110338       return this->reflect() == rhs.reflect();
110339 #else
110340       return ( sType == rhs.sType )
110341           && ( pNext == rhs.pNext )
110342           && ( hasOverrides == rhs.hasOverrides );
110343 #endif
110344     }
110345 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR110346     bool operator!=( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110347     {
110348       return !operator==( rhs );
110349     }
110350 #endif
110351 
110352     public:
110353     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeSessionParametersFeedbackInfoKHR;
110354     void * pNext = {};
110355     VULKAN_HPP_NAMESPACE::Bool32 hasOverrides = {};
110356 
110357   };
110358 
110359   template <>
110360   struct CppType<StructureType, StructureType::eVideoEncodeSessionParametersFeedbackInfoKHR>
110361   {
110362     using Type = VideoEncodeSessionParametersFeedbackInfoKHR;
110363   };
110364 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
110365 
110366 #if defined( VK_ENABLE_BETA_EXTENSIONS )
110367   struct VideoEncodeSessionParametersGetInfoKHR
110368   {
110369     using NativeType = VkVideoEncodeSessionParametersGetInfoKHR;
110370 
110371     static const bool allowDuplicate = false;
110372     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeSessionParametersGetInfoKHR;
110373 
110374 
110375 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeSessionParametersGetInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR110376 VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersGetInfoKHR(VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
110377     : pNext( pNext_ ), videoSessionParameters( videoSessionParameters_ )
110378     {}
110379 
110380     VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersGetInfoKHR( VideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110381 
VideoEncodeSessionParametersGetInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR110382     VideoEncodeSessionParametersGetInfoKHR( VkVideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110383       : VideoEncodeSessionParametersGetInfoKHR( *reinterpret_cast<VideoEncodeSessionParametersGetInfoKHR const *>( &rhs ) )
110384     {}
110385 
110386 
110387     VideoEncodeSessionParametersGetInfoKHR & operator=( VideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110388 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
110389 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR110390     VideoEncodeSessionParametersGetInfoKHR & operator=( VkVideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110391     {
110392       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR const *>( &rhs );
110393       return *this;
110394     }
110395 
110396 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR110397     VULKAN_HPP_CONSTEXPR_14 VideoEncodeSessionParametersGetInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
110398     {
110399       pNext = pNext_;
110400       return *this;
110401     }
110402 
setVideoSessionParametersVULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR110403     VULKAN_HPP_CONSTEXPR_14 VideoEncodeSessionParametersGetInfoKHR & setVideoSessionParameters( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ ) VULKAN_HPP_NOEXCEPT
110404     {
110405       videoSessionParameters = videoSessionParameters_;
110406       return *this;
110407     }
110408 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
110409 
110410 
operator VkVideoEncodeSessionParametersGetInfoKHR const&VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR110411     operator VkVideoEncodeSessionParametersGetInfoKHR const &() const VULKAN_HPP_NOEXCEPT
110412     {
110413       return *reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR*>( this );
110414     }
110415 
operator VkVideoEncodeSessionParametersGetInfoKHR&VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR110416     operator VkVideoEncodeSessionParametersGetInfoKHR &() VULKAN_HPP_NOEXCEPT
110417     {
110418       return *reinterpret_cast<VkVideoEncodeSessionParametersGetInfoKHR*>( this );
110419     }
110420 
110421 #if defined( VULKAN_HPP_USE_REFLECT )
110422 #if 14 <= VULKAN_HPP_CPP_VERSION
110423     auto
110424 #else
110425     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &>
110426 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR110427       reflect() const VULKAN_HPP_NOEXCEPT
110428     {
110429       return std::tie( sType, pNext, videoSessionParameters );
110430     }
110431 #endif
110432 
110433 
110434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
110435 auto operator<=>( VideoEncodeSessionParametersGetInfoKHR const & ) const = default;
110436 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR110437     bool operator==( VideoEncodeSessionParametersGetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110438     {
110439 #if defined( VULKAN_HPP_USE_REFLECT )
110440       return this->reflect() == rhs.reflect();
110441 #else
110442       return ( sType == rhs.sType )
110443           && ( pNext == rhs.pNext )
110444           && ( videoSessionParameters == rhs.videoSessionParameters );
110445 #endif
110446     }
110447 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR110448     bool operator!=( VideoEncodeSessionParametersGetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110449     {
110450       return !operator==( rhs );
110451     }
110452 #endif
110453 
110454     public:
110455     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeSessionParametersGetInfoKHR;
110456     const void * pNext = {};
110457     VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters = {};
110458 
110459   };
110460 
110461   template <>
110462   struct CppType<StructureType, StructureType::eVideoEncodeSessionParametersGetInfoKHR>
110463   {
110464     using Type = VideoEncodeSessionParametersGetInfoKHR;
110465   };
110466 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
110467 
110468 #if defined( VK_ENABLE_BETA_EXTENSIONS )
110469   struct VideoEncodeUsageInfoKHR
110470   {
110471     using NativeType = VkVideoEncodeUsageInfoKHR;
110472 
110473     static const bool allowDuplicate = false;
110474     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeUsageInfoKHR;
110475 
110476 
110477 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEncodeUsageInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110478 VULKAN_HPP_CONSTEXPR VideoEncodeUsageInfoKHR(VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR videoUsageHints_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints_ = {}, VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR tuningMode_ = VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR::eDefault, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
110479     : pNext( pNext_ ), videoUsageHints( videoUsageHints_ ), videoContentHints( videoContentHints_ ), tuningMode( tuningMode_ )
110480     {}
110481 
110482     VULKAN_HPP_CONSTEXPR VideoEncodeUsageInfoKHR( VideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110483 
VideoEncodeUsageInfoKHRVULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110484     VideoEncodeUsageInfoKHR( VkVideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110485       : VideoEncodeUsageInfoKHR( *reinterpret_cast<VideoEncodeUsageInfoKHR const *>( &rhs ) )
110486     {}
110487 
110488 
110489     VideoEncodeUsageInfoKHR & operator=( VideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110490 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
110491 
operator =VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110492     VideoEncodeUsageInfoKHR & operator=( VkVideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110493     {
110494       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR const *>( &rhs );
110495       return *this;
110496     }
110497 
110498 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110499     VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
110500     {
110501       pNext = pNext_;
110502       return *this;
110503     }
110504 
setVideoUsageHintsVULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110505     VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setVideoUsageHints( VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR videoUsageHints_ ) VULKAN_HPP_NOEXCEPT
110506     {
110507       videoUsageHints = videoUsageHints_;
110508       return *this;
110509     }
110510 
setVideoContentHintsVULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110511     VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setVideoContentHints( VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints_ ) VULKAN_HPP_NOEXCEPT
110512     {
110513       videoContentHints = videoContentHints_;
110514       return *this;
110515     }
110516 
setTuningModeVULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110517     VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setTuningMode( VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR tuningMode_ ) VULKAN_HPP_NOEXCEPT
110518     {
110519       tuningMode = tuningMode_;
110520       return *this;
110521     }
110522 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
110523 
110524 
operator VkVideoEncodeUsageInfoKHR const&VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110525     operator VkVideoEncodeUsageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
110526     {
110527       return *reinterpret_cast<const VkVideoEncodeUsageInfoKHR*>( this );
110528     }
110529 
operator VkVideoEncodeUsageInfoKHR&VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110530     operator VkVideoEncodeUsageInfoKHR &() VULKAN_HPP_NOEXCEPT
110531     {
110532       return *reinterpret_cast<VkVideoEncodeUsageInfoKHR*>( this );
110533     }
110534 
110535 #if defined( VULKAN_HPP_USE_REFLECT )
110536 #if 14 <= VULKAN_HPP_CPP_VERSION
110537     auto
110538 #else
110539     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR const &, VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR const &, VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR const &>
110540 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110541       reflect() const VULKAN_HPP_NOEXCEPT
110542     {
110543       return std::tie( sType, pNext, videoUsageHints, videoContentHints, tuningMode );
110544     }
110545 #endif
110546 
110547 
110548 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
110549 auto operator<=>( VideoEncodeUsageInfoKHR const & ) const = default;
110550 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110551     bool operator==( VideoEncodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110552     {
110553 #if defined( VULKAN_HPP_USE_REFLECT )
110554       return this->reflect() == rhs.reflect();
110555 #else
110556       return ( sType == rhs.sType )
110557           && ( pNext == rhs.pNext )
110558           && ( videoUsageHints == rhs.videoUsageHints )
110559           && ( videoContentHints == rhs.videoContentHints )
110560           && ( tuningMode == rhs.tuningMode );
110561 #endif
110562     }
110563 
operator !=VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR110564     bool operator!=( VideoEncodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110565     {
110566       return !operator==( rhs );
110567     }
110568 #endif
110569 
110570     public:
110571     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeUsageInfoKHR;
110572     const void * pNext = {};
110573     VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR videoUsageHints = {};
110574     VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints = {};
110575     VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR tuningMode = VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR::eDefault;
110576 
110577   };
110578 
110579   template <>
110580   struct CppType<StructureType, StructureType::eVideoEncodeUsageInfoKHR>
110581   {
110582     using Type = VideoEncodeUsageInfoKHR;
110583   };
110584 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
110585 
110586   struct VideoEndCodingInfoKHR
110587   {
110588     using NativeType = VkVideoEndCodingInfoKHR;
110589 
110590     static const bool allowDuplicate = false;
110591     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEndCodingInfoKHR;
110592 
110593 
110594 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoEndCodingInfoKHRVULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR110595 VULKAN_HPP_CONSTEXPR VideoEndCodingInfoKHR(VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
110596     : pNext( pNext_ ), flags( flags_ )
110597     {}
110598 
110599     VULKAN_HPP_CONSTEXPR VideoEndCodingInfoKHR( VideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110600 
VideoEndCodingInfoKHRVULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR110601     VideoEndCodingInfoKHR( VkVideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110602       : VideoEndCodingInfoKHR( *reinterpret_cast<VideoEndCodingInfoKHR const *>( &rhs ) )
110603     {}
110604 
110605 
110606     VideoEndCodingInfoKHR & operator=( VideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110607 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
110608 
operator =VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR110609     VideoEndCodingInfoKHR & operator=( VkVideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110610     {
110611       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR const *>( &rhs );
110612       return *this;
110613     }
110614 
110615 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR110616     VULKAN_HPP_CONSTEXPR_14 VideoEndCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
110617     {
110618       pNext = pNext_;
110619       return *this;
110620     }
110621 
setFlagsVULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR110622     VULKAN_HPP_CONSTEXPR_14 VideoEndCodingInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
110623     {
110624       flags = flags_;
110625       return *this;
110626     }
110627 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
110628 
110629 
operator VkVideoEndCodingInfoKHR const&VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR110630     operator VkVideoEndCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
110631     {
110632       return *reinterpret_cast<const VkVideoEndCodingInfoKHR*>( this );
110633     }
110634 
operator VkVideoEndCodingInfoKHR&VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR110635     operator VkVideoEndCodingInfoKHR &() VULKAN_HPP_NOEXCEPT
110636     {
110637       return *reinterpret_cast<VkVideoEndCodingInfoKHR*>( this );
110638     }
110639 
110640 #if defined( VULKAN_HPP_USE_REFLECT )
110641 #if 14 <= VULKAN_HPP_CPP_VERSION
110642     auto
110643 #else
110644     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR const &>
110645 #endif
reflectVULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR110646       reflect() const VULKAN_HPP_NOEXCEPT
110647     {
110648       return std::tie( sType, pNext, flags );
110649     }
110650 #endif
110651 
110652 
110653 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
110654 auto operator<=>( VideoEndCodingInfoKHR const & ) const = default;
110655 #else
operator ==VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR110656     bool operator==( VideoEndCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110657     {
110658 #if defined( VULKAN_HPP_USE_REFLECT )
110659       return this->reflect() == rhs.reflect();
110660 #else
110661       return ( sType == rhs.sType )
110662           && ( pNext == rhs.pNext )
110663           && ( flags == rhs.flags );
110664 #endif
110665     }
110666 
operator !=VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR110667     bool operator!=( VideoEndCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110668     {
110669       return !operator==( rhs );
110670     }
110671 #endif
110672 
110673     public:
110674     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEndCodingInfoKHR;
110675     const void * pNext = {};
110676     VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags = {};
110677 
110678   };
110679 
110680   template <>
110681   struct CppType<StructureType, StructureType::eVideoEndCodingInfoKHR>
110682   {
110683     using Type = VideoEndCodingInfoKHR;
110684   };
110685 
110686   struct VideoFormatPropertiesKHR
110687   {
110688     using NativeType = VkVideoFormatPropertiesKHR;
110689 
110690     static const bool allowDuplicate = false;
110691     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoFormatPropertiesKHR;
110692 
110693 
110694 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoFormatPropertiesKHRVULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR110695 VULKAN_HPP_CONSTEXPR VideoFormatPropertiesKHR(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ComponentMapping componentMapping_ = {}, VULKAN_HPP_NAMESPACE::ImageCreateFlags imageCreateFlags_ = {}, VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::ImageTiling imageTiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsageFlags_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
110696     : pNext( pNext_ ), format( format_ ), componentMapping( componentMapping_ ), imageCreateFlags( imageCreateFlags_ ), imageType( imageType_ ), imageTiling( imageTiling_ ), imageUsageFlags( imageUsageFlags_ )
110697     {}
110698 
110699     VULKAN_HPP_CONSTEXPR VideoFormatPropertiesKHR( VideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110700 
VideoFormatPropertiesKHRVULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR110701     VideoFormatPropertiesKHR( VkVideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110702       : VideoFormatPropertiesKHR( *reinterpret_cast<VideoFormatPropertiesKHR const *>( &rhs ) )
110703     {}
110704 
110705 
110706     VideoFormatPropertiesKHR & operator=( VideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110707 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
110708 
operator =VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR110709     VideoFormatPropertiesKHR & operator=( VkVideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110710     {
110711       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR const *>( &rhs );
110712       return *this;
110713     }
110714 
110715 
operator VkVideoFormatPropertiesKHR const&VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR110716     operator VkVideoFormatPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
110717     {
110718       return *reinterpret_cast<const VkVideoFormatPropertiesKHR*>( this );
110719     }
110720 
operator VkVideoFormatPropertiesKHR&VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR110721     operator VkVideoFormatPropertiesKHR &() VULKAN_HPP_NOEXCEPT
110722     {
110723       return *reinterpret_cast<VkVideoFormatPropertiesKHR*>( this );
110724     }
110725 
110726 #if defined( VULKAN_HPP_USE_REFLECT )
110727 #if 14 <= VULKAN_HPP_CPP_VERSION
110728     auto
110729 #else
110730     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::ComponentMapping const &, VULKAN_HPP_NAMESPACE::ImageCreateFlags const &, VULKAN_HPP_NAMESPACE::ImageType const &, VULKAN_HPP_NAMESPACE::ImageTiling const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
110731 #endif
reflectVULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR110732       reflect() const VULKAN_HPP_NOEXCEPT
110733     {
110734       return std::tie( sType, pNext, format, componentMapping, imageCreateFlags, imageType, imageTiling, imageUsageFlags );
110735     }
110736 #endif
110737 
110738 
110739 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
110740 auto operator<=>( VideoFormatPropertiesKHR const & ) const = default;
110741 #else
operator ==VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR110742     bool operator==( VideoFormatPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110743     {
110744 #if defined( VULKAN_HPP_USE_REFLECT )
110745       return this->reflect() == rhs.reflect();
110746 #else
110747       return ( sType == rhs.sType )
110748           && ( pNext == rhs.pNext )
110749           && ( format == rhs.format )
110750           && ( componentMapping == rhs.componentMapping )
110751           && ( imageCreateFlags == rhs.imageCreateFlags )
110752           && ( imageType == rhs.imageType )
110753           && ( imageTiling == rhs.imageTiling )
110754           && ( imageUsageFlags == rhs.imageUsageFlags );
110755 #endif
110756     }
110757 
operator !=VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR110758     bool operator!=( VideoFormatPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110759     {
110760       return !operator==( rhs );
110761     }
110762 #endif
110763 
110764     public:
110765     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoFormatPropertiesKHR;
110766     void * pNext = {};
110767     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
110768     VULKAN_HPP_NAMESPACE::ComponentMapping componentMapping = {};
110769     VULKAN_HPP_NAMESPACE::ImageCreateFlags imageCreateFlags = {};
110770     VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
110771     VULKAN_HPP_NAMESPACE::ImageTiling imageTiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
110772     VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsageFlags = {};
110773 
110774   };
110775 
110776   template <>
110777   struct CppType<StructureType, StructureType::eVideoFormatPropertiesKHR>
110778   {
110779     using Type = VideoFormatPropertiesKHR;
110780   };
110781 
110782   struct VideoProfileListInfoKHR
110783   {
110784     using NativeType = VkVideoProfileListInfoKHR;
110785 
110786     static const bool allowDuplicate = false;
110787     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoProfileListInfoKHR;
110788 
110789 
110790 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoProfileListInfoKHRVULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110791 VULKAN_HPP_CONSTEXPR VideoProfileListInfoKHR(uint32_t profileCount_ = {}, const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
110792     : pNext( pNext_ ), profileCount( profileCount_ ), pProfiles( pProfiles_ )
110793     {}
110794 
110795     VULKAN_HPP_CONSTEXPR VideoProfileListInfoKHR( VideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110796 
VideoProfileListInfoKHRVULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110797     VideoProfileListInfoKHR( VkVideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110798       : VideoProfileListInfoKHR( *reinterpret_cast<VideoProfileListInfoKHR const *>( &rhs ) )
110799     {}
110800 
110801 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
VideoProfileListInfoKHRVULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110802     VideoProfileListInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR> const & profiles_, const void * pNext_ = nullptr )
110803     : pNext( pNext_ ), profileCount( static_cast<uint32_t>( profiles_.size() ) ), pProfiles( profiles_.data() )
110804     {}
110805 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
110806 
110807 
110808     VideoProfileListInfoKHR & operator=( VideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110809 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
110810 
operator =VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110811     VideoProfileListInfoKHR & operator=( VkVideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110812     {
110813       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR const *>( &rhs );
110814       return *this;
110815     }
110816 
110817 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110818     VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
110819     {
110820       pNext = pNext_;
110821       return *this;
110822     }
110823 
setProfileCountVULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110824     VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setProfileCount( uint32_t profileCount_ ) VULKAN_HPP_NOEXCEPT
110825     {
110826       profileCount = profileCount_;
110827       return *this;
110828     }
110829 
setPProfilesVULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110830     VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setPProfiles( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles_ ) VULKAN_HPP_NOEXCEPT
110831     {
110832       pProfiles = pProfiles_;
110833       return *this;
110834     }
110835 
110836 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setProfilesVULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110837     VideoProfileListInfoKHR & setProfiles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR> const & profiles_ ) VULKAN_HPP_NOEXCEPT
110838     {
110839       profileCount = static_cast<uint32_t>( profiles_.size() );
110840       pProfiles = profiles_.data();
110841       return *this;
110842     }
110843 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
110844 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
110845 
110846 
operator VkVideoProfileListInfoKHR const&VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110847     operator VkVideoProfileListInfoKHR const &() const VULKAN_HPP_NOEXCEPT
110848     {
110849       return *reinterpret_cast<const VkVideoProfileListInfoKHR*>( this );
110850     }
110851 
operator VkVideoProfileListInfoKHR&VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110852     operator VkVideoProfileListInfoKHR &() VULKAN_HPP_NOEXCEPT
110853     {
110854       return *reinterpret_cast<VkVideoProfileListInfoKHR*>( this );
110855     }
110856 
110857 #if defined( VULKAN_HPP_USE_REFLECT )
110858 #if 14 <= VULKAN_HPP_CPP_VERSION
110859     auto
110860 #else
110861     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * const &>
110862 #endif
reflectVULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110863       reflect() const VULKAN_HPP_NOEXCEPT
110864     {
110865       return std::tie( sType, pNext, profileCount, pProfiles );
110866     }
110867 #endif
110868 
110869 
110870 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
110871 auto operator<=>( VideoProfileListInfoKHR const & ) const = default;
110872 #else
operator ==VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110873     bool operator==( VideoProfileListInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110874     {
110875 #if defined( VULKAN_HPP_USE_REFLECT )
110876       return this->reflect() == rhs.reflect();
110877 #else
110878       return ( sType == rhs.sType )
110879           && ( pNext == rhs.pNext )
110880           && ( profileCount == rhs.profileCount )
110881           && ( pProfiles == rhs.pProfiles );
110882 #endif
110883     }
110884 
operator !=VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR110885     bool operator!=( VideoProfileListInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
110886     {
110887       return !operator==( rhs );
110888     }
110889 #endif
110890 
110891     public:
110892     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoProfileListInfoKHR;
110893     const void * pNext = {};
110894     uint32_t profileCount = {};
110895     const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles = {};
110896 
110897   };
110898 
110899   template <>
110900   struct CppType<StructureType, StructureType::eVideoProfileListInfoKHR>
110901   {
110902     using Type = VideoProfileListInfoKHR;
110903   };
110904 
110905   struct VideoSessionCreateInfoKHR
110906   {
110907     using NativeType = VkVideoSessionCreateInfoKHR;
110908 
110909     static const bool allowDuplicate = false;
110910     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionCreateInfoKHR;
110911 
110912 
110913 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoSessionCreateInfoKHRVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110914 VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR(uint32_t queueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags_ = {}, const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ = {}, VULKAN_HPP_NAMESPACE::Format pictureFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent_ = {}, VULKAN_HPP_NAMESPACE::Format referencePictureFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint32_t maxDpbSlots_ = {}, uint32_t maxActiveReferencePictures_ = {}, const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
110915     : pNext( pNext_ ), queueFamilyIndex( queueFamilyIndex_ ), flags( flags_ ), pVideoProfile( pVideoProfile_ ), pictureFormat( pictureFormat_ ), maxCodedExtent( maxCodedExtent_ ), referencePictureFormat( referencePictureFormat_ ), maxDpbSlots( maxDpbSlots_ ), maxActiveReferencePictures( maxActiveReferencePictures_ ), pStdHeaderVersion( pStdHeaderVersion_ )
110916     {}
110917 
110918     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR( VideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110919 
VideoSessionCreateInfoKHRVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110920     VideoSessionCreateInfoKHR( VkVideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110921       : VideoSessionCreateInfoKHR( *reinterpret_cast<VideoSessionCreateInfoKHR const *>( &rhs ) )
110922     {}
110923 
110924 
110925     VideoSessionCreateInfoKHR & operator=( VideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
110926 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
110927 
operator =VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110928     VideoSessionCreateInfoKHR & operator=( VkVideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
110929     {
110930       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const *>( &rhs );
110931       return *this;
110932     }
110933 
110934 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110935     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
110936     {
110937       pNext = pNext_;
110938       return *this;
110939     }
110940 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110941     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
110942     {
110943       queueFamilyIndex = queueFamilyIndex_;
110944       return *this;
110945     }
110946 
setFlagsVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110947     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
110948     {
110949       flags = flags_;
110950       return *this;
110951     }
110952 
setPVideoProfileVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110953     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPVideoProfile( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ ) VULKAN_HPP_NOEXCEPT
110954     {
110955       pVideoProfile = pVideoProfile_;
110956       return *this;
110957     }
110958 
setPictureFormatVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110959     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPictureFormat( VULKAN_HPP_NAMESPACE::Format pictureFormat_ ) VULKAN_HPP_NOEXCEPT
110960     {
110961       pictureFormat = pictureFormat_;
110962       return *this;
110963     }
110964 
setMaxCodedExtentVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110965     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setMaxCodedExtent( VULKAN_HPP_NAMESPACE::Extent2D const & maxCodedExtent_ ) VULKAN_HPP_NOEXCEPT
110966     {
110967       maxCodedExtent = maxCodedExtent_;
110968       return *this;
110969     }
110970 
setReferencePictureFormatVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110971     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setReferencePictureFormat( VULKAN_HPP_NAMESPACE::Format referencePictureFormat_ ) VULKAN_HPP_NOEXCEPT
110972     {
110973       referencePictureFormat = referencePictureFormat_;
110974       return *this;
110975     }
110976 
setMaxDpbSlotsVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110977     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setMaxDpbSlots( uint32_t maxDpbSlots_ ) VULKAN_HPP_NOEXCEPT
110978     {
110979       maxDpbSlots = maxDpbSlots_;
110980       return *this;
110981     }
110982 
setMaxActiveReferencePicturesVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110983     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setMaxActiveReferencePictures( uint32_t maxActiveReferencePictures_ ) VULKAN_HPP_NOEXCEPT
110984     {
110985       maxActiveReferencePictures = maxActiveReferencePictures_;
110986       return *this;
110987     }
110988 
setPStdHeaderVersionVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110989     VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPStdHeaderVersion( const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion_ ) VULKAN_HPP_NOEXCEPT
110990     {
110991       pStdHeaderVersion = pStdHeaderVersion_;
110992       return *this;
110993     }
110994 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
110995 
110996 
operator VkVideoSessionCreateInfoKHR const&VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR110997     operator VkVideoSessionCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
110998     {
110999       return *reinterpret_cast<const VkVideoSessionCreateInfoKHR*>( this );
111000     }
111001 
operator VkVideoSessionCreateInfoKHR&VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR111002     operator VkVideoSessionCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
111003     {
111004       return *reinterpret_cast<VkVideoSessionCreateInfoKHR*>( this );
111005     }
111006 
111007 #if defined( VULKAN_HPP_USE_REFLECT )
111008 #if 14 <= VULKAN_HPP_CPP_VERSION
111009     auto
111010 #else
111011     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR const &, const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * const &, VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::Extent2D const &, VULKAN_HPP_NAMESPACE::Format const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ExtensionProperties * const &>
111012 #endif
reflectVULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR111013       reflect() const VULKAN_HPP_NOEXCEPT
111014     {
111015       return std::tie( sType, pNext, queueFamilyIndex, flags, pVideoProfile, pictureFormat, maxCodedExtent, referencePictureFormat, maxDpbSlots, maxActiveReferencePictures, pStdHeaderVersion );
111016     }
111017 #endif
111018 
111019 
111020 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
111021 auto operator<=>( VideoSessionCreateInfoKHR const & ) const = default;
111022 #else
operator ==VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR111023     bool operator==( VideoSessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111024     {
111025 #if defined( VULKAN_HPP_USE_REFLECT )
111026       return this->reflect() == rhs.reflect();
111027 #else
111028       return ( sType == rhs.sType )
111029           && ( pNext == rhs.pNext )
111030           && ( queueFamilyIndex == rhs.queueFamilyIndex )
111031           && ( flags == rhs.flags )
111032           && ( pVideoProfile == rhs.pVideoProfile )
111033           && ( pictureFormat == rhs.pictureFormat )
111034           && ( maxCodedExtent == rhs.maxCodedExtent )
111035           && ( referencePictureFormat == rhs.referencePictureFormat )
111036           && ( maxDpbSlots == rhs.maxDpbSlots )
111037           && ( maxActiveReferencePictures == rhs.maxActiveReferencePictures )
111038           && ( pStdHeaderVersion == rhs.pStdHeaderVersion );
111039 #endif
111040     }
111041 
operator !=VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR111042     bool operator!=( VideoSessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111043     {
111044       return !operator==( rhs );
111045     }
111046 #endif
111047 
111048     public:
111049     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionCreateInfoKHR;
111050     const void * pNext = {};
111051     uint32_t queueFamilyIndex = {};
111052     VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags = {};
111053     const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile = {};
111054     VULKAN_HPP_NAMESPACE::Format pictureFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
111055     VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent = {};
111056     VULKAN_HPP_NAMESPACE::Format referencePictureFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
111057     uint32_t maxDpbSlots = {};
111058     uint32_t maxActiveReferencePictures = {};
111059     const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion = {};
111060 
111061   };
111062 
111063   template <>
111064   struct CppType<StructureType, StructureType::eVideoSessionCreateInfoKHR>
111065   {
111066     using Type = VideoSessionCreateInfoKHR;
111067   };
111068 
111069   struct VideoSessionMemoryRequirementsKHR
111070   {
111071     using NativeType = VkVideoSessionMemoryRequirementsKHR;
111072 
111073     static const bool allowDuplicate = false;
111074     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionMemoryRequirementsKHR;
111075 
111076 
111077 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoSessionMemoryRequirementsKHRVULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR111078 VULKAN_HPP_CONSTEXPR VideoSessionMemoryRequirementsKHR(uint32_t memoryBindIndex_ = {}, VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
111079     : pNext( pNext_ ), memoryBindIndex( memoryBindIndex_ ), memoryRequirements( memoryRequirements_ )
111080     {}
111081 
111082     VULKAN_HPP_CONSTEXPR VideoSessionMemoryRequirementsKHR( VideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111083 
VideoSessionMemoryRequirementsKHRVULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR111084     VideoSessionMemoryRequirementsKHR( VkVideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111085       : VideoSessionMemoryRequirementsKHR( *reinterpret_cast<VideoSessionMemoryRequirementsKHR const *>( &rhs ) )
111086     {}
111087 
111088 
111089     VideoSessionMemoryRequirementsKHR & operator=( VideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111090 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
111091 
operator =VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR111092     VideoSessionMemoryRequirementsKHR & operator=( VkVideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111093     {
111094       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR const *>( &rhs );
111095       return *this;
111096     }
111097 
111098 
operator VkVideoSessionMemoryRequirementsKHR const&VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR111099     operator VkVideoSessionMemoryRequirementsKHR const &() const VULKAN_HPP_NOEXCEPT
111100     {
111101       return *reinterpret_cast<const VkVideoSessionMemoryRequirementsKHR*>( this );
111102     }
111103 
operator VkVideoSessionMemoryRequirementsKHR&VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR111104     operator VkVideoSessionMemoryRequirementsKHR &() VULKAN_HPP_NOEXCEPT
111105     {
111106       return *reinterpret_cast<VkVideoSessionMemoryRequirementsKHR*>( this );
111107     }
111108 
111109 #if defined( VULKAN_HPP_USE_REFLECT )
111110 #if 14 <= VULKAN_HPP_CPP_VERSION
111111     auto
111112 #else
111113     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::MemoryRequirements const &>
111114 #endif
reflectVULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR111115       reflect() const VULKAN_HPP_NOEXCEPT
111116     {
111117       return std::tie( sType, pNext, memoryBindIndex, memoryRequirements );
111118     }
111119 #endif
111120 
111121 
111122 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
111123 auto operator<=>( VideoSessionMemoryRequirementsKHR const & ) const = default;
111124 #else
operator ==VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR111125     bool operator==( VideoSessionMemoryRequirementsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111126     {
111127 #if defined( VULKAN_HPP_USE_REFLECT )
111128       return this->reflect() == rhs.reflect();
111129 #else
111130       return ( sType == rhs.sType )
111131           && ( pNext == rhs.pNext )
111132           && ( memoryBindIndex == rhs.memoryBindIndex )
111133           && ( memoryRequirements == rhs.memoryRequirements );
111134 #endif
111135     }
111136 
operator !=VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR111137     bool operator!=( VideoSessionMemoryRequirementsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111138     {
111139       return !operator==( rhs );
111140     }
111141 #endif
111142 
111143     public:
111144     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionMemoryRequirementsKHR;
111145     void * pNext = {};
111146     uint32_t memoryBindIndex = {};
111147     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
111148 
111149   };
111150 
111151   template <>
111152   struct CppType<StructureType, StructureType::eVideoSessionMemoryRequirementsKHR>
111153   {
111154     using Type = VideoSessionMemoryRequirementsKHR;
111155   };
111156 
111157   struct VideoSessionParametersCreateInfoKHR
111158   {
111159     using NativeType = VkVideoSessionParametersCreateInfoKHR;
111160 
111161     static const bool allowDuplicate = false;
111162     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionParametersCreateInfoKHR;
111163 
111164 
111165 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoSessionParametersCreateInfoKHRVULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111166 VULKAN_HPP_CONSTEXPR VideoSessionParametersCreateInfoKHR(VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate_ = {}, VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
111167     : pNext( pNext_ ), flags( flags_ ), videoSessionParametersTemplate( videoSessionParametersTemplate_ ), videoSession( videoSession_ )
111168     {}
111169 
111170     VULKAN_HPP_CONSTEXPR VideoSessionParametersCreateInfoKHR( VideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111171 
VideoSessionParametersCreateInfoKHRVULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111172     VideoSessionParametersCreateInfoKHR( VkVideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111173       : VideoSessionParametersCreateInfoKHR( *reinterpret_cast<VideoSessionParametersCreateInfoKHR const *>( &rhs ) )
111174     {}
111175 
111176 
111177     VideoSessionParametersCreateInfoKHR & operator=( VideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111178 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
111179 
operator =VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111180     VideoSessionParametersCreateInfoKHR & operator=( VkVideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111181     {
111182       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const *>( &rhs );
111183       return *this;
111184     }
111185 
111186 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111187     VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
111188     {
111189       pNext = pNext_;
111190       return *this;
111191     }
111192 
setFlagsVULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111193     VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
111194     {
111195       flags = flags_;
111196       return *this;
111197     }
111198 
setVideoSessionParametersTemplateVULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111199     VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR & setVideoSessionParametersTemplate( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate_ ) VULKAN_HPP_NOEXCEPT
111200     {
111201       videoSessionParametersTemplate = videoSessionParametersTemplate_;
111202       return *this;
111203     }
111204 
setVideoSessionVULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111205     VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR & setVideoSession( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ ) VULKAN_HPP_NOEXCEPT
111206     {
111207       videoSession = videoSession_;
111208       return *this;
111209     }
111210 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
111211 
111212 
operator VkVideoSessionParametersCreateInfoKHR const&VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111213     operator VkVideoSessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
111214     {
111215       return *reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR*>( this );
111216     }
111217 
operator VkVideoSessionParametersCreateInfoKHR&VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111218     operator VkVideoSessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
111219     {
111220       return *reinterpret_cast<VkVideoSessionParametersCreateInfoKHR*>( this );
111221     }
111222 
111223 #if defined( VULKAN_HPP_USE_REFLECT )
111224 #if 14 <= VULKAN_HPP_CPP_VERSION
111225     auto
111226 #else
111227     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR const &, VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &, VULKAN_HPP_NAMESPACE::VideoSessionKHR const &>
111228 #endif
reflectVULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111229       reflect() const VULKAN_HPP_NOEXCEPT
111230     {
111231       return std::tie( sType, pNext, flags, videoSessionParametersTemplate, videoSession );
111232     }
111233 #endif
111234 
111235 
111236 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
111237 auto operator<=>( VideoSessionParametersCreateInfoKHR const & ) const = default;
111238 #else
operator ==VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111239     bool operator==( VideoSessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111240     {
111241 #if defined( VULKAN_HPP_USE_REFLECT )
111242       return this->reflect() == rhs.reflect();
111243 #else
111244       return ( sType == rhs.sType )
111245           && ( pNext == rhs.pNext )
111246           && ( flags == rhs.flags )
111247           && ( videoSessionParametersTemplate == rhs.videoSessionParametersTemplate )
111248           && ( videoSession == rhs.videoSession );
111249 #endif
111250     }
111251 
operator !=VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR111252     bool operator!=( VideoSessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111253     {
111254       return !operator==( rhs );
111255     }
111256 #endif
111257 
111258     public:
111259     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionParametersCreateInfoKHR;
111260     const void * pNext = {};
111261     VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags = {};
111262     VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate = {};
111263     VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession = {};
111264 
111265   };
111266 
111267   template <>
111268   struct CppType<StructureType, StructureType::eVideoSessionParametersCreateInfoKHR>
111269   {
111270     using Type = VideoSessionParametersCreateInfoKHR;
111271   };
111272 
111273   struct VideoSessionParametersUpdateInfoKHR
111274   {
111275     using NativeType = VkVideoSessionParametersUpdateInfoKHR;
111276 
111277     static const bool allowDuplicate = false;
111278     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionParametersUpdateInfoKHR;
111279 
111280 
111281 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VideoSessionParametersUpdateInfoKHRVULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR111282 VULKAN_HPP_CONSTEXPR VideoSessionParametersUpdateInfoKHR(uint32_t updateSequenceCount_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
111283     : pNext( pNext_ ), updateSequenceCount( updateSequenceCount_ )
111284     {}
111285 
111286     VULKAN_HPP_CONSTEXPR VideoSessionParametersUpdateInfoKHR( VideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111287 
VideoSessionParametersUpdateInfoKHRVULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR111288     VideoSessionParametersUpdateInfoKHR( VkVideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111289       : VideoSessionParametersUpdateInfoKHR( *reinterpret_cast<VideoSessionParametersUpdateInfoKHR const *>( &rhs ) )
111290     {}
111291 
111292 
111293     VideoSessionParametersUpdateInfoKHR & operator=( VideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111294 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
111295 
operator =VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR111296     VideoSessionParametersUpdateInfoKHR & operator=( VkVideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111297     {
111298       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR const *>( &rhs );
111299       return *this;
111300     }
111301 
111302 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR111303     VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersUpdateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
111304     {
111305       pNext = pNext_;
111306       return *this;
111307     }
111308 
setUpdateSequenceCountVULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR111309     VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersUpdateInfoKHR & setUpdateSequenceCount( uint32_t updateSequenceCount_ ) VULKAN_HPP_NOEXCEPT
111310     {
111311       updateSequenceCount = updateSequenceCount_;
111312       return *this;
111313     }
111314 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
111315 
111316 
operator VkVideoSessionParametersUpdateInfoKHR const&VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR111317     operator VkVideoSessionParametersUpdateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
111318     {
111319       return *reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR*>( this );
111320     }
111321 
operator VkVideoSessionParametersUpdateInfoKHR&VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR111322     operator VkVideoSessionParametersUpdateInfoKHR &() VULKAN_HPP_NOEXCEPT
111323     {
111324       return *reinterpret_cast<VkVideoSessionParametersUpdateInfoKHR*>( this );
111325     }
111326 
111327 #if defined( VULKAN_HPP_USE_REFLECT )
111328 #if 14 <= VULKAN_HPP_CPP_VERSION
111329     auto
111330 #else
111331     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
111332 #endif
reflectVULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR111333       reflect() const VULKAN_HPP_NOEXCEPT
111334     {
111335       return std::tie( sType, pNext, updateSequenceCount );
111336     }
111337 #endif
111338 
111339 
111340 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
111341 auto operator<=>( VideoSessionParametersUpdateInfoKHR const & ) const = default;
111342 #else
operator ==VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR111343     bool operator==( VideoSessionParametersUpdateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111344     {
111345 #if defined( VULKAN_HPP_USE_REFLECT )
111346       return this->reflect() == rhs.reflect();
111347 #else
111348       return ( sType == rhs.sType )
111349           && ( pNext == rhs.pNext )
111350           && ( updateSequenceCount == rhs.updateSequenceCount );
111351 #endif
111352     }
111353 
operator !=VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR111354     bool operator!=( VideoSessionParametersUpdateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111355     {
111356       return !operator==( rhs );
111357     }
111358 #endif
111359 
111360     public:
111361     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionParametersUpdateInfoKHR;
111362     const void * pNext = {};
111363     uint32_t updateSequenceCount = {};
111364 
111365   };
111366 
111367   template <>
111368   struct CppType<StructureType, StructureType::eVideoSessionParametersUpdateInfoKHR>
111369   {
111370     using Type = VideoSessionParametersUpdateInfoKHR;
111371   };
111372 
111373 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
111374   struct WaylandSurfaceCreateInfoKHR
111375   {
111376     using NativeType = VkWaylandSurfaceCreateInfoKHR;
111377 
111378     static const bool allowDuplicate = false;
111379     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR;
111380 
111381 
111382 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111383 VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {}, struct wl_display * display_ = {}, struct wl_surface * surface_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
111384     : pNext( pNext_ ), flags( flags_ ), display( display_ ), surface( surface_ )
111385     {}
111386 
111387     VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111388 
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111389     WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111390       : WaylandSurfaceCreateInfoKHR( *reinterpret_cast<WaylandSurfaceCreateInfoKHR const *>( &rhs ) )
111391     {}
111392 
111393 
111394     WaylandSurfaceCreateInfoKHR & operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111395 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
111396 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111397     WaylandSurfaceCreateInfoKHR & operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111398     {
111399       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const *>( &rhs );
111400       return *this;
111401     }
111402 
111403 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111404     VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
111405     {
111406       pNext = pNext_;
111407       return *this;
111408     }
111409 
setFlagsVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111410     VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
111411     {
111412       flags = flags_;
111413       return *this;
111414     }
111415 
setDisplayVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111416     VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display * display_ ) VULKAN_HPP_NOEXCEPT
111417     {
111418       display = display_;
111419       return *this;
111420     }
111421 
setSurfaceVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111422     VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface * surface_ ) VULKAN_HPP_NOEXCEPT
111423     {
111424       surface = surface_;
111425       return *this;
111426     }
111427 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
111428 
111429 
operator VkWaylandSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111430     operator VkWaylandSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
111431     {
111432       return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( this );
111433     }
111434 
operator VkWaylandSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111435     operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
111436     {
111437       return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>( this );
111438     }
111439 
111440 #if defined( VULKAN_HPP_USE_REFLECT )
111441 #if 14 <= VULKAN_HPP_CPP_VERSION
111442     auto
111443 #else
111444     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR const &, struct wl_display * const &, struct wl_surface * const &>
111445 #endif
reflectVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111446       reflect() const VULKAN_HPP_NOEXCEPT
111447     {
111448       return std::tie( sType, pNext, flags, display, surface );
111449     }
111450 #endif
111451 
111452 
111453 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
111454 auto operator<=>( WaylandSurfaceCreateInfoKHR const & ) const = default;
111455 #else
operator ==VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111456     bool operator==( WaylandSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111457     {
111458 #if defined( VULKAN_HPP_USE_REFLECT )
111459       return this->reflect() == rhs.reflect();
111460 #else
111461       return ( sType == rhs.sType )
111462           && ( pNext == rhs.pNext )
111463           && ( flags == rhs.flags )
111464           && ( display == rhs.display )
111465           && ( surface == rhs.surface );
111466 #endif
111467     }
111468 
operator !=VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR111469     bool operator!=( WaylandSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111470     {
111471       return !operator==( rhs );
111472     }
111473 #endif
111474 
111475     public:
111476     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR;
111477     const void * pNext = {};
111478     VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {};
111479     struct wl_display * display = {};
111480     struct wl_surface * surface = {};
111481 
111482   };
111483 
111484   template <>
111485   struct CppType<StructureType, StructureType::eWaylandSurfaceCreateInfoKHR>
111486   {
111487     using Type = WaylandSurfaceCreateInfoKHR;
111488   };
111489 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
111490 
111491 #if defined( VK_USE_PLATFORM_WIN32_KHR )
111492   struct Win32KeyedMutexAcquireReleaseInfoKHR
111493   {
111494     using NativeType = VkWin32KeyedMutexAcquireReleaseInfoKHR;
111495 
111496     static const bool allowDuplicate = false;
111497     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
111498 
111499 
111500 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111501 VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR(uint32_t acquireCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ = {}, const uint64_t * pAcquireKeys_ = {}, const uint32_t * pAcquireTimeouts_ = {}, uint32_t releaseCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ = {}, const uint64_t * pReleaseKeys_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
111502     : pNext( pNext_ ), acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeouts( pAcquireTimeouts_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ )
111503     {}
111504 
111505     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111506 
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111507     Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111508       : Win32KeyedMutexAcquireReleaseInfoKHR( *reinterpret_cast<Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs ) )
111509     {}
111510 
111511 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111512     Win32KeyedMutexAcquireReleaseInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ = {}, const void * pNext_ = nullptr )
111513     : pNext( pNext_ ), acquireCount( static_cast<uint32_t>( acquireSyncs_.size() ) ), pAcquireSyncs( acquireSyncs_.data() ), pAcquireKeys( acquireKeys_.data() ), pAcquireTimeouts( acquireTimeouts_.data() ), releaseCount( static_cast<uint32_t>( releaseSyncs_.size() ) ), pReleaseSyncs( releaseSyncs_.data() ), pReleaseKeys( releaseKeys_.data() )
111514     {
111515 #ifdef VULKAN_HPP_NO_EXCEPTIONS
111516       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
111517       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeouts_.size() );
111518       VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeouts_.size() );
111519 #else
111520       if ( acquireSyncs_.size() != acquireKeys_.size() )
111521       {
111522         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireKeys_.size()" );
111523       }
111524       if ( acquireSyncs_.size() != acquireTimeouts_.size() )
111525       {
111526         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireTimeouts_.size()" );
111527       }
111528       if ( acquireKeys_.size() != acquireTimeouts_.size() )
111529       {
111530         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireKeys_.size() != acquireTimeouts_.size()" );
111531       }
111532 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
111533 
111534 #ifdef VULKAN_HPP_NO_EXCEPTIONS
111535       VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
111536 #else
111537       if ( releaseSyncs_.size() != releaseKeys_.size() )
111538       {
111539         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: releaseSyncs_.size() != releaseKeys_.size()" );
111540       }
111541 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
111542     }
111543 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111544 
111545 
111546     Win32KeyedMutexAcquireReleaseInfoKHR & operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111547 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
111548 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111549     Win32KeyedMutexAcquireReleaseInfoKHR & operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111550     {
111551       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs );
111552       return *this;
111553     }
111554 
111555 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111556     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
111557     {
111558       pNext = pNext_;
111559       return *this;
111560     }
111561 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111562     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
111563     {
111564       acquireCount = acquireCount_;
111565       return *this;
111566     }
111567 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111568     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
111569     {
111570       pAcquireSyncs = pAcquireSyncs_;
111571       return *this;
111572     }
111573 
111574 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111575     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
111576     {
111577       acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
111578       pAcquireSyncs = acquireSyncs_.data();
111579       return *this;
111580     }
111581 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111582 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111583     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
111584     {
111585       pAcquireKeys = pAcquireKeys_;
111586       return *this;
111587     }
111588 
111589 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111590     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
111591     {
111592       acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
111593       pAcquireKeys = acquireKeys_.data();
111594       return *this;
111595     }
111596 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111597 
setPAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111598     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t * pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
111599     {
111600       pAcquireTimeouts = pAcquireTimeouts_;
111601       return *this;
111602     }
111603 
111604 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111605     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireTimeouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
111606     {
111607       acquireCount = static_cast<uint32_t>( acquireTimeouts_.size() );
111608       pAcquireTimeouts = acquireTimeouts_.data();
111609       return *this;
111610     }
111611 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111612 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111613     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
111614     {
111615       releaseCount = releaseCount_;
111616       return *this;
111617     }
111618 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111619     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
111620     {
111621       pReleaseSyncs = pReleaseSyncs_;
111622       return *this;
111623     }
111624 
111625 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111626     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
111627     {
111628       releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
111629       pReleaseSyncs = releaseSyncs_.data();
111630       return *this;
111631     }
111632 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111633 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111634     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
111635     {
111636       pReleaseKeys = pReleaseKeys_;
111637       return *this;
111638     }
111639 
111640 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111641     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
111642     {
111643       releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
111644       pReleaseKeys = releaseKeys_.data();
111645       return *this;
111646     }
111647 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111648 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
111649 
111650 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111651     operator VkWin32KeyedMutexAcquireReleaseInfoKHR const &() const VULKAN_HPP_NOEXCEPT
111652     {
111653       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
111654     }
111655 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111656     operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT
111657     {
111658       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
111659     }
111660 
111661 #if defined( VULKAN_HPP_USE_REFLECT )
111662 #if 14 <= VULKAN_HPP_CPP_VERSION
111663     auto
111664 #else
111665     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DeviceMemory * const &, const uint64_t * const &, const uint32_t * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DeviceMemory * const &, const uint64_t * const &>
111666 #endif
reflectVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111667       reflect() const VULKAN_HPP_NOEXCEPT
111668     {
111669       return std::tie( sType, pNext, acquireCount, pAcquireSyncs, pAcquireKeys, pAcquireTimeouts, releaseCount, pReleaseSyncs, pReleaseKeys );
111670     }
111671 #endif
111672 
111673 
111674 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
111675 auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const & ) const = default;
111676 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111677     bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111678     {
111679 #if defined( VULKAN_HPP_USE_REFLECT )
111680       return this->reflect() == rhs.reflect();
111681 #else
111682       return ( sType == rhs.sType )
111683           && ( pNext == rhs.pNext )
111684           && ( acquireCount == rhs.acquireCount )
111685           && ( pAcquireSyncs == rhs.pAcquireSyncs )
111686           && ( pAcquireKeys == rhs.pAcquireKeys )
111687           && ( pAcquireTimeouts == rhs.pAcquireTimeouts )
111688           && ( releaseCount == rhs.releaseCount )
111689           && ( pReleaseSyncs == rhs.pReleaseSyncs )
111690           && ( pReleaseKeys == rhs.pReleaseKeys );
111691 #endif
111692     }
111693 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR111694     bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
111695     {
111696       return !operator==( rhs );
111697     }
111698 #endif
111699 
111700     public:
111701     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
111702     const void * pNext = {};
111703     uint32_t acquireCount = {};
111704     const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs = {};
111705     const uint64_t * pAcquireKeys = {};
111706     const uint32_t * pAcquireTimeouts = {};
111707     uint32_t releaseCount = {};
111708     const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs = {};
111709     const uint64_t * pReleaseKeys = {};
111710 
111711   };
111712 
111713   template <>
111714   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR>
111715   {
111716     using Type = Win32KeyedMutexAcquireReleaseInfoKHR;
111717   };
111718 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
111719 
111720 #if defined( VK_USE_PLATFORM_WIN32_KHR )
111721   struct Win32KeyedMutexAcquireReleaseInfoNV
111722   {
111723     using NativeType = VkWin32KeyedMutexAcquireReleaseInfoNV;
111724 
111725     static const bool allowDuplicate = false;
111726     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
111727 
111728 
111729 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111730 VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV(uint32_t acquireCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ = {}, const uint64_t * pAcquireKeys_ = {}, const uint32_t * pAcquireTimeoutMilliseconds_ = {}, uint32_t releaseCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ = {}, const uint64_t * pReleaseKeys_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
111731     : pNext( pNext_ ), acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ )
111732     {}
111733 
111734     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111735 
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111736     Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
111737       : Win32KeyedMutexAcquireReleaseInfoNV( *reinterpret_cast<Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs ) )
111738     {}
111739 
111740 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111741     Win32KeyedMutexAcquireReleaseInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ = {}, const void * pNext_ = nullptr )
111742     : pNext( pNext_ ), acquireCount( static_cast<uint32_t>( acquireSyncs_.size() ) ), pAcquireSyncs( acquireSyncs_.data() ), pAcquireKeys( acquireKeys_.data() ), pAcquireTimeoutMilliseconds( acquireTimeoutMilliseconds_.data() ), releaseCount( static_cast<uint32_t>( releaseSyncs_.size() ) ), pReleaseSyncs( releaseSyncs_.data() ), pReleaseKeys( releaseKeys_.data() )
111743     {
111744 #ifdef VULKAN_HPP_NO_EXCEPTIONS
111745       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
111746       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeoutMilliseconds_.size() );
111747       VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeoutMilliseconds_.size() );
111748 #else
111749       if ( acquireSyncs_.size() != acquireKeys_.size() )
111750       {
111751         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireKeys_.size()" );
111752       }
111753       if ( acquireSyncs_.size() != acquireTimeoutMilliseconds_.size() )
111754       {
111755         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireTimeoutMilliseconds_.size()" );
111756       }
111757       if ( acquireKeys_.size() != acquireTimeoutMilliseconds_.size() )
111758       {
111759         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireKeys_.size() != acquireTimeoutMilliseconds_.size()" );
111760       }
111761 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
111762 
111763 #ifdef VULKAN_HPP_NO_EXCEPTIONS
111764       VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
111765 #else
111766       if ( releaseSyncs_.size() != releaseKeys_.size() )
111767       {
111768         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: releaseSyncs_.size() != releaseKeys_.size()" );
111769       }
111770 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
111771     }
111772 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111773 
111774 
111775     Win32KeyedMutexAcquireReleaseInfoNV & operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111776 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
111777 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111778     Win32KeyedMutexAcquireReleaseInfoNV & operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
111779     {
111780       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs );
111781       return *this;
111782     }
111783 
111784 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111785     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
111786     {
111787       pNext = pNext_;
111788       return *this;
111789     }
111790 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111791     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
111792     {
111793       acquireCount = acquireCount_;
111794       return *this;
111795     }
111796 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111797     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
111798     {
111799       pAcquireSyncs = pAcquireSyncs_;
111800       return *this;
111801     }
111802 
111803 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111804     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
111805     {
111806       acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
111807       pAcquireSyncs = acquireSyncs_.data();
111808       return *this;
111809     }
111810 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111811 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111812     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
111813     {
111814       pAcquireKeys = pAcquireKeys_;
111815       return *this;
111816     }
111817 
111818 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111819     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
111820     {
111821       acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
111822       pAcquireKeys = acquireKeys_.data();
111823       return *this;
111824     }
111825 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111826 
setPAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111827     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t * pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
111828     {
111829       pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
111830       return *this;
111831     }
111832 
111833 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111834     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireTimeoutMilliseconds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
111835     {
111836       acquireCount = static_cast<uint32_t>( acquireTimeoutMilliseconds_.size() );
111837       pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data();
111838       return *this;
111839     }
111840 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111841 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111842     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
111843     {
111844       releaseCount = releaseCount_;
111845       return *this;
111846     }
111847 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111848     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
111849     {
111850       pReleaseSyncs = pReleaseSyncs_;
111851       return *this;
111852     }
111853 
111854 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111855     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
111856     {
111857       releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
111858       pReleaseSyncs = releaseSyncs_.data();
111859       return *this;
111860     }
111861 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111862 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111863     VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
111864     {
111865       pReleaseKeys = pReleaseKeys_;
111866       return *this;
111867     }
111868 
111869 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111870     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
111871     {
111872       releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
111873       pReleaseKeys = releaseKeys_.data();
111874       return *this;
111875     }
111876 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
111877 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
111878 
111879 
operator VkWin32KeyedMutexAcquireReleaseInfoNV const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111880     operator VkWin32KeyedMutexAcquireReleaseInfoNV const &() const VULKAN_HPP_NOEXCEPT
111881     {
111882       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
111883     }
111884 
operator VkWin32KeyedMutexAcquireReleaseInfoNV&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111885     operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT
111886     {
111887       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
111888     }
111889 
111890 #if defined( VULKAN_HPP_USE_REFLECT )
111891 #if 14 <= VULKAN_HPP_CPP_VERSION
111892     auto
111893 #else
111894     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DeviceMemory * const &, const uint64_t * const &, const uint32_t * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DeviceMemory * const &, const uint64_t * const &>
111895 #endif
reflectVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111896       reflect() const VULKAN_HPP_NOEXCEPT
111897     {
111898       return std::tie( sType, pNext, acquireCount, pAcquireSyncs, pAcquireKeys, pAcquireTimeoutMilliseconds, releaseCount, pReleaseSyncs, pReleaseKeys );
111899     }
111900 #endif
111901 
111902 
111903 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
111904 auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const & ) const = default;
111905 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111906     bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
111907     {
111908 #if defined( VULKAN_HPP_USE_REFLECT )
111909       return this->reflect() == rhs.reflect();
111910 #else
111911       return ( sType == rhs.sType )
111912           && ( pNext == rhs.pNext )
111913           && ( acquireCount == rhs.acquireCount )
111914           && ( pAcquireSyncs == rhs.pAcquireSyncs )
111915           && ( pAcquireKeys == rhs.pAcquireKeys )
111916           && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds )
111917           && ( releaseCount == rhs.releaseCount )
111918           && ( pReleaseSyncs == rhs.pReleaseSyncs )
111919           && ( pReleaseKeys == rhs.pReleaseKeys );
111920 #endif
111921     }
111922 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV111923     bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
111924     {
111925       return !operator==( rhs );
111926     }
111927 #endif
111928 
111929     public:
111930     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
111931     const void * pNext = {};
111932     uint32_t acquireCount = {};
111933     const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs = {};
111934     const uint64_t * pAcquireKeys = {};
111935     const uint32_t * pAcquireTimeoutMilliseconds = {};
111936     uint32_t releaseCount = {};
111937     const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs = {};
111938     const uint64_t * pReleaseKeys = {};
111939 
111940   };
111941 
111942   template <>
111943   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoNV>
111944   {
111945     using Type = Win32KeyedMutexAcquireReleaseInfoNV;
111946   };
111947 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
111948 
111949 #if defined( VK_USE_PLATFORM_WIN32_KHR )
111950   struct Win32SurfaceCreateInfoKHR
111951   {
111952     using NativeType = VkWin32SurfaceCreateInfoKHR;
111953 
111954     static const bool allowDuplicate = false;
111955     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR;
111956 
111957 
111958 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR111959 VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {}, HINSTANCE hinstance_ = {}, HWND hwnd_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
111960     : pNext( pNext_ ), flags( flags_ ), hinstance( hinstance_ ), hwnd( hwnd_ )
111961     {}
111962 
111963     VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111964 
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR111965     Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111966       : Win32SurfaceCreateInfoKHR( *reinterpret_cast<Win32SurfaceCreateInfoKHR const *>( &rhs ) )
111967     {}
111968 
111969 
111970     Win32SurfaceCreateInfoKHR & operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
111971 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
111972 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR111973     Win32SurfaceCreateInfoKHR & operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
111974     {
111975       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const *>( &rhs );
111976       return *this;
111977     }
111978 
111979 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR111980     VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
111981     {
111982       pNext = pNext_;
111983       return *this;
111984     }
111985 
setFlagsVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR111986     VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
111987     {
111988       flags = flags_;
111989       return *this;
111990     }
111991 
setHinstanceVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR111992     VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT
111993     {
111994       hinstance = hinstance_;
111995       return *this;
111996     }
111997 
setHwndVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR111998     VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT
111999     {
112000       hwnd = hwnd_;
112001       return *this;
112002     }
112003 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
112004 
112005 
operator VkWin32SurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR112006     operator VkWin32SurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
112007     {
112008       return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( this );
112009     }
112010 
operator VkWin32SurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR112011     operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
112012     {
112013       return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>( this );
112014     }
112015 
112016 #if defined( VULKAN_HPP_USE_REFLECT )
112017 #if 14 <= VULKAN_HPP_CPP_VERSION
112018     auto
112019 #else
112020     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR const &, HINSTANCE const &, HWND const &>
112021 #endif
reflectVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR112022       reflect() const VULKAN_HPP_NOEXCEPT
112023     {
112024       return std::tie( sType, pNext, flags, hinstance, hwnd );
112025     }
112026 #endif
112027 
112028 
112029 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
112030 auto operator<=>( Win32SurfaceCreateInfoKHR const & ) const = default;
112031 #else
operator ==VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR112032     bool operator==( Win32SurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
112033     {
112034 #if defined( VULKAN_HPP_USE_REFLECT )
112035       return this->reflect() == rhs.reflect();
112036 #else
112037       return ( sType == rhs.sType )
112038           && ( pNext == rhs.pNext )
112039           && ( flags == rhs.flags )
112040           && ( hinstance == rhs.hinstance )
112041           && ( hwnd == rhs.hwnd );
112042 #endif
112043     }
112044 
operator !=VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR112045     bool operator!=( Win32SurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
112046     {
112047       return !operator==( rhs );
112048     }
112049 #endif
112050 
112051     public:
112052     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR;
112053     const void * pNext = {};
112054     VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {};
112055     HINSTANCE hinstance = {};
112056     HWND hwnd = {};
112057 
112058   };
112059 
112060   template <>
112061   struct CppType<StructureType, StructureType::eWin32SurfaceCreateInfoKHR>
112062   {
112063     using Type = Win32SurfaceCreateInfoKHR;
112064   };
112065 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
112066 
112067   struct WriteDescriptorSet
112068   {
112069     using NativeType = VkWriteDescriptorSet;
112070 
112071     static const bool allowDuplicate = false;
112072     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet;
112073 
112074 
112075 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet112076 VULKAN_HPP_CONSTEXPR WriteDescriptorSet(VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ = {}, const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
112077     : pNext( pNext_ ), dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), pImageInfo( pImageInfo_ ), pBufferInfo( pBufferInfo_ ), pTexelBufferView( pTexelBufferView_ )
112078     {}
112079 
112080     VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112081 
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet112082     WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
112083       : WriteDescriptorSet( *reinterpret_cast<WriteDescriptorSet const *>( &rhs ) )
112084     {}
112085 
112086 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet112087     WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_, uint32_t dstBinding_, uint32_t dstArrayElement_, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ = {}, const void * pNext_ = nullptr )
112088     : pNext( pNext_ ), dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( static_cast<uint32_t>( !imageInfo_.empty() ? imageInfo_.size() : !bufferInfo_.empty() ? bufferInfo_.size() : texelBufferView_.size() ) ), descriptorType( descriptorType_ ), pImageInfo( imageInfo_.data() ), pBufferInfo( bufferInfo_.data() ), pTexelBufferView( texelBufferView_.data() )
112089     {
112090 #ifdef VULKAN_HPP_NO_EXCEPTIONS
112091       VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) <= 1);
112092 #else
112093       if ( 1 < ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) )
112094       {
112095         throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::WriteDescriptorSet::WriteDescriptorSet: 1 < ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() )" );
112096       }
112097 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
112098     }
112099 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
112100 
112101 
112102     WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112103 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
112104 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet112105     WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
112106     {
112107       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSet const *>( &rhs );
112108       return *this;
112109     }
112110 
112111 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSet112112     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
112113     {
112114       pNext = pNext_;
112115       return *this;
112116     }
112117 
setDstSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet112118     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
112119     {
112120       dstSet = dstSet_;
112121       return *this;
112122     }
112123 
setDstBindingVULKAN_HPP_NAMESPACE::WriteDescriptorSet112124     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
112125     {
112126       dstBinding = dstBinding_;
112127       return *this;
112128     }
112129 
setDstArrayElementVULKAN_HPP_NAMESPACE::WriteDescriptorSet112130     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
112131     {
112132       dstArrayElement = dstArrayElement_;
112133       return *this;
112134     }
112135 
setDescriptorCountVULKAN_HPP_NAMESPACE::WriteDescriptorSet112136     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
112137     {
112138       descriptorCount = descriptorCount_;
112139       return *this;
112140     }
112141 
setDescriptorTypeVULKAN_HPP_NAMESPACE::WriteDescriptorSet112142     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
112143     {
112144       descriptorType = descriptorType_;
112145       return *this;
112146     }
112147 
setPImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet112148     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_ ) VULKAN_HPP_NOEXCEPT
112149     {
112150       pImageInfo = pImageInfo_;
112151       return *this;
112152     }
112153 
112154 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet112155     WriteDescriptorSet & setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_ ) VULKAN_HPP_NOEXCEPT
112156     {
112157       descriptorCount = static_cast<uint32_t>( imageInfo_.size() );
112158       pImageInfo = imageInfo_.data();
112159       return *this;
112160     }
112161 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
112162 
setPBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet112163     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
112164     {
112165       pBufferInfo = pBufferInfo_;
112166       return *this;
112167     }
112168 
112169 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet112170     WriteDescriptorSet & setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT
112171     {
112172       descriptorCount = static_cast<uint32_t>( bufferInfo_.size() );
112173       pBufferInfo = bufferInfo_.data();
112174       return *this;
112175     }
112176 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
112177 
setPTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet112178     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
112179     {
112180       pTexelBufferView = pTexelBufferView_;
112181       return *this;
112182     }
112183 
112184 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet112185     WriteDescriptorSet & setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT
112186     {
112187       descriptorCount = static_cast<uint32_t>( texelBufferView_.size() );
112188       pTexelBufferView = texelBufferView_.data();
112189       return *this;
112190     }
112191 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
112192 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
112193 
112194 
operator VkWriteDescriptorSet const&VULKAN_HPP_NAMESPACE::WriteDescriptorSet112195     operator VkWriteDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
112196     {
112197       return *reinterpret_cast<const VkWriteDescriptorSet*>( this );
112198     }
112199 
operator VkWriteDescriptorSet&VULKAN_HPP_NAMESPACE::WriteDescriptorSet112200     operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT
112201     {
112202       return *reinterpret_cast<VkWriteDescriptorSet*>( this );
112203     }
112204 
112205 #if defined( VULKAN_HPP_USE_REFLECT )
112206 #if 14 <= VULKAN_HPP_CPP_VERSION
112207     auto
112208 #else
112209     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DescriptorSet const &, uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DescriptorType const &, const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * const &, const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * const &, const VULKAN_HPP_NAMESPACE::BufferView * const &>
112210 #endif
reflectVULKAN_HPP_NAMESPACE::WriteDescriptorSet112211       reflect() const VULKAN_HPP_NOEXCEPT
112212     {
112213       return std::tie( sType, pNext, dstSet, dstBinding, dstArrayElement, descriptorCount, descriptorType, pImageInfo, pBufferInfo, pTexelBufferView );
112214     }
112215 #endif
112216 
112217 
112218 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
112219 auto operator<=>( WriteDescriptorSet const & ) const = default;
112220 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSet112221     bool operator==( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
112222     {
112223 #if defined( VULKAN_HPP_USE_REFLECT )
112224       return this->reflect() == rhs.reflect();
112225 #else
112226       return ( sType == rhs.sType )
112227           && ( pNext == rhs.pNext )
112228           && ( dstSet == rhs.dstSet )
112229           && ( dstBinding == rhs.dstBinding )
112230           && ( dstArrayElement == rhs.dstArrayElement )
112231           && ( descriptorCount == rhs.descriptorCount )
112232           && ( descriptorType == rhs.descriptorType )
112233           && ( pImageInfo == rhs.pImageInfo )
112234           && ( pBufferInfo == rhs.pBufferInfo )
112235           && ( pTexelBufferView == rhs.pTexelBufferView );
112236 #endif
112237     }
112238 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSet112239     bool operator!=( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
112240     {
112241       return !operator==( rhs );
112242     }
112243 #endif
112244 
112245     public:
112246     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet;
112247     const void * pNext = {};
112248     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
112249     uint32_t dstBinding = {};
112250     uint32_t dstArrayElement = {};
112251     uint32_t descriptorCount = {};
112252     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
112253     const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo = {};
112254     const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo = {};
112255     const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView = {};
112256 
112257   };
112258 
112259   template <>
112260   struct CppType<StructureType, StructureType::eWriteDescriptorSet>
112261   {
112262     using Type = WriteDescriptorSet;
112263   };
112264 
112265   struct WriteDescriptorSetAccelerationStructureKHR
112266   {
112267     using NativeType = VkWriteDescriptorSetAccelerationStructureKHR;
112268 
112269     static const bool allowDuplicate = false;
112270     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
112271 
112272 
112273 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112274 VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
112275     : pNext( pNext_ ), accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ )
112276     {}
112277 
112278     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112279 
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112280     WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
112281       : WriteDescriptorSetAccelerationStructureKHR( *reinterpret_cast<WriteDescriptorSetAccelerationStructureKHR const *>( &rhs ) )
112282     {}
112283 
112284 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112285     WriteDescriptorSetAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_, const void * pNext_ = nullptr )
112286     : pNext( pNext_ ), accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() )
112287     {}
112288 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
112289 
112290 
112291     WriteDescriptorSetAccelerationStructureKHR & operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112292 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
112293 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112294     WriteDescriptorSetAccelerationStructureKHR & operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
112295     {
112296       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const *>( &rhs );
112297       return *this;
112298     }
112299 
112300 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112301     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
112302     {
112303       pNext = pNext_;
112304       return *this;
112305     }
112306 
setAccelerationStructureCountVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112307     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
112308     {
112309       accelerationStructureCount = accelerationStructureCount_;
112310       return *this;
112311     }
112312 
setPAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112313     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
112314     {
112315       pAccelerationStructures = pAccelerationStructures_;
112316       return *this;
112317     }
112318 
112319 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112320     WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
112321     {
112322       accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
112323       pAccelerationStructures = accelerationStructures_.data();
112324       return *this;
112325     }
112326 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
112327 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
112328 
112329 
operator VkWriteDescriptorSetAccelerationStructureKHR const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112330     operator VkWriteDescriptorSetAccelerationStructureKHR const &() const VULKAN_HPP_NOEXCEPT
112331     {
112332       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>( this );
112333     }
112334 
operator VkWriteDescriptorSetAccelerationStructureKHR&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112335     operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT
112336     {
112337       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>( this );
112338     }
112339 
112340 #if defined( VULKAN_HPP_USE_REFLECT )
112341 #if 14 <= VULKAN_HPP_CPP_VERSION
112342     auto
112343 #else
112344     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * const &>
112345 #endif
reflectVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112346       reflect() const VULKAN_HPP_NOEXCEPT
112347     {
112348       return std::tie( sType, pNext, accelerationStructureCount, pAccelerationStructures );
112349     }
112350 #endif
112351 
112352 
112353 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
112354 auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const & ) const = default;
112355 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112356     bool operator==( WriteDescriptorSetAccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
112357     {
112358 #if defined( VULKAN_HPP_USE_REFLECT )
112359       return this->reflect() == rhs.reflect();
112360 #else
112361       return ( sType == rhs.sType )
112362           && ( pNext == rhs.pNext )
112363           && ( accelerationStructureCount == rhs.accelerationStructureCount )
112364           && ( pAccelerationStructures == rhs.pAccelerationStructures );
112365 #endif
112366     }
112367 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR112368     bool operator!=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
112369     {
112370       return !operator==( rhs );
112371     }
112372 #endif
112373 
112374     public:
112375     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
112376     const void * pNext = {};
112377     uint32_t accelerationStructureCount = {};
112378     const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures = {};
112379 
112380   };
112381 
112382   template <>
112383   struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureKHR>
112384   {
112385     using Type = WriteDescriptorSetAccelerationStructureKHR;
112386   };
112387 
112388   struct WriteDescriptorSetAccelerationStructureNV
112389   {
112390     using NativeType = VkWriteDescriptorSetAccelerationStructureNV;
112391 
112392     static const bool allowDuplicate = false;
112393     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureNV;
112394 
112395 
112396 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetAccelerationStructureNVVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112397 VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
112398     : pNext( pNext_ ), accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ )
112399     {}
112400 
112401     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112402 
WriteDescriptorSetAccelerationStructureNVVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112403     WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT
112404       : WriteDescriptorSetAccelerationStructureNV( *reinterpret_cast<WriteDescriptorSetAccelerationStructureNV const *>( &rhs ) )
112405     {}
112406 
112407 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
WriteDescriptorSetAccelerationStructureNVVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112408     WriteDescriptorSetAccelerationStructureNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures_, const void * pNext_ = nullptr )
112409     : pNext( pNext_ ), accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() )
112410     {}
112411 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
112412 
112413 
112414     WriteDescriptorSetAccelerationStructureNV & operator=( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112415 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
112416 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112417     WriteDescriptorSetAccelerationStructureNV & operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT
112418     {
112419       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV const *>( &rhs );
112420       return *this;
112421     }
112422 
112423 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112424     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
112425     {
112426       pNext = pNext_;
112427       return *this;
112428     }
112429 
setAccelerationStructureCountVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112430     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
112431     {
112432       accelerationStructureCount = accelerationStructureCount_;
112433       return *this;
112434     }
112435 
setPAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112436     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
112437     {
112438       pAccelerationStructures = pAccelerationStructures_;
112439       return *this;
112440     }
112441 
112442 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
setAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112443     WriteDescriptorSetAccelerationStructureNV & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
112444     {
112445       accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
112446       pAccelerationStructures = accelerationStructures_.data();
112447       return *this;
112448     }
112449 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
112450 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
112451 
112452 
operator VkWriteDescriptorSetAccelerationStructureNV const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112453     operator VkWriteDescriptorSetAccelerationStructureNV const &() const VULKAN_HPP_NOEXCEPT
112454     {
112455       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>( this );
112456     }
112457 
operator VkWriteDescriptorSetAccelerationStructureNV&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112458     operator VkWriteDescriptorSetAccelerationStructureNV &() VULKAN_HPP_NOEXCEPT
112459     {
112460       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>( this );
112461     }
112462 
112463 #if defined( VULKAN_HPP_USE_REFLECT )
112464 #if 14 <= VULKAN_HPP_CPP_VERSION
112465     auto
112466 #else
112467     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * const &>
112468 #endif
reflectVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112469       reflect() const VULKAN_HPP_NOEXCEPT
112470     {
112471       return std::tie( sType, pNext, accelerationStructureCount, pAccelerationStructures );
112472     }
112473 #endif
112474 
112475 
112476 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
112477 auto operator<=>( WriteDescriptorSetAccelerationStructureNV const & ) const = default;
112478 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112479     bool operator==( WriteDescriptorSetAccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT
112480     {
112481 #if defined( VULKAN_HPP_USE_REFLECT )
112482       return this->reflect() == rhs.reflect();
112483 #else
112484       return ( sType == rhs.sType )
112485           && ( pNext == rhs.pNext )
112486           && ( accelerationStructureCount == rhs.accelerationStructureCount )
112487           && ( pAccelerationStructures == rhs.pAccelerationStructures );
112488 #endif
112489     }
112490 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV112491     bool operator!=( WriteDescriptorSetAccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT
112492     {
112493       return !operator==( rhs );
112494     }
112495 #endif
112496 
112497     public:
112498     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureNV;
112499     const void * pNext = {};
112500     uint32_t accelerationStructureCount = {};
112501     const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures = {};
112502 
112503   };
112504 
112505   template <>
112506   struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureNV>
112507   {
112508     using Type = WriteDescriptorSetAccelerationStructureNV;
112509   };
112510 
112511   struct WriteDescriptorSetInlineUniformBlock
112512   {
112513     using NativeType = VkWriteDescriptorSetInlineUniformBlock;
112514 
112515     static const bool allowDuplicate = false;
112516     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetInlineUniformBlock;
112517 
112518 
112519 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetInlineUniformBlockVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112520 VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlock(uint32_t dataSize_ = {}, const void * pData_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
112521     : pNext( pNext_ ), dataSize( dataSize_ ), pData( pData_ )
112522     {}
112523 
112524     VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlock( WriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112525 
WriteDescriptorSetInlineUniformBlockVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112526     WriteDescriptorSetInlineUniformBlock( VkWriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT
112527       : WriteDescriptorSetInlineUniformBlock( *reinterpret_cast<WriteDescriptorSetInlineUniformBlock const *>( &rhs ) )
112528     {}
112529 
112530 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
112531     template <typename T>
WriteDescriptorSetInlineUniformBlockVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112532     WriteDescriptorSetInlineUniformBlock( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_, const void * pNext_ = nullptr )
112533     : pNext( pNext_ ), dataSize( static_cast<uint32_t>( data_.size() * sizeof(T) ) ), pData( data_.data() )
112534     {}
112535 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
112536 
112537 
112538     WriteDescriptorSetInlineUniformBlock & operator=( WriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112539 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
112540 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112541     WriteDescriptorSetInlineUniformBlock & operator=( VkWriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT
112542     {
112543       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock const *>( &rhs );
112544       return *this;
112545     }
112546 
112547 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112548     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlock & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
112549     {
112550       pNext = pNext_;
112551       return *this;
112552     }
112553 
setDataSizeVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112554     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlock & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT
112555     {
112556       dataSize = dataSize_;
112557       return *this;
112558     }
112559 
setPDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112560     VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlock & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
112561     {
112562       pData = pData_;
112563       return *this;
112564     }
112565 
112566 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
112567     template <typename T>
setDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112568     WriteDescriptorSetInlineUniformBlock & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
112569     {
112570       dataSize = static_cast<uint32_t>( data_.size() * sizeof(T) );
112571       pData = data_.data();
112572       return *this;
112573     }
112574 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
112575 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
112576 
112577 
operator VkWriteDescriptorSetInlineUniformBlock const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112578     operator VkWriteDescriptorSetInlineUniformBlock const &() const VULKAN_HPP_NOEXCEPT
112579     {
112580       return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock*>( this );
112581     }
112582 
operator VkWriteDescriptorSetInlineUniformBlock&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112583     operator VkWriteDescriptorSetInlineUniformBlock &() VULKAN_HPP_NOEXCEPT
112584     {
112585       return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlock*>( this );
112586     }
112587 
112588 #if defined( VULKAN_HPP_USE_REFLECT )
112589 #if 14 <= VULKAN_HPP_CPP_VERSION
112590     auto
112591 #else
112592     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const void * const &>
112593 #endif
reflectVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112594       reflect() const VULKAN_HPP_NOEXCEPT
112595     {
112596       return std::tie( sType, pNext, dataSize, pData );
112597     }
112598 #endif
112599 
112600 
112601 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
112602 auto operator<=>( WriteDescriptorSetInlineUniformBlock const & ) const = default;
112603 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112604     bool operator==( WriteDescriptorSetInlineUniformBlock const & rhs ) const VULKAN_HPP_NOEXCEPT
112605     {
112606 #if defined( VULKAN_HPP_USE_REFLECT )
112607       return this->reflect() == rhs.reflect();
112608 #else
112609       return ( sType == rhs.sType )
112610           && ( pNext == rhs.pNext )
112611           && ( dataSize == rhs.dataSize )
112612           && ( pData == rhs.pData );
112613 #endif
112614     }
112615 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock112616     bool operator!=( WriteDescriptorSetInlineUniformBlock const & rhs ) const VULKAN_HPP_NOEXCEPT
112617     {
112618       return !operator==( rhs );
112619     }
112620 #endif
112621 
112622     public:
112623     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlock;
112624     const void * pNext = {};
112625     uint32_t dataSize = {};
112626     const void * pData = {};
112627 
112628   };
112629 
112630   template <>
112631   struct CppType<StructureType, StructureType::eWriteDescriptorSetInlineUniformBlock>
112632   {
112633     using Type = WriteDescriptorSetInlineUniformBlock;
112634   };
112635   using WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock;
112636 
112637 #if defined( VK_USE_PLATFORM_XCB_KHR )
112638   struct XcbSurfaceCreateInfoKHR
112639   {
112640     using NativeType = VkXcbSurfaceCreateInfoKHR;
112641 
112642     static const bool allowDuplicate = false;
112643     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR;
112644 
112645 
112646 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112647 VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {}, xcb_connection_t * connection_ = {}, xcb_window_t window_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
112648     : pNext( pNext_ ), flags( flags_ ), connection( connection_ ), window( window_ )
112649     {}
112650 
112651     VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112652 
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112653     XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
112654       : XcbSurfaceCreateInfoKHR( *reinterpret_cast<XcbSurfaceCreateInfoKHR const *>( &rhs ) )
112655     {}
112656 
112657 
112658     XcbSurfaceCreateInfoKHR & operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112659 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
112660 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112661     XcbSurfaceCreateInfoKHR & operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
112662     {
112663       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const *>( &rhs );
112664       return *this;
112665     }
112666 
112667 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112668     VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
112669     {
112670       pNext = pNext_;
112671       return *this;
112672     }
112673 
setFlagsVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112674     VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
112675     {
112676       flags = flags_;
112677       return *this;
112678     }
112679 
setConnectionVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112680     VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t * connection_ ) VULKAN_HPP_NOEXCEPT
112681     {
112682       connection = connection_;
112683       return *this;
112684     }
112685 
setWindowVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112686     VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT
112687     {
112688       window = window_;
112689       return *this;
112690     }
112691 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
112692 
112693 
operator VkXcbSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112694     operator VkXcbSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
112695     {
112696       return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( this );
112697     }
112698 
operator VkXcbSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112699     operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
112700     {
112701       return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>( this );
112702     }
112703 
112704 #if defined( VULKAN_HPP_USE_REFLECT )
112705 #if 14 <= VULKAN_HPP_CPP_VERSION
112706     auto
112707 #else
112708     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR const &, xcb_connection_t * const &, xcb_window_t const &>
112709 #endif
reflectVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112710       reflect() const VULKAN_HPP_NOEXCEPT
112711     {
112712       return std::tie( sType, pNext, flags, connection, window );
112713     }
112714 #endif
112715 
112716 
112717 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112718     std::strong_ordering operator<=>( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
112719     {
112720       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
112721       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
112722       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
112723       if ( auto cmp = connection <=> rhs.connection; cmp != 0 ) return cmp;
112724       if ( auto cmp = memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ); cmp != 0 )
112725         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
112726 
112727       return std::strong_ordering::equivalent;
112728     }
112729 #endif
112730 
operator ==VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112731     bool operator==( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
112732     {
112733       return ( sType == rhs.sType )
112734           && ( pNext == rhs.pNext )
112735           && ( flags == rhs.flags )
112736           && ( connection == rhs.connection )
112737           && ( memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ) == 0 );
112738     }
112739 
operator !=VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR112740     bool operator!=( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
112741     {
112742       return !operator==( rhs );
112743     }
112744 
112745     public:
112746     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR;
112747     const void * pNext = {};
112748     VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {};
112749     xcb_connection_t * connection = {};
112750     xcb_window_t window = {};
112751 
112752   };
112753 
112754   template <>
112755   struct CppType<StructureType, StructureType::eXcbSurfaceCreateInfoKHR>
112756   {
112757     using Type = XcbSurfaceCreateInfoKHR;
112758   };
112759 #endif /*VK_USE_PLATFORM_XCB_KHR*/
112760 
112761 #if defined( VK_USE_PLATFORM_XLIB_KHR )
112762   struct XlibSurfaceCreateInfoKHR
112763   {
112764     using NativeType = VkXlibSurfaceCreateInfoKHR;
112765 
112766     static const bool allowDuplicate = false;
112767     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR;
112768 
112769 
112770 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112771 VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {}, Display * dpy_ = {}, Window window_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT
112772     : pNext( pNext_ ), flags( flags_ ), dpy( dpy_ ), window( window_ )
112773     {}
112774 
112775     VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112776 
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112777     XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
112778       : XlibSurfaceCreateInfoKHR( *reinterpret_cast<XlibSurfaceCreateInfoKHR const *>( &rhs ) )
112779     {}
112780 
112781 
112782     XlibSurfaceCreateInfoKHR & operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
112783 #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
112784 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112785     XlibSurfaceCreateInfoKHR & operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
112786     {
112787       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const *>( &rhs );
112788       return *this;
112789     }
112790 
112791 #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
setPNextVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112792     VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
112793     {
112794       pNext = pNext_;
112795       return *this;
112796     }
112797 
setFlagsVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112798     VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
112799     {
112800       flags = flags_;
112801       return *this;
112802     }
112803 
setDpyVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112804     VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setDpy( Display * dpy_ ) VULKAN_HPP_NOEXCEPT
112805     {
112806       dpy = dpy_;
112807       return *this;
112808     }
112809 
setWindowVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112810     VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT
112811     {
112812       window = window_;
112813       return *this;
112814     }
112815 #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
112816 
112817 
operator VkXlibSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112818     operator VkXlibSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
112819     {
112820       return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( this );
112821     }
112822 
operator VkXlibSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112823     operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
112824     {
112825       return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>( this );
112826     }
112827 
112828 #if defined( VULKAN_HPP_USE_REFLECT )
112829 #if 14 <= VULKAN_HPP_CPP_VERSION
112830     auto
112831 #else
112832     std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR const &, Display * const &, Window const &>
112833 #endif
reflectVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112834       reflect() const VULKAN_HPP_NOEXCEPT
112835     {
112836       return std::tie( sType, pNext, flags, dpy, window );
112837     }
112838 #endif
112839 
112840 
112841 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
operator <=>VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112842     std::strong_ordering operator<=>( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
112843     {
112844       if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp;
112845       if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp;
112846       if ( auto cmp = flags <=> rhs.flags; cmp != 0 ) return cmp;
112847       if ( auto cmp = dpy <=> rhs.dpy; cmp != 0 ) return cmp;
112848       if ( auto cmp = memcmp( &window, &rhs.window, sizeof( Window ) ); cmp != 0 )
112849         return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
112850 
112851       return std::strong_ordering::equivalent;
112852     }
112853 #endif
112854 
operator ==VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112855     bool operator==( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
112856     {
112857       return ( sType == rhs.sType )
112858           && ( pNext == rhs.pNext )
112859           && ( flags == rhs.flags )
112860           && ( dpy == rhs.dpy )
112861           && ( memcmp( &window, &rhs.window, sizeof( Window ) ) == 0 );
112862     }
112863 
operator !=VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR112864     bool operator!=( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
112865     {
112866       return !operator==( rhs );
112867     }
112868 
112869     public:
112870     VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR;
112871     const void * pNext = {};
112872     VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {};
112873     Display * dpy = {};
112874     Window window = {};
112875 
112876   };
112877 
112878   template <>
112879   struct CppType<StructureType, StructureType::eXlibSurfaceCreateInfoKHR>
112880   {
112881     using Type = XlibSurfaceCreateInfoKHR;
112882   };
112883 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
112884 
112885 
112886 }   // namespace VULKAN_HPP_NAMESPACE
112887 #endif
112888