summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOmni <omniscient.oce@gmail.com>2024-06-23 18:18:35 +1000
committerOmni <omniscient.oce@gmail.com>2024-06-23 18:18:35 +1000
commit41a9e6d84e442cadbf1825c38bb97c516873ad5a (patch)
treecf63931f3ea7fb4fa418313bd5e587f87cd2889b /src
parent0cbc42e89dcdeb47aaa63bb21b5fb911768ea4df (diff)
change view with keypress
Diffstat (limited to 'src')
-rw-r--r--src/maths/primitives.c6
-rw-r--r--src/renderer/backends/opengl/backend_opengl.c23
-rw-r--r--src/renderer/render.c2
-rw-r--r--src/systems/keys.h42
4 files changed, 58 insertions, 15 deletions
diff --git a/src/maths/primitives.c b/src/maths/primitives.c
index ce467ab..753dd83 100644
--- a/src/maths/primitives.c
+++ b/src/maths/primitives.c
@@ -46,8 +46,10 @@ geometry_data geo_create_plane(f32x2 extents) {
VERT_3D(vertices, vert_pos[2], VEC3_Y, vec2(0, 1));
VERT_3D(vertices, vert_pos[3], VEC3_Y, vec2(1, 1));
- push_triangle(indices, 0, 1, 2);
- push_triangle(indices, 2, 1, 3);
+ /* push_triangle(indices, 0, 1, 2); */
+ /* push_triangle(indices, 2, 1, 3); */
+ push_triangle(indices, 2, 1, 0);
+ push_triangle(indices, 3, 1, 2);
geometry_data geo = { .format = VERTEX_STATIC_3D,
.vertices = vertices,
diff --git a/src/renderer/backends/opengl/backend_opengl.c b/src/renderer/backends/opengl/backend_opengl.c
index 02c27cd..356815d 100644
--- a/src/renderer/backends/opengl/backend_opengl.c
+++ b/src/renderer/backends/opengl/backend_opengl.c
@@ -153,8 +153,8 @@ gpu_renderpass* gpu_renderpass_create(const gpu_renderpass_desc* description) {
}
if (description->has_depth_stencil) {
gpu_texture* depth_attachment = TEXTURE_GET(description->depth_stencil);
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D,
- depth_attachment->id, 0);
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depth_attachment->id,
+ 0);
}
if (description->has_depth_stencil && !description->has_color_target) {
@@ -192,9 +192,7 @@ void gpu_cmd_encoder_begin_render(gpu_cmd_encoder* encoder, gpu_renderpass* rend
glClear(GL_COLOR_BUFFER_BIT);
}
}
-void gpu_cmd_encoder_end_render(gpu_cmd_encoder* encoder) {
- glBindFramebuffer(GL_FRAMEBUFFER, 0);
-}
+void gpu_cmd_encoder_end_render(gpu_cmd_encoder* encoder) { glBindFramebuffer(GL_FRAMEBUFFER, 0); }
void gpu_cmd_encoder_begin_compute() {}
gpu_cmd_encoder* gpu_get_default_cmd_encoder() { return &context.command_buffer; }
@@ -238,7 +236,7 @@ void encode_bind_shader_data(gpu_cmd_encoder* encoder, u32 group, shader_data* d
for (u32 i = 0; i < sdl.bindings_count; i++) {
shader_binding binding = sdl.bindings[i];
- print_shader_binding(binding);
+ /* print_shader_binding(binding); */
if (binding.type == SHADER_BINDING_BYTES) {
buffer_handle b;
@@ -270,8 +268,9 @@ void encode_bind_shader_data(gpu_cmd_encoder* encoder, u32 group, shader_data* d
} else if (binding.type == SHADER_BINDING_TEXTURE) {
gpu_texture* tex = TEXTURE_GET(binding.data.texture.handle);
GLint tex_slot = glGetUniformLocation(encoder->pipeline->shader_id, binding.label);
+ printf("%d slot \n", tex_slot);
if (tex_slot == GL_INVALID_VALUE || tex_slot < 0) {
- WARN("Invalid binding label for texture - couldn't fetch texture slot uniform");
+ WARN("Invalid binding label for texture %s - couldn't fetch texture slot uniform", binding.label);
}
glUniform1i(tex_slot, i);
glActiveTexture(GL_TEXTURE0 + i);
@@ -294,6 +293,7 @@ void encode_set_index_buffer(gpu_cmd_encoder* encoder, buffer_handle buf) {
}
void encode_draw(gpu_cmd_encoder* encoder, u64 count) { glDrawArrays(GL_TRIANGLES, 0, count); }
void encode_draw_indexed(gpu_cmd_encoder* encoder, u64 index_count) {
+ /* printf("Draw %ld indices\n", index_count); */
glDrawElements(GL_TRIANGLES, index_count, GL_UNSIGNED_INT, 0);
}
void encode_clear_buffer(gpu_cmd_encoder* encoder, buffer_handle buf) {}
@@ -408,10 +408,11 @@ void gpu_texture_upload(texture_handle texture, const void* data) {}
bytebuffer vertices_as_bytebuffer(arena* a, vertex_format format, vertex_darray* vertices) {}
// --- TEMP
-bool gpu_backend_begin_frame() {
- glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- return true; }
+bool gpu_backend_begin_frame() {
+ glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ return true;
+}
void gpu_backend_end_frame() {
// TODO: Reset all bindings
glfwSwapBuffers(context.window);
diff --git a/src/renderer/render.c b/src/renderer/render.c
index 1c98b0b..f52e2be 100644
--- a/src/renderer/render.c
+++ b/src/renderer/render.c
@@ -62,7 +62,7 @@ bool renderer_init(renderer* ren) {
resource_pools_init(&pool_arena, ren->resource_pools);
// Create default rendering pipeline
- /* default_pipelines_init(ren); */
+ default_pipelines_init(ren);
return true;
}
diff --git a/src/systems/keys.h b/src/systems/keys.h
index a76e101..6082a59 100644
--- a/src/systems/keys.h
+++ b/src/systems/keys.h
@@ -3,10 +3,50 @@
typedef enum keycode {
// TODO: add all keycodes
KEYCODE_SPACE = 32,
+ KEYCODE_APOSTROPHE = 39,
+ KEYCODE_COMMA = 44,
+ KEYCODE_MINUS = 45,
+ KEYCODE_PERIOD = 46,
+ KEYCODE_SLASH = 47,
+ KEYCODE_0 = 48,
+ KEYCODE_1 = 49,
+ KEYCODE_2 = 50,
+ KEYCODE_3 = 51,
+ KEYCODE_4 = 52,
+ KEYCODE_5 = 53,
+ KEYCODE_6 = 54,
+ KEYCODE_7 = 55,
+ KEYCODE_8 = 56,
+ KEYCODE_9 = 57,
+ KEYCODE_SEMICOLON = 59,
+ KEYCODE_EQUAL = 61,
KEYCODE_A = 65,
+ KEYCODE_B = 66,
+ KEYCODE_C = 67,
KEYCODE_D = 68,
+ KEYCODE_E = 69,
+ KEYCODE_F = 70,
+ KEYCODE_G = 71,
+ KEYCODE_H = 72,
+ KEYCODE_I = 73,
+ KEYCODE_J = 74,
+ KEYCODE_K = 75,
+ KEYCODE_L = 76,
+ KEYCODE_M = 77,
+ KEYCODE_N = 78,
+ KEYCODE_O = 79,
+ KEYCODE_P = 80,
+ KEYCODE_Q = 81,
+ KEYCODE_R = 82,
KEYCODE_S = 83,
+ KEYCODE_T = 84,
+ KEYCODE_U = 85,
+ KEYCODE_V = 86,
KEYCODE_W = 87,
+ KEYCODE_X = 88,
+ KEYCODE_Y = 89,
+ KEYCODE_Z = 90,
+
KEYCODE_ESCAPE = 256,
KEYCODE_ENTER = 257,
KEYCODE_TAB = 258,
@@ -16,4 +56,4 @@ typedef enum keycode {
KEYCODE_KEY_DOWN = 264,
KEYCODE_KEY_UP = 265,
KEYCODE_MAX = 348
-} keycode; \ No newline at end of file
+} keycode;