]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - src/client/scene.h
639dc9a241f23c78427adbcc15e0c9e3a1e26222
[dragonblocks_alpha.git] / src / client / scene.h
1 #ifndef _SCENE_H_
2 #define _SCENE_H_
3
4 #include <stdbool.h>
5 #include <pthread.h>
6 #include <linmath.h/linmath.h>
7 #include <dragontype/list.h>
8 #include <dragontype/number.h>
9 #include "client/object.h"
10
11 extern struct Scene
12 {
13         List objects;
14         pthread_mutex_t mtx;
15         GLuint prog;
16         GLint loc_model;
17         GLint loc_VP;
18         GLint loc_daylight;
19         GLint loc_lightDir;
20         GLint loc_cameraPos;
21         GLint max_texture_units;
22         mat4x4 VP;
23         mat4x4 projection;
24         f32 fov;
25         f32 render_distance;
26 } scene;
27
28 bool scene_init();
29 void scene_deinit();
30 void scene_add_object(Object *obj);
31 void scene_render();
32 void scene_on_resize(int width, int height);
33 GLuint scene_get_max_texture_units();
34 void scene_get_view_proj(mat4x4 target);
35
36 #endif