Pioneer
src
graphics
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
{
15
ATTRIB_NONE
= 0,
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
26
enum
VertexAttribFormat
{
27
ATTRIB_FORMAT_NONE
= 0,
28
ATTRIB_FORMAT_FLOAT2
,
29
ATTRIB_FORMAT_FLOAT3
,
30
ATTRIB_FORMAT_FLOAT4
,
31
ATTRIB_FORMAT_UBYTE4
32
};
33
34
enum
BufferUsage
{
35
BUFFER_USAGE_STATIC
,
36
BUFFER_USAGE_DYNAMIC
37
};
38
39
enum
BufferMapMode
{
40
BUFFER_MAP_NONE
,
41
BUFFER_MAP_WRITE
,
42
BUFFER_MAP_READ
43
};
44
45
// clang-format off
46
enum
PrimitiveType
{
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 {
58
BLEND_SOLID
,
59
BLEND_ADDITIVE
,
60
BLEND_ALPHA
,
61
BLEND_ALPHA_ONE
,
//"additive alpha"
62
BLEND_ALPHA_PREMULT
,
63
BLEND_SET_ALPHA
,
// copy alpha channel
64
BLEND_DEST_ALPHA
// XXX maybe crappy name
65
};
66
67
enum
FaceCullMode
: uint32_t {
68
CULL_BACK
,
69
CULL_FRONT
,
70
CULL_NONE
71
};
72
73
}
// namespace Graphics
74
75
#endif
// GRAPHICS_TYPES_H
Graphics
Definition:
Background.h:13
Graphics::BlendMode
BlendMode
Definition:
Types.h:57
Graphics::BLEND_ALPHA_ONE
@ BLEND_ALPHA_ONE
Definition:
Types.h:61
Graphics::BLEND_ALPHA
@ BLEND_ALPHA
Definition:
Types.h:60
Graphics::BLEND_ADDITIVE
@ BLEND_ADDITIVE
Definition:
Types.h:59
Graphics::BLEND_DEST_ALPHA
@ BLEND_DEST_ALPHA
Definition:
Types.h:64
Graphics::BLEND_SOLID
@ BLEND_SOLID
Definition:
Types.h:58
Graphics::BLEND_SET_ALPHA
@ BLEND_SET_ALPHA
Definition:
Types.h:63
Graphics::BLEND_ALPHA_PREMULT
@ BLEND_ALPHA_PREMULT
Definition:
Types.h:62
Graphics::FaceCullMode
FaceCullMode
Definition:
Types.h:67
Graphics::CULL_NONE
@ CULL_NONE
Definition:
Types.h:70
Graphics::CULL_BACK
@ CULL_BACK
Definition:
Types.h:68
Graphics::CULL_FRONT
@ CULL_FRONT
Definition:
Types.h:69
Graphics::AttributeSet
Uint32 AttributeSet
Definition:
Types.h:11
Graphics::VertexAttrib
VertexAttrib
Definition:
Types.h:14
Graphics::ATTRIB_TANGENT
@ ATTRIB_TANGENT
Definition:
Types.h:21
Graphics::ATTRIB_DIFFUSE
@ ATTRIB_DIFFUSE
Definition:
Types.h:18
Graphics::ATTRIB_NONE
@ ATTRIB_NONE
Definition:
Types.h:15
Graphics::ATTRIB_UV0
@ ATTRIB_UV0
Definition:
Types.h:19
Graphics::ATTRIB_POSITION
@ ATTRIB_POSITION
Definition:
Types.h:16
Graphics::ATTRIB_NORMAL
@ ATTRIB_NORMAL
Definition:
Types.h:17
Graphics::VertexAttribFormat
VertexAttribFormat
Definition:
Types.h:26
Graphics::ATTRIB_FORMAT_FLOAT2
@ ATTRIB_FORMAT_FLOAT2
Definition:
Types.h:28
Graphics::ATTRIB_FORMAT_UBYTE4
@ ATTRIB_FORMAT_UBYTE4
Definition:
Types.h:31
Graphics::ATTRIB_FORMAT_FLOAT3
@ ATTRIB_FORMAT_FLOAT3
Definition:
Types.h:29
Graphics::ATTRIB_FORMAT_NONE
@ ATTRIB_FORMAT_NONE
Definition:
Types.h:27
Graphics::ATTRIB_FORMAT_FLOAT4
@ ATTRIB_FORMAT_FLOAT4
Definition:
Types.h:30
Graphics::PrimitiveType
PrimitiveType
Definition:
Types.h:46
Graphics::TRIANGLE_FAN
@ TRIANGLE_FAN
Definition:
Types.h:53
Graphics::LINE_LOOP
@ LINE_LOOP
Definition:
Types.h:49
Graphics::LINE_STRIP
@ LINE_STRIP
Definition:
Types.h:50
Graphics::TRIANGLES
@ TRIANGLES
Definition:
Types.h:51
Graphics::TRIANGLE_STRIP
@ TRIANGLE_STRIP
Definition:
Types.h:52
Graphics::POINTS
@ POINTS
Definition:
Types.h:47
Graphics::LINE_SINGLE
@ LINE_SINGLE
Definition:
Types.h:48
Graphics::BufferUsage
BufferUsage
Definition:
Types.h:34
Graphics::BUFFER_USAGE_STATIC
@ BUFFER_USAGE_STATIC
Definition:
Types.h:35
Graphics::BUFFER_USAGE_DYNAMIC
@ BUFFER_USAGE_DYNAMIC
Definition:
Types.h:36
Graphics::BufferMapMode
BufferMapMode
Definition:
Types.h:39
Graphics::BUFFER_MAP_READ
@ BUFFER_MAP_READ
Definition:
Types.h:42
Graphics::BUFFER_MAP_WRITE
@ BUFFER_MAP_WRITE
Definition:
Types.h:41
Graphics::BUFFER_MAP_NONE
@ BUFFER_MAP_NONE
Definition:
Types.h:40
Generated by
1.9.1