Pioneer
Types.h
Go to the documentation of this file.
1 // Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef GRAPHICS_TYPES_H
5 #define GRAPHICS_TYPES_H
6 
7 #include "SDL_stdinc.h"
8 
9 namespace Graphics {
10 
11  typedef Uint32 AttributeSet;
12 
13  //Vertex attribute semantic
14  enum VertexAttrib {
16  ATTRIB_POSITION = (1u << 0),
17  ATTRIB_NORMAL = (1u << 1),
18  ATTRIB_DIFFUSE = (1u << 2),
19  ATTRIB_UV0 = (1u << 3),
20  //ATTRIB_UV1 = (1u << 4),
21  ATTRIB_TANGENT = (1u << 5),
22  //ATTRIB_BITANGENT = (1u << 6)
23  //etc.
24  };
25 
32  };
33 
34  enum BufferUsage {
37  };
38 
43  };
44 
45  // clang-format off
47  POINTS = 0, //GL_POINTS,
48  LINE_SINGLE, //GL_LINES, //draw one line per two vertices
49  LINE_LOOP, //GL_LINE_LOOP, //connect vertices, connect start & end
50  LINE_STRIP, //GL_LINE_STRIP, //connect vertices
51  TRIANGLES, //GL_TRIANGLES,
52  TRIANGLE_STRIP, //GL_TRIANGLE_STRIP,
53  TRIANGLE_FAN, //GL_TRIANGLE_FAN
54  };
55  // clang-format on
56 
57  enum BlendMode : uint32_t {
61  BLEND_ALPHA_ONE, //"additive alpha"
63  BLEND_SET_ALPHA, // copy alpha channel
64  BLEND_DEST_ALPHA // XXX maybe crappy name
65  };
66 
67  enum FaceCullMode : uint32_t {
70  CULL_NONE
71  };
72 
73 } // namespace Graphics
74 
75 #endif // GRAPHICS_TYPES_H
Definition: Background.h:13
BlendMode
Definition: Types.h:57
@ BLEND_ALPHA_ONE
Definition: Types.h:61
@ BLEND_ALPHA
Definition: Types.h:60
@ BLEND_ADDITIVE
Definition: Types.h:59
@ BLEND_DEST_ALPHA
Definition: Types.h:64
@ BLEND_SOLID
Definition: Types.h:58
@ BLEND_SET_ALPHA
Definition: Types.h:63
@ BLEND_ALPHA_PREMULT
Definition: Types.h:62
FaceCullMode
Definition: Types.h:67
@ CULL_NONE
Definition: Types.h:70
@ CULL_BACK
Definition: Types.h:68
@ CULL_FRONT
Definition: Types.h:69
Uint32 AttributeSet
Definition: Types.h:11
VertexAttrib
Definition: Types.h:14
@ ATTRIB_TANGENT
Definition: Types.h:21
@ ATTRIB_DIFFUSE
Definition: Types.h:18
@ ATTRIB_NONE
Definition: Types.h:15
@ ATTRIB_UV0
Definition: Types.h:19
@ ATTRIB_POSITION
Definition: Types.h:16
@ ATTRIB_NORMAL
Definition: Types.h:17
VertexAttribFormat
Definition: Types.h:26
@ ATTRIB_FORMAT_FLOAT2
Definition: Types.h:28
@ ATTRIB_FORMAT_UBYTE4
Definition: Types.h:31
@ ATTRIB_FORMAT_FLOAT3
Definition: Types.h:29
@ ATTRIB_FORMAT_NONE
Definition: Types.h:27
@ ATTRIB_FORMAT_FLOAT4
Definition: Types.h:30
PrimitiveType
Definition: Types.h:46
@ TRIANGLE_FAN
Definition: Types.h:53
@ LINE_LOOP
Definition: Types.h:49
@ LINE_STRIP
Definition: Types.h:50
@ TRIANGLES
Definition: Types.h:51
@ TRIANGLE_STRIP
Definition: Types.h:52
@ POINTS
Definition: Types.h:47
@ LINE_SINGLE
Definition: Types.h:48
BufferUsage
Definition: Types.h:34
@ BUFFER_USAGE_STATIC
Definition: Types.h:35
@ BUFFER_USAGE_DYNAMIC
Definition: Types.h:36
BufferMapMode
Definition: Types.h:39
@ BUFFER_MAP_READ
Definition: Types.h:42
@ BUFFER_MAP_WRITE
Definition: Types.h:41
@ BUFFER_MAP_NONE
Definition: Types.h:40