//===================== //=== Format Traits === //===================== //=== Function Declarations === // The three-dimensional extent of a texel block. VULKAN_HPP_CONSTEXPR_14 std::array blockExtent( Format format ); // The texel block size in bytes. VULKAN_HPP_CONSTEXPR_14 uint8_t blockSize( Format format ); // The class of the format (can't be just named "class"!) VULKAN_HPP_CONSTEXPR_14 char const * compatibilityClass( Format format ); // The number of bits in this component, if not compressed, otherwise 0. VULKAN_HPP_CONSTEXPR_14 uint8_t componentBits( Format format, uint8_t component ); // The number of components of this format. VULKAN_HPP_CONSTEXPR_14 uint8_t componentCount( Format format ); // The name of the component VULKAN_HPP_CONSTEXPR_14 char const * componentName( Format format, uint8_t component ); // The numeric format of the component VULKAN_HPP_CONSTEXPR_14 char const * componentNumericFormat( Format format, uint8_t component ); // The plane this component lies in. VULKAN_HPP_CONSTEXPR_14 uint8_t componentPlaneIndex( Format format, uint8_t component ); // True, if the components of this format are compressed, otherwise false. VULKAN_HPP_CONSTEXPR_14 bool componentsAreCompressed( Format format ); // A textual description of the compression scheme, or an empty string if it is not compressed VULKAN_HPP_CONSTEXPR_14 char const * compressionScheme( Format format ); // Get all formats std::vector const & getAllFormats(); // Get all color with a color component std::vector const & getColorFormats(); // Get all formats with a depth component std::vector const & getDepthFormats(); // Get all formats with a depth and a stencil component std::vector const & getDepthStencilFormats(); // Get all formats with a stencil component std::vector const & getStencilFormats(); // True, if this format has an alpha component VULKAN_HPP_CONSTEXPR_14 bool hasAlphaComponent( Format format ); // True, if this format has a blue component VULKAN_HPP_CONSTEXPR_14 bool hasBlueComponent( Format format ); // True, if this format has a depth component VULKAN_HPP_CONSTEXPR_14 bool hasDepthComponent( Format format ); // True, if this format has a green component VULKAN_HPP_CONSTEXPR_14 bool hasGreenComponent( Format format ); // True, if this format has a red component VULKAN_HPP_CONSTEXPR_14 bool hasRedComponent( Format format ); // True, if this format has a stencil component VULKAN_HPP_CONSTEXPR_14 bool hasStencilComponent( Format format ); // True, if the format is a color VULKAN_HPP_CONSTEXPR_14 bool isColor( Format format ); // True, if this format is a compressed one. VULKAN_HPP_CONSTEXPR_14 bool isCompressed( Format format ); // The number of bits into which the format is packed. A single image element in this format can be stored in the same space as a scalar type of this bit // width. VULKAN_HPP_CONSTEXPR_14 uint8_t packed( Format format ); // The single-plane format that this plane is compatible with. VULKAN_HPP_CONSTEXPR_14 Format planeCompatibleFormat( Format format, uint8_t plane ); // The number of image planes of this format. VULKAN_HPP_CONSTEXPR_14 uint8_t planeCount( Format format ); // The relative height of this plane. A value of k means that this plane is 1/k the height of the overall format. VULKAN_HPP_CONSTEXPR_14 uint8_t planeHeightDivisor( Format format, uint8_t plane ); // The relative width of this plane. A value of k means that this plane is 1/k the width of the overall format. VULKAN_HPP_CONSTEXPR_14 uint8_t planeWidthDivisor( Format format, uint8_t plane ); // The number of texels in a texel block. VULKAN_HPP_CONSTEXPR_14 uint8_t texelsPerBlock( Format format ); //=== Function Definitions === // The three-dimensional extent of a texel block. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 std::array blockExtent( Format format ) { switch( format ) { ${blockExtentCases} default: return {{1, 1, 1 }}; } } // The texel block size in bytes. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t blockSize( Format format ) { switch( format ) { ${blockSizeCases} default : VULKAN_HPP_ASSERT( false ); return 0; } } // The class of the format (can't be just named "class"!) VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 char const * compatibilityClass( Format format ) { switch( format ) { ${classCases} default : VULKAN_HPP_ASSERT( false ); return ""; } } // The number of bits in this component, if not compressed, otherwise 0. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentBits( Format format, uint8_t component ) { switch( format ) { ${componentBitsCases} default: return 0; } } // The number of components of this format. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentCount( Format format ) { switch( format ) { ${componentCountCases} default: return 0; } } // The name of the component VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 char const * componentName( Format format, uint8_t component ) { switch( format ) { ${componentNameCases} default: return ""; } } // The numeric format of the component VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 char const * componentNumericFormat( Format format, uint8_t component ) { switch( format ) { ${componentNumericFormatCases} default: return ""; } } // The plane this component lies in. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentPlaneIndex( Format format, uint8_t component ) { switch( format ) { ${componentPlaneIndexCases} default: return 0; } } // True, if the components of this format are compressed, otherwise false. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool componentsAreCompressed( Format format ) { switch( format ) { ${componentsAreCompressedCases} return true; default: return false; } } // A textual description of the compression scheme, or an empty string if it is not compressed VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 char const * compressionScheme( Format format ) { switch( format ) { ${compressionSchemeCases} default: return ""; } } // Get all formats VULKAN_HPP_INLINE std::vector const & getAllFormats() { static std::vector allFormats = { ${allFormats} }; return allFormats; } // Get all formats with a color component VULKAN_HPP_INLINE std::vector const & getColorFormats() { static std::vector colorFormats = { ${colorFormats} }; return colorFormats; } // Get all formats with a depth component VULKAN_HPP_INLINE std::vector const & getDepthFormats() { static std::vector depthFormats = { ${depthFormats} }; return depthFormats; } // Get all formats with a depth and a stencil component VULKAN_HPP_INLINE std::vector const & getDepthStencilFormats() { static std::vector depthStencilFormats = { ${depthStencilFormats} }; return depthStencilFormats; } // Get all formats with a stencil component VULKAN_HPP_INLINE std::vector const & getStencilFormats() { static std::vector stencilFormats = { ${stencilFormats} }; return stencilFormats; } // True, if this format has an alpha component VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool hasAlphaComponent( Format format ) { switch( format ) { ${alphaCases} return true; default: return false; } } // True, if this format has a blue component VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool hasBlueComponent( Format format ) { switch( format ) { ${blueCases} return true; default: return false; } } // True, if this format has a depth component VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool hasDepthComponent( Format format ) { switch( format ) { ${depthCases} return true; default: return false; } } // True, if this format has a green component VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool hasGreenComponent( Format format ) { switch( format ) { ${greenCases} return true; default: return false; } } // True, if this format has a red component VULKAN_HPP_CONSTEXPR_14 bool hasRedComponent( Format format ) { switch( format ) { ${redCases} return true; default: return false; } } // True, if this format has a stencil component VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool hasStencilComponent( Format format ) { switch( format ) { ${stencilCases} return true; default: return false; } } // True, if this format is a color. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool isColor( Format format ) { return hasRedComponent( format ) || hasGreenComponent( format ) || hasBlueComponent( format ) || hasAlphaComponent( format ); } // True, if this format is a compressed one. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool isCompressed( Format format ) { return ( *compressionScheme( format ) != 0 ); } // The number of bits into which the format is packed. A single image element in this format // can be stored in the same space as a scalar type of this bit width. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t packed( Format format ) { switch( format ) { ${packedCases} default: return 0; } } // The single-plane format that this plane is compatible with. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 Format planeCompatibleFormat( Format format, uint8_t plane ) { switch( format ) { ${planeCompatibleCases} default: VULKAN_HPP_ASSERT( plane == 0 ); return format; } } // The number of image planes of this format. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeCount( Format format ) { switch( format ) { ${planeCountCases} default: return 1; } } // The relative height of this plane. A value of k means that this plane is 1/k the height of the overall format. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeHeightDivisor( Format format, uint8_t plane ) { switch( format ) { ${planeHeightDivisorCases} default: VULKAN_HPP_ASSERT( plane == 0 ); return 1; } } // The relative width of this plane. A value of k means that this plane is 1/k the width of the overall format. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeWidthDivisor( Format format, uint8_t plane ) { switch( format ) { ${planeWidthDivisorCases} default: VULKAN_HPP_ASSERT( plane == 0 ); return 1; } } // The number of texels in a texel block. VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t texelsPerBlock( Format format ) { switch( format ) { ${texelsPerBlockCases} default: VULKAN_HPP_ASSERT( false ); return 0; } }