Implement Default Block Height for each format
This commit is contained in:
		| @@ -255,6 +255,68 @@ struct SurfaceParams { | |||||||
|         return compression_factor_table[static_cast<std::size_t>(format)]; |         return compression_factor_table[static_cast<std::size_t>(format)]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     static constexpr u32 GetDefaultBlockHeight(PixelFormat format) { | ||||||
|  |         if (format == PixelFormat::Invalid) | ||||||
|  |             return 0; | ||||||
|  |         constexpr std::array<u32, MaxPixelFormat> block_height_table = {{ | ||||||
|  |             1, // ABGR8U | ||||||
|  |             1, // ABGR8S | ||||||
|  |             1, // ABGR8UI | ||||||
|  |             1, // B5G6R5U | ||||||
|  |             1, // A2B10G10R10U | ||||||
|  |             1, // A1B5G5R5U | ||||||
|  |             1, // R8U | ||||||
|  |             1, // R8UI | ||||||
|  |             1, // RGBA16F | ||||||
|  |             1, // RGBA16U | ||||||
|  |             1, // RGBA16UI | ||||||
|  |             1, // R11FG11FB10F | ||||||
|  |             1, // RGBA32UI | ||||||
|  |             4, // DXT1 | ||||||
|  |             4, // DXT23 | ||||||
|  |             4, // DXT45 | ||||||
|  |             4, // DXN1 | ||||||
|  |             4, // DXN2UNORM | ||||||
|  |             4, // DXN2SNORM | ||||||
|  |             4, // BC7U | ||||||
|  |             4, // BC6H_UF16 | ||||||
|  |             4, // BC6H_SF16 | ||||||
|  |             4, // ASTC_2D_4X4 | ||||||
|  |             1, // G8R8U | ||||||
|  |             1, // G8R8S | ||||||
|  |             1, // BGRA8 | ||||||
|  |             1, // RGBA32F | ||||||
|  |             1, // RG32F | ||||||
|  |             1, // R32F | ||||||
|  |             1, // R16F | ||||||
|  |             1, // R16U | ||||||
|  |             1, // R16S | ||||||
|  |             1, // R16UI | ||||||
|  |             1, // R16I | ||||||
|  |             1, // RG16 | ||||||
|  |             1, // RG16F | ||||||
|  |             1, // RG16UI | ||||||
|  |             1, // RG16I | ||||||
|  |             1, // RG16S | ||||||
|  |             1, // RGB32F | ||||||
|  |             1, // SRGBA8 | ||||||
|  |             1, // RG8U | ||||||
|  |             1, // RG8S | ||||||
|  |             1, // RG32UI | ||||||
|  |             1, // R32UI | ||||||
|  |             8, // ASTC_2D_8X8 | ||||||
|  |             5, // ASTC_2D_8X5 | ||||||
|  |             4, // ASTC_2D_5X4 | ||||||
|  |             1, // Z32F | ||||||
|  |             1, // Z16 | ||||||
|  |             1, // Z24S8 | ||||||
|  |             1, // S8Z24 | ||||||
|  |             1, // Z32FS8 | ||||||
|  |         }}; | ||||||
|  |         ASSERT(static_cast<std::size_t>(format) < block_height_table.size()); | ||||||
|  |         return block_height_table[static_cast<std::size_t>(format)]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     static constexpr u32 GetFormatBpp(PixelFormat format) { |     static constexpr u32 GetFormatBpp(PixelFormat format) { | ||||||
|         if (format == PixelFormat::Invalid) |         if (format == PixelFormat::Invalid) | ||||||
|             return 0; |             return 0; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 FernandoS27
					FernandoS27