summaryrefslogtreecommitdiffhomepage
path: root/include/vulkan/vulkan.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/vulkan/vulkan.hpp')
-rw-r--r--include/vulkan/vulkan.hpp755
1 files changed, 383 insertions, 372 deletions
diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp
index 72b8bb8..10806e2 100644
--- a/include/vulkan/vulkan.hpp
+++ b/include/vulkan/vulkan.hpp
@@ -26,22 +26,11 @@
# error "vulkan.hpp needs at least c++ standard version 11"
#endif
-#include <algorithm>
-#include <array>
-#include <cstddef>
-#include <cstdint>
-#include <cstring>
-#include <functional>
-#include <initializer_list>
-#include <sstream>
-#include <string>
-#include <system_error>
-#include <tuple>
-#include <type_traits>
-#include <utility>
+#include <array> // ArrayWrapperND
+#include <string> // std::string
#include <vulkan/vulkan.h>
#if 17 <= VULKAN_HPP_CPP_VERSION
-# include <string_view>
+# include <string_view> // std::string_view
#endif
#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
@@ -49,8 +38,16 @@
# define VULKAN_HPP_NO_SMART_HANDLE
# endif
#else
-# include <memory>
-# include <vector>
+# include <tuple> // std::tie
+# include <vector> // std::vector
+#endif
+
+#if !defined( VULKAN_HPP_NO_EXCEPTIONS )
+# include <system_error> // std::is_error_code_enum
+#endif
+
+#if !defined( VULKAN_HPP_NO_SMART_HANDLE )
+# include <algorithm> // std::transform
#endif
#if defined( VULKAN_HPP_NO_CONSTRUCTORS )
@@ -120,7 +117,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h
# include <span>
#endif
-static_assert( VK_HEADER_VERSION == 222, "Wrong VK_HEADER_VERSION!" );
+static_assert( VK_HEADER_VERSION == 223, "Wrong VK_HEADER_VERSION!" );
// 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default.
// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
@@ -241,318 +238,6 @@ static_assert( VK_HEADER_VERSION == 222, "Wrong VK_HEADER_VERSION!" );
namespace VULKAN_HPP_NAMESPACE
{
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
- template <typename T>
- class ArrayProxy
- {
- public:
- VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
- : m_count( 0 )
- , m_ptr( nullptr )
- {
- }
-
- VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
- : m_count( 0 )
- , m_ptr( nullptr )
- {
- }
-
- ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT
- : m_count( 1 )
- , m_ptr( &value )
- {
- }
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxy( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
- : m_count( 1 )
- , m_ptr( &value )
- {
- }
-
- ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
- : m_count( count )
- , m_ptr( ptr )
- {
- }
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxy( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
- : m_count( count )
- , m_ptr( ptr )
- {
- }
-
- template <std::size_t C>
- ArrayProxy( T ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
- : m_count( C )
- , m_ptr( ptr )
- {
- }
-
- template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxy( typename std::remove_const<T>::type ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
- : m_count( C )
- , m_ptr( ptr )
- {
- }
-
-# if __GNUC__ >= 9
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Winit-list-lifetime"
-# endif
-
- ArrayProxy( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( list.size() ) )
- , m_ptr( list.begin() )
- {
- }
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( list.size() ) )
- , m_ptr( list.begin() )
- {
- }
-
- ArrayProxy( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( list.size() ) )
- , m_ptr( list.begin() )
- {
- }
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( list.size() ) )
- , m_ptr( list.begin() )
- {
- }
-
-# if __GNUC__ >= 9
-# pragma GCC diagnostic pop
-# endif
-
- // Any type with a .data() return type implicitly convertible to T*, and a .size() return type implicitly
- // convertible to size_t. The const version can capture temporaries, with lifetime ending at end of statement.
- template <typename V,
- typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
- std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
- ArrayProxy( V const & v ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( v.size() ) )
- , m_ptr( v.data() )
- {
- }
-
- template <typename V,
- typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
- std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
- ArrayProxy( V & v ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( v.size() ) )
- , m_ptr( v.data() )
- {
- }
-
- const T * begin() const VULKAN_HPP_NOEXCEPT
- {
- return m_ptr;
- }
-
- const T * end() const VULKAN_HPP_NOEXCEPT
- {
- return m_ptr + m_count;
- }
-
- const T & front() const VULKAN_HPP_NOEXCEPT
- {
- VULKAN_HPP_ASSERT( m_count && m_ptr );
- return *m_ptr;
- }
-
- const T & back() const VULKAN_HPP_NOEXCEPT
- {
- VULKAN_HPP_ASSERT( m_count && m_ptr );
- return *( m_ptr + m_count - 1 );
- }
-
- bool empty() const VULKAN_HPP_NOEXCEPT
- {
- return ( m_count == 0 );
- }
-
- uint32_t size() const VULKAN_HPP_NOEXCEPT
- {
- return m_count;
- }
-
- T * data() const VULKAN_HPP_NOEXCEPT
- {
- return m_ptr;
- }
-
- private:
- uint32_t m_count;
- T * m_ptr;
- };
-
- template <typename T>
- class ArrayProxyNoTemporaries
- {
- public:
- VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT
- : m_count( 0 )
- , m_ptr( nullptr )
- {
- }
-
- VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
- : m_count( 0 )
- , m_ptr( nullptr )
- {
- }
-
- ArrayProxyNoTemporaries( T & value ) VULKAN_HPP_NOEXCEPT
- : m_count( 1 )
- , m_ptr( &value )
- {
- }
-
- template <typename V>
- ArrayProxyNoTemporaries( V && value ) = delete;
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxyNoTemporaries( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
- : m_count( 1 )
- , m_ptr( &value )
- {
- }
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxyNoTemporaries( typename std::remove_const<T>::type && value ) = delete;
-
- ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
- : m_count( count )
- , m_ptr( ptr )
- {
- }
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
- : m_count( count )
- , m_ptr( ptr )
- {
- }
-
- template <std::size_t C>
- ArrayProxyNoTemporaries( T ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
- : m_count( C )
- , m_ptr( ptr )
- {
- }
-
- template <std::size_t C>
- ArrayProxyNoTemporaries( T( &&ptr )[C] ) = delete;
-
- template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxyNoTemporaries( typename std::remove_const<T>::type ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
- : m_count( C )
- , m_ptr( ptr )
- {
- }
-
- template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxyNoTemporaries( typename std::remove_const<T>::type( &&ptr )[C] ) = delete;
-
- ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( list.size() ) )
- , m_ptr( list.begin() )
- {
- }
-
- ArrayProxyNoTemporaries( std::initializer_list<T> const && list ) = delete;
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( list.size() ) )
- , m_ptr( list.begin() )
- {
- }
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const && list ) = delete;
-
- ArrayProxyNoTemporaries( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( list.size() ) )
- , m_ptr( list.begin() )
- {
- }
-
- ArrayProxyNoTemporaries( std::initializer_list<T> && list ) = delete;
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( list.size() ) )
- , m_ptr( list.begin() )
- {
- }
-
- template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
- ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> && list ) = delete;
-
- // Any type with a .data() return type implicitly convertible to T*, and a // .size() return type implicitly
- // convertible to size_t.
- template <typename V,
- typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
- std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
- ArrayProxyNoTemporaries( V & v ) VULKAN_HPP_NOEXCEPT
- : m_count( static_cast<uint32_t>( v.size() ) )
- , m_ptr( v.data() )
- {
- }
-
- const T * begin() const VULKAN_HPP_NOEXCEPT
- {
- return m_ptr;
- }
-
- const T * end() const VULKAN_HPP_NOEXCEPT
- {
- return m_ptr + m_count;
- }
-
- const T & front() const VULKAN_HPP_NOEXCEPT
- {
- VULKAN_HPP_ASSERT( m_count && m_ptr );
- return *m_ptr;
- }
-
- const T & back() const VULKAN_HPP_NOEXCEPT
- {
- VULKAN_HPP_ASSERT( m_count && m_ptr );
- return *( m_ptr + m_count - 1 );
- }
-
- bool empty() const VULKAN_HPP_NOEXCEPT
- {
- return ( m_count == 0 );
- }
-
- uint32_t size() const VULKAN_HPP_NOEXCEPT
- {
- return m_count;
- }
-
- T * data() const VULKAN_HPP_NOEXCEPT
- {
- return m_ptr;
- }
-
- private:
- uint32_t m_count;
- T * m_ptr;
- };
-#endif
-
template <typename T, size_t N>
class ArrayWrapper1D : public std::array<T, N>
{
@@ -871,6 +556,317 @@ namespace VULKAN_HPP_NAMESPACE
{
return flags.operator^( bit );
}
+#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+
+ template <typename T>
+ class ArrayProxy
+ {
+ public:
+ VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
+ : m_count( 0 )
+ , m_ptr( nullptr )
+ {
+ }
+
+ VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
+ : m_count( 0 )
+ , m_ptr( nullptr )
+ {
+ }
+
+ ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT
+ : m_count( 1 )
+ , m_ptr( &value )
+ {
+ }
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxy( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
+ : m_count( 1 )
+ , m_ptr( &value )
+ {
+ }
+
+ ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
+ : m_count( count )
+ , m_ptr( ptr )
+ {
+ }
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxy( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
+ : m_count( count )
+ , m_ptr( ptr )
+ {
+ }
+
+ template <std::size_t C>
+ ArrayProxy( T ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
+ : m_count( C )
+ , m_ptr( ptr )
+ {
+ }
+
+ template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxy( typename std::remove_const<T>::type ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
+ : m_count( C )
+ , m_ptr( ptr )
+ {
+ }
+
+# if __GNUC__ >= 9
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Winit-list-lifetime"
+# endif
+
+ ArrayProxy( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( list.size() ) )
+ , m_ptr( list.begin() )
+ {
+ }
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( list.size() ) )
+ , m_ptr( list.begin() )
+ {
+ }
+
+ ArrayProxy( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( list.size() ) )
+ , m_ptr( list.begin() )
+ {
+ }
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( list.size() ) )
+ , m_ptr( list.begin() )
+ {
+ }
+
+# if __GNUC__ >= 9
+# pragma GCC diagnostic pop
+# endif
+
+ // Any type with a .data() return type implicitly convertible to T*, and a .size() return type implicitly
+ // convertible to size_t. The const version can capture temporaries, with lifetime ending at end of statement.
+ template <typename V,
+ typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
+ std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
+ ArrayProxy( V const & v ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( v.size() ) )
+ , m_ptr( v.data() )
+ {
+ }
+
+ template <typename V,
+ typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
+ std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
+ ArrayProxy( V & v ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( v.size() ) )
+ , m_ptr( v.data() )
+ {
+ }
+
+ const T * begin() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_ptr;
+ }
+
+ const T * end() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_ptr + m_count;
+ }
+
+ const T & front() const VULKAN_HPP_NOEXCEPT
+ {
+ VULKAN_HPP_ASSERT( m_count && m_ptr );
+ return *m_ptr;
+ }
+
+ const T & back() const VULKAN_HPP_NOEXCEPT
+ {
+ VULKAN_HPP_ASSERT( m_count && m_ptr );
+ return *( m_ptr + m_count - 1 );
+ }
+
+ bool empty() const VULKAN_HPP_NOEXCEPT
+ {
+ return ( m_count == 0 );
+ }
+
+ uint32_t size() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_count;
+ }
+
+ T * data() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_ptr;
+ }
+
+ private:
+ uint32_t m_count;
+ T * m_ptr;
+ };
+
+ template <typename T>
+ class ArrayProxyNoTemporaries
+ {
+ public:
+ VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT
+ : m_count( 0 )
+ , m_ptr( nullptr )
+ {
+ }
+
+ VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
+ : m_count( 0 )
+ , m_ptr( nullptr )
+ {
+ }
+
+ ArrayProxyNoTemporaries( T & value ) VULKAN_HPP_NOEXCEPT
+ : m_count( 1 )
+ , m_ptr( &value )
+ {
+ }
+
+ template <typename V>
+ ArrayProxyNoTemporaries( V && value ) = delete;
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
+ : m_count( 1 )
+ , m_ptr( &value )
+ {
+ }
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( typename std::remove_const<T>::type && value ) = delete;
+
+ ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
+ : m_count( count )
+ , m_ptr( ptr )
+ {
+ }
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
+ : m_count( count )
+ , m_ptr( ptr )
+ {
+ }
+
+ template <std::size_t C>
+ ArrayProxyNoTemporaries( T ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
+ : m_count( C )
+ , m_ptr( ptr )
+ {
+ }
+
+ template <std::size_t C>
+ ArrayProxyNoTemporaries( T( &&ptr )[C] ) = delete;
+
+ template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( typename std::remove_const<T>::type ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
+ : m_count( C )
+ , m_ptr( ptr )
+ {
+ }
+
+ template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( typename std::remove_const<T>::type( &&ptr )[C] ) = delete;
+
+ ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( list.size() ) )
+ , m_ptr( list.begin() )
+ {
+ }
+
+ ArrayProxyNoTemporaries( std::initializer_list<T> const && list ) = delete;
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( list.size() ) )
+ , m_ptr( list.begin() )
+ {
+ }
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const && list ) = delete;
+
+ ArrayProxyNoTemporaries( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( list.size() ) )
+ , m_ptr( list.begin() )
+ {
+ }
+
+ ArrayProxyNoTemporaries( std::initializer_list<T> && list ) = delete;
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( list.size() ) )
+ , m_ptr( list.begin() )
+ {
+ }
+
+ template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
+ ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> && list ) = delete;
+
+ // Any type with a .data() return type implicitly convertible to T*, and a // .size() return type implicitly
+ // convertible to size_t.
+ template <typename V,
+ typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
+ std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
+ ArrayProxyNoTemporaries( V & v ) VULKAN_HPP_NOEXCEPT
+ : m_count( static_cast<uint32_t>( v.size() ) )
+ , m_ptr( v.data() )
+ {
+ }
+
+ const T * begin() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_ptr;
+ }
+
+ const T * end() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_ptr + m_count;
+ }
+
+ const T & front() const VULKAN_HPP_NOEXCEPT
+ {
+ VULKAN_HPP_ASSERT( m_count && m_ptr );
+ return *m_ptr;
+ }
+
+ const T & back() const VULKAN_HPP_NOEXCEPT
+ {
+ VULKAN_HPP_ASSERT( m_count && m_ptr );
+ return *( m_ptr + m_count - 1 );
+ }
+
+ bool empty() const VULKAN_HPP_NOEXCEPT
+ {
+ return ( m_count == 0 );
+ }
+
+ uint32_t size() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_count;
+ }
+
+ T * data() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_ptr;
+ }
+
+ private:
+ uint32_t m_count;
+ T * m_ptr;
+ };
template <typename RefType>
class Optional
@@ -1142,7 +1138,7 @@ namespace VULKAN_HPP_NAMESPACE
}
};
-#if !defined( VULKAN_HPP_NO_SMART_HANDLE )
+# if !defined( VULKAN_HPP_NO_SMART_HANDLE )
template <typename Type, typename Dispatch>
class UniqueHandleTraits;
@@ -1265,7 +1261,8 @@ namespace VULKAN_HPP_NAMESPACE
{
lhs.swap( rhs );
}
-#endif
+# endif
+#endif // VULKAN_HPP_DISABLE_ENHANCED_MODE
class DispatchLoaderBase
{
@@ -5409,6 +5406,7 @@ namespace VULKAN_HPP_NAMESPACE
# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER
#endif
+#if !defined( VULKAN_HPP_NO_SMART_HANDLE )
struct AllocationCallbacks;
@@ -5587,6 +5585,8 @@ namespace VULKAN_HPP_NAMESPACE
Dispatch const * m_dispatch = nullptr;
};
+#endif // !VULKAN_HPP_NO_SMART_HANDLE
+
//==================
//=== BASE TYPEs ===
//==================
@@ -5600,6 +5600,9 @@ namespace VULKAN_HPP_NAMESPACE
} // namespace VULKAN_HPP_NAMESPACE
#include <vulkan/vulkan_enums.hpp>
+#if !defined( VULKAN_HPP_NO_TO_STRING )
+# include <vulkan/vulkan_to_string.hpp>
+#endif
#ifndef VULKAN_HPP_NO_EXCEPTIONS
namespace std
@@ -5624,7 +5627,11 @@ namespace VULKAN_HPP_NAMESPACE
}
virtual std::string message( int ev ) const override
{
- return to_string( static_cast<Result>( ev ) );
+# if defined( VULKAN_HPP_NO_TO_STRING )
+ return std::to_string( ev );
+# else
+ return VULKAN_HPP_NAMESPACE::to_string( static_cast<VULKAN_HPP_NAMESPACE::Result>( ev ) );
+# endif
}
};
@@ -6189,6 +6196,8 @@ namespace VULKAN_HPP_NAMESPACE
namespace VULKAN_HPP_NAMESPACE
{
+#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+
//=======================
//=== STRUCTS EXTENDS ===
//=======================
@@ -7481,7 +7490,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+# if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_KHR_video_queue ===
template <>
struct StructExtends<QueueFamilyQueryResultStatusProperties2KHR, QueueFamilyProperties2>
@@ -7539,9 +7548,9 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+# endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+# if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_KHR_video_decode_queue ===
template <>
struct StructExtends<VideoDecodeCapabilitiesKHR, VideoCapabilitiesKHR>
@@ -7551,7 +7560,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_NV_dedicated_allocation ===
template <>
@@ -7613,7 +7622,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+# if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_EXT_video_encode_h264 ===
template <>
struct StructExtends<VideoEncodeH264CapabilitiesEXT, VideoEncodeCapabilitiesKHR>
@@ -7687,9 +7696,9 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+# endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+# if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_EXT_video_encode_h265 ===
template <>
struct StructExtends<VideoEncodeH265CapabilitiesEXT, VideoEncodeCapabilitiesKHR>
@@ -7763,9 +7772,9 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+# endif /*VK_ENABLE_BETA_EXTENSIONS*/
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+# if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_EXT_video_decode_h264 ===
template <>
struct StructExtends<VideoDecodeH264ProfileEXT, VideoProfileKHR>
@@ -7831,7 +7840,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_AMD_texture_gather_bias_lod ===
template <>
@@ -7937,7 +7946,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
//=== VK_NV_external_memory_win32 ===
template <>
struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
@@ -7955,9 +7964,9 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
//=== VK_NV_win32_keyed_mutex ===
template <>
struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>
@@ -7975,7 +7984,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_validation_flags ===
template <>
@@ -8071,7 +8080,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
//=== VK_KHR_external_memory_win32 ===
template <>
struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
@@ -8089,7 +8098,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_memory_fd ===
template <>
@@ -8101,7 +8110,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
//=== VK_KHR_win32_keyed_mutex ===
template <>
struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>
@@ -8119,9 +8128,9 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
//=== VK_KHR_external_semaphore_win32 ===
template <>
struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>
@@ -8139,7 +8148,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_push_descriptor ===
template <>
@@ -8309,7 +8318,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
//=== VK_KHR_external_fence_win32 ===
template <>
struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>
@@ -8319,7 +8328,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_performance_query ===
template <>
@@ -8389,7 +8398,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_USE_PLATFORM_ANDROID_KHR )
+# if defined( VK_USE_PLATFORM_ANDROID_KHR )
//=== VK_ANDROID_external_memory_android_hardware_buffer ===
template <>
struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>
@@ -8439,7 +8448,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
//=== VK_EXT_sample_locations ===
template <>
@@ -8657,7 +8666,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+# if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_KHR_portability_subset ===
template <>
struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>
@@ -8683,7 +8692,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_NV_shading_rate_image ===
template <>
@@ -8853,7 +8862,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+# if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_EXT_video_decode_h265 ===
template <>
struct StructExtends<VideoDecodeH265ProfileEXT, VideoProfileKHR>
@@ -8911,7 +8920,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_KHR_global_priority ===
template <>
@@ -8991,7 +9000,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_USE_PLATFORM_GGP )
+# if defined( VK_USE_PLATFORM_GGP )
//=== VK_GGP_frame_token ===
template <>
struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>
@@ -9001,7 +9010,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_GGP*/
+# endif /*VK_USE_PLATFORM_GGP*/
//=== VK_NV_compute_shader_derivatives ===
template <>
@@ -9527,7 +9536,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_USE_PLATFORM_WIN32_KHR )
+# if defined( VK_USE_PLATFORM_WIN32_KHR )
//=== VK_EXT_full_screen_exclusive ===
template <>
struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>
@@ -9569,7 +9578,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_line_rasterization ===
template <>
@@ -9913,7 +9922,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_ENABLE_BETA_EXTENSIONS )
+# if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_KHR_video_encode_queue ===
template <>
struct StructExtends<VideoEncodeCapabilitiesKHR, VideoCapabilitiesKHR>
@@ -9939,7 +9948,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_NV_device_diagnostics_config ===
template <>
@@ -9967,7 +9976,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_USE_PLATFORM_METAL_EXT )
+# if defined( VK_USE_PLATFORM_METAL_EXT )
//=== VK_EXT_metal_objects ===
template <>
struct StructExtends<ExportMetalObjectCreateInfoEXT, InstanceCreateInfo>
@@ -10113,7 +10122,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_METAL_EXT*/
+# endif /*VK_USE_PLATFORM_METAL_EXT*/
//=== VK_KHR_synchronization2 ===
template <>
@@ -10639,7 +10648,7 @@ namespace VULKAN_HPP_NAMESPACE
};
};
-#if defined( VK_USE_PLATFORM_FUCHSIA )
+# if defined( VK_USE_PLATFORM_FUCHSIA )
//=== VK_FUCHSIA_external_memory ===
template <>
struct StructExtends<ImportMemoryZirconHandleInfoFUCHSIA, MemoryAllocateInfo>
@@ -10649,9 +10658,9 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
+# endif /*VK_USE_PLATFORM_FUCHSIA*/
-#if defined( VK_USE_PLATFORM_FUCHSIA )
+# if defined( VK_USE_PLATFORM_FUCHSIA )
//=== VK_FUCHSIA_buffer_collection ===
template <>
struct StructExtends<ImportMemoryBufferCollectionFUCHSIA, MemoryAllocateInfo>
@@ -10677,7 +10686,7 @@ namespace VULKAN_HPP_NAMESPACE
value = true
};
};
-#endif /*VK_USE_PLATFORM_FUCHSIA*/
+# endif /*VK_USE_PLATFORM_FUCHSIA*/
//=== VK_HUAWEI_subpass_shading ===
template <>
@@ -11245,6 +11254,8 @@ namespace VULKAN_HPP_NAMESPACE
};
};
+#endif // VULKAN_HPP_DISABLE_ENHANCED_MODE
+
#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
class DynamicLoader
{