|
@@ -373,6 +373,71 @@ static inline bool IsIntegerFormat(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static inline bool IsCompressedFormat(
|
|
|
+ SDL_GPUTextureFormat format)
|
|
|
+{
|
|
|
+ switch (format) {
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC4_R_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC5_RG_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT:
|
|
|
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT:
|
|
|
+ return true;
|
|
|
+
|
|
|
+ default:
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
static inline Uint32 IndexSize(SDL_GPUIndexElementSize size)
|
|
|
{
|
|
|
return (size == SDL_GPU_INDEXELEMENTSIZE_16BIT) ? 2 : 4;
|