-/* $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 <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 {
ALPHA = GL_ALPHA,
RGB = GL_RGB,
RGBA = GL_RGBA,
+ RGB8 = GL_RGB8,
+ RGB16F = GL_RGB16F_ARB,
+ RGB32F = GL_RGB32F_ARB,
+ 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,
- LUMINANCE_ALPHA = GL_LUMINANCE_ALPHA
+ 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
};
-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