mirror of
https://github.com/godotengine/godot.git
synced 2025-11-01 14:11:15 +00:00
Add ASTC HDR format variants
This commit is contained in:
parent
f418603522
commit
fcd785ace2
10 changed files with 235 additions and 40 deletions
|
|
@ -253,6 +253,20 @@ const char *const RenderingDeviceCommons::FORMAT_NAMES[DATA_FORMAT_MAX] = {
|
|||
"G16_B16_R16_3Plane_422_Unorm",
|
||||
"G16_B16R16_2Plane_422_Unorm",
|
||||
"G16_B16_R16_3Plane_444_Unorm",
|
||||
"Astc_4X4_Sfloat_Block",
|
||||
"Astc_5X4_Sfloat_Block",
|
||||
"Astc_5X5_Sfloat_Block",
|
||||
"Astc_6X5_Sfloat_Block",
|
||||
"Astc_6X6_Sfloat_Block",
|
||||
"Astc_8X5_Sfloat_Block",
|
||||
"Astc_8X6_Sfloat_Block",
|
||||
"Astc_8X8_Sfloat_Block",
|
||||
"Astc_10X5_Sfloat_Block",
|
||||
"Astc_10X6_Sfloat_Block",
|
||||
"Astc_10X8_Sfloat_Block",
|
||||
"Astc_10X10_Sfloat_Block",
|
||||
"Astc_12X10_Sfloat_Block",
|
||||
"Astc_12X12_Sfloat_Block",
|
||||
};
|
||||
|
||||
/*****************/
|
||||
|
|
@ -477,6 +491,20 @@ uint32_t RenderingDeviceCommons::get_image_format_pixel_size(DataFormat p_format
|
|||
case DATA_FORMAT_ASTC_12x10_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x12_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x12_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_4x4_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x4_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x6_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x6_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x8_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x6_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x8_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x10_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x10_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x12_SFLOAT_BLOCK:
|
||||
return 1;
|
||||
case DATA_FORMAT_G8B8G8R8_422_UNORM:
|
||||
case DATA_FORMAT_B8G8R8G8_422_UNORM:
|
||||
|
|
@ -554,42 +582,56 @@ void RenderingDeviceCommons::get_compressed_image_format_block_dimensions(DataFo
|
|||
case DATA_FORMAT_EAC_R11G11_UNORM_BLOCK:
|
||||
case DATA_FORMAT_EAC_R11G11_SNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_4x4_UNORM_BLOCK: // Again, not sure about astc.
|
||||
case DATA_FORMAT_ASTC_4x4_SRGB_BLOCK: {
|
||||
case DATA_FORMAT_ASTC_4x4_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_4x4_SFLOAT_BLOCK: {
|
||||
r_w = 4;
|
||||
r_h = 4;
|
||||
} break;
|
||||
case DATA_FORMAT_ASTC_5x4_UNORM_BLOCK: // Unsupported
|
||||
case DATA_FORMAT_ASTC_5x4_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x4_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x5_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x5_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x5_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x5_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x6_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x6_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x6_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x5_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x5_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x6_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x6_SRGB_BLOCK: {
|
||||
case DATA_FORMAT_ASTC_8x6_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x6_SFLOAT_BLOCK: {
|
||||
r_w = 4;
|
||||
r_h = 4;
|
||||
} break;
|
||||
case DATA_FORMAT_ASTC_8x8_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x8_SRGB_BLOCK: {
|
||||
case DATA_FORMAT_ASTC_8x8_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x8_SFLOAT_BLOCK: {
|
||||
r_w = 8;
|
||||
r_h = 8;
|
||||
} break;
|
||||
case DATA_FORMAT_ASTC_10x5_UNORM_BLOCK: // Unsupported
|
||||
case DATA_FORMAT_ASTC_10x5_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x6_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x6_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x6_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x8_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x8_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x8_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x10_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x10_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x10_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x10_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x10_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x10_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x12_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x12_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x12_SFLOAT_BLOCK:
|
||||
r_w = 4;
|
||||
r_h = 4;
|
||||
return;
|
||||
|
|
@ -642,32 +684,46 @@ uint32_t RenderingDeviceCommons::get_compressed_image_format_block_byte_size(Dat
|
|||
return 16;
|
||||
case DATA_FORMAT_ASTC_4x4_UNORM_BLOCK: // Again, not sure about astc.
|
||||
case DATA_FORMAT_ASTC_4x4_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_4x4_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x4_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x4_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x4_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x5_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x5_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_5x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x5_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x5_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x6_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x6_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_6x6_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x5_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x5_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x6_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x6_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x6_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x8_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x8_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x8_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x5_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x5_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x5_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x6_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x6_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x6_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x8_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x8_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x8_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x10_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x10_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_10x10_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x10_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x10_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x10_SFLOAT_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x12_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x12_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_12x12_SFLOAT_BLOCK:
|
||||
return 16;
|
||||
default: {
|
||||
}
|
||||
|
|
@ -691,7 +747,8 @@ uint32_t RenderingDeviceCommons::get_compressed_image_format_pixel_rshift(DataFo
|
|||
case DATA_FORMAT_EAC_R11_SNORM_BLOCK:
|
||||
return 1;
|
||||
case DATA_FORMAT_ASTC_8x8_SRGB_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x8_UNORM_BLOCK: {
|
||||
case DATA_FORMAT_ASTC_8x8_UNORM_BLOCK:
|
||||
case DATA_FORMAT_ASTC_8x8_SFLOAT_BLOCK: {
|
||||
return 2;
|
||||
}
|
||||
default: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue