vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Jul 17 23:23:45 2019 +0300| [0f9b046a3033db1ef4afe467de1673fd85b80ed6] | committer: Rémi Denis-Courmont
gl: move destroy callback to vlc_gl_t > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0f9b046a3033db1ef4afe467de1673fd85b80ed6 --- include/vlc_opengl.h | 1 + modules/video_output/glx.c | 3 ++- modules/video_output/opengl/egl.c | 5 +++-- modules/video_output/vgl.c | 5 +++-- modules/video_output/win32/wgl.c | 3 ++- src/video_output/opengl.c | 11 ++--------- 6 files changed, 13 insertions(+), 15 deletions(-) diff --git a/include/vlc_opengl.h b/include/vlc_opengl.h index 8c4909fc5d..4e436c939b 100644 --- a/include/vlc_opengl.h +++ b/include/vlc_opengl.h @@ -51,6 +51,7 @@ struct vlc_gl_t void (*resize)(vlc_gl_t *, unsigned, unsigned); void (*swap)(vlc_gl_t *); void*(*getProcAddress)(vlc_gl_t *, const char *); + void (*destroy)(vlc_gl_t *); enum { VLC_GL_EXT_DEFAULT, diff --git a/modules/video_output/glx.c b/modules/video_output/glx.c index d5d47c017a..9856c063a3 100644 --- a/modules/video_output/glx.c +++ b/modules/video_output/glx.c @@ -219,6 +219,7 @@ static int Open(vlc_gl_t *gl, unsigned width, unsigned height) gl->resize = NULL; gl->swap = SwapBuffers; gl->getProcAddress = GetSymbol; + gl->destroy = Close; bool is_swap_interval_set = false; @@ -271,5 +272,5 @@ vlc_module_begin () set_category (CAT_VIDEO) set_subcategory (SUBCAT_VIDEO_VOUT) set_capability ("opengl", 20) - set_callbacks (Open, Close) + set_callbacks(Open, NULL) vlc_module_end () diff --git a/modules/video_output/opengl/egl.c b/modules/video_output/opengl/egl.c index bd1b6941e4..b34ac06114 100644 --- a/modules/video_output/opengl/egl.c +++ b/modules/video_output/opengl/egl.c @@ -381,6 +381,7 @@ static int Open(vlc_gl_t *gl, const struct gl_api *api, gl->resize = Resize; gl->swap = SwapBuffers; gl->getProcAddress = GetSymbol; + gl->destroy = Close; gl->egl.queryString = QueryString; sys->eglCreateImageKHR = (void *)eglGetProcAddress("eglCreateImageKHR"); @@ -422,12 +423,12 @@ vlc_module_begin () set_category (CAT_VIDEO) set_subcategory (SUBCAT_VIDEO_VOUT) set_capability ("opengl", 50) - set_callbacks (OpenGL, Close) + set_callbacks(OpenGL, NULL) add_shortcut ("egl") add_submodule () set_capability ("opengl es2", 50) - set_callbacks (OpenGLES2, Close) + set_callbacks(OpenGLES2, NULL) add_shortcut ("egl") vlc_module_end () diff --git a/modules/video_output/vgl.c b/modules/video_output/vgl.c index c2c9be3696..e6825e19ac 100644 --- a/modules/video_output/vgl.c +++ b/modules/video_output/vgl.c @@ -129,6 +129,7 @@ static int Open(vlc_gl_t *gl, unsigned width, unsigned height) gl->resize = Resize; gl->swap = VglSwapBuffers; gl->getProcAddress = OurGetProcAddress; + gl->destroy = Close; if( sys->setupCb ) if( !sys->setupCb(sys->opaque) ) @@ -154,11 +155,11 @@ vlc_module_begin() set_subcategory(SUBCAT_VIDEO_VOUT) set_capability("opengl", 0) - set_callbacks(Open, Close) + set_callbacks(Open, NULL) add_shortcut("vglmem") add_submodule() set_capability("opengl es2", 0) - set_callbacks(Open, Close) + set_callbacks(Open, NULL) add_shortcut("vglmem") vlc_module_end() diff --git a/modules/video_output/win32/wgl.c b/modules/video_output/win32/wgl.c index 8f18424a8b..149149963f 100644 --- a/modules/video_output/win32/wgl.c +++ b/modules/video_output/win32/wgl.c @@ -49,7 +49,7 @@ vlc_module_begin() add_integer("gpu-affinity", -1, HW_GPU_AFFINITY_TEXT, HW_GPU_AFFINITY_TEXT, true) set_capability("opengl", 50) - set_callbacks(Open, Close) + set_callbacks(Open, NULL) add_shortcut("wgl") vlc_module_end() @@ -235,6 +235,7 @@ static int Open(vlc_gl_t *gl, unsigned width, unsigned height) gl->resize = NULL; gl->swap = Swap; gl->getProcAddress = OurGetProcAddress; + gl->destroy = Close; if (sys->exts.GetExtensionsStringEXT || sys->exts.GetExtensionsStringARB) gl->wgl.getExtensionsString = GetExtensionsString; diff --git a/src/video_output/opengl.c b/src/video_output/opengl.c index f17c8ff05c..9d207ac709 100644 --- a/src/video_output/opengl.c +++ b/src/video_output/opengl.c @@ -52,14 +52,6 @@ static int vlc_gl_start(void *func, bool forced, va_list ap) return ret; } -static void vlc_gl_stop(void *func, va_list ap) -{ - void (*deactivate)(vlc_gl_t *) = func; - vlc_gl_t *gl = va_arg(ap, vlc_gl_t *); - - deactivate(gl); -} - vlc_gl_t *vlc_gl_Create(const struct vout_display_cfg *restrict cfg, unsigned flags, const char *name) { @@ -111,7 +103,8 @@ void vlc_gl_Release(vlc_gl_t *gl) if (!vlc_atomic_rc_dec(&glpriv->rc)) return; - vlc_module_unload(gl->module, vlc_gl_stop, gl); + if (gl->destroy != NULL) + gl->destroy(gl); vlc_objres_clear(VLC_OBJECT(gl)); vlc_object_delete(gl); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
