]> git.lizzy.rs Git - dragonblocks3d.git/blob - src/dragonblocks/render_engine.hpp
Frustum & Backface Culling
[dragonblocks3d.git] / src / dragonblocks / render_engine.hpp
1 #pragma once
2
3 #include "gl.hpp"
4
5 namespace dragonblocks
6 {       
7         class Camera;
8         class InputHandler;
9         class MeshGenMgr;
10         class ShaderProgram;
11         class Scene;
12         class Window;
13
14         class RenderEngine
15         {
16                 public:
17                 Camera *camera;
18                 InputHandler *input_handler;
19                 MeshGenMgr *mesh_gen_mgr;
20                 Scene *scene;
21                 ShaderProgram *shader_program;
22                 Window *window;
23                 
24                 void render();
25                 bool running();
26                 void updateViewMatrix();
27                 void updateProjectionMatrix();
28                 void setSky(glm::vec3);
29                 void setRenderDistance(double);
30                 void setFov(double);
31                 void startMeshGenMgr();
32                 
33                 
34                 RenderEngine();
35                 ~RenderEngine();
36                 
37                 private:
38                 glm::mat4 view_matrix, projection_matrix;
39                 double last_time;
40                 double render_distance;
41                 double fov;
42         };
43 }