summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c50
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;
+}