mirror of
https://github.com/godotengine/godot.git
synced 2026-02-24 22:36:38 +03:00
Merge pull request #116307 from Quantx/dds_r8_rg8
Add support for importing R8 and R8G8 DDS textures
This commit is contained in:
@@ -164,6 +164,8 @@ enum DDSFormat {
|
||||
DDS_LUMINANCE,
|
||||
DDS_LUMINANCE_ALPHA,
|
||||
DDS_LUMINANCE_ALPHA_4,
|
||||
DDS_RG8,
|
||||
DDS_R8,
|
||||
DDS_MAX
|
||||
};
|
||||
|
||||
@@ -223,4 +225,6 @@ static const DDSFormatInfo dds_format_info[DDS_MAX] = {
|
||||
{ "GRAYSCALE", false, 1, 1, Image::FORMAT_L8 },
|
||||
{ "GRAYSCALE_ALPHA", false, 1, 2, Image::FORMAT_LA8 },
|
||||
{ "GRAYSCALE_ALPHA_4", false, 1, 1, Image::FORMAT_LA8 },
|
||||
{ "RG8", false, 1, 2, Image::FORMAT_RG8 },
|
||||
{ "R8", false, 1, 1, Image::FORMAT_R8 },
|
||||
};
|
||||
|
||||
@@ -75,7 +75,9 @@ DDSFormat _dxgi_to_dds_format(uint32_t p_dxgi_format) {
|
||||
case DXGI_R32_FLOAT: {
|
||||
return DDS_R32F;
|
||||
}
|
||||
case DXGI_R8_UNORM:
|
||||
case DXGI_R8_UNORM: {
|
||||
return DDS_R8;
|
||||
}
|
||||
case DXGI_A8_UNORM: {
|
||||
return DDS_LUMINANCE;
|
||||
}
|
||||
@@ -89,7 +91,7 @@ DDSFormat _dxgi_to_dds_format(uint32_t p_dxgi_format) {
|
||||
return DDS_R16I;
|
||||
}
|
||||
case DXGI_R8G8_UNORM: {
|
||||
return DDS_LUMINANCE_ALPHA;
|
||||
return DDS_RG8;
|
||||
}
|
||||
case DXGI_R9G9B9E5: {
|
||||
return DDS_RGB9E5;
|
||||
@@ -648,6 +650,10 @@ static Vector<Ref<Image>> _dds_load_images_from_buffer(Ref<FileAccess> p_f, DDSF
|
||||
r_dds_format = DDS_BGRX8;
|
||||
} else if (format_rgb_bits == 32 && format_red_mask == 0xff && format_green_mask == 0xff00 && format_blue_mask == 0xff0000) {
|
||||
r_dds_format = DDS_RGBX8;
|
||||
} else if (format_rgb_bits == 8 && format_red_mask == 0xff && format_green_mask == 0 && format_blue_mask == 0) {
|
||||
r_dds_format = DDS_R8;
|
||||
} else if (format_rgb_bits == 16 && format_red_mask == 0xff && format_green_mask == 0xff00 && format_blue_mask == 0) {
|
||||
r_dds_format = DDS_RG8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user