From 7180b53c1c147549524df7a6b3fded9cffe5bc00 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 19 Oct 2020 21:49:45 -0500 Subject: [PATCH] miniscule changes; but always good to push before leaving --- include/physics.h | 2 +- src/physics.cpp | 2 +- src/sim.cpp | 127 +++++++++++++++++++++++----------------------- 3 files changed, 66 insertions(+), 65 deletions(-) diff --git a/include/physics.h b/include/physics.h index 1acfc6e..44646d7 100644 --- a/include/physics.h +++ b/include/physics.h @@ -11,6 +11,6 @@ struct Body f32 mass; }; -Body* make_bodies(i32 body_count = 1); +Body* alloc_bodies(i32 body_count = 1); #endif //PHYSICS_H \ No newline at end of file diff --git a/src/physics.cpp b/src/physics.cpp index 44885cc..92ad088 100644 --- a/src/physics.cpp +++ b/src/physics.cpp @@ -2,6 +2,6 @@ #include "utils.h" #include "types.h" -Body* make_bodies(i32 body_count) { +Body* alloc_bodies(i32 body_count) { return alloc(body_count); } \ No newline at end of file diff --git a/src/sim.cpp b/src/sim.cpp index 4e9a313..3af7c82 100644 --- a/src/sim.cpp +++ b/src/sim.cpp @@ -74,71 +74,73 @@ deinit_glfw() glfwTerminate(); } -internal GLuint -load_shader(GLenum shader_type, const char* shader_loc) -{ - logprint(LOG_LEVEL_INFO, "Loading shader: %s", shader_loc); - - GLuint shader = glCreateShader(shader_type); - - FILE* shader_file = fopen(shader_loc, "rb"); - if (shader_file == NULL) panic_and_die("Shader file not found: %s\n", shader_loc); - - fseek(shader_file, 0, SEEK_END); - i32 shader_file_size = ftell(shader_file); - fseek(shader_file, 0, SEEK_SET); - - char* shader_buffer = (char *) malloc(shader_file_size + 1); - fread(shader_buffer, 1, shader_file_size, shader_file); - fclose(shader_file); - - shader_buffer[shader_file_size] = 0; - - glShaderSource(shader, 1, (const char* const*) &shader_buffer, NULL); - glCompileShader(shader); - - GLint successful; - glGetShaderiv(shader, GL_COMPILE_STATUS, &successful); - if (successful != GL_TRUE) +namespace gl_util { + internal GLuint + load_shader(GLenum shader_type, const char* shader_loc) { - GLsizei log_length = 0; - GLchar shader_log[1024]; - glGetShaderInfoLog(shader, 1023, &log_length, shader_log); - shader_log[log_length] = 0; + logprint(LOG_LEVEL_INFO, "Loading shader: %s", shader_loc); + + GLuint shader = glCreateShader(shader_type); + + FILE* shader_file = fopen(shader_loc, "rb"); + if (shader_file == NULL) panic_and_die("Shader file not found: %s\n", shader_loc); + + fseek(shader_file, 0, SEEK_END); + i32 shader_file_size = ftell(shader_file); + fseek(shader_file, 0, SEEK_SET); + + char* shader_buffer = (char *) malloc(shader_file_size + 1); + fread(shader_buffer, 1, shader_file_size, shader_file); + fclose(shader_file); + + shader_buffer[shader_file_size] = 0; + + glShaderSource(shader, 1, (const char* const*) &shader_buffer, NULL); + glCompileShader(shader); + + GLint successful; + glGetShaderiv(shader, GL_COMPILE_STATUS, &successful); + if (successful != GL_TRUE) + { + GLsizei log_length = 0; + GLchar shader_log[1024]; + glGetShaderInfoLog(shader, 1023, &log_length, shader_log); + shader_log[log_length] = 0; + + panic_and_die("Error compiling shader %s:\n%s\n", + shader_loc, + shader_log); + } - panic_and_die("Error compiling shader %s:\n%s\n", - shader_loc, - shader_log); + free(shader_buffer); + + return shader; } - free(shader_buffer); - - return shader; -} - -internal GLuint -create_program(GLuint vertex_shader, GLuint fragment_shader) -{ - logprint(LOG_LEVEL_INFO, "Linking GL program"); - - GLuint program = glCreateProgram(); - glAttachShader(program, vertex_shader); - glAttachShader(program, fragment_shader); - glLinkProgram(program); - - GLint successful; - glGetProgramiv(program, GL_LINK_STATUS, &successful); - if (successful != GL_TRUE) + internal GLuint + create_program(GLuint vertex_shader, GLuint fragment_shader) { - GLsizei log_length = 0; - GLchar program_log[1024]; - glGetProgramInfoLog(program, 1023, &log_length, program_log); - program_log[log_length] = 0; + logprint(LOG_LEVEL_INFO, "Linking GL program"); + + GLuint program = glCreateProgram(); + glAttachShader(program, vertex_shader); + glAttachShader(program, fragment_shader); + glLinkProgram(program); + + GLint successful; + glGetProgramiv(program, GL_LINK_STATUS, &successful); + if (successful != GL_TRUE) + { + GLsizei log_length = 0; + GLchar program_log[1024]; + glGetProgramInfoLog(program, 1023, &log_length, program_log); + program_log[log_length] = 0; + + panic_and_die("Error linking program:\n%s", program_log); + } - panic_and_die("Error linking program:\n%s", program_log); + return program; } - - return program; } @@ -146,7 +148,6 @@ create_program(GLuint vertex_shader, GLuint fragment_shader) - #define CIRCLE_POINT_COUNT 36 // NOTE(Brendan): Treat a circle as a many-sided polygon. // NOTE(Brendan): Returns the VAO where the mesh data was bound. @@ -242,9 +243,9 @@ main(i32 argc, char* argv[]) circle_mesh = create_circle_mesh(); - GLuint v_shader = load_shader(GL_VERTEX_SHADER, "res/shaders/planet_vert.glsl"); - GLuint f_shader = load_shader(GL_FRAGMENT_SHADER, "res/shaders/planet_frag.glsl"); - GLuint program = create_program(v_shader, f_shader); + GLuint v_shader = gl_util::load_shader(GL_VERTEX_SHADER, "res/shaders/planet_vert.glsl"); + GLuint f_shader = gl_util::load_shader(GL_FRAGMENT_SHADER, "res/shaders/planet_frag.glsl"); + GLuint program = gl_util::create_program(v_shader, f_shader); glUseProgram(program); mat4 ortho_mat; @@ -253,7 +254,7 @@ main(i32 argc, char* argv[]) GLuint ortho_mat_loc = glGetUniformLocation(program, "u_proj"); glUniformMatrix4fv(ortho_mat_loc, 1, false, (f32 *) ortho_mat); - auto bodies = make_bodies(128); + auto bodies = alloc_bodies(128); foreach(i, 0, 128) { bodies[i].pos = V2f{ randf(0, 800), randf(0, 800) }; -- 2.25.1