diff options
Diffstat (limited to 'src/wrapped/wrappedlibgl.c')
| -rwxr-xr-x | src/wrapped/wrappedlibgl.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/wrapped/wrappedlibgl.c b/src/wrapped/wrappedlibgl.c index db4453c2..006774aa 100755 --- a/src/wrapped/wrappedlibgl.c +++ b/src/wrapped/wrappedlibgl.c @@ -88,6 +88,7 @@ EXPORT void* my_glXGetProcAddressARB(x64emu_t* emu, void* name) __attribute__((a typedef int (*iFi_t)(int); typedef void (*vFpp_t)(void*, void*); +typedef void*(*pFp_t)(void*); typedef void (*debugProc_t)(int32_t, int32_t, uint32_t, int32_t, int32_t, void*, void*); #define SUPER() \ @@ -184,6 +185,18 @@ EXPORT void my_glProgramCallbackMESA(x64emu_t* emu, void* f, void* data) ProgramCallbackMESA(find_program_callback_Fct(f), data); } +void* my_GetVkProcAddr(x64emu_t* emu, void* name, void*(*getaddr)(void*)); // defined in wrappedvulkan.c +EXPORT void* my_glGetVkProcAddrNV(x64emu_t* emu, void* name) +{ + static pFp_t GetVkProcAddrNV = NULL; + static int init = 1; + if(init) { + GetVkProcAddrNV = my_context->glxprocaddress("glGetVkProcAddrNV"); + init = 0; + } + return my_GetVkProcAddr(emu, name, GetVkProcAddrNV); +} + #define PRE_INIT if(libGL) {lib->priv.w.lib = dlopen(libGL, RTLD_LAZY | RTLD_GLOBAL); lib->path = strdup(libGL);} else #define CUSTOM_INIT \ lib->priv.w.priv = dlsym(lib->priv.w.lib, "glXGetProcAddress"); \ |