diff --git a/include/tangerine.h b/include/tangerine.h index d38fc9f..5e8ea92 100644 --- a/include/tangerine.h +++ b/include/tangerine.h @@ -90,6 +90,7 @@ struct SDLHandles SDL_Window* window; SDL_GLContext sdl_gl_ctx; SDL_DisplayMode display_mode; + u32 SDL_flags; }; // TODO: node/tree structure for entities @@ -191,6 +192,7 @@ struct RenderState #define DEFAULT_WIDTH 1280 #define DEFAULT_HEIGHT 720 +#define DEFAULT_SDL_FLAGS SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE #define DEFAULT_MODEL_COUNT 256 #define DEFAULT_TEXTURE_COUNT 64 #define DEFAULT_SHADER_COUNT 64 @@ -201,6 +203,7 @@ struct RenderState #define DEFAULT_MAX_LIGHTS 32 // NOTE: needs to match NUM_LIGHTS in shaders RenderState* initRenderState(const char* window_title = "tangerine", uvec2 window_dims = uvec2(DEFAULT_WIDTH, DEFAULT_HEIGHT), + u32 SDL_flags = DEFAULT_SDL_FLAGS, GLClearColor clear_col = DEFAULT_CLEAR_COLOR, vec4 ambient_color = DEFAULT_AMBIENT_COLOR, u32 max_models = DEFAULT_MODEL_COUNT, diff --git a/src/tangerine.cpp b/src/tangerine.cpp index 43b23d8..7fddf7f 100644 --- a/src/tangerine.cpp +++ b/src/tangerine.cpp @@ -20,6 +20,7 @@ LightsBuffer* initLights(RenderState* rs, u32 max_lights, vec4 ambient_color); RenderState* initRenderState(const char* window_title, uvec2 window_dims, + u32 SDL_flags, GLClearColor clear_col, vec4 ambient_color, u32 max_models, @@ -45,6 +46,7 @@ initRenderState(const char* window_title, rs->max_render_groups = DEFAULT_RENDER_GROUP_COUNT; rs->render_groups = ARENA_ALLOC(rs->rg_arena, RenderGroup, DEFAULT_RENDER_GROUP_COUNT); + rs->handles.SDL_flags = SDL_flags; if (!initGraphics(&rs->handles, window_title, window_dims)) { LOGF(Error, "error initializing renderer\n"); @@ -275,7 +277,7 @@ initGraphics(SDLHandles* handles, const char* title, uvec2 dims) SDL_WINDOWPOS_CENTERED_DISPLAY(0), dims.x, dims.y, - SDL_WINDOW_OPENGL|SDL_WINDOW_RESIZABLE); + handles->SDL_flags); if (SDL_Init(SDL_INIT_VIDEO) != 0) { std::cout << "error, sdl init: " << SDL_GetError() << "\n";