-
Notifications
You must be signed in to change notification settings - Fork 0
/
opengl_matrix.c
153 lines (125 loc) · 1.95 KB
/
opengl_matrix.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/*
* See Licensing and Copyright notice in naev.h
*/
/**
* @file opengl_matrix.c
*
* @brief Handles OpenGL matrix stuff.
*/
#include "opengl.h"
#include "naev.h"
#include "log.h"
static int has_glsl = 0; /**< Whether or not using GLSL for matrix stuff. */
/**
* @brief Initializes the OpenGL matrix subsystem.
*
* @return 0 on success.
*/
int gl_initMatrix (void)
{
return 0;
}
/**
* @brief Exits the OpenGL matrix subsystem.
*/
void gl_exitMatrix (void)
{
has_glsl = 0;
}
/**
* @brief like glMatrixMode.
*/
void gl_matrixMode( GLenum mode )
{
if (has_glsl) {
}
else {
glMatrixMode( mode );
}
}
/**
* @brief Pushes a new matrix on the stack.
*/
void gl_matrixPush (void)
{
if (has_glsl) {
}
else {
glPushMatrix();
}
}
/**
* @brief Loads the identity matrix.
*/
void gl_matrixIdentity (void)
{
if (has_glsl) {
}
else {
glLoadIdentity();
}
}
/**
* @brief Sets the matrix as orthogonal.
*/
void gl_matrixOrtho( double left, double right,
double bottom, double top, double nearVal, double farVal )
{
if (has_glsl) {
}
else {
glOrtho( left, right, bottom, top, nearVal, farVal );
}
}
/**
* @brief Translates the matrix.
*
* @param x X to translate by.
* @param y Y to translate by.
*/
void gl_matrixTranslate( double x, double y )
{
if (has_glsl) {
}
else {
glTranslated( x, y, 0. );
}
}
/**
* @brief Scales the matrix.
*
* @param x X to scale by.
* @param y Y to scale by.
*/
void gl_matrixScale( double x, double y )
{
if (has_glsl) {
}
else {
glScaled( x, y, 1. );
}
}
/**
* @brief Rotates the matrix.
*
* @param a Angle to rotate by.
*/
void gl_matrixRotate( double a )
{
if (has_glsl) {
}
else {
glRotated( 180./M_PI*a, 0., 0., 1. );
}
}
/**
* @brief Destroys the last pushed matrix.
*/
void gl_matrixPop (void)
{
if (has_glsl) {
}
else {
glPopMatrix();
}
}