1 #ifndef MSP_GL_PIXELFORMAT_H_
2 #define MSP_GL_PIXELFORMAT_H_
4 #include <msp/graphics/pixelformat.h>
5 #include <msp/strings/lexicalcast.h>
7 #include <msp/gl/extensions/arb_texture_float.h>
8 #include <msp/gl/extensions/ext_bgra.h>
9 #include <msp/gl/extensions/ext_texture_srgb.h>
16 STENCIL_INDEX = GL_STENCIL_INDEX,
17 DEPTH_COMPONENT = GL_DEPTH_COMPONENT,
21 RGB16F = GL_RGB16F_ARB,
22 RGB32F = GL_RGB32F_ARB,
24 RGBA16F = GL_RGBA16F_ARB,
25 RGBA32F = GL_RGBA32F_ARB,
27 SRGB_ALPHA = GL_SRGB_ALPHA_EXT,
29 SRGB8_ALPHA8 = GL_SRGB8_ALPHA8_EXT,
32 LUMINANCE = GL_LUMINANCE,
33 LUMINANCE8 = GL_LUMINANCE8,
34 LUMINANCE16F = GL_LUMINANCE16F_ARB,
35 LUMINANCE32F = GL_LUMINANCE32F_ARB,
36 LUMINANCE_ALPHA = GL_LUMINANCE_ALPHA,
37 LUMINANCE_ALPHA8 = GL_LUMINANCE8_ALPHA8,
38 LUMINANCE_ALPHA16F = GL_LUMINANCE_ALPHA16F_ARB,
39 LUMINANCE_ALPHA32F = GL_LUMINANCE_ALPHA32F_ARB,
40 SLUMINANCE = GL_SLUMINANCE_EXT,
41 SLUMINANCE8 = GL_SLUMINANCE8_EXT,
42 SLUMINANCE_ALPHA = GL_SLUMINANCE_ALPHA_EXT,
43 SLUMINANCE8_ALPHA8 = GL_SLUMINANCE8_ALPHA8_EXT
46 void operator>>(const LexicalConverter &, PixelFormat &);
48 PixelFormat pixelformat_from_graphics(Graphics::PixelFormat);
49 PixelFormat storage_pixelformat_from_graphics(Graphics::PixelFormat);
51 PixelFormat get_base_pixelformat(PixelFormat);
52 PixelFormat get_srgb_pixelformat(PixelFormat);
53 unsigned get_component_count(PixelFormat);
54 unsigned get_component_size(PixelFormat);
55 unsigned get_pixel_size(PixelFormat);
57 void require_pixelformat(PixelFormat);