]> git.lizzy.rs Git - dragonblocks3d.git/blob - src/dragonblocks/render_engine.hpp
Multithreading
[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                 void loadChunks();
26                 void loop();
27                 void updateViewMatrix();
28                 void updateProjectionMatrix();
29                 void setSky(glm::vec3);
30                 void setRenderDistance(double);
31                 void setFov(double);
32                 
33                 RenderEngine();
34                 ~RenderEngine();
35                 
36                 private:                
37                 double last_time;
38                 double render_distance;
39                 double fov;
40         };
41 }