Bladeren bron

Enable vsync on gl-windows

Karl Zylinski 2 maanden geleden
bovenliggende
commit
13490b536d
1 gewijzigde bestanden met toevoegingen van 7 en 0 verwijderingen
  1. 7 0
      render_backend_gl_windows.odin

+ 7 - 0
render_backend_gl_windows.odin

@@ -38,6 +38,7 @@ _gl_get_context :: proc(window_handle: Window_Handle) -> (GL_Context, bool) {
 
 	win32.gl_set_proc_address(&win32.wglChoosePixelFormatARB, "wglChoosePixelFormatARB")
 	win32.gl_set_proc_address(&win32.wglCreateContextAttribsARB, "wglCreateContextAttribsARB")
+	win32.gl_set_proc_address(&win32.wglSwapIntervalEXT, "wglSwapIntervalEXT")
 
 	if win32.wglChoosePixelFormatARB == nil {
 		log.error("Failed fetching wglChoosePixelFormatARB")
@@ -49,6 +50,11 @@ _gl_get_context :: proc(window_handle: Window_Handle) -> (GL_Context, bool) {
 		return {}, false
 	}
 
+	if win32.wglSwapIntervalEXT == nil {
+		log.error("Failed fetching wglSwapIntervalEXT")
+		return {}, false
+	}
+
 	pixel_format_ilist := [?]i32 {
 		win32.WGL_DRAW_TO_WINDOW_ARB, 1,
 		win32.WGL_SUPPORT_OPENGL_ARB, 1,
@@ -73,6 +79,7 @@ _gl_get_context :: proc(window_handle: Window_Handle) -> (GL_Context, bool) {
 	win32.SetPixelFormat(hdc, pixel_format, nil)
 	ctx := win32.wglCreateContextAttribsARB(hdc, nil, nil)
 	win32.wglMakeCurrent(hdc, ctx)
+	win32.wglSwapIntervalEXT(1)
 	return ctx, true
 }