- ECOLOR_FORMAT format = image[i]->getColorFormat();\r
- core::dimension2d<u32> size = image[i]->getDimension();\r
-\r
- switch (format)\r
- {\r
- case ECF_DXT1:\r
- case ECF_DXT2:\r
- case ECF_DXT3:\r
- case ECF_DXT4:\r
- case ECF_DXT5:\r
- if (!queryFeature(EVDF_TEXTURE_COMPRESSED_DXT))\r
- {\r
- os::Printer::log("DXT texture compression not available.", ELL_ERROR);\r
- status = false;\r
- }\r
- else if (size.getOptimalSize(true, false) != size)\r
- {\r
- os::Printer::log("Invalid size of image for DXT texture, size of image must be power of two.", ELL_ERROR);\r
- status = false;\r
- }\r
- break;\r
- case ECF_PVRTC_RGB2:\r
- case ECF_PVRTC_ARGB2:\r
- case ECF_PVRTC_RGB4:\r
- case ECF_PVRTC_ARGB4:\r
- if (!queryFeature(EVDF_TEXTURE_COMPRESSED_PVRTC))\r
- {\r
- os::Printer::log("PVRTC texture compression not available.", ELL_ERROR);\r
- status = false;\r
- }\r
- else if (size.getOptimalSize(true, false) != size)\r
- {\r
- os::Printer::log("Invalid size of image for PVRTC compressed texture, size of image must be power of two and squared.", ELL_ERROR);\r
- status = false;\r
- }\r
- break;\r
- case ECF_PVRTC2_ARGB2:\r
- case ECF_PVRTC2_ARGB4:\r
- if (!queryFeature(EVDF_TEXTURE_COMPRESSED_PVRTC2))\r
- {\r
- os::Printer::log("PVRTC2 texture compression not available.", ELL_ERROR);\r
- status = false;\r
- }\r
- break;\r
- case ECF_ETC1:\r
- if (!queryFeature(EVDF_TEXTURE_COMPRESSED_ETC1))\r
- {\r
- os::Printer::log("ETC1 texture compression not available.", ELL_ERROR);\r
- status = false;\r
- }\r
- break;\r
- case ECF_ETC2_RGB:\r
- case ECF_ETC2_ARGB:\r
- if (!queryFeature(EVDF_TEXTURE_COMPRESSED_ETC2))\r
- {\r
- os::Printer::log("ETC2 texture compression not available.", ELL_ERROR);\r
- status = false;\r
- }\r
- break;\r
- default:\r
- break;\r
- }\r
-\r
- if (format != lastFormat || size != lastSize)\r
- status = false;\r