]> git.tdb.fi Git - libs/gl.git/blob - source/pixelformat.h
Add getters for RenderTarget width and height
[libs/gl.git] / source / pixelformat.h
1 #ifndef MSP_GL_PIXELFORMAT_H_
2 #define MSP_GL_PIXELFORMAT_H_
3
4 #include <msp/graphics/pixelformat.h>
5 #include <msp/strings/lexicalcast.h>
6 #include "gl.h"
7 #include <msp/gl/extensions/arb_depth_buffer_float.h>
8 #include <msp/gl/extensions/arb_depth_texture.h>
9 #include <msp/gl/extensions/arb_texture_float.h>
10 #include <msp/gl/extensions/arb_texture_rg.h>
11 #include <msp/gl/extensions/ext_bgra.h>
12 #include <msp/gl/extensions/ext_texture_srgb.h>
13 #include <msp/gl/extensions/msp_legacy_features.h>
14 #include <msp/gl/extensions/oes_required_internalformat.h>
15 #include <msp/gl/extensions/oes_texture_stencil8.h>
16
17 namespace Msp {
18 namespace GL {
19
20 enum PixelFormat
21 {
22         STENCIL_INDEX   = GL_STENCIL_INDEX,
23         DEPTH_COMPONENT = GL_DEPTH_COMPONENT,
24         DEPTH_COMPONENT16 = GL_DEPTH_COMPONENT16,
25         DEPTH_COMPONENT24 = GL_DEPTH_COMPONENT24,
26         DEPTH_COMPONENT32 = GL_DEPTH_COMPONENT32,
27         DEPTH_COMPONENT32F = GL_DEPTH_COMPONENT32F,
28         RED             = GL_RED,
29         RG              = GL_RG,
30         RGB             = GL_RGB,
31         RGBA            = GL_RGBA,
32         R8              = GL_R8,
33         R16F            = GL_R16F,
34         R32F            = GL_R32F,
35         RG8             = GL_RG8,
36         RG16F           = GL_RG16F,
37         RG32F           = GL_RG32F,
38         RGB8            = GL_RGB8,
39         RGB16F          = GL_RGB16F,
40         RGB32F          = GL_RGB32F,
41         RGBA8           = GL_RGBA8,
42         RGBA16F         = GL_RGBA16F,
43         RGBA32F         = GL_RGBA32F,
44         SRGB            = GL_SRGB,
45         SRGB_ALPHA      = GL_SRGB_ALPHA,
46         SRGB8           = GL_SRGB8,
47         SRGB8_ALPHA8    = GL_SRGB8_ALPHA8,
48         BGR             = GL_BGR,
49         BGRA            = GL_BGRA,
50         LUMINANCE       = GL_LUMINANCE,
51         LUMINANCE8      = GL_LUMINANCE8,
52         LUMINANCE_ALPHA    = GL_LUMINANCE_ALPHA,
53         LUMINANCE8_ALPHA8  = GL_LUMINANCE8_ALPHA8,
54
55         // Deprecated
56         SLUMINANCE         = GL_SLUMINANCE,
57         SLUMINANCE8        = GL_SLUMINANCE8,
58         SLUMINANCE_ALPHA   = GL_SLUMINANCE_ALPHA,
59         SLUMINANCE8_ALPHA8 = GL_SLUMINANCE8_ALPHA8,
60
61         // Typo, deprecated
62         LUMINANCE_ALPHA8   = GL_LUMINANCE8_ALPHA8
63 };
64
65 void operator>>(const LexicalConverter &, PixelFormat &);
66
67 PixelFormat pixelformat_from_graphics(Graphics::PixelFormat);
68 PixelFormat storage_pixelformat_from_graphics(Graphics::PixelFormat, bool = false);
69
70 PixelFormat get_base_pixelformat(PixelFormat);
71 PixelFormat get_unsized_pixelformat(PixelFormat);
72 PixelFormat get_sized_pixelformat(PixelFormat, unsigned = 1);
73 PixelFormat get_default_sized_pixelformat(PixelFormat);
74 PixelFormat get_srgb_pixelformat(PixelFormat);
75 unsigned get_component_count(PixelFormat);
76 unsigned get_component_size(PixelFormat);
77 unsigned get_pixel_size(PixelFormat);
78
79 void require_pixelformat(PixelFormat);
80
81 } // namespace GL
82 } // namespace Msp
83
84 #endif