src/GLX/libglxmapping.c
__GLXextFuncPtr __glXGenerateGLXEntrypoint(const GLubyte *procName)
{
    __GLXextFuncPtr addr = NULL;
    /*
     * For GLX functions, try to generate an entrypoint. We'll plug in
     * a dispatch function for it if and when we load a vendor library
     * that supports it.
     */
    if (procName[0] == 'g' && procName[1] == 'l' && procName[2] == 'X') {
        __glvndPthreadFuncs.mutex_lock(&glxGenEntrypointMutex);
        addr = (__GLXextFuncPtr) glvndGenerateEntrypoint((const char *) procName);
        __glvndPthreadFuncs.mutex_unlock(&glxGenEntrypointMutex);
    } else {
        /* For GL functions, request a dispatch stub from libGLdispatch. */
        addr = __glDispatchGetProcAddress((const char *)procName);
    }
    return addr;
}
/*!
 * Generates an entrypoint for a GLX function. The resulting function will
 * jump to a dispatch function, which we can plug in when we load the vendor
 * library later on.
 *
 * Note that this should still work even if the function turns out to be an
 * OpenGL function, not GLX. In that case, we'll plug in the dispatch function
 * from libGLdispatch instead.
 */
Generates an entrypoint for a GLX function. The resulting function will
jump to a dispatch function, which we can plug in when we load the vendor
library later on.

Note that this should still work even if the function turns out to be an
OpenGL function, not GLX. In that case, we'll plug in the dispatch function
from libGLdispatch instead.
Generates an entrypoint for a GLX function . The resulting function will jump to a dispatch function which we can plug in when we load the vendor library later on . Note that this should still work even if the function turns out to be an OpenGL function not GLX . In that case we ' ll plug in the dispatch function from libGLdispatch instead .
__GLXextFuncPtr __glXGenerateGLXEntrypoint(const GLubyte *procName)
{
    __GLXextFuncPtr addr = NULL;
    if (procName[0] == 'g' && procName[1] == 'l' && procName[2] == 'X') {
        __glvndPthreadFuncs.mutex_lock(&glxGenEntrypointMutex);
        addr = (__GLXextFuncPtr) glvndGenerateEntrypoint((const char *) procName);
        __glvndPthreadFuncs.mutex_unlock(&glxGenEntrypointMutex);
    } else {
        addr = __glDispatchGetProcAddress((const char *)procName);
    }
    return addr;
}
__GLXextFuncPtr __glXGenerateGLXEntrypoint ( const GLubyte * procName ) { __GLXextFuncPtr addr = NULL ; if ( procName [ 0 ] == ' ' && procName [ 1 ] == ' ' && procName [ 2 ] == ' ' ) { __glvndPthreadFuncs . mutex_lock ( & glxGenEntrypointMutex ) ; addr = ( __GLXextFuncPtr ) glvndGenerateEntrypoint ( ( const char * ) procName ) ; __glvndPthreadFuncs . mutex_unlock ( & glxGenEntrypointMutex ) ; } else { addr = __glDispatchGetProcAddress ( ( const char * ) procName ) ; } return addr ; }
Generates an entrypoint for a GLX function.
Generates an entrypoint for a GLX function .
/*
     * For GLX functions, try to generate an entrypoint. We'll plug in
     * a dispatch function for it if and when we load a vendor library
     * that supports it.
     */ /* For GL functions, request a dispatch stub from libGLdispatch. */