diff options
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..2ed1a49 --- /dev/null +++ b/src/main.c @@ -0,0 +1,50 @@ +#include <GLFW/glfw3.h> + +#include "voxel.h" +#include "window.h" +#include "shader.h" + +int main(void) +{ + Shader *shader; + Chunk *chunk; + Mesh mesh; + Camera camera; + mat4 proj_view; + + if (window_init()) + return 1; + + shader = shader_init("assets/vertex.glsl", "assets/fragment.glsl"); + if (!shader) + return 1; + + chunk = chunk_init(0, 0, 0); + chunk_generate(chunk); + mesh = chunk_mesh(chunk); + + camera = camera_init(); + + while (!window_closed()) { + window_update(); + + if (key_down(GLFW_KEY_ESCAPE)) + break; + + camera_update(&camera); + camera_proj_view(&camera, proj_view); + + shader_bind(shader); + shader_loadm4f(0, proj_view); + mesh_bind(&mesh); + mesh_draw(&mesh); + mesh_unbind(&mesh); + shader_unbind(); + + // main game loop + window_swap(); + } + + window_close(); + return 0; +} |