libepoxy  1.5.3
Macros | Functions | Variables
dispatch_common.h File Reference
#include "config.h"
#include "epoxy/gl.h"

Macros

#define PLATFORM_HAS_EGL   ENABLE_EGL
 
#define PLATFORM_HAS_GLX   ENABLE_GLX
 
#define PLATFORM_HAS_WGL   0
 
#define PACKED
 
#define ENDPACKED
 
#define USING_DISPATCH_TABLE   0
 
#define UNWRAPPED_PROTO(x)   (GLAPIENTRY *x)
 
#define WRAPPER_VISIBILITY(type)   static type GLAPIENTRY
 
#define WRAPPER(x)   x ## _wrapped
 
#define GEN_GLOBAL_REWRITE_PTR(name, args, passthrough)
 
#define GEN_GLOBAL_REWRITE_PTR_RET(ret, name, args, passthrough)
 
#define GEN_DISPATCH_TABLE_REWRITE_PTR(name, args, passthrough)
 
#define GEN_DISPATCH_TABLE_REWRITE_PTR_RET(ret, name, args, passthrough)
 
#define GEN_DISPATCH_TABLE_THUNK(name, args, passthrough)
 
#define GEN_DISPATCH_TABLE_THUNK_RET(ret, name, args, passthrough)
 
#define GEN_THUNKS(name, args, passthrough)
 
#define GEN_THUNKS_RET(ret, name, args, passthrough)
 
#define glBegin_unwrapped   epoxy_glBegin_unwrapped
 
#define glEnd_unwrapped   epoxy_glEnd_unwrapped
 

Functions

void * epoxy_egl_dlsym (const char *name)
 
void * epoxy_glx_dlsym (const char *name)
 
void * epoxy_gl_dlsym (const char *name)
 
void * epoxy_gles1_dlsym (const char *name)
 
void * epoxy_gles2_dlsym (const char *name)
 
void * epoxy_gles3_dlsym (const char *name)
 Does the appropriate dlsym() or eglGetProcAddress() for GLES3 functions. More...
 
void * epoxy_get_proc_address (const char *name)
 
void * epoxy_get_core_proc_address (const char *name, int core_version)
 Performs either the dlsym or glXGetProcAddress()-equivalent for core functions in desktop GL. More...
 
void * epoxy_get_bootstrap_proc_address (const char *name)
 Performs the dlsym() for the core GL 1.0 functions that we use for determining version and extension support for deciding on dlsym versus glXGetProcAddress() for all other functions. More...
 
int epoxy_conservative_gl_version (void)
 
bool epoxy_conservative_has_gl_extension (const char *name)
 
int epoxy_conservative_glx_version (void)
 If we can determine the GLX version from the current context, then return that, otherwise return a version that will just send us on to dlsym() or get_proc_address(). More...
 
bool epoxy_conservative_has_glx_extension (const char *name)
 If we can determine the GLX extension support from the current context, then return that, otherwise give the answer that will just send us on to get_proc_address(). More...
 
int epoxy_conservative_egl_version (void)
 
bool epoxy_conservative_has_egl_extension (const char *name)
 
bool epoxy_conservative_has_wgl_extension (const char *name)
 If we can determine the WGL extension support from the current context, then return that, otherwise give the answer that will just send us on to get_proc_address(). More...
 
void * epoxy_conservative_egl_dlsym (const char *name, bool exit_if_fails)
 
void * epoxy_conservative_glx_dlsym (const char *name, bool exit_if_fails)
 
bool epoxy_load_glx (bool exit_if_fails, bool load)
 
bool epoxy_load_egl (bool exit_if_fails, bool load)
 
void UNWRAPPED_PROTO() glBegin_unwrapped (GLenum primtype)
 
void UNWRAPPED_PROTO() glEnd_unwrapped (void)
 

Variables

epoxy_resolver_failure_handler_t epoxy_resolver_failure_handler
 

Macro Definition Documentation

◆ ENDPACKED

#define ENDPACKED

◆ GEN_DISPATCH_TABLE_REWRITE_PTR

#define GEN_DISPATCH_TABLE_REWRITE_PTR (   name,
  args,
  passthrough 
)

◆ GEN_DISPATCH_TABLE_REWRITE_PTR_RET

#define GEN_DISPATCH_TABLE_REWRITE_PTR_RET (   ret,
  name,
  args,
  passthrough 
)

◆ GEN_DISPATCH_TABLE_THUNK

#define GEN_DISPATCH_TABLE_THUNK (   name,
  args,
  passthrough 
)

◆ GEN_DISPATCH_TABLE_THUNK_RET

#define GEN_DISPATCH_TABLE_THUNK_RET (   ret,
  name,
  args,
  passthrough 
)

◆ GEN_GLOBAL_REWRITE_PTR

#define GEN_GLOBAL_REWRITE_PTR (   name,
  args,
  passthrough 
)

◆ GEN_GLOBAL_REWRITE_PTR_RET

#define GEN_GLOBAL_REWRITE_PTR_RET (   ret,
  name,
  args,
  passthrough 
)

