Browse Source

Image: Rename PVRTC{2,4} to PVRTC1_{2,4}, drop COMPRESS_PVRTC2

We haven't had a proper implementation for COMPRESS_PVRTC2 (which is PVRTC1 2-bpp) in years,
so let's drop it instead of keeping a compress type which doesn't work.

The other enum values were renamed to clarify that our PVRTC2 and PVRTC4 are respectively
PVRTC1 2-bpp and PVRTC1 4-bpp. PVRTC2 2-bpp and 4-bpp are not implemented yet.
Rémi Verschelde 4 years ago
parent
commit
9263f8eb4b

+ 33 - 38
core/io/image.cpp

@@ -66,10 +66,10 @@ const char *Image::format_names[Image::FORMAT_MAX] = {
 	"BPTC_RGBA",
 	"BPTC_RGBA",
 	"BPTC_RGBF",
 	"BPTC_RGBF",
 	"BPTC_RGBFU",
 	"BPTC_RGBFU",
-	"PVRTC2", //pvrtc
-	"PVRTC2A",
-	"PVRTC4",
-	"PVRTC4A",
+	"PVRTC1_2", //pvrtc
+	"PVRTC1_2A",
+	"PVRTC1_4",
+	"PVRTC1_4A",
 	"ETC", //etc1
 	"ETC", //etc1
 	"ETC2_R11", //etc2
 	"ETC2_R11", //etc2
 	"ETC2_R11S", //signed", NOT srgb.
 	"ETC2_R11S", //signed", NOT srgb.
@@ -155,13 +155,13 @@ int Image::get_format_pixel_size(Format p_format) {
 			return 1; //float /
 			return 1; //float /
 		case FORMAT_BPTC_RGBFU:
 		case FORMAT_BPTC_RGBFU:
 			return 1; //unsigned float
 			return 1; //unsigned float
-		case FORMAT_PVRTC2:
+		case FORMAT_PVRTC1_2:
 			return 1; //pvrtc
 			return 1; //pvrtc
-		case FORMAT_PVRTC2A:
+		case FORMAT_PVRTC1_2A:
 			return 1;
 			return 1;
-		case FORMAT_PVRTC4:
+		case FORMAT_PVRTC1_4:
 			return 1;
 			return 1;
-		case FORMAT_PVRTC4A:
+		case FORMAT_PVRTC1_4A:
 			return 1;
 			return 1;
 		case FORMAT_ETC:
 		case FORMAT_ETC:
 			return 1; //etc1
 			return 1; //etc1
@@ -200,13 +200,13 @@ void Image::get_format_min_pixel_size(Format p_format, int &r_w, int &r_h) {
 			r_w = 4;
 			r_w = 4;
 			r_h = 4;
 			r_h = 4;
 		} break;
 		} break;
-		case FORMAT_PVRTC2:
-		case FORMAT_PVRTC2A: {
+		case FORMAT_PVRTC1_2:
+		case FORMAT_PVRTC1_2A: {
 			r_w = 16;
 			r_w = 16;
 			r_h = 8;
 			r_h = 8;
 		} break;
 		} break;
-		case FORMAT_PVRTC4A:
-		case FORMAT_PVRTC4: {
+		case FORMAT_PVRTC1_4A:
+		case FORMAT_PVRTC1_4: {
 			r_w = 8;
 			r_w = 8;
 			r_h = 8;
 			r_h = 8;
 		} break;
 		} break;
@@ -242,9 +242,9 @@ void Image::get_format_min_pixel_size(Format p_format, int &r_w, int &r_h) {
 }
 }
 
 
 int Image::get_format_pixel_rshift(Format p_format) {
 int Image::get_format_pixel_rshift(Format p_format) {
-	if (p_format == FORMAT_DXT1 || p_format == FORMAT_RGTC_R || p_format == FORMAT_PVRTC4 || p_format == FORMAT_PVRTC4A || p_format == FORMAT_ETC || p_format == FORMAT_ETC2_R11 || p_format == FORMAT_ETC2_R11S || p_format == FORMAT_ETC2_RGB8 || p_format == FORMAT_ETC2_RGB8A1) {
+	if (p_format == FORMAT_DXT1 || p_format == FORMAT_RGTC_R || p_format == FORMAT_PVRTC1_4 || p_format == FORMAT_PVRTC1_4A || p_format == FORMAT_ETC || p_format == FORMAT_ETC2_R11 || p_format == FORMAT_ETC2_R11S || p_format == FORMAT_ETC2_RGB8 || p_format == FORMAT_ETC2_RGB8A1) {
 		return 1;
 		return 1;
-	} else if (p_format == FORMAT_PVRTC2 || p_format == FORMAT_PVRTC2A) {
+	} else if (p_format == FORMAT_PVRTC1_2 || p_format == FORMAT_PVRTC1_2A) {
 		return 2;
 		return 2;
 	} else {
 	} else {
 		return 0;
 		return 0;
@@ -261,12 +261,12 @@ int Image::get_format_block_size(Format p_format) {
 
 
 			return 4;
 			return 4;
 		}
 		}
-		case FORMAT_PVRTC2:
-		case FORMAT_PVRTC2A: {
+		case FORMAT_PVRTC1_2:
+		case FORMAT_PVRTC1_2A: {
 			return 4;
 			return 4;
 		}
 		}
-		case FORMAT_PVRTC4A:
-		case FORMAT_PVRTC4: {
+		case FORMAT_PVRTC1_4A:
+		case FORMAT_PVRTC1_4: {
 			return 4;
 			return 4;
 		}
 		}
 		case FORMAT_ETC: {
 		case FORMAT_ETC: {
@@ -2216,8 +2216,8 @@ bool Image::is_invisible() const {
 
 
 		} break;
 		} break;
 
 
-		case FORMAT_PVRTC2A:
-		case FORMAT_PVRTC4A:
+		case FORMAT_PVRTC1_2A:
+		case FORMAT_PVRTC1_4A:
 		case FORMAT_DXT3:
 		case FORMAT_DXT3:
 		case FORMAT_DXT5: {
 		case FORMAT_DXT5: {
 			detected = true;
 			detected = true;
@@ -2258,8 +2258,8 @@ Image::AlphaMode Image::detect_alpha() const {
 			}
 			}
 
 
 		} break;
 		} break;
-		case FORMAT_PVRTC2A:
-		case FORMAT_PVRTC4A:
+		case FORMAT_PVRTC1_2A:
+		case FORMAT_PVRTC1_4A:
 		case FORMAT_DXT3:
 		case FORMAT_DXT3:
 		case FORMAT_DXT5: {
 		case FORMAT_DXT5: {
 			detected = true;
 			detected = true;
@@ -2355,7 +2355,7 @@ Error Image::decompress() {
 		_image_decompress_bc(this);
 		_image_decompress_bc(this);
 	} else if (format >= FORMAT_BPTC_RGBA && format <= FORMAT_BPTC_RGBFU && _image_decompress_bptc) {
 	} else if (format >= FORMAT_BPTC_RGBA && format <= FORMAT_BPTC_RGBFU && _image_decompress_bptc) {
 		_image_decompress_bptc(this);
 		_image_decompress_bptc(this);
-	} else if (format >= FORMAT_PVRTC2 && format <= FORMAT_PVRTC4A && _image_decompress_pvrtc) {
+	} else if (format >= FORMAT_PVRTC1_2 && format <= FORMAT_PVRTC1_4A && _image_decompress_pvrtc) {
 		_image_decompress_pvrtc(this);
 		_image_decompress_pvrtc(this);
 	} else if (format == FORMAT_ETC && _image_decompress_etc1) {
 	} else if (format == FORMAT_ETC && _image_decompress_etc1) {
 		_image_decompress_etc1(this);
 		_image_decompress_etc1(this);
@@ -2377,13 +2377,9 @@ Error Image::compress_from_channels(CompressMode p_mode, UsedChannels p_channels
 			ERR_FAIL_COND_V(!_image_compress_bc_func, ERR_UNAVAILABLE);
 			ERR_FAIL_COND_V(!_image_compress_bc_func, ERR_UNAVAILABLE);
 			_image_compress_bc_func(this, p_lossy_quality, p_channels);
 			_image_compress_bc_func(this, p_lossy_quality, p_channels);
 		} break;
 		} break;
-		case COMPRESS_PVRTC2: {
-			ERR_FAIL_COND_V(!_image_compress_pvrtc2_func, ERR_UNAVAILABLE);
-			_image_compress_pvrtc2_func(this);
-		} break;
-		case COMPRESS_PVRTC4: {
-			ERR_FAIL_COND_V(!_image_compress_pvrtc4_func, ERR_UNAVAILABLE);
-			_image_compress_pvrtc4_func(this);
+		case COMPRESS_PVRTC1_4: {
+			ERR_FAIL_COND_V(!_image_compress_pvrtc1_4bpp_func, ERR_UNAVAILABLE);
+			_image_compress_pvrtc1_4bpp_func(this);
 		} break;
 		} break;
 		case COMPRESS_ETC: {
 		case COMPRESS_ETC: {
 			ERR_FAIL_COND_V(!_image_compress_etc1_func, ERR_UNAVAILABLE);
 			ERR_FAIL_COND_V(!_image_compress_etc1_func, ERR_UNAVAILABLE);
@@ -2714,8 +2710,7 @@ ImageMemLoadFunc Image::_bmp_mem_loader_func = nullptr;
 
 
 void (*Image::_image_compress_bc_func)(Image *, float, Image::UsedChannels) = nullptr;
 void (*Image::_image_compress_bc_func)(Image *, float, Image::UsedChannels) = nullptr;
 void (*Image::_image_compress_bptc_func)(Image *, float, Image::UsedChannels) = nullptr;
 void (*Image::_image_compress_bptc_func)(Image *, float, Image::UsedChannels) = nullptr;
-void (*Image::_image_compress_pvrtc2_func)(Image *) = nullptr;
-void (*Image::_image_compress_pvrtc4_func)(Image *) = nullptr;
+void (*Image::_image_compress_pvrtc1_4bpp_func)(Image *) = nullptr;
 void (*Image::_image_compress_etc1_func)(Image *, float) = nullptr;
 void (*Image::_image_compress_etc1_func)(Image *, float) = nullptr;
 void (*Image::_image_compress_etc2_func)(Image *, float, Image::UsedChannels) = nullptr;
 void (*Image::_image_compress_etc2_func)(Image *, float, Image::UsedChannels) = nullptr;
 void (*Image::_image_decompress_pvrtc)(Image *) = nullptr;
 void (*Image::_image_decompress_pvrtc)(Image *) = nullptr;
@@ -3173,10 +3168,10 @@ void Image::_bind_methods() {
 	BIND_ENUM_CONSTANT(FORMAT_BPTC_RGBA); //btpc bc6h
 	BIND_ENUM_CONSTANT(FORMAT_BPTC_RGBA); //btpc bc6h
 	BIND_ENUM_CONSTANT(FORMAT_BPTC_RGBF); //float /
 	BIND_ENUM_CONSTANT(FORMAT_BPTC_RGBF); //float /
 	BIND_ENUM_CONSTANT(FORMAT_BPTC_RGBFU); //unsigned float
 	BIND_ENUM_CONSTANT(FORMAT_BPTC_RGBFU); //unsigned float
-	BIND_ENUM_CONSTANT(FORMAT_PVRTC2); //pvrtc
-	BIND_ENUM_CONSTANT(FORMAT_PVRTC2A);
-	BIND_ENUM_CONSTANT(FORMAT_PVRTC4);
-	BIND_ENUM_CONSTANT(FORMAT_PVRTC4A);
+	BIND_ENUM_CONSTANT(FORMAT_PVRTC1_2); //pvrtc
+	BIND_ENUM_CONSTANT(FORMAT_PVRTC1_2A);
+	BIND_ENUM_CONSTANT(FORMAT_PVRTC1_4);
+	BIND_ENUM_CONSTANT(FORMAT_PVRTC1_4A);
 	BIND_ENUM_CONSTANT(FORMAT_ETC); //etc1
 	BIND_ENUM_CONSTANT(FORMAT_ETC); //etc1
 	BIND_ENUM_CONSTANT(FORMAT_ETC2_R11); //etc2
 	BIND_ENUM_CONSTANT(FORMAT_ETC2_R11); //etc2
 	BIND_ENUM_CONSTANT(FORMAT_ETC2_R11S); //signed ); NOT srgb.
 	BIND_ENUM_CONSTANT(FORMAT_ETC2_R11S); //signed ); NOT srgb.
@@ -3200,10 +3195,10 @@ void Image::_bind_methods() {
 	BIND_ENUM_CONSTANT(ALPHA_BLEND);
 	BIND_ENUM_CONSTANT(ALPHA_BLEND);
 
 
 	BIND_ENUM_CONSTANT(COMPRESS_S3TC);
 	BIND_ENUM_CONSTANT(COMPRESS_S3TC);
-	BIND_ENUM_CONSTANT(COMPRESS_PVRTC2);
-	BIND_ENUM_CONSTANT(COMPRESS_PVRTC4);
+	BIND_ENUM_CONSTANT(COMPRESS_PVRTC1_4);
 	BIND_ENUM_CONSTANT(COMPRESS_ETC);
 	BIND_ENUM_CONSTANT(COMPRESS_ETC);
 	BIND_ENUM_CONSTANT(COMPRESS_ETC2);
 	BIND_ENUM_CONSTANT(COMPRESS_ETC2);
+	BIND_ENUM_CONSTANT(COMPRESS_BPTC);
 
 
 	BIND_ENUM_CONSTANT(USED_CHANNELS_L);
 	BIND_ENUM_CONSTANT(USED_CHANNELS_L);
 	BIND_ENUM_CONSTANT(USED_CHANNELS_LA);
 	BIND_ENUM_CONSTANT(USED_CHANNELS_LA);

+ 7 - 9
core/io/image.h

@@ -91,10 +91,10 @@ public:
 		FORMAT_BPTC_RGBA, //btpc bc7
 		FORMAT_BPTC_RGBA, //btpc bc7
 		FORMAT_BPTC_RGBF, //float bc6h
 		FORMAT_BPTC_RGBF, //float bc6h
 		FORMAT_BPTC_RGBFU, //unsigned float bc6hu
 		FORMAT_BPTC_RGBFU, //unsigned float bc6hu
-		FORMAT_PVRTC2, //pvrtc
-		FORMAT_PVRTC2A,
-		FORMAT_PVRTC4,
-		FORMAT_PVRTC4A,
+		FORMAT_PVRTC1_2, //pvrtc1
+		FORMAT_PVRTC1_2A,
+		FORMAT_PVRTC1_4,
+		FORMAT_PVRTC1_4A,
 		FORMAT_ETC, //etc1
 		FORMAT_ETC, //etc1
 		FORMAT_ETC2_R11, //etc2
 		FORMAT_ETC2_R11, //etc2
 		FORMAT_ETC2_R11S, //signed, NOT srgb.
 		FORMAT_ETC2_R11S, //signed, NOT srgb.
@@ -138,8 +138,7 @@ public:
 
 
 	static void (*_image_compress_bc_func)(Image *, float, UsedChannels p_channels);
 	static void (*_image_compress_bc_func)(Image *, float, UsedChannels p_channels);
 	static void (*_image_compress_bptc_func)(Image *, float p_lossy_quality, UsedChannels p_channels);
 	static void (*_image_compress_bptc_func)(Image *, float p_lossy_quality, UsedChannels p_channels);
-	static void (*_image_compress_pvrtc2_func)(Image *);
-	static void (*_image_compress_pvrtc4_func)(Image *);
+	static void (*_image_compress_pvrtc1_4bpp_func)(Image *);
 	static void (*_image_compress_etc1_func)(Image *, float);
 	static void (*_image_compress_etc1_func)(Image *, float);
 	static void (*_image_compress_etc2_func)(Image *, float, UsedChannels p_channels);
 	static void (*_image_compress_etc2_func)(Image *, float, UsedChannels p_channels);
 
 
@@ -332,11 +331,10 @@ public:
 
 
 	enum CompressMode {
 	enum CompressMode {
 		COMPRESS_S3TC,
 		COMPRESS_S3TC,
-		COMPRESS_PVRTC2,
-		COMPRESS_PVRTC4,
+		COMPRESS_PVRTC1_4,
 		COMPRESS_ETC,
 		COMPRESS_ETC,
 		COMPRESS_ETC2,
 		COMPRESS_ETC2,
-		COMPRESS_BPTC
+		COMPRESS_BPTC,
 	};
 	};
 	enum CompressSource {
 	enum CompressSource {
 		COMPRESS_SOURCE_GENERIC,
 		COMPRESS_SOURCE_GENERIC,

+ 15 - 14
doc/classes/Image.xml

@@ -636,18 +636,19 @@
 		<constant name="FORMAT_BPTC_RGBFU" value="24" enum="Format">
 		<constant name="FORMAT_BPTC_RGBFU" value="24" enum="Format">
 			Texture format that uses [url=https://www.khronos.org/opengl/wiki/BPTC_Texture_Compression]BPTC[/url] compression with unsigned floating-point RGB components.
 			Texture format that uses [url=https://www.khronos.org/opengl/wiki/BPTC_Texture_Compression]BPTC[/url] compression with unsigned floating-point RGB components.
 		</constant>
 		</constant>
-		<constant name="FORMAT_PVRTC2" value="25" enum="Format">
+		<constant name="FORMAT_PVRTC1_2" value="25" enum="Format">
 			Texture format used on PowerVR-supported mobile platforms, uses 2-bit color depth with no alpha. More information can be found [url=https://en.wikipedia.org/wiki/PVRTC]here[/url].
 			Texture format used on PowerVR-supported mobile platforms, uses 2-bit color depth with no alpha. More information can be found [url=https://en.wikipedia.org/wiki/PVRTC]here[/url].
 			[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.
 			[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.
 		</constant>
 		</constant>
-		<constant name="FORMAT_PVRTC2A" value="26" enum="Format">
-			Same as [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url], but with an alpha component.
+		<constant name="FORMAT_PVRTC1_2A" value="26" enum="Format">
+			Same as [constant FORMAT_PVRTC1_2], but with an alpha component.
 		</constant>
 		</constant>
-		<constant name="FORMAT_PVRTC4" value="27" enum="Format">
-			Similar to [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url], but with 4-bit color depth and no alpha.
+		<constant name="FORMAT_PVRTC1_4" value="27" enum="Format">
+			Texture format used on PowerVR-supported mobile platforms, uses 4-bit color depth with no alpha. More information can be found [url=https://en.wikipedia.org/wiki/PVRTC]here[/url].
+			[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.
 		</constant>
 		</constant>
-		<constant name="FORMAT_PVRTC4A" value="28" enum="Format">
-			Same as [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC4[/url], but with an alpha component.
+		<constant name="FORMAT_PVRTC1_4A" value="28" enum="Format">
+			Same as [constant FORMAT_PVRTC1_4], but with an alpha component.
 		</constant>
 		</constant>
 		<constant name="FORMAT_ETC" value="29" enum="Format">
 		<constant name="FORMAT_ETC" value="29" enum="Format">
 			[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC1]Ericsson Texture Compression format 1[/url], also referred to as "ETC1", and is part of the OpenGL ES graphics standard. This format cannot store an alpha channel.
 			[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC1]Ericsson Texture Compression format 1[/url], also referred to as "ETC1", and is part of the OpenGL ES graphics standard. This format cannot store an alpha channel.
@@ -714,18 +715,18 @@
 		<constant name="COMPRESS_S3TC" value="0" enum="CompressMode">
 		<constant name="COMPRESS_S3TC" value="0" enum="CompressMode">
 			Use S3TC compression.
 			Use S3TC compression.
 		</constant>
 		</constant>
-		<constant name="COMPRESS_PVRTC2" value="1" enum="CompressMode">
-			Use PVRTC2 compression.
-		</constant>
-		<constant name="COMPRESS_PVRTC4" value="2" enum="CompressMode">
-			Use PVRTC4 compression.
+		<constant name="COMPRESS_PVRTC1_4" value="1" enum="CompressMode">
+			Use PVRTC1 4-bpp compression.
 		</constant>
 		</constant>
-		<constant name="COMPRESS_ETC" value="3" enum="CompressMode">
+		<constant name="COMPRESS_ETC" value="2" enum="CompressMode">
 			Use ETC compression.
 			Use ETC compression.
 		</constant>
 		</constant>
-		<constant name="COMPRESS_ETC2" value="4" enum="CompressMode">
+		<constant name="COMPRESS_ETC2" value="3" enum="CompressMode">
 			Use ETC2 compression.
 			Use ETC2 compression.
 		</constant>
 		</constant>
+		<constant name="COMPRESS_BPTC" value="4" enum="CompressMode">
+			Use BPTC compression.
+		</constant>
 		<constant name="USED_CHANNELS_L" value="0" enum="UsedChannels">
 		<constant name="USED_CHANNELS_L" value="0" enum="UsedChannels">
 		</constant>
 		</constant>
 		<constant name="USED_CHANNELS_LA" value="1" enum="UsedChannels">
 		<constant name="USED_CHANNELS_LA" value="1" enum="UsedChannels">

+ 1 - 1
editor/import/resource_importer_texture.cpp

@@ -537,7 +537,7 @@ Error ResourceImporterTexture::import(const String &p_source_file, const String
 		}
 		}
 
 
 		if (ProjectSettings::get_singleton()->get("rendering/vram_compression/import_pvrtc")) {
 		if (ProjectSettings::get_singleton()->get("rendering/vram_compression/import_pvrtc")) {
-			_save_stex(image, p_save_path + ".pvrtc.stex", compress_mode, lossy, Image::COMPRESS_PVRTC4, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel);
+			_save_stex(image, p_save_path + ".pvrtc.stex", compress_mode, lossy, Image::COMPRESS_PVRTC1_4, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel);
 			r_platform_variants->push_back("pvrtc");
 			r_platform_variants->push_back("pvrtc");
 			formats_imported.push_back("pvrtc");
 			formats_imported.push_back("pvrtc");
 		}
 		}

+ 3 - 5
modules/pvr/image_compress_pvrtc.cpp

@@ -36,7 +36,7 @@
 #include <PvrTcEncoder.h>
 #include <PvrTcEncoder.h>
 #include <RgbaBitmap.h>
 #include <RgbaBitmap.h>
 
 
-static void _compress_pvrtc4(Image *p_img) {
+static void _compress_pvrtc1_4bpp(Image *p_img) {
 	Ref<Image> img = p_img->duplicate();
 	Ref<Image> img = p_img->duplicate();
 
 
 	bool make_mipmaps = false;
 	bool make_mipmaps = false;
@@ -53,7 +53,7 @@ static void _compress_pvrtc4(Image *p_img) {
 
 
 	Ref<Image> new_img;
 	Ref<Image> new_img;
 	new_img.instance();
 	new_img.instance();
-	new_img->create(img->get_width(), img->get_height(), img->has_mipmaps(), use_alpha ? Image::FORMAT_PVRTC4A : Image::FORMAT_PVRTC4);
+	new_img->create(img->get_width(), img->get_height(), img->has_mipmaps(), use_alpha ? Image::FORMAT_PVRTC1_4A : Image::FORMAT_PVRTC1_4);
 
 
 	Vector<uint8_t> data = new_img->get_data();
 	Vector<uint8_t> data = new_img->get_data();
 	{
 	{
@@ -80,7 +80,5 @@ static void _compress_pvrtc4(Image *p_img) {
 }
 }
 
 
 void _register_pvrtc_compress_func() {
 void _register_pvrtc_compress_func() {
-	// FIXME: We claim to support PVRTC2 but use the same method as for PVRTC4.
-	Image::_image_compress_pvrtc2_func = _compress_pvrtc4;
-	Image::_image_compress_pvrtc4_func = _compress_pvrtc4;
+	Image::_image_compress_pvrtc1_4bpp_func = _compress_pvrtc1_4bpp;
 }
 }

+ 4 - 4
modules/pvr/texture_loader_pvr.cpp

@@ -108,11 +108,11 @@ RES ResourceFormatPVR::load(const String &p_path, const String &p_original_path,
 	switch (flags & 0xFF) {
 	switch (flags & 0xFF) {
 		case 0x18:
 		case 0x18:
 		case 0xC:
 		case 0xC:
-			format = (flags & PVR_HAS_ALPHA) ? Image::FORMAT_PVRTC2A : Image::FORMAT_PVRTC2;
+			format = (flags & PVR_HAS_ALPHA) ? Image::FORMAT_PVRTC1_2A : Image::FORMAT_PVRTC1_2;
 			break;
 			break;
 		case 0x19:
 		case 0x19:
 		case 0xD:
 		case 0xD:
-			format = (flags & PVR_HAS_ALPHA) ? Image::FORMAT_PVRTC4A : Image::FORMAT_PVRTC4;
+			format = (flags & PVR_HAS_ALPHA) ? Image::FORMAT_PVRTC1_4A : Image::FORMAT_PVRTC1_4;
 			break;
 			break;
 		case 0x16:
 		case 0x16:
 			format = Image::FORMAT_L8;
 			format = Image::FORMAT_L8;
@@ -587,9 +587,9 @@ static void decompress_pvrtc(PVRTCBlock *p_comp_img, const int p_2bit, const int
 }
 }
 
 
 static void _pvrtc_decompress(Image *p_img) {
 static void _pvrtc_decompress(Image *p_img) {
-	ERR_FAIL_COND(p_img->get_format() != Image::FORMAT_PVRTC2 && p_img->get_format() != Image::FORMAT_PVRTC2A && p_img->get_format() != Image::FORMAT_PVRTC4 && p_img->get_format() != Image::FORMAT_PVRTC4A);
+	ERR_FAIL_COND(p_img->get_format() != Image::FORMAT_PVRTC1_2 && p_img->get_format() != Image::FORMAT_PVRTC1_2A && p_img->get_format() != Image::FORMAT_PVRTC1_4 && p_img->get_format() != Image::FORMAT_PVRTC1_4A);
 
 
-	bool _2bit = (p_img->get_format() == Image::FORMAT_PVRTC2 || p_img->get_format() == Image::FORMAT_PVRTC2A);
+	bool _2bit = (p_img->get_format() == Image::FORMAT_PVRTC1_2 || p_img->get_format() == Image::FORMAT_PVRTC1_2A);
 
 
 	Vector<uint8_t> data = p_img->get_data();
 	Vector<uint8_t> data = p_img->get_data();
 	const uint8_t *r = data.ptr();
 	const uint8_t *r = data.ptr();

+ 4 - 4
servers/rendering/renderer_rd/renderer_storage_rd.cpp

@@ -318,7 +318,7 @@ Ref<Image> RendererStorageRD::_validate_texture_format(const Ref<Image> &p_image
 			r_format.swizzle_b = RD::TEXTURE_SWIZZLE_B;
 			r_format.swizzle_b = RD::TEXTURE_SWIZZLE_B;
 			r_format.swizzle_a = RD::TEXTURE_SWIZZLE_ONE;
 			r_format.swizzle_a = RD::TEXTURE_SWIZZLE_ONE;
 		} break; //unsigned float bc6hu
 		} break; //unsigned float bc6hu
-		case Image::FORMAT_PVRTC2: {
+		case Image::FORMAT_PVRTC1_2: {
 			//this is not properly supported by MoltekVK it seems, so best to use ETC2
 			//this is not properly supported by MoltekVK it seems, so best to use ETC2
 			if (RD::get_singleton()->texture_is_format_supported_for_usage(RD::DATA_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_UPDATE_BIT)) {
 			if (RD::get_singleton()->texture_is_format_supported_for_usage(RD::DATA_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_UPDATE_BIT)) {
 				r_format.format = RD::DATA_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG;
 				r_format.format = RD::DATA_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG;
@@ -336,7 +336,7 @@ Ref<Image> RendererStorageRD::_validate_texture_format(const Ref<Image> &p_image
 			r_format.swizzle_a = RD::TEXTURE_SWIZZLE_ONE;
 			r_format.swizzle_a = RD::TEXTURE_SWIZZLE_ONE;
 
 
 		} break; //pvrtc
 		} break; //pvrtc
-		case Image::FORMAT_PVRTC2A: {
+		case Image::FORMAT_PVRTC1_2A: {
 			//this is not properly supported by MoltekVK it seems, so best to use ETC2
 			//this is not properly supported by MoltekVK it seems, so best to use ETC2
 			if (RD::get_singleton()->texture_is_format_supported_for_usage(RD::DATA_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_UPDATE_BIT)) {
 			if (RD::get_singleton()->texture_is_format_supported_for_usage(RD::DATA_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_UPDATE_BIT)) {
 				r_format.format = RD::DATA_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG;
 				r_format.format = RD::DATA_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG;
@@ -353,7 +353,7 @@ Ref<Image> RendererStorageRD::_validate_texture_format(const Ref<Image> &p_image
 			r_format.swizzle_b = RD::TEXTURE_SWIZZLE_B;
 			r_format.swizzle_b = RD::TEXTURE_SWIZZLE_B;
 			r_format.swizzle_a = RD::TEXTURE_SWIZZLE_A;
 			r_format.swizzle_a = RD::TEXTURE_SWIZZLE_A;
 		} break;
 		} break;
-		case Image::FORMAT_PVRTC4: {
+		case Image::FORMAT_PVRTC1_4: {
 			//this is not properly supported by MoltekVK it seems, so best to use ETC2
 			//this is not properly supported by MoltekVK it seems, so best to use ETC2
 			if (RD::get_singleton()->texture_is_format_supported_for_usage(RD::DATA_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_UPDATE_BIT)) {
 			if (RD::get_singleton()->texture_is_format_supported_for_usage(RD::DATA_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_UPDATE_BIT)) {
 				r_format.format = RD::DATA_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG;
 				r_format.format = RD::DATA_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG;
@@ -370,7 +370,7 @@ Ref<Image> RendererStorageRD::_validate_texture_format(const Ref<Image> &p_image
 			r_format.swizzle_b = RD::TEXTURE_SWIZZLE_B;
 			r_format.swizzle_b = RD::TEXTURE_SWIZZLE_B;
 			r_format.swizzle_a = RD::TEXTURE_SWIZZLE_ONE;
 			r_format.swizzle_a = RD::TEXTURE_SWIZZLE_ONE;
 		} break;
 		} break;
-		case Image::FORMAT_PVRTC4A: {
+		case Image::FORMAT_PVRTC1_4A: {
 			//this is not properly supported by MoltekVK it seems, so best to use ETC2
 			//this is not properly supported by MoltekVK it seems, so best to use ETC2
 			if (RD::get_singleton()->texture_is_format_supported_for_usage(RD::DATA_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_UPDATE_BIT)) {
 			if (RD::get_singleton()->texture_is_format_supported_for_usage(RD::DATA_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_UPDATE_BIT)) {
 				r_format.format = RD::DATA_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG;
 				r_format.format = RD::DATA_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG;