#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 {
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_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);
+PixelFormat get_srgb_pixelformat(PixelFormat);
+unsigned get_component_count(PixelFormat);
+unsigned get_component_size(PixelFormat);
+unsigned get_pixel_size(PixelFormat);
+
+void require_pixelformat(PixelFormat);
} // namespace GL
} // namespace Msp