Browse Source

add option to pass extra SDL flags to initRenderState

remotes/bxxa/master
cinnaboot 4 years ago
parent
commit
7ac0e7be52
  1. 3
      include/tangerine.h
  2. 4
      src/tangerine.cpp

3
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,

4
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";

Loading…
Cancel
Save