void (*swap)(vlc_gl_t *);
int (*lock)(vlc_gl_t *);
void (*unlock)(vlc_gl_t *);
+ void*(*getProcAddress)(vlc_gl_t *, const char *);
};
enum {
gl->swap(gl);
}
+static inline void *vlc_gl_GetProcAddress(vlc_gl_t *gl, const char *name)
+{
+ return (gl->getProcAddress != NULL) ? gl->getProcAddress(gl, name) : NULL;
+}
+
#endif /* VLC_GL_H */
gl->swap = SwapBuffers;
gl->lock = NULL;
gl->unlock = NULL;
+ gl->getProcAddress = NULL;
return VLC_SUCCESS;
error:
sys->gl.lock = OpenglClean; // We don't do locking, but sometimes we need to cleanup the framebuffer
sys->gl.unlock = NULL;
sys->gl.swap = OpenglSwap;
+ sys->gl.getProcAddress = NULL;
sys->gl.sys = sys;
if (vout_display_opengl_Init(&sys->vgl, &vd->fmt, &sys->gl))
sys->gl.lock = OpenglLock;
sys->gl.unlock = OpenglUnlock;
sys->gl.swap = OpenglSwap;
+ sys->gl.getProcAddress = NULL;
sys->gl.sys = sys;
if (vout_display_opengl_Init(&sys->vgl, &vd->fmt, &sys->gl))
sys->gl.lock = NULL;
sys->gl.unlock = NULL;
sys->gl.swap = Swap;
+ sys->gl.getProcAddress = NULL;
sys->gl.sys = vd;
video_format_t fmt = vd->fmt;
sys->gl.lock = NULL;
sys->gl.unlock = NULL;
sys->gl.swap = SwapBuffers;
+ sys->gl.getProcAddress = NULL;
sys->gl.sys = sys;
if (vout_display_opengl_Init (&sys->vgl, &vd->fmt, &sys->gl))