Browse Source

break out createWindow to new function in renderer

testing
cinnaboot 6 years ago
parent
commit
3dd798b88d
  1. 31
      src/renderer.cpp

31
src/renderer.cpp

@ -28,9 +28,10 @@
// forward declarations // forward declarations
void openglDebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, 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, v2i& viewport_dims); bool initSDL(SDL_Handles& handles);
bool initContext(SDL_Handles& handles); bool createWindow(SDL_Handles& handles, v2i& viewport_dims);
bool initGL(); bool initGlContext(SDL_Handles& handles);
bool initGlOptions();
bool initDebugRenderGroup(render_state* rs); bool initDebugRenderGroup(render_state* rs);
void setDefaults(render_state* rs); void setDefaults(render_state* rs);
@ -43,9 +44,10 @@ renInit()
render_state* rs = UTIL_ALLOC(1, render_state); render_state* rs = UTIL_ALLOC(1, render_state);
setDefaults(rs); setDefaults(rs);
if (initSDL(rs->handles, rs->viewport_dims) && if (initSDL(rs->handles) &&
initContext(rs->handles) && createWindow(rs->handles, rs->viewport_dims) &&
initGL() && initGlContext(rs->handles) &&
initGlOptions() &&
rgInitShaderProgram(rs->default_shader, DEFAULT_VERTEX_SHADER, DEFAULT_FRAGMENT_SHADER) && rgInitShaderProgram(rs->default_shader, DEFAULT_VERTEX_SHADER, DEFAULT_FRAGMENT_SHADER) &&
initDebugRenderGroup(rs) ) initDebugRenderGroup(rs) )
{ {
@ -121,8 +123,13 @@ openglDebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity,
} }
bool bool
initSDL(SDL_Handles& handles, v2i& viewport_dims) initSDL(SDL_Handles& handles)
{ {
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
LOG(Error) << "Error, SDL_Init: " << SDL_GetError() << "\n";
return false;
}
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG); 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); SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
@ -132,6 +139,12 @@ initSDL(SDL_Handles& handles, v2i& viewport_dims)
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
SDL_GetCurrentDisplayMode(0, &handles.currentDisplayMode); SDL_GetCurrentDisplayMode(0, &handles.currentDisplayMode);
return true;
}
bool
createWindow(SDL_Handles& handles, v2i& viewport_dims)
{
uint display_id = 0; uint display_id = 0;
if (USE_SECOND_MONITOR && SDL_GetNumVideoDisplays() > 1) if (USE_SECOND_MONITOR && SDL_GetNumVideoDisplays() > 1)
display_id = 1; display_id = 1;
@ -154,7 +167,7 @@ initSDL(SDL_Handles& handles, v2i& viewport_dims)
} }
bool bool
initContext(SDL_Handles& handles) initGLContext(SDL_Handles& handles)
{ {
handles.glContext = SDL_GL_CreateContext(handles.window); handles.glContext = SDL_GL_CreateContext(handles.window);
@ -172,7 +185,7 @@ initContext(SDL_Handles& handles)
} }
bool bool
initGL() initGlOptions()
{ {
if (glewInit()) { if (glewInit()) {
LOG(Error) << "failed to initialize OpenGL\n"; LOG(Error) << "failed to initialize OpenGL\n";

Loading…
Cancel
Save