-
Notifications
You must be signed in to change notification settings - Fork 0
/
Graphics.h
55 lines (45 loc) · 1.44 KB
/
Graphics.h
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
#ifndef GRAPHICS_H_INCLUDED
#define GRAPHICS_H_INCLUDED
#include <vector>
#include "OpenGL.h"
#include "Shader.h"
#include "Camera.h"
#include "math/Vector3D.h"
namespace ST
{
class Graphics
{
public:
Graphics();
virtual ~Graphics();
void DrawScene();
void SetCamera(const Camera* camera);
void LoadModel(const std::vector<Math::Vector3D>&,
const std::vector<Math::Vector3D>&,
const std::vector<size_t>&);
protected:
void create_context();
void init_shaders();
void init_opengl();
void init_light() const;
void errorThrow(std::string);
protected:
static const size_t width = 800;
static const size_t height = 600;
HDC hdc; // Handle to Device Context.
HGLRC hglrc; // OpenGL handle.
Shader shader; // Processing shader.
bool loaded;
size_t num_indices;
GLuint vao; // OpenGL buffers for single model.
GLuint vbo[3]; // If there will be more than 1 model
// then there is a need to do this: graphics->GetDrawableModel(model);
// GetDrawableModel() should wrap model so that it can be rendered.
GLint viewLocation;
Math::Matrix4D viewTrans;
Math::Matrix4D invProj;
Math::Matrix4D invView;
const Camera* camera;
};
}
#endif // GRAPHICS_H_INCLUDED