egl: Add _EGLDriver as the first argument to GetProcAddress.
The rest of the driver API has it as the first argument. It should be there so that a driver has access to itself.
This commit is contained in:
@@ -899,7 +899,7 @@ GLX_eglSwapBuffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
* Called from eglGetProcAddress() via drv->API.GetProcAddress().
|
||||
*/
|
||||
static _EGLProc
|
||||
GLX_eglGetProcAddress(const char *procname)
|
||||
GLX_eglGetProcAddress(_EGLDriver *drv, const char *procname)
|
||||
{
|
||||
return (_EGLProc) glXGetProcAddress((const GLubyte *) procname);
|
||||
}
|
||||
|
||||
@@ -355,7 +355,7 @@ xdri_eglTerminate(_EGLDriver *drv, _EGLDisplay *dpy)
|
||||
* Called from eglGetProcAddress() via drv->API.GetProcAddress().
|
||||
*/
|
||||
static _EGLProc
|
||||
xdri_eglGetProcAddress(const char *procname)
|
||||
xdri_eglGetProcAddress(_EGLDriver *drv, const char *procname)
|
||||
{
|
||||
/* the symbol is defined in libGL.so */
|
||||
return (_EGLProc) _glapi_get_proc_address(procname);
|
||||
|
||||
@@ -716,7 +716,8 @@ void (* EGLAPIENTRY eglGetProcAddress(const char *procname))()
|
||||
|
||||
/* now loop over drivers to query their procs */
|
||||
for (i = 0; i < _eglGlobal.NumDrivers; i++) {
|
||||
_EGLProc p = _eglGlobal.Drivers[i]->API.GetProcAddress(procname);
|
||||
_EGLDriver *drv = _eglGlobal.Drivers[i];
|
||||
_EGLProc p = drv->API.GetProcAddress(drv, procname);
|
||||
if (p)
|
||||
return p;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ typedef const char *(*QueryString_t)(_EGLDriver *drv, _EGLDisplay *dpy, EGLint n
|
||||
typedef EGLBoolean (*WaitClient_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx);
|
||||
typedef EGLBoolean (*WaitNative_t)(_EGLDriver *drv, _EGLDisplay *dpy, EGLint engine);
|
||||
|
||||
typedef _EGLProc (*GetProcAddress_t)(const char *procname);
|
||||
typedef _EGLProc (*GetProcAddress_t)(_EGLDriver *drv, const char *procname);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -849,7 +849,7 @@ egl_g3d_wait_native(_EGLDriver *drv, _EGLDisplay *dpy, EGLint engine)
|
||||
}
|
||||
|
||||
static _EGLProc
|
||||
egl_g3d_get_proc_address(const char *procname)
|
||||
egl_g3d_get_proc_address(_EGLDriver *drv, const char *procname)
|
||||
{
|
||||
/* FIXME how come _EGLDriver is not passed? */
|
||||
const struct egl_g3d_st *stapi;
|
||||
|
||||
@@ -274,7 +274,7 @@ xlib_eglTerminate(_EGLDriver *drv, _EGLDisplay *dpy)
|
||||
|
||||
|
||||
static _EGLProc
|
||||
xlib_eglGetProcAddress(const char *procname)
|
||||
xlib_eglGetProcAddress(_EGLDriver *drv, const char *procname)
|
||||
{
|
||||
return (_EGLProc) st_get_proc_address(procname);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user