]> git.tdb.fi Git - libs/gl.git/blobdiff - source/pixelformat.h
Support sRGB pixelformats through GL_EXT_texture_sRGB
[libs/gl.git] / source / pixelformat.h
index 55115cf77e7bbde4a2ac3af6f92d42ae7fcd9edb..01f626c43882bc192b00e83051b9c7c723fcf07c 100644 (file)
@@ -4,7 +4,9 @@
 #include <msp/graphics/pixelformat.h>
 #include <msp/strings/lexicalcast.h>
 #include "gl.h"
-#include <GL/glext.h>
+#include <msp/gl/extensions/arb_texture_float.h>
+#include <msp/gl/extensions/ext_bgra.h>
+#include <msp/gl/extensions/ext_texture_srgb.h>
 
 namespace Msp {
 namespace GL {
@@ -26,6 +28,10 @@ enum PixelFormat
        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,
        BGR             = GL_BGR,
        BGRA            = GL_BGRA,
        LUMINANCE       = GL_LUMINANCE,
@@ -35,14 +41,20 @@ enum PixelFormat
        LUMINANCE_ALPHA    = GL_LUMINANCE_ALPHA,
        LUMINANCE_ALPHA8   = GL_LUMINANCE8_ALPHA8,
        LUMINANCE_ALPHA16F = GL_LUMINANCE_ALPHA16F_ARB,
-       LUMINANCE_ALPHA32F = GL_LUMINANCE_ALPHA32F_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
 };
 
 void operator>>(const LexicalConverter &, PixelFormat &);
 
 PixelFormat pixelformat_from_graphics(Graphics::PixelFormat);
+PixelFormat storage_pixelformat_from_graphics(Graphics::PixelFormat);
 
 PixelFormat get_base_pixelformat(PixelFormat);
+unsigned get_component_count(PixelFormat);
 
 void require_pixelformat(PixelFormat);