diff --git a/renderdoc/driver/gl/gl_hooks_linux_shared.cpp b/renderdoc/driver/gl/gl_hooks_linux_shared.cpp index 8816c6bc4..7ee9dc806 100644 --- a/renderdoc/driver/gl/gl_hooks_linux_shared.cpp +++ b/renderdoc/driver/gl/gl_hooks_linux_shared.cpp @@ -43,17 +43,19 @@ Threading::CriticalSection &GetGLLock() return glLock; } -#define HookInit(function) \ - if(!strcmp(func, STRINGIZE(function))) \ - { \ - GL.function = (CONCAT(function, _hooktype))realFunc; \ - return (void *)&CONCAT(function, _renderdoc_hooked); \ +#define HookInit(function) \ + if(!strcmp(func, STRINGIZE(function))) \ + { \ + if(GL.function == NULL) \ + GL.function = (CONCAT(function, _hooktype))realFunc; \ + return (void *)&CONCAT(function, _renderdoc_hooked); \ } #define HookExtension(funcPtrType, function) \ if(!strcmp(func, STRINGIZE(function))) \ { \ - GL.function = (funcPtrType)realFunc; \ + if(GL.function == NULL) \ + GL.function = (funcPtrType)realFunc; \ return (void *)&CONCAT(function, _renderdoc_hooked); \ } diff --git a/renderdoc/driver/gl/gl_hooks_win32.cpp b/renderdoc/driver/gl/gl_hooks_win32.cpp index ca855c3d4..86b136f25 100644 --- a/renderdoc/driver/gl/gl_hooks_win32.cpp +++ b/renderdoc/driver/gl/gl_hooks_win32.cpp @@ -44,14 +44,15 @@ #define HookExtension(funcPtrType, function) \ if(!strcmp(func, STRINGIZE(function))) \ { \ - glhooks.GL.function = (funcPtrType)realFunc; \ + if(glhooks.GL.function == NULL) \ + glhooks.GL.function = (funcPtrType)realFunc; \ return (PROC)&glhooks.CONCAT(function, _hooked); \ } #define HookExtensionAlias(funcPtrType, function, alias) \ if(!strcmp(func, STRINGIZE(alias))) \ { \ - if(OpenGLHook::glhooks.GL.function == NULL) \ + if(glhooks.GL.function == NULL) \ glhooks.GL.function = (funcPtrType)realFunc; \ return (PROC)&glhooks.CONCAT(function, _hooked); \ }