- if (fips_dispatch_api == FIPS_API_GLX)
- return glXGetProcAddressARB ((const GLubyte *)name);
- else
- return eglGetProcAddress (name);
+ static PFNGLXGETPROCADDRESSPROC glx_gpa = NULL;
+ static generic_function_pointer (*egl_gpa)(const char *name) = NULL;
+
+ if (fips_dispatch_api == FIPS_API_GLX) {
+ if (glx_gpa == NULL)
+ glx_gpa = glwrap_lookup ("glXGetProcAddressARB");
+ return glx_gpa ((const GLubyte *)name);
+ } else {
+ if (egl_gpa == NULL)
+ egl_gpa = eglwrap_lookup ("eglGetProcAddress");
+ return egl_gpa (name);
+ }