aboutsummaryrefslogtreecommitdiff
path: root/dep/src/g3dlite/ImageFormat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dep/src/g3dlite/ImageFormat.cpp')
-rw-r--r--dep/src/g3dlite/ImageFormat.cpp567
1 files changed, 0 insertions, 567 deletions
diff --git a/dep/src/g3dlite/ImageFormat.cpp b/dep/src/g3dlite/ImageFormat.cpp
deleted file mode 100644
index 70de878c11e..00000000000
--- a/dep/src/g3dlite/ImageFormat.cpp
+++ /dev/null
@@ -1,567 +0,0 @@
-/**
- @file ImageFormat.cpp
-
- @maintainer Morgan McGuire, http://graphics.cs.williams.edu
-
- @created 2003-05-23
- @edited 2009-12-10
- */
-
-#include "GLG3D/glheaders.h"
-#include "G3D/ImageFormat.h"
-
-namespace G3D {
-
-ImageFormat::ImageFormat(
- int _numComponents,
- bool _compressed,
- int _glFormat,
- int _glBaseFormat,
- int _luminanceBits,
- int _alphaBits,
- int _redBits,
- int _greenBits,
- int _blueBits,
- int _depthBits,
- int _stencilBits,
- int _hardwareBitsPerTexel,
- int _packedBitsPerTexel,
- int glDataFormat,
- bool _opaque,
- bool _floatingPoint,
- Code _code,
- ColorSpace _colorSpace,
- BayerPattern _bayerPattern) :
-
- numComponents(_numComponents),
- compressed(_compressed),
- code(_code),
- colorSpace(_colorSpace),
- bayerPattern(_bayerPattern),
- openGLFormat(_glFormat),
- openGLBaseFormat(_glBaseFormat),
- luminanceBits(_luminanceBits),
- alphaBits(_alphaBits),
- redBits(_redBits),
- greenBits(_greenBits),
- blueBits(_blueBits),
- stencilBits(_stencilBits),
- depthBits(_depthBits),
- cpuBitsPerPixel(_packedBitsPerTexel),
- packedBitsPerTexel(_packedBitsPerTexel),
- openGLBitsPerPixel(_hardwareBitsPerTexel),
- hardwareBitsPerTexel(_hardwareBitsPerTexel),
- openGLDataFormat(glDataFormat),
- opaque(_opaque),
- floatingPoint(_floatingPoint) {
-
- debugAssert(_packedBitsPerTexel <= _hardwareBitsPerTexel);
-}
-
-const ImageFormat* ImageFormat::depth(int depthBits) {
-
- switch (depthBits) {
- case 16:
- return DEPTH16();
-
- case 24:
- return DEPTH24();
-
- case 32:
- return DEPTH32();
-
- default:
- debugAssertM(false, "Depth must be 16, 24, or 32.");
- return DEPTH32();
- }
-}
-
-
-const ImageFormat* ImageFormat::stencil(int bits) {
- switch (bits) {
- case 1:
- return STENCIL1();
-
- case 4:
- return STENCIL4();
-
- case 8:
- return STENCIL8();
-
- case 16:
- return STENCIL16();
-
- default:
- debugAssertM(false, "Stencil must be 1, 4, 8 or 16.");
- return STENCIL16();
- }
-}
-
-
- static const std::string nameArray[] =
- {
- "L8",
- "L16",
- "L16F",
- "L32F",
-
- "A8",
- "A16",
- "A16F",
- "A32F",
-
- "LA4",
- "LA8",
- "LA16",
- "LA16F",
- "LA32F",
-
- "RGB5",
- "RGB5A1",
- "RGB8",
- "RGB10",
- "RGB10A2",
- "RGB16",
- "RGB16F",
- "RGB32F",
- "R11G11B10F",
- "RGB9E10F",
-
- "RGB8I",
- "RGB8UI",
-
- "ARGB8",
- "BGR8",
-
- "RG8",
- "RG8I",
- "RG8UI",
-
- "RGBA8",
- "RGBA16",
- "RGBA16F",
- "RGBA32F",
-
- "RGBA32UI",
-
- "BAYER_RGGB8",
- "BAYER_GRBG8",
- "BAYER_GBRG8",
- "BAYER_BGGR8",
- "BAYER_RGGB32F",
- "BAYER_GRBG32F",
- "BAYER_GBRG32F",
- "BAYER_BGGR32F",
-
- "HSV8",
- "HSV32F",
-
- "YUV420_PLANAR",
- "YUV422",
- "YUV444",
-
- "RGB_DXT1",
- "RGBA_DXT1",
- "RGBA_DXT3",
- "RGBA_DXT5",
-
- "SRGB8",
- "SRGBA8",
-
- "SL8",
- "SLA8",
-
- "SRGB_DXT1",
- "SRGBA_DXT1",
- "SRGBA_DXT3",
- "SRGBA_DXT5",
-
- "DEPTH16",
- "DEPTH24",
- "DEPTH32",
- "DEPTH32F",
-
- "STENCIL1",
- "STENCIL4",
- "STENCIL8",
- "STENCIL16",
-
- "DEPTH24_STENCIL8",
- ""
- };
-
-const std::string& ImageFormat::name() const {
- debugAssert(code < CODE_NUM);
- return nameArray[code];
-}
-
-
-const ImageFormat* ImageFormat::fromString(const std::string& s) {
-
- for (int i = 0; ! nameArray[i].empty(); ++i) {
- if (s == nameArray[i]) {
- return fromCode(ImageFormat::Code(i));
- }
- }
- return NULL;
-}
-
-
-const ImageFormat* ImageFormat::fromCode(ImageFormat::Code code) {
- switch (code) {
- case ImageFormat::CODE_L8:
- return ImageFormat::L8();
-
- case ImageFormat::CODE_L16:
- return ImageFormat::L16();
-
- case ImageFormat::CODE_L16F:
- return ImageFormat::L16F();
-
- case ImageFormat::CODE_L32F:
- return ImageFormat::L32F();
-
- case ImageFormat::CODE_A8:
- return ImageFormat::A8();
-
- case ImageFormat::CODE_A16:
- return ImageFormat::A16();
-
- case ImageFormat::CODE_A16F:
- return ImageFormat::A16F();
-
- case ImageFormat::CODE_A32F:
- return ImageFormat::A32F();
-
- case ImageFormat::CODE_LA4:
- return ImageFormat::LA4();
-
- case ImageFormat::CODE_LA8:
- return ImageFormat::LA8();
-
- case ImageFormat::CODE_LA16:
- return ImageFormat::LA16();
-
- case ImageFormat::CODE_LA16F:
- return ImageFormat::LA16F();
- break;
- case ImageFormat::CODE_LA32F:
- return ImageFormat::LA32F();
-
- case ImageFormat::CODE_RGB5:
- return ImageFormat::RGB5();
-
- case ImageFormat::CODE_RGB5A1:
- return ImageFormat::RGB5A1();
-
- case ImageFormat::CODE_RGB8:
- return ImageFormat::RGB8();
-
- case ImageFormat::CODE_RGB10:
- return ImageFormat::RGB10();
-
- case ImageFormat::CODE_RGB10A2:
- return ImageFormat::RGB10A2();
-
- case ImageFormat::CODE_RGB16:
- return ImageFormat::RGB16();
-
- case ImageFormat::CODE_RGB32F:
- return ImageFormat::RGB32F();
-
- case ImageFormat::CODE_R11G11B10F:
- return ImageFormat::R11G11B10F();
-
- case ImageFormat::CODE_RGB9E5F:
- return ImageFormat::RGB9E5F();
-
- case ImageFormat::CODE_RGB8I:
- return ImageFormat::RGB8I();
-
- case ImageFormat::CODE_RGB8UI:
- return ImageFormat::RGB8UI();
-
- case ImageFormat::CODE_ARGB8:
- return NULL;
-
- case ImageFormat::CODE_BGR8:
- return ImageFormat::BGR8();
-
- case ImageFormat::CODE_RG8:
- return ImageFormat::RG8();
-
- case ImageFormat::CODE_RG8I:
- return ImageFormat::RG8I();
-
- case ImageFormat::CODE_RG8UI:
- return ImageFormat::RG8UI();
-
- case ImageFormat::CODE_RGBA8:
- return ImageFormat::RGBA8();
-
- case ImageFormat::CODE_RGBA16:
- return ImageFormat::RGBA16();
-
- case ImageFormat::CODE_RGBA16F:
- return ImageFormat::RGBA16F();
-
- case ImageFormat::CODE_RGBA32F:
- return ImageFormat::RGBA32F();
-
- case ImageFormat::CODE_RGBA32UI:
- return ImageFormat::RGBA32UI();
-
- case ImageFormat::CODE_BAYER_RGGB8:
- // TODO
- case ImageFormat::CODE_BAYER_GRBG8:
- // TODO
- case ImageFormat::CODE_BAYER_GBRG8:
- // TODO
- case ImageFormat::CODE_BAYER_BGGR8:
- // TODO
- case ImageFormat::CODE_BAYER_RGGB32F:
- // TODO
- case ImageFormat::CODE_BAYER_GRBG32F:
- // TODO
- case ImageFormat::CODE_BAYER_GBRG32F:
- // TODO
- case ImageFormat::CODE_BAYER_BGGR32F:
- // TODO
-
- case ImageFormat::CODE_HSV8:
- // TODO
- case ImageFormat::CODE_HSV32F:
- // TODO
- return NULL;
- break;
-
- case ImageFormat::CODE_RGB_DXT1:
- return ImageFormat::RGB_DXT1();
- break;
- case ImageFormat::CODE_RGBA_DXT1:
- return ImageFormat::RGBA_DXT1();
- break;
- case ImageFormat::CODE_RGBA_DXT3:
- return ImageFormat::RGBA_DXT3();
- break;
- case ImageFormat::CODE_RGBA_DXT5:
- return ImageFormat::RGBA_DXT5();
- break;
-
- case ImageFormat::CODE_SRGB8:
- return ImageFormat::SRGB8();
- break;
-
- case ImageFormat::CODE_SRGBA8:
- return ImageFormat::SRGBA8();
- break;
-
- case ImageFormat::CODE_SL8:
- return ImageFormat::SL8();
- break;
-
- case ImageFormat::CODE_SLA8:
- return ImageFormat::SLA8();
- break;
-
- case ImageFormat::CODE_SRGB_DXT1:
- return ImageFormat::SRGB_DXT1();
- break;
-
- case ImageFormat::CODE_SRGBA_DXT1:
- return ImageFormat::SRGBA_DXT1();
- break;
-
- case ImageFormat::CODE_SRGBA_DXT3:
- return ImageFormat::SRGBA_DXT3();
- break;
-
- case ImageFormat::CODE_SRGBA_DXT5:
- return ImageFormat::SRGBA_DXT5();
- break;
-
- case ImageFormat::CODE_DEPTH16:
- return ImageFormat::DEPTH16();
- break;
- case ImageFormat::CODE_DEPTH24:
- return ImageFormat::DEPTH24();
- break;
- case ImageFormat::CODE_DEPTH32:
- return ImageFormat::DEPTH32();
- break;
- case ImageFormat::CODE_DEPTH32F:
- return ImageFormat::DEPTH32F();
- break;
-
- case ImageFormat::CODE_STENCIL1:
- return ImageFormat::STENCIL1();
- break;
- case ImageFormat::CODE_STENCIL4:
- return ImageFormat::STENCIL4();
- break;
- case ImageFormat::CODE_STENCIL8:
- return ImageFormat::STENCIL8();
- break;
- case ImageFormat::CODE_STENCIL16:
- return ImageFormat::STENCIL16();
- break;
-
- case ImageFormat::CODE_DEPTH24_STENCIL8:
- return ImageFormat::DEPTH24_STENCIL8();
- break;
-
- case ImageFormat::CODE_YUV420_PLANAR:
- return ImageFormat::YUV420_PLANAR();
- break;
-
- case ImageFormat::CODE_YUV422:
- return ImageFormat::YUV422();
- break;
-
- case ImageFormat::CODE_YUV444:
- return ImageFormat::YUV444();
- break;
-
- default:
- return NULL;
- }
-}
-
-// Helper variables for defining texture formats
-
-// Is floating point format
-static const bool FLOAT_FORMAT = true;
-static const bool INT_FORMAT = false;
-
-// Is opaque format (no alpha)
-static const bool OPAQUE_FORMAT = true;
-static const bool CLEAR_FORMAT = false;
-
-// Is compressed format (not raw component data)
-static const bool COMP_FORMAT = true;
-static const bool UNCOMP_FORMAT = false;
-
-#define DEFINE_TEXTUREFORMAT_METHOD(enumname, cmpnts, cmprssd, glf, glbf, lb, ab, rb, gb, bb, db, sb, hbpt, pbpt, gldf, opq, fp, code, cs) \
- const ImageFormat* ImageFormat::enumname() { \
- static const ImageFormat format(cmpnts, cmprssd, glf, glbf, lb, ab, rb, gb, bb, db, sb, hbpt, pbpt, gldf, opq, fp, code, cs); \
- return &format; }
-
-DEFINE_TEXTUREFORMAT_METHOD(L8, 1, UNCOMP_FORMAT, GL_LUMINANCE8, GL_LUMINANCE, 8, 0, 0, 0, 0, 0, 0, 8, 8, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, CODE_L8, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(L16, 1, UNCOMP_FORMAT, GL_LUMINANCE16, GL_LUMINANCE, 16, 0, 0, 0, 0, 0, 0, 16, 16,GL_UNSIGNED_SHORT, OPAQUE_FORMAT, INT_FORMAT, CODE_L16, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(L16F, 1, UNCOMP_FORMAT, GL_LUMINANCE16F_ARB,GL_LUMINANCE, 16, 0, 0, 0, 0, 0, 0, 16, 16, GL_FLOAT, OPAQUE_FORMAT, FLOAT_FORMAT, CODE_L16F, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(L32F, 1, UNCOMP_FORMAT, GL_LUMINANCE32F_ARB,GL_LUMINANCE, 32, 0, 0, 0, 0, 0, 0, 32, 32, GL_FLOAT, OPAQUE_FORMAT, FLOAT_FORMAT, CODE_L32F, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(A8, 1, UNCOMP_FORMAT, GL_ALPHA8, GL_ALPHA, 0, 8, 0, 0, 0, 0, 0, 8, 8, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, CODE_A8, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(A16, 1, UNCOMP_FORMAT, GL_ALPHA16, GL_ALPHA, 0, 16, 0, 0, 0, 0, 0, 16, 16, GL_UNSIGNED_SHORT, CLEAR_FORMAT, INT_FORMAT, CODE_A16, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(A16F, 1, UNCOMP_FORMAT, GL_ALPHA16F_ARB, GL_ALPHA, 0, 16, 0, 0, 0, 0, 0, 16, 16, GL_FLOAT, CLEAR_FORMAT, FLOAT_FORMAT, CODE_A16F, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(A32F, 1, UNCOMP_FORMAT, GL_ALPHA32F_ARB, GL_ALPHA, 0, 32, 0, 0, 0, 0, 0, 32, 32, GL_FLOAT, CLEAR_FORMAT, FLOAT_FORMAT, CODE_A32F, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(LA4, 2, UNCOMP_FORMAT, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE_ALPHA, 4, 4, 0, 0, 0, 0, 0, 8, 8, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, CODE_LA4, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(LA8, 2, UNCOMP_FORMAT, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE_ALPHA, 8, 8, 0, 0, 0, 0, 0, 16, 16, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, CODE_LA8, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(LA16, 2, UNCOMP_FORMAT, GL_LUMINANCE16_ALPHA16, GL_LUMINANCE_ALPHA, 16, 16, 0, 0, 0, 0, 0, 16*2, 16*2, GL_UNSIGNED_SHORT, CLEAR_FORMAT, INT_FORMAT, CODE_LA16, COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(LA16F, 2, UNCOMP_FORMAT, GL_LUMINANCE_ALPHA16F_ARB, GL_LUMINANCE_ALPHA, 16, 16, 0, 0, 0, 0, 0, 16*2, 16*2, GL_FLOAT, CLEAR_FORMAT, FLOAT_FORMAT, ImageFormat::CODE_LA16F, ImageFormat::COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(LA32F, 2, UNCOMP_FORMAT, GL_LUMINANCE_ALPHA32F_ARB, GL_LUMINANCE_ALPHA, 32, 32, 0, 0, 0, 0, 0, 32*2, 32*2, GL_FLOAT, CLEAR_FORMAT, FLOAT_FORMAT, ImageFormat::CODE_LA32F, ImageFormat::COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(BGR8, 3, UNCOMP_FORMAT, GL_RGB8, GL_BGR, 0, 0, 8, 8, 8, 0, 0, 32, 24, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_BGR8, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RG8, 2, UNCOMP_FORMAT, GL_RG8, GL_RG, 0, 0, 8, 8, 0, 0, 0, 16, 16, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RG8, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RG8I, 2, UNCOMP_FORMAT, GL_RG8I, GL_RG, 0, 0, 8, 8, 0, 0, 0, 16, 16, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RG8I, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RG8UI, 2, UNCOMP_FORMAT, GL_RG8UI, GL_RG, 0, 0, 8, 8, 0, 0, 0, 16, 16, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RG8UI, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB5, 3, UNCOMP_FORMAT, GL_RGB5, GL_RGBA, 0, 0, 5, 5, 5, 0, 0, 16, 16, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RGB5, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB5A1, 4, UNCOMP_FORMAT, GL_RGB5_A1, GL_RGBA, 0, 1, 5, 5, 5, 0, 0, 16, 16, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RGB5A1, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB8, 3, UNCOMP_FORMAT, GL_RGB8, GL_RGB, 0, 0, 8, 8, 8, 0, 0, 32, 24, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RGB8, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB10, 3, UNCOMP_FORMAT, GL_RGB10, GL_RGB, 0, 0, 10, 10, 10, 0, 0, 32, 10*3, GL_UNSIGNED_SHORT, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RGB10, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB10A2, 4, UNCOMP_FORMAT, GL_RGB10_A2, GL_RGBA, 0, 2, 10, 10, 10, 0, 0, 32, 32, GL_UNSIGNED_INT_10_10_10_2, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RGB10A2, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB16, 3, UNCOMP_FORMAT, GL_RGB16, GL_RGB, 0, 0, 16, 16, 16, 0, 0, 16*3, 16*3, GL_UNSIGNED_SHORT, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RGB16, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB16F, 3, UNCOMP_FORMAT, GL_RGB16F_ARB, GL_RGB, 0, 0, 16, 16, 16, 0, 0, 16*3, 16*3, GL_FLOAT, OPAQUE_FORMAT, FLOAT_FORMAT, ImageFormat::CODE_RGB16F, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB32F, 3, UNCOMP_FORMAT, GL_RGB32F_ARB, GL_RGB, 0, 0, 32, 32, 32, 0, 0, 32*3, 32*3, GL_FLOAT, OPAQUE_FORMAT, FLOAT_FORMAT, ImageFormat::CODE_RGB32F, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGBA8, 4, UNCOMP_FORMAT, GL_RGBA8, GL_RGBA, 0, 8, 8, 8, 8, 0, 0, 32, 32, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_RGBA8, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGBA16, 4, UNCOMP_FORMAT, GL_RGBA16, GL_RGBA, 0, 16, 16, 16, 16, 0, 0, 16*4, 16*4, GL_UNSIGNED_SHORT, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_RGBA16, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGBA16F, 4, UNCOMP_FORMAT, GL_RGBA16F_ARB, GL_RGBA, 0, 16, 16, 16, 16, 0, 0, 16*4, 16*4, GL_FLOAT, CLEAR_FORMAT, FLOAT_FORMAT, ImageFormat::CODE_RGBA16F, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGBA32F, 4, UNCOMP_FORMAT, GL_RGBA32F_ARB, GL_RGBA, 0, 32, 32, 32, 32, 0, 0, 32*4, 32*4, GL_FLOAT, CLEAR_FORMAT, FLOAT_FORMAT, ImageFormat::CODE_RGBA32F, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGBA32UI, 4, UNCOMP_FORMAT, GL_RGBA32UI, GL_RGBA, 0, 32, 32, 32, 32, 0, 0, 32*4, 32*4, GL_UNSIGNED_INT, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_RGBA32UI, ImageFormat::COLOR_SPACE_RGB);
-
-// Unsigned
-DEFINE_TEXTUREFORMAT_METHOD(R11G11B10F, 3, UNCOMP_FORMAT, GL_R11F_G11F_B10F_EXT, GL_RGB, 0, 0, 11, 11, 10, 0, 0, 32, 32, GL_FLOAT, OPAQUE_FORMAT, FLOAT_FORMAT, ImageFormat::CODE_R11G11B10F, ImageFormat::COLOR_SPACE_RGB);
-
-// Unsigned
-DEFINE_TEXTUREFORMAT_METHOD(RGB9E5F, 3, UNCOMP_FORMAT, GL_RGB9_E5_EXT, GL_RGB, 0, 0, 14, 14, 14, 0, 0, 32, 32, GL_FLOAT, OPAQUE_FORMAT, FLOAT_FORMAT, ImageFormat::CODE_RGB9E5F, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB8I, 3, UNCOMP_FORMAT, GL_RGB8I_EXT, GL_RGB, 0, 0, 8, 8, 8, 0, 0, 32, 24, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RGB8I, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB8UI, 3, UNCOMP_FORMAT, GL_RGB8UI_EXT, GL_RGB, 0, 0, 8, 8, 8, 0, 0, 32, 24, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RGB8UI, ImageFormat::COLOR_SPACE_RGB);
-
-
-DEFINE_TEXTUREFORMAT_METHOD(RGB_DXT1, 3, COMP_FORMAT, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, GL_RGB, 0, 0, 0, 0, 0, 0, 0, 64, 64, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_RGB_DXT1, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGBA_DXT1, 4, COMP_FORMAT, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, GL_RGBA, 0, 0, 0, 0, 0, 0, 0, 64, 64, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_RGBA_DXT1, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGBA_DXT3, 4, COMP_FORMAT, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, GL_RGBA, 0, 0, 0, 0, 0, 0, 0, 128, 128, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_RGBA_DXT3, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(RGBA_DXT5, 4, COMP_FORMAT, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, GL_RGBA, 0, 0, 0, 0, 0, 0, 0, 128, 128, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_RGBA_DXT5, ImageFormat::COLOR_SPACE_RGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(SRGB8, 3, UNCOMP_FORMAT, GL_SRGB8, GL_RGB, 0, 0, 8, 8, 8, 0, 0, 32, 24, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_SRGB8, ImageFormat::COLOR_SPACE_SRGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(SRGBA8, 4, UNCOMP_FORMAT, GL_SRGB8_ALPHA8, GL_RGBA, 0, 8, 8, 8, 8, 0, 0, 32, 24, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_SRGBA8, ImageFormat::COLOR_SPACE_SRGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(SL8, 1, UNCOMP_FORMAT, GL_SLUMINANCE8, GL_LUMINANCE, 8, 0, 0, 0, 0, 0, 0, 8, 8, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_SL8, ImageFormat::COLOR_SPACE_SRGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(SLA8, 2, UNCOMP_FORMAT, GL_SLUMINANCE8_ALPHA8, GL_LUMINANCE_ALPHA, 8, 8, 0, 0, 0, 0, 0, 16, 16, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_SLA8, ImageFormat::COLOR_SPACE_SRGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(SRGB_DXT1, 3, COMP_FORMAT, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, GL_RGB, 0, 0, 0, 0, 0, 0, 0, 64, 64, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_SRGB_DXT1, ImageFormat::COLOR_SPACE_SRGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(SRGBA_DXT1, 4, COMP_FORMAT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, GL_RGBA, 0, 0, 0, 0, 0, 0, 0, 64, 64, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_SRGBA_DXT1, ImageFormat::COLOR_SPACE_SRGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(SRGBA_DXT3, 4, COMP_FORMAT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, GL_RGBA, 0, 0, 0, 0, 0, 0, 0, 128, 128, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_SRGBA_DXT3, ImageFormat::COLOR_SPACE_SRGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(SRGBA_DXT5, 4, COMP_FORMAT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, GL_RGBA, 0, 0, 0, 0, 0, 0, 0, 128, 128, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_SRGBA_DXT5, ImageFormat::COLOR_SPACE_SRGB);
-
-DEFINE_TEXTUREFORMAT_METHOD(DEPTH16, 1, UNCOMP_FORMAT, GL_DEPTH_COMPONENT16_ARB, GL_DEPTH_COMPONENT, 0, 0, 0, 0, 0, 16, 0, 16, 16, GL_UNSIGNED_SHORT, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_DEPTH16, ImageFormat::COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(DEPTH24, 1, UNCOMP_FORMAT, GL_DEPTH_COMPONENT24_ARB, GL_DEPTH_COMPONENT, 0, 0, 0, 0, 0, 24, 0, 32, 24, GL_UNSIGNED_INT, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_DEPTH24, ImageFormat::COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(DEPTH32, 1, UNCOMP_FORMAT, GL_DEPTH_COMPONENT32_ARB, GL_DEPTH_COMPONENT, 0, 0, 0, 0, 0, 32, 0, 32, 32, GL_UNSIGNED_INT, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_DEPTH32, ImageFormat::COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(DEPTH32F, 1, UNCOMP_FORMAT, GL_DEPTH_COMPONENT32_ARB, GL_DEPTH_COMPONENT, 0, 0, 0, 0, 0, 32, 0, 32, 32, GL_FLOAT, CLEAR_FORMAT, FLOAT_FORMAT, ImageFormat::CODE_DEPTH32F, ImageFormat::COLOR_SPACE_NONE);
-
-// These formats are for use with Renderbuffers only!
-DEFINE_TEXTUREFORMAT_METHOD(STENCIL1, 1, UNCOMP_FORMAT, GL_STENCIL_INDEX1_EXT, GL_STENCIL_INDEX, 0, 0, 0, 0, 0, 0, 1, 1, 1, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_STENCIL1, ImageFormat::COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(STENCIL4, 1, UNCOMP_FORMAT, GL_STENCIL_INDEX4_EXT, GL_STENCIL_INDEX, 0, 0, 0, 0, 0, 0, 4, 4, 4, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_STENCIL4, ImageFormat::COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(STENCIL8, 1, UNCOMP_FORMAT, GL_STENCIL_INDEX8_EXT, GL_STENCIL_INDEX, 0, 0, 0, 0, 0, 0, 8, 8, 8, GL_UNSIGNED_BYTE, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_STENCIL8, ImageFormat::COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(STENCIL16, 1, UNCOMP_FORMAT, GL_STENCIL_INDEX16_EXT, GL_STENCIL_INDEX, 0, 0, 0, 0, 0, 0, 16, 16, 16, GL_UNSIGNED_SHORT, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_STENCIL16, ImageFormat::COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(DEPTH24_STENCIL8, 2, UNCOMP_FORMAT, GL_DEPTH24_STENCIL8_EXT, GL_DEPTH_STENCIL_EXT,0, 0, 0, 0, 0, 24, 8, 32, 32, GL_UNSIGNED_INT, CLEAR_FORMAT, INT_FORMAT, ImageFormat::CODE_DEPTH24_STENCIL8, ImageFormat::COLOR_SPACE_NONE);
-
-DEFINE_TEXTUREFORMAT_METHOD(YUV420_PLANAR, 3, UNCOMP_FORMAT, GL_NONE, GL_NONE, 0, 0, 0, 0, 0, 0, 0, 12, 12, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_YUV420_PLANAR, ImageFormat::COLOR_SPACE_YUV);
-DEFINE_TEXTUREFORMAT_METHOD(YUV422, 3, UNCOMP_FORMAT, GL_NONE, GL_NONE, 0, 0, 0, 0, 0, 0, 0, 16, 16, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_YUV422, ImageFormat::COLOR_SPACE_YUV);
-DEFINE_TEXTUREFORMAT_METHOD(YUV444, 3, UNCOMP_FORMAT, GL_NONE, GL_NONE, 0, 0, 0, 0, 0, 0, 0, 24, 24, GL_UNSIGNED_BYTE, OPAQUE_FORMAT, INT_FORMAT, ImageFormat::CODE_YUV444, ImageFormat::COLOR_SPACE_YUV);
-
-}