Browse Source

sys/windows: fix wgl function loading in accordance with OpenGL wiki

hikari 2 years ago
parent
commit
abaacfe78d
1 changed files with 7 additions and 1 deletions
  1. 7 1
      core/sys/windows/wgl.odin

+ 7 - 1
core/sys/windows/wgl.odin

@@ -87,6 +87,12 @@ foreign Opengl32 {
 }
 
 // Used by vendor:OpenGL
+// https://www.khronos.org/opengl/wiki/Load_OpenGL_Functions#Windows
 gl_set_proc_address :: proc(p: rawptr, name: cstring) {
-	(^rawptr)(p)^ = wglGetProcAddress(name)
+	func := wglGetProcAddress(name)
+	if uintptr(func) == 0 || uintptr(func) == 1 || uintptr(func) == 2 || uintptr(func) == 3 || uintptr(func) == ~uintptr(0) {
+		module := LoadLibraryW(L("opengl32.dll"))
+		func = GetProcAddress(module, name)
+	}
+	(^rawptr)(p)^ = func
 }