]> git.tdb.fi Git - libs/gl.git/blobdiff - source/pixelformat.h
Explicitly define the number of mipmap levels in textures
[libs/gl.git] / source / pixelformat.h
index b69ad499c59c6f77ad3ae737e9c257601544996a..2db894a78447ed0d6b7b2892f7c5e8a499509774 100644 (file)
@@ -4,12 +4,15 @@
 #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/msp_sized_internal_formats.h>
+#include <msp/gl/extensions/oes_required_internalformat.h>
+#include <msp/gl/extensions/oes_texture_stencil8.h>
 
 namespace Msp {
 namespace GL {
@@ -21,8 +24,17 @@ enum PixelFormat
        DEPTH_COMPONENT16 = GL_DEPTH_COMPONENT16,
        DEPTH_COMPONENT24 = GL_DEPTH_COMPONENT24,
        DEPTH_COMPONENT32 = GL_DEPTH_COMPONENT32,
+       DEPTH_COMPONENT32F = GL_DEPTH_COMPONENT32F,
+       RED             = GL_RED,
+       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,
        RGB32F          = GL_RGB32F,
@@ -37,13 +49,10 @@ enum PixelFormat
        BGRA            = GL_BGRA,
        LUMINANCE       = GL_LUMINANCE,
        LUMINANCE8      = GL_LUMINANCE8,
-       // TODO Remove LUMINANCE(_ALPHA) float formats once ARB_texture_rg becomes supported
-       LUMINANCE16F    = GL_LUMINANCE16F_ARB,
-       LUMINANCE32F    = GL_LUMINANCE32F_ARB,
        LUMINANCE_ALPHA    = GL_LUMINANCE_ALPHA,
        LUMINANCE8_ALPHA8  = GL_LUMINANCE8_ALPHA8,
-       LUMINANCE_ALPHA16F = GL_LUMINANCE_ALPHA16F_ARB,
-       LUMINANCE_ALPHA32F = GL_LUMINANCE_ALPHA32F_ARB,
+
+       // Deprecated
        SLUMINANCE         = GL_SLUMINANCE,
        SLUMINANCE8        = GL_SLUMINANCE8,
        SLUMINANCE_ALPHA   = GL_SLUMINANCE_ALPHA,
@@ -59,7 +68,9 @@ PixelFormat pixelformat_from_graphics(Graphics::PixelFormat);
 PixelFormat storage_pixelformat_from_graphics(Graphics::PixelFormat, bool = false);
 
 PixelFormat get_base_pixelformat(PixelFormat);
-PixelFormat get_sized_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);