From 47b6bbdb9a64a011e2811baa659f6b23e5c04b0f Mon Sep 17 00:00:00 2001 From: cinnaboot Date: Tue, 10 Nov 2020 18:29:31 -0500 Subject: [PATCH] add options to renInit() --- examples/assimp_loading/main.cpp | 4 +--- include/renderer.h | 6 ++++-- src/renderer.cpp | 24 ++++++++++++------------ 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/examples/assimp_loading/main.cpp b/examples/assimp_loading/main.cpp index 8a8dce1..04db193 100644 --- a/examples/assimp_loading/main.cpp +++ b/examples/assimp_loading/main.cpp @@ -56,9 +56,7 @@ doRenderLoop(render_state* rs, frame_callback_fn callback_fn) int main() { - // TODO: would be nice to be able to pass in viewport_dims, window title - // here - render_state* rs = renInit(); + render_state* rs = renInit("assimp loading"); meInitAssimp(); // TODO: entInit() doesn't allocate memory because we want to do the diff --git a/include/renderer.h b/include/renderer.h index 8fd60b2..330947b 100644 --- a/include/renderer.h +++ b/include/renderer.h @@ -41,7 +41,7 @@ struct render_group struct render_state { - v2i viewport_dims; + glm::vec2 viewport_dims; bool is_debug_draw; SDL_Handles handles; camera cam; @@ -57,7 +57,9 @@ struct render_state uint max_lights; }; -render_state* renInit(); +render_state* +renInit(const char* title = "Tangerine", + glm::vec2 viewport_dims = glm::vec2(1280, 720)); void renShutdown(render_state* rs); diff --git a/src/renderer.cpp b/src/renderer.cpp index f8e7a40..9821185 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -20,31 +20,31 @@ #define CLEAR_COL_G 55.f / 255.f #define CLEAR_COL_B 55.f / 255.f #define CLEAR_COL_A 1.f -#define DEFAULT_WIDTH 1280 -#define DEFAULT_HEIGHT 720 #define USE_SECOND_MONITOR 0 // forward declarations void openglDebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, - GLsizei length, const GLchar* message, const void* userParam); + GLsizei length, const GLchar* message, const void* userParam); bool initSDL(SDL_Handles& handles); -bool createWindow(SDL_Handles& handles, v2i& viewport_dims); +bool createWindow(const char* title, + SDL_Handles& handles, + glm::vec2& viewport_dims); bool initContext(SDL_Handles& handles); bool initGlOptions(); -void setDefaults(render_state* rs); +void setDefaults(render_state* rs, glm::vec2 viewport_dims); // interface render_state* -renInit() +renInit(const char* title, glm::vec2 viewport_dims) { render_state* rs = UTIL_ALLOC(1, render_state); - setDefaults(rs); + setDefaults(rs, viewport_dims); if (initSDL(rs->handles) && - createWindow(rs->handles, rs->viewport_dims) && + createWindow(title, rs->handles, rs->viewport_dims) && initContext(rs->handles) && initGlOptions()) { @@ -139,14 +139,14 @@ initSDL(SDL_Handles& handles) } bool -createWindow(SDL_Handles& handles, v2i& viewport_dims) +createWindow(const char* title, SDL_Handles& handles, glm::vec2& viewport_dims) { uint display_id = 0; if (USE_SECOND_MONITOR && SDL_GetNumVideoDisplays() > 1) display_id = 1; handles.window = SDL_CreateWindow( - "hexgame", + title, SDL_WINDOWPOS_CENTERED_DISPLAY(display_id), SDL_WINDOWPOS_CENTERED_DISPLAY(display_id), viewport_dims.x, @@ -213,9 +213,9 @@ initGlOptions() } void -setDefaults(render_state* rs) +setDefaults(render_state* rs, glm::vec2 viewport_dims) { - rs->viewport_dims = v2i(DEFAULT_WIDTH, DEFAULT_HEIGHT); + rs->viewport_dims = viewport_dims; rs->max_lights = MAX_LIGHTS; rs->lights = UTIL_ALLOC(rs->max_lights, point_light); rs->clear_col.R = CLEAR_COL_R;