|
|
|
|
@ -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; |
|
|
|
|
|