Start
Guides
Class List
Files
File List
All
Classes
Files
Functions
Variables
Typedefs
Pages
video
GLProperty.hpp
1
#pragma once
2
3
#include <GL/glew.h>
4
5
namespace
lumina {
6
7
#define PROPS\
8
X(MaxColorAttachments, int, GL_MAX_COLOR_ATTACHMENTS)\
9
X(MaxColorTextureSamples, int, GL_MAX_COLOR_TEXTURE_SAMPLES)\
10
X(MaxDepthTextureSamples, int, GL_MAX_DEPTH_TEXTURE_SAMPLES)\
11
X(MaxDrawBuffers, int, GL_MAX_DRAW_BUFFERS)\
12
X(MaxDualSourceDrawBuffers, int, GL_MAX_DUAL_SOURCE_DRAW_BUFFERS)\
13
X(MaxFramebufferHeight, int, GL_MAX_FRAMEBUFFER_HEIGHT)\
14
X(MaxFramebufferLayers, int, GL_MAX_FRAMEBUFFER_LAYERS)\
15
X(MaxFramebufferSamples, int, GL_MAX_FRAMEBUFFER_SAMPLES)\
16
X(MaxFramebufferWidth, int, GL_MAX_FRAMEBUFFER_WIDTH)\
17
X(MaxIntegerSamples, int, GL_MAX_INTEGER_SAMPLES)\
18
X(MaxSamples, int, GL_MAX_SAMPLES)\
19
X(MaxAtomicCounterBufferSize, int, GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE)\
20
X(MaxCombinedShaderOutputResources, int, GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES)\
21
X(MaxCombinedShaderStorageBlocks, int, GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS)\
22
X(MaxImageSamples, int, GL_MAX_IMAGE_SAMPLES)\
23
X(MaxImageUnits, int, GL_MAX_IMAGE_UNITS)\
24
X(MaxProgramTexelOffset, int, GL_MAX_PROGRAM_TEXEL_OFFSET)\
25
X(MaxSubroutines, int, GL_MAX_SUBROUTINES)\
26
X(MaxSubroutineUniformLocations, int, GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS)\
27
X(MaxUniformBlockSize, int, GL_MAX_UNIFORM_BLOCK_SIZE)\
28
X(MaxUniformLocations, int, GL_MAX_UNIFORM_LOCATIONS)\
29
X(MaxVaryingVectors, int, GL_MAX_VARYING_VECTORS)\
30
X(MaxVertexAttribRelativeOffset, int, GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET)\
31
X(MaxVertexAttribBindings, int, GL_MAX_VERTEX_ATTRIB_BINDINGS)\
32
X(MaxVertexAttribStride, int, GL_MAX_VERTEX_ATTRIB_STRIDE)\
33
X(MaxCombinedTextureImageUnits, int, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS)
34
35
36
37
38
// define enum
39
#define X(name_, type_, gl_) name_,
40
enum class
GLProp { PROPS NUM };
41
#undef X
42
43
// define helper functions
44
#define X(name_, type_, gl_) case GLProp::name_: return gl_;
45
inline
GLenum translateGLProp(GLProp prop) {
46
switch
(prop) {
47
PROPS
48
default
:
return
GL_INVALID_ENUM;
49
}
50
}
51
#undef X
52
53
#define X(name_, type_, gl_) case GLProp::name_: return #gl_;
54
inline
const
char
* getGLPropName(GLProp prop) {
55
switch
(prop) {
56
PROPS
57
default
:
return
"???"
;
58
}
59
}
60
#undef X
61
62
}
Last update on Wed Aug 13 2014 for Lumina v0.1