src/glcontext.c

changeset 257
67d7b79997df
parent 253
6ab35fcb8676
equal deleted inserted replaced
256:60014484121c 257:67d7b79997df
72 data->f3(data->memory, data->additional_data); 72 data->f3(data->memory, data->additional_data);
73 break; 73 break;
74 } 74 }
75 } 75 }
76 76
77 AscGLContextSettings asc_gl_context_settings_default(int gl_major_version, int gl_minor_version) {
78 return (AscGLContextSettings) {
79 .gl_major_version = gl_major_version,
80 .gl_minor_version = gl_minor_version,
81 .depth_size = 24,
82 .vsync = true,
83 .fullscreen = false,
84 };
85 }
86
77 bool asc_gl_context_initialize( 87 bool asc_gl_context_initialize(
78 AscGLContext *ctx, 88 AscGLContext *ctx,
79 SDL_Window *window, 89 SDL_Window *window,
80 const AscGLContextSettings *settings 90 const AscGLContextSettings *settings
81 ) { 91 ) {
89 ctx->window = window; 99 ctx->window = window;
90 100
91 glewExperimental = GL_TRUE; 101 glewExperimental = GL_TRUE;
92 GLenum err = glewInit(); 102 GLenum err = glewInit();
93 if (err == GLEW_OK) { 103 if (err == GLEW_OK) {
94 SDL_GL_SetSwapInterval(settings->vsync); 104 SDL_GL_SetSwapInterval(settings->vsync ? 1 : 0);
95 105
96 glClearColor(0.0f, 0.0f, 0.0f, 1.0f); 106 glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
97 glEnable(GL_DEBUG_OUTPUT); 107 glEnable(GL_DEBUG_OUTPUT);
98 glDebugMessageCallback(asc_gl_debug_callback, NULL); 108 glDebugMessageCallback(asc_gl_debug_callback, NULL);
99 109

mercurial