aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorhikari <ftphikari@gmail.com>2022-12-06 01:53:19 +0200
committerhikari <ftphikari@gmail.com>2022-12-06 01:53:19 +0200
commitabaacfe78d4bf78eef9960add82dd4893398f3ff (patch)
tree2f2b61773da7c1cc644d9d1c7ff7a55f6a7e794c /core
parentdaf005d1ab8145c8337aa22e806d7a7e781b86e3 (diff)
sys/windows: fix wgl function loading in accordance with OpenGL wiki
Diffstat (limited to 'core')
-rw-r--r--core/sys/windows/wgl.odin8
1 files changed, 7 insertions, 1 deletions
diff --git a/core/sys/windows/wgl.odin b/core/sys/windows/wgl.odin
index e91463a3c..56f61ed32 100644
--- a/core/sys/windows/wgl.odin
+++ b/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
}