Mercurial > games > semicongine
comparison src/vulkan.nim @ 10:0660ba9d1930
did: make it work on windows
author | sam <sam@basx.dev> |
---|---|
date | Sat, 24 Dec 2022 22:32:46 +0700 |
parents | 4ed9cb098315 |
children | 90e117952f74 |
comparison
equal
deleted
inserted
replaced
8:1134f41a49e9 | 10:0660ba9d1930 |
---|---|
28 | 28 |
29 let vkHandleDLL = loadLib(vkDLL) | 29 let vkHandleDLL = loadLib(vkDLL) |
30 if isNil(vkHandleDLL): | 30 if isNil(vkHandleDLL): |
31 quit("could not load: " & vkDLL) | 31 quit("could not load: " & vkDLL) |
32 | 32 |
33 let vkGetProcAddress = cast[proc(s: cstring): pointer {.stdcall.}](symAddr(vkHandleDLL, "vkGetInstanceProcAddr")) | |
34 if vkGetProcAddress == nil: | |
35 quit("failed to load `vkGetInstanceProcAddr` from " & vkDLL) | |
36 | |
37 vkGetProc = proc(procName: cstring): pointer {.cdecl.} = | 33 vkGetProc = proc(procName: cstring): pointer {.cdecl.} = |
38 when defined(windows): | |
39 result = vkGetProcAddress(procName) | |
40 if result != nil: | |
41 return | |
42 result = symAddr(vkHandleDLL, procName) | 34 result = symAddr(vkHandleDLL, procName) |
43 if result == nil: | 35 if result == nil: |
44 raiseInvalidLibrary(procName) | 36 raiseInvalidLibrary(procName) |
45 | 37 |
46 proc setVKGetProc*(getProc: proc(procName: cstring): pointer {.cdecl.}) = | 38 proc setVKGetProc*(getProc: proc(procName: cstring): pointer {.cdecl.}) = |