◆ GEN_THUNKS

#define GEN_THUNKS (   name,
  args,
  passthrough 
)

◆ GEN_THUNKS_RET

#define GEN_THUNKS_RET (   ret,
  name,
  args,
  passthrough 
)

◆ glBegin_unwrapped

#define glBegin_unwrapped   epoxy_glBegin_unwrapped

◆ glEnd_unwrapped

#define glEnd_unwrapped   epoxy_glEnd_unwrapped

◆ PACKED

#define PACKED

◆ PLATFORM_HAS_EGL

#define PLATFORM_HAS_EGL   ENABLE_EGL

◆ PLATFORM_HAS_GLX

#define PLATFORM_HAS_GLX   ENABLE_GLX

◆ PLATFORM_HAS_WGL

#define PLATFORM_HAS_WGL   0

◆ UNWRAPPED_PROTO

#define UNWRAPPED_PROTO (   x)    (GLAPIENTRY *x)

◆ USING_DISPATCH_TABLE

#define USING_DISPATCH_TABLE   0

◆ WRAPPER

#define WRAPPER (   x)    x ## _wrapped

◆ WRAPPER_VISIBILITY

#define WRAPPER_VISIBILITY (   type)    static type GLAPIENTRY

Function Documentation

◆ epoxy_conservative_egl_dlsym()

void* epoxy_conservative_egl_dlsym ( const char *  name,
bool  exit_if_fails 
)

◆ epoxy_conservative_egl_version()

int epoxy_conservative_egl_version ( void  )

◆ epoxy_conservative_gl_version()

int epoxy_conservative_gl_version ( void  )

◆ epoxy_conservative_glx_dlsym()

void* epoxy_conservative_glx_dlsym ( const char *  name,
bool  exit_if_fails 
)

◆ epoxy_conservative_glx_version()

int epoxy_conservative_glx_version ( void  )

If we can determine the GLX version from the current context, then return that, otherwise return a version that will just send us on to dlsym() or get_proc_address().

◆ epoxy_conservative_has_egl_extension()

bool epoxy_conservative_has_egl_extension ( const char *  name)

◆ epoxy_conservative_has_gl_extension()

bool epoxy_conservative_has_gl_extension ( const char *  name)

◆ epoxy_conservative_has_glx_extension()

bool epoxy_conservative_has_glx_extension ( const char *  name)

If we can determine the GLX extension support from the current context, then return that, otherwise give the answer that will just send us on to get_proc_address().

◆ epoxy_conservative_has_wgl_extension()

bool epoxy_conservative_has_wgl_extension ( const char *  name)

If we can determine the WGL extension support from the current context, then return that, otherwise give the answer that will just send us on to get_proc_address().

◆ epoxy_egl_dlsym()

void* epoxy_egl_dlsym ( const char *  name)

◆ epoxy_get_bootstrap_proc_address()

void* epoxy_get_bootstrap_proc_address ( const char *  name)

Performs the dlsym() for the core GL 1.0 functions that we use for determining version and extension support for deciding on dlsym versus glXGetProcAddress() for all other functions.

This needs to succeed on implementations without GLX (since glGetString() and glGetIntegerv() are both in GLES1/2 as well, and at call time we don't know for sure what API they're trying to use without inspecting contexts ourselves).

◆ epoxy_get_core_proc_address()

void* epoxy_get_core_proc_address ( const char *  name,
int  core_version 
)

Performs either the dlsym or glXGetProcAddress()-equivalent for core functions in desktop GL.

◆ epoxy_get_proc_address()

void* epoxy_get_proc_address ( const char *  name)

◆ epoxy_gl_dlsym()

void* epoxy_gl_dlsym ( const char *  name)

◆ epoxy_gles1_dlsym()

void* epoxy_gles1_dlsym ( const char *  name)

◆ epoxy_gles2_dlsym()

void* epoxy_gles2_dlsym ( const char *  name)

◆ epoxy_gles3_dlsym()

void* epoxy_gles3_dlsym ( const char *  name)

Does the appropriate dlsym() or eglGetProcAddress() for GLES3 functions.

Mesa interpreted GLES as intending that the GLES3 functions were available only through eglGetProcAddress() and not dlsym(), while ARM's Mali drivers interpreted GLES as intending that GLES3 functions were available only through dlsym() and not eglGetProcAddress(). Thanks, Khronos.

◆ epoxy_glx_dlsym()

void* epoxy_glx_dlsym ( const char *  name)

◆ epoxy_load_egl()

bool epoxy_load_egl ( bool  exit_if_fails,
bool  load 
)

◆ epoxy_load_glx()

bool epoxy_load_glx ( bool  exit_if_fails,
bool  load 
)

◆ glBegin_unwrapped()

void UNWRAPPED_PROTO() glBegin_unwrapped ( GLenum  primtype)

◆ glEnd_unwrapped()

void UNWRAPPED_PROTO() glEnd_unwrapped ( void  )

Variable Documentation

◆ epoxy_resolver_failure_handler

epoxy_resolver_failure_handler_t epoxy_resolver_failure_handler