summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAaditya Dhruv <[email protected]>2026-01-30 20:27:21 -0600
committerAaditya Dhruv <[email protected]>2026-01-30 20:27:21 -0600
commit0c3e1f450f591d871c2779504b4113daf891fd1b (patch)
treed8d3d2698fb182d63032144961f1ebdbe2ca2262 /src
parent1a721b98caf7559f4a18baa8d3b92269e8f1f6ce (diff)
Minor performance boost + better input
Draw triangles in correct counter clock order, back face wasn't correct
Diffstat (limited to 'src')
-rw-r--r--src/block.c10
-rw-r--r--src/camera.c2
-rw-r--r--src/engine.c3
-rw-r--r--src/engine.h2
-rw-r--r--src/input.c30
5 files changed, 24 insertions, 23 deletions
diff --git a/src/block.c b/src/block.c
index 14ffa08..d03a137 100644
--- a/src/block.c
+++ b/src/block.c
@@ -46,18 +46,18 @@ void block_load_gpu(struct block* blk) {
0.0f, 0.0f, 1.0f, // Front normal
1.0f, 0.0f,
- 1.0f, 1.0f, -1.0f, // top-right (back plane)
- 0.0f, 0.0f, -1.0f, // Back normal
- 1.0f, 1.0f,
0.0f, 1.0f, -1.0f, // top-left (back plane)
0.0f, 0.0f, -1.0f, // Back normal
0.0f, 1.0f,
- 0.0f, 0.0f, -1.0f, // bottom-left (back plane)
+ 1.0f, 1.0f, -1.0f, // top-right (back plane)
0.0f, 0.0f, -1.0f, // Back normal
- 0.0f, 0.0f,
+ 1.0f, 1.0f,
1.0f, 0.0f, -1.0f, // bottom-right (back plane)
0.0f, 0.0f, -1.0f, // Back normal
1.0f, 0.0f,
+ 0.0f, 0.0f, -1.0f, // bottom-left (back plane)
+ 0.0f, 0.0f, -1.0f, // Back normal
+ 0.0f, 0.0f,
1.0f, 1.0f, -1.0f, // top-right (back plane)
1.0f, 0.0f, 0.0f, // Right normal
diff --git a/src/camera.c b/src/camera.c
index 18cfb33..7a23a17 100644
--- a/src/camera.c
+++ b/src/camera.c
@@ -56,7 +56,7 @@ void camera_move(struct camera *camera, enum DIRECTION move) {
// Right hand rule - this will be on the righ (positive)
glm_vec3_crossn(unit_direction, camera->up, unit_direction);
}
- float scale = 0.3f;
+ float scale = 0.2f;
glm_vec3_scale(unit_direction, scale, unit_direction);
glm_vec3_add(camera->position, unit_direction, camera->position);
}
diff --git a/src/engine.c b/src/engine.c
index 5b6cf05..c5a9220 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -122,6 +122,9 @@ void engine_start(struct engine* engine) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0.529f, 0.808f, 0.922f, 1.0f);
glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ glFrontFace(GL_CCW);
//glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
glUseProgram(engine->shader->program);
// Update engine managed objects
diff --git a/src/engine.h b/src/engine.h
index 3248d40..e7ffdaa 100644
--- a/src/engine.h
+++ b/src/engine.h
@@ -9,7 +9,7 @@
// We want a square around curr_chunk, and a side of the square will be 1
// (center chunk) + 2 * CHUNK_DISTANCE (either side of center)
// loaded chunks = (1 + CHUNK_DISTANCE * 2)^2
-#define CHUNK_DISTANCE 2
+#define CHUNK_DISTANCE 3
struct engine {
struct window* window;
diff --git a/src/input.c b/src/input.c
index b4dde18..06f63a5 100644
--- a/src/input.c
+++ b/src/input.c
@@ -26,22 +26,20 @@ void input_handle(struct engine *engine) {
}
if (event.type == SDL_KEYDOWN) {
SDL_KeyboardEvent key = event.key;
- switch (key.keysym.sym) {
- case SDLK_w:
- camera_move(engine->camera, FORWARD);
- break;
- case SDLK_a:
- camera_move(engine->camera, LEFT);
- break;
- case SDLK_s:
- camera_move(engine->camera, BACKWARD);
- break;
- case SDLK_d:
- camera_move(engine->camera, RIGHT);
- break;
- case SDLK_ESCAPE:
- engine->game_loop = 0;
- break;
+ if (key.keysym.sym == SDLK_w) {
+ camera_move(engine->camera, FORWARD);
+ }
+ if (key.keysym.sym == SDLK_a) {
+ camera_move(engine->camera, LEFT);
+ }
+ if (key.keysym.sym == SDLK_s) {
+ camera_move(engine->camera, BACKWARD);
+ }
+ if (key.keysym.sym == SDLK_d) {
+ camera_move(engine->camera, RIGHT);
+ }
+ if (key.keysym.sym == SDLK_ESCAPE) {
+ engine->game_loop = 0;
}
}
if (event.type == SDL_MOUSEMOTION) {