]> 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 81662cb9ea63dd798fe91a4218e8f47f0cdf3fae..01f626c43882bc192b00e83051b9c7c723fcf07c 100644 (file)
@@ -1,17 +1,12 @@
-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef MSP_GL_PIXELFORMAT_H_
 #define MSP_GL_PIXELFORMAT_H_
 
-#include <istream>
-#include <msp/gbase/pixelformat.h>
+#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 {
@@ -33,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,
@@ -43,13 +42,21 @@ enum PixelFormat
        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
 };
 
-std::istream &operator>>(std::istream &, PixelFormat &);
+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);
 
 } // namespace GL
 } // namespace Msp