vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Thu Jan 31 19:28:38 2019 +0200| [886e0c20810eddd61f3a79cfa2fc1a086f0f0d58] | committer: Rémi Denis-Courmont
gl: vlc_gl_Create() takes configuration struct ...pointer instead of window pointer. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=886e0c20810eddd61f3a79cfa2fc1a086f0f0d58 --- include/vlc_opengl.h | 7 ++++--- include/vlc_vout_display.h | 2 +- modules/video_output/android/display.c | 2 +- modules/video_output/opengl/display.c | 2 +- modules/video_output/win32/glwin32.c | 2 +- src/video_output/opengl.c | 10 +++++++--- 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/include/vlc_opengl.h b/include/vlc_opengl.h index f11cdd4c5d..c8e7de6d95 100644 --- a/include/vlc_opengl.h +++ b/include/vlc_opengl.h @@ -31,6 +31,7 @@ struct vout_window_t; struct vout_window_cfg_t; +struct vout_display_cfg; /** * A VLC GL context (and its underlying surface) @@ -87,13 +88,13 @@ enum { * * @note In most cases, you should vlc_gl_MakeCurrent() afterward. * - * @param wnd window to use as OpenGL surface + * @param cfg initial configuration (including window to use as OpenGL surface) * @param flags OpenGL context type * @param name module name (or NULL for auto) * @return a new context, or NULL on failure */ -VLC_API vlc_gl_t *vlc_gl_Create(struct vout_window_t *wnd, unsigned flags, - const char *name) VLC_USED; +VLC_API vlc_gl_t *vlc_gl_Create(const struct vout_display_cfg *cfg, + unsigned flags, const char *name) VLC_USED; VLC_API void vlc_gl_Release(vlc_gl_t *); VLC_API void vlc_gl_Hold(vlc_gl_t *); diff --git a/include/vlc_vout_display.h b/include/vlc_vout_display.h index e7877f4ad0..eff57f2a13 100644 --- a/include/vlc_vout_display.h +++ b/include/vlc_vout_display.h @@ -64,7 +64,7 @@ typedef struct vlc_video_align { /** * Initial/Current configuration for a vout_display_t */ -typedef struct { +typedef struct vout_display_cfg { struct vout_window_t *window; /**< Window */ #if defined(_WIN32) || defined(__OS2__) bool is_fullscreen VLC_DEPRECATED; /* Is the display fullscreen */ diff --git a/modules/video_output/android/display.c b/modules/video_output/android/display.c index a6bdaf6683..73767fcd09 100644 --- a/modules/video_output/android/display.c +++ b/modules/video_output/android/display.c @@ -662,7 +662,7 @@ static void ClearSurface(vout_display_t *vd) { /* Clear the surface to black with OpenGL ES 2 */ char *modlist = var_InheritString(sys->embed, "gles2"); - vlc_gl_t *gl = vlc_gl_Create(sys->embed, VLC_OPENGL_ES2, modlist); + vlc_gl_t *gl = vlc_gl_Create(vd->cfg, VLC_OPENGL_ES2, modlist); free(modlist); if (gl == NULL) return; diff --git a/modules/video_output/opengl/display.c b/modules/video_output/opengl/display.c index 087e288034..d4f1875cca 100644 --- a/modules/video_output/opengl/display.c +++ b/modules/video_output/opengl/display.c @@ -125,7 +125,7 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg, } #endif - sys->gl = vlc_gl_Create (surface, API, gl_name); + sys->gl = vlc_gl_Create(cfg, API, gl_name); free(gl_name); if (sys->gl == NULL) goto error; diff --git a/modules/video_output/win32/glwin32.c b/modules/video_output/win32/glwin32.c index e7eeeb8319..c7db2cd759 100644 --- a/modules/video_output/win32/glwin32.c +++ b/modules/video_output/win32/glwin32.c @@ -132,7 +132,7 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg, goto error; char *modlist = var_InheritString(surface, "gl"); - sys->gl = vlc_gl_Create (surface, VLC_OPENGL, modlist); + sys->gl = vlc_gl_Create(cfg, VLC_OPENGL, modlist); free(modlist); if (!sys->gl) { diff --git a/src/video_output/opengl.c b/src/video_output/opengl.c index a4bb7fc153..d2a296ce93 100644 --- a/src/video_output/opengl.c +++ b/src/video_output/opengl.c @@ -28,6 +28,7 @@ #include <vlc_common.h> #include <vlc_atomic.h> #include <vlc_opengl.h> +#include <vlc_vout_display.h> #include "libvlc.h" #include <vlc_modules.h> @@ -55,9 +56,10 @@ static void vlc_gl_stop(void *func, va_list ap) deactivate(gl); } -vlc_gl_t *vlc_gl_Create(struct vout_window_t *wnd, unsigned flags, - const char *name) +vlc_gl_t *vlc_gl_Create(const struct vout_display_cfg *restrict cfg, + unsigned flags, const char *name) { + vout_window_t *wnd = cfg->window; vlc_object_t *parent = (vlc_object_t *)wnd; struct vlc_gl_priv_t *glpriv; const char *type; @@ -166,7 +168,9 @@ vlc_gl_t *vlc_gl_surface_Create(vlc_object_t *obj, *wp = surface; /* TODO: support ES? */ - vlc_gl_t *gl = vlc_gl_Create(surface, VLC_OPENGL, NULL); + struct vout_display_cfg dcfg = { .window = surface }; + + vlc_gl_t *gl = vlc_gl_Create(&dcfg, VLC_OPENGL, NULL); if (gl == NULL) { vout_window_Delete(surface); goto error; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
