|
|
|
|
@ -27,6 +27,7 @@
|
|
|
|
|
#define PROJ_TYPE PERSPECTIVE |
|
|
|
|
#define DEFAULT_VERTEX_SHADER_FILE "../data/default.vs" |
|
|
|
|
#define DEFAULT_FRAGMENT_SHADER_FILE "../data/default.fs" |
|
|
|
|
#define MAX_LIGHTS 10 // NOTE: needs to match the fragment shader source
|
|
|
|
|
|
|
|
|
|
typedef struct clear_col |
|
|
|
|
{ |
|
|
|
|
@ -76,7 +77,7 @@ static camera g_camera;
|
|
|
|
|
|
|
|
|
|
// TODO: maybe make this a contructor for render_state?
|
|
|
|
|
bool |
|
|
|
|
initRenderer(SDL_Handles &handles, v2i vpDims) |
|
|
|
|
initRenderer(render_state* rs, SDL_Handles &handles) |
|
|
|
|
{ |
|
|
|
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG); |
|
|
|
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); |
|
|
|
|
@ -88,7 +89,7 @@ initRenderer(SDL_Handles &handles, v2i vpDims)
|
|
|
|
|
SDL_GetCurrentDisplayMode(0, &handles.currentDisplayMode); |
|
|
|
|
handles.window = |
|
|
|
|
SDL_CreateWindow("hexgame", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, |
|
|
|
|
vpDims.x, vpDims.y, SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE); |
|
|
|
|
rs->viewport_dims.x, rs->viewport_dims.y, SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE); |
|
|
|
|
|
|
|
|
|
if (!handles.window) { |
|
|
|
|
LOG(ERROR) << "Error creating window: " << SDL_GetError() << "\n"; |
|
|
|
|
@ -141,6 +142,9 @@ initRenderer(SDL_Handles &handles, v2i vpDims)
|
|
|
|
|
utilSafeFree(vs_code); |
|
|
|
|
utilSafeFree(fs_code); |
|
|
|
|
|
|
|
|
|
rs->max_lights = MAX_LIGHTS; |
|
|
|
|
rs->lights = UTIL_ALLOC(rs->max_lights, rg_point_light); |
|
|
|
|
|
|
|
|
|
if (shader_error) { |
|
|
|
|
LOG(ERROR) << "Error initializing shader program\n"; |
|
|
|
|
return false; |
|
|
|
|
@ -264,9 +268,7 @@ createScene(render_state* rs, std::vector<hex_info>* hexes, Entity* entities, ui
|
|
|
|
|
|
|
|
|
|
// TODO: load light properties from scene/level files
|
|
|
|
|
// light testing
|
|
|
|
|
// TODO: allocate this in scene_loader... or initRenderer?
|
|
|
|
|
rs->lights = UTIL_ALLOC(rs->max_lights, rg_point_light); |
|
|
|
|
#if 1 |
|
|
|
|
#if 0 |
|
|
|
|
rs->lights[0].light_ID = 0; |
|
|
|
|
rs->lights[0].position = glm::vec3(0.f, 0.f, 200.f); |
|
|
|
|
rs->lights[0].color = glm::vec3(1.f, 1.f, 1.f); |
|
|
|
|
|