/*****************************************************************************
- * vlc_gl.h: VLC GL API
+ * vlc_opengl.h: VLC GL API
*****************************************************************************
* Copyright (C) 2009 Laurent Aimar
* Copyright (C) 2011 RĂ©mi Denis-Courmont
*/
struct vout_window_t;
+struct vout_window_cfg_t;
/**
* A VLC GL context (and its underlying surface)
void *sys;
int (*makeCurrent)(vlc_gl_t *);
+ void (*releaseCurrent)(vlc_gl_t *);
+ void (*resize)(vlc_gl_t *, unsigned, unsigned);
void (*swap)(vlc_gl_t *);
int (*lock)(vlc_gl_t *);
void (*unlock)(vlc_gl_t *);
return gl->makeCurrent(gl);
}
+static inline void vlc_gl_ReleaseCurrent(vlc_gl_t *gl)
+{
+ gl->releaseCurrent(gl);
+}
+
static inline int vlc_gl_Lock(vlc_gl_t *gl)
{
return (gl->lock != NULL) ? gl->lock(gl) : VLC_SUCCESS;
gl->unlock(gl);
}
+static inline void vlc_gl_Resize(vlc_gl_t *gl, unsigned w, unsigned h)
+{
+ if (gl->resize != NULL)
+ gl->resize(gl, w, h);
+}
+
static inline void vlc_gl_Swap(vlc_gl_t *gl)
{
gl->swap(gl);
return (gl->getProcAddress != NULL) ? gl->getProcAddress(gl, name) : NULL;
}
+VLC_API vlc_gl_t *vlc_gl_surface_Create(vlc_object_t *,
+ const struct vout_window_cfg_t *,
+ struct vout_window_t **) VLC_USED;
+VLC_API bool vlc_gl_surface_CheckSize(vlc_gl_t *, unsigned *w, unsigned *h);
+VLC_API void vlc_gl_surface_Destroy(vlc_gl_t *);
+
#endif /* VLC_GL_H */