template<typename T>
std::same_as<T, RGBA8888> ||
std::same_as<T, ABGR8888> ||
std::same_as<T, RGB888> ||
std::same_as<T, BGR888> ||
std::same_as<T, RGB565> ||
std::same_as<T, I8> ||
std::same_as<T, IA88> ||
std::same_as<T, P8> ||
std::same_as<T, A8> ||
std::same_as<T, RGB888_BLUESCREEN> ||
std::same_as<T, BGR888_BLUESCREEN> ||
std::same_as<T, ARGB8888> ||
std::same_as<T, BGRA8888> ||
std::same_as<T, BGRX8888> ||
std::same_as<T, BGR565> ||
std::same_as<T, BGRX5551> ||
std::same_as<T, BGRA4444> ||
std::same_as<T, BGRA5551> ||
std::same_as<T, UV88> ||
std::same_as<T, UVWQ8888> ||
std::same_as<T, RGBA16161616F> ||
std::same_as<T, RGBA16161616> ||
std::same_as<T, UVLX8888> ||
std::same_as<T, R32F> ||
std::same_as<T, RGB323232F> ||
std::same_as<T, RGBA32323232F> ||
std::same_as<T, RG1616F> ||
std::same_as<T, RG3232F> ||
std::same_as<T, RGBX8888> ||
std::same_as<T, RGBA1010102> ||
std::same_as<T, BGRA1010102> ||
std::same_as<T, R16F> ||
std::same_as<T, CONSOLE_BGRX8888_LINEAR> ||
std::same_as<T, CONSOLE_RGBA8888_LINEAR> ||
std::same_as<T, CONSOLE_ABGR8888_LINEAR> ||
std::same_as<T, CONSOLE_ARGB8888_LINEAR> ||
std::same_as<T, CONSOLE_BGRA8888_LINEAR> ||
std::same_as<T, CONSOLE_RGB888_LINEAR> ||
std::same_as<T, CONSOLE_BGR888_LINEAR> ||
std::same_as<T, CONSOLE_BGRX5551_LINEAR> ||
std::same_as<T, CONSOLE_I8_LINEAR> ||
std::same_as<T, CONSOLE_RGBA16161616_LINEAR> ||
std::same_as<T, CONSOLE_BGRX8888_LE> ||
std::same_as<T, CONSOLE_BGRA8888_LE> ||
std::same_as<T, R8>