diff --git a/core/sys/windows/wgl.odin b/core/sys/windows/wgl.odin index e91463a3c..77cff2fa9 100644 --- a/core/sys/windows/wgl.odin +++ b/core/sys/windows/wgl.odin @@ -87,6 +87,13 @@ 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) + switch uintptr(func) { + case 0, 1, 2, 3, ~uintptr(0): + module := LoadLibraryW(L("opengl32.dll")) + func = GetProcAddress(module, name) + } + (^rawptr)(p)^ = func }