1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-04 17:04:49 +00:00

Image: Implement 16-bit unorm and uint formats

This commit is contained in:
BlueCube3310
2025-05-09 12:31:25 +02:00
parent ebc36a7225
commit 16b9ee6f50
13 changed files with 914 additions and 63 deletions

View File

@@ -186,6 +186,30 @@ static Ref<Image> load_from_file_access(Ref<FileAccess> f, Error *r_error) {
case GL_RGB9_E5:
format = Image::FORMAT_RGBE9995;
break;
case GL_R16:
format = Image::FORMAT_R16;
break;
case GL_RG16:
format = Image::FORMAT_RG16;
break;
case GL_RGB16:
format = Image::FORMAT_RGB16;
break;
case GL_RGBA16:
format = Image::FORMAT_RGBA16;
break;
case GL_R16UI:
format = Image::FORMAT_R16I;
break;
case GL_RG16UI:
format = Image::FORMAT_RG16I;
break;
case GL_RGB16UI:
format = Image::FORMAT_RGB16I;
break;
case GL_RGBA16UI:
format = Image::FORMAT_RGBA16I;
break;
case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
format = Image::FORMAT_DXT1;
@@ -382,6 +406,30 @@ static Ref<Image> load_from_file_access(Ref<FileAccess> f, Error *r_error) {
case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
format = Image::FORMAT_RGBE9995;
break;
case VK_FORMAT_R16_UNORM:
format = Image::FORMAT_R16;
break;
case VK_FORMAT_R16G16_UNORM:
format = Image::FORMAT_RG16;
break;
case VK_FORMAT_R16G16B16_UNORM:
format = Image::FORMAT_RGB16;
break;
case VK_FORMAT_R16G16B16A16_UNORM:
format = Image::FORMAT_RGBA16;
break;
case VK_FORMAT_R16_UINT:
format = Image::FORMAT_R16I;
break;
case VK_FORMAT_R16G16_UINT:
format = Image::FORMAT_RG16I;
break;
case VK_FORMAT_R16G16B16_UINT:
format = Image::FORMAT_RGB16I;
break;
case VK_FORMAT_R16G16B16A16_UINT:
format = Image::FORMAT_RGBA16I;
break;
case VK_FORMAT_BC1_RGB_UNORM_BLOCK:
case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:
format = Image::FORMAT_DXT1;