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
|
#ifndef __JE_OPENGL_H__
#define __JE_OPENGL_H__
#include <vector>
#include "../math/je_matrix.h"
#include "../math/je_transform.h"
#include "GLee/GLee.h"
#include "ogl/OpenGL.h"
#include "je_color.h"
namespace JinEngine
{
namespace Graphics
{
/*class Canvas;
class Shader;
class Font;
*/
class OpenGL
: public ogl2d::OpenGL
{
public:
///
///
///
OpenGL();
void setColor(Channel r, Channel g, Channel b, Channel a);
void setColor(Color c);
Color getColor();
void clearMatrix();
void push();
void translate(float x, float y);
void scale(float sx, float sy);
void rotate(float r);
void pop();
///
///
///
Math::Matrix getModelViewMatrix(const Math::Transform& tansform);
///
/// Get model view matrix.
///
Math::Matrix getModelViewMatrix(float x, float y, float sx, float sy, float r, float ox, float oy);
///
/// Get model view matrix.
///
Math::Matrix getModelViewMatrix();
///
/// Set orthogonal matrix.
///
void setProjectionMatrix(float l, float r, float b, float t, float n, float f);
///
/// Get orthogonal matrix.
///
const Math::Matrix& getProjectionMatrix();
///
///
///
void useShader();
///
///
///
void useFont();
///
///
///
void useCanvas();
///
///
///
void unUseShader();
private:
///
///
///
std::vector<Math::Matrix> mModelViewMatrices;
///
///
///
Math::Matrix mModelViewMatrix;
///
///
///
Math::Matrix mProjectionMatrix;
///
///
///
Color mCurrentColor;
/*
///
///
///
Canvas* mCurrentCanvas;
///
///
///
Shader* mCurrentShader;
///
///
///
Font* mCurrentFont;
*/
};
// Singleton.
extern OpenGL gl;
} // namespace Graphics
} // namespace JinEngine
#endif // __JE_OPENGL_H__
|