]> git.tdb.fi Git - libs/gl.git/blobdiff - source/pixelformat.h
Reimplement Animation using splines
[libs/gl.git] / source / pixelformat.h
index 590ab97eb62cd1e48821e27b9ddda71352149d48..2db894a78447ed0d6b7b2892f7c5e8a499509774 100644 (file)
@@ -4,58 +4,77 @@
 #include <msp/graphics/pixelformat.h>
 #include <msp/strings/lexicalcast.h>
 #include "gl.h"
+#include <msp/gl/extensions/arb_depth_buffer_float.h>
+#include <msp/gl/extensions/arb_depth_texture.h>
 #include <msp/gl/extensions/arb_texture_float.h>
+#include <msp/gl/extensions/arb_texture_rg.h>
 #include <msp/gl/extensions/ext_bgra.h>
 #include <msp/gl/extensions/ext_texture_srgb.h>
+#include <msp/gl/extensions/msp_legacy_features.h>
+#include <msp/gl/extensions/oes_required_internalformat.h>
+#include <msp/gl/extensions/oes_texture_stencil8.h>
 
 namespace Msp {
 namespace GL {
 
 enum PixelFormat
 {
-       COLOR_INDEX     = GL_COLOR_INDEX,
        STENCIL_INDEX   = GL_STENCIL_INDEX,
        DEPTH_COMPONENT = GL_DEPTH_COMPONENT,
+       DEPTH_COMPONENT16 = GL_DEPTH_COMPONENT16,
+       DEPTH_COMPONENT24 = GL_DEPTH_COMPONENT24,
+       DEPTH_COMPONENT32 = GL_DEPTH_COMPONENT32,
+       DEPTH_COMPONENT32F = GL_DEPTH_COMPONENT32F,
        RED             = GL_RED,
-       GREEN           = GL_GREEN,
-       BLUE            = GL_BLUE,
-       ALPHA           = GL_ALPHA,
+       RG              = GL_RG,
        RGB             = GL_RGB,
        RGBA            = GL_RGBA,
+       R8              = GL_R8,
+       R16F            = GL_R16F,
+       R32F            = GL_R32F,
+       RG8             = GL_RG8,
+       RG16F           = GL_RG16F,
+       RG32F           = GL_RG32F,
        RGB8            = GL_RGB8,
-       RGB16F          = GL_RGB16F_ARB,
-       RGB32F          = GL_RGB32F_ARB,
+       RGB16F          = GL_RGB16F,
+       RGB32F          = GL_RGB32F,
        RGBA8           = GL_RGBA8,
-       RGBA16F         = GL_RGBA16F_ARB,
-       RGBA32F         = GL_RGBA32F_ARB,
-       SRGB            = GL_SRGB_EXT,
-       SRGB_ALPHA      = GL_SRGB_ALPHA_EXT,
-       SRGB8           = GL_SRGB8_EXT,
-       SRGB8_ALPHA8    = GL_SRGB8_ALPHA8_EXT,
+       RGBA16F         = GL_RGBA16F,
+       RGBA32F         = GL_RGBA32F,
+       SRGB            = GL_SRGB,
+       SRGB_ALPHA      = GL_SRGB_ALPHA,
+       SRGB8           = GL_SRGB8,
+       SRGB8_ALPHA8    = GL_SRGB8_ALPHA8,
        BGR             = GL_BGR,
        BGRA            = GL_BGRA,
        LUMINANCE       = GL_LUMINANCE,
        LUMINANCE8      = GL_LUMINANCE8,
-       LUMINANCE16F    = GL_LUMINANCE16F_ARB,
-       LUMINANCE32F    = GL_LUMINANCE32F_ARB,
        LUMINANCE_ALPHA    = GL_LUMINANCE_ALPHA,
-       LUMINANCE_ALPHA8   = GL_LUMINANCE8_ALPHA8,
-       LUMINANCE_ALPHA16F = GL_LUMINANCE_ALPHA16F_ARB,
-       LUMINANCE_ALPHA32F = GL_LUMINANCE_ALPHA32F_ARB,
-       SLUMINANCE         = GL_SLUMINANCE_EXT,
-       SLUMINANCE8        = GL_SLUMINANCE8_EXT,
-       SLUMINANCE_ALPHA   = GL_SLUMINANCE_ALPHA_EXT,
-       SLUMINANCE8_ALPHA8 = GL_SLUMINANCE8_ALPHA8_EXT
+       LUMINANCE8_ALPHA8  = GL_LUMINANCE8_ALPHA8,
+
+       // Deprecated
+       SLUMINANCE         = GL_SLUMINANCE,
+       SLUMINANCE8        = GL_SLUMINANCE8,
+       SLUMINANCE_ALPHA   = GL_SLUMINANCE_ALPHA,
+       SLUMINANCE8_ALPHA8 = GL_SLUMINANCE8_ALPHA8,
+
+       // Typo, deprecated
+       LUMINANCE_ALPHA8   = GL_LUMINANCE8_ALPHA8
 };
 
 void operator>>(const LexicalConverter &, PixelFormat &);
 
 PixelFormat pixelformat_from_graphics(Graphics::PixelFormat);
-PixelFormat storage_pixelformat_from_graphics(Graphics::PixelFormat);
+PixelFormat storage_pixelformat_from_graphics(Graphics::PixelFormat, bool = false);
 
 PixelFormat get_base_pixelformat(PixelFormat);
+PixelFormat get_unsized_pixelformat(PixelFormat);
+PixelFormat get_sized_pixelformat(PixelFormat, unsigned = 1);
+PixelFormat get_default_sized_pixelformat(PixelFormat);
 PixelFormat get_srgb_pixelformat(PixelFormat);
 unsigned get_component_count(PixelFormat);
+unsigned get_component_size(PixelFormat);
+unsigned get_pixel_size(PixelFormat);
 
 void require_pixelformat(PixelFormat);