<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style>
</head>
<body><div><br></div>
<div>On Wed, May 23, 2018, at 15:16, Rémi Denis-Courmont wrote:<br></div>
<blockquote type="cite"><div>Hmm, so there is a catch-22. We need the extension to load the function provided by the extension.<br></div>
<div> <br></div>
<div> We can still check at runtime and return an error. If the plugin is loaded lazily, it will prevent aborting on first GPA call. If the plugin is loaded immediately, then loading will fail due to missing GPA (and module subsystem will fall back cleanly).<br></div>
<div> <br></div>
<div> Either way compiling a module that always fails makes no sense, and would raise warnings.<br></div>
</blockquote><div>Do we want to complexity the configure.ac to check for this function ?<br></div>
<div><br></div>
<div>I think it's a corner case that is very unlikely to happen for system running VLC 4.0, that's why this commit was fine to me.<br></div>
<div><br></div>
<blockquote type="cite"><div><br></div>
<div defang_data-gmailquote="yes"><div>Le 23 mai 2018 13:43:48 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div>
<blockquote defang_data-gmailquote="yes" style="margin-top:0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0.8ex;border-left-color:rgb(204, 204, 204);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><div>On Wed, May 23, 2018, at 12:18, Rémi Denis-Courmont wrote:<br></div>
<blockquote type="cite"><div>Err, this is a runtime feature. You can't test it at build time AFAIK.<br></div>
</blockquote><div><br></div>
<div>It's already tested at build time. it just move the check to the opening of the module.<br></div>
<div><br></div>
<blockquote type="cite"><div><br></div>
<div><div>Le 23 mai 2018 10:19:21 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div>
<blockquote style="margin-top:0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0.8ex;border-left-color:rgb(204, 204, 204);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><pre><div>Since the GL display now depends on getProcAddress().<br></div>
<div>
<br></div>
<div>---<br></div>
<div>
<br></div>
<div> modules/video_output/glx.c | 10 ++++------<br></div>
<div>
<br></div>
<div> 1 file changed, 4 insertions(+), 6 deletions(-)<br></div>
<div>
<br></div>
<div><br></div>
<div>
<br></div>
<div>diff --git a/modules/video_output/glx.c b/modules/video_output/glx.c<br></div>
<div>
<br></div>
<div>index cb5d53b7db..17188f24b2 100644<br></div>
<div>
<br></div>
<div>--- a/modules/video_output/glx.c<br></div>
<div>
<br></div>
<div>+++ b/modules/video_output/glx.c<br></div>
<div>
<br></div>
<div>@@ -68,11 +68,7 @@ static void SwapBuffers (vlc_gl_t *gl)<br></div>
<div>
<br></div>
<div> static void *GetSymbol(vlc_gl_t *gl, const char *procname)<br></div>
<div>
<br></div>
<div> {<br></div>
<div>
<br></div>
<div>     (void) gl;<br></div>
<div>
<br></div>
<div>-#ifdef GLX_ARB_get_proc_address<br></div>
<div>
<br></div>
<div>     return glXGetProcAddressARB ((const GLubyte *)procname);<br></div>
<div>
<br></div>
<div>-#else<br></div>
<div>
<br></div>
<div>-    return NULL;<br></div>
<div>
<br></div>
<div>-#endif<br></div>
<div>
<br></div>
<div> }<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div> static bool CheckGLX (vlc_object_t *vd, Display *dpy)<br></div>
<div>
<br></div>
<div>@@ -117,6 +113,10 @@ static int Open (vlc_object_t *obj)<br></div>
<div>
<br></div>
<div> {<br></div>
<div>
<br></div>
<div>     vlc_gl_t *gl = (vlc_gl_t *)obj;<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div>+#ifndef GLX_ARB_get_proc_address<br></div>
<div>
<br></div>
<div>+    return VLC_EGENERIC;<br></div>
<div>
<br></div>
<div>+#endif<br></div>
<div>
<br></div>
<div>+<br></div>
<div>
<br></div>
<div>     if (gl->surface->type != VOUT_WINDOW_TYPE_XID || !vlc_xlib_init (obj))<br></div>
<div>
<br></div>
<div>         return VLC_EGENERIC;<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div>@@ -209,7 +209,6 @@ static int Open (vlc_object_t *obj)<br></div>
<div>
<br></div>
<div>     gl->swap = SwapBuffers;<br></div>
<div>
<br></div>
<div>     gl->getProcAddress = GetSymbol;<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div>-#ifdef GLX_ARB_get_proc_address<br></div>
<div>
<br></div>
<div>     bool is_swap_interval_set = false;<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div>     MakeCurrent (gl);<br></div>
<div>
<br></div>
<div>@@ -235,7 +234,6 @@ static int Open (vlc_object_t *obj)<br></div>
<div>
<br></div>
<div>     }<br></div>
<div>
<br></div>
<div> # endif<br></div>
<div>
<br></div>
<div>     ReleaseCurrent (gl);<br></div>
<div>
<br></div>
<div>-#endif<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div>     /* XXX: Prevent other gl backends (like EGL) to be opened within the same<br></div>
<div>
<br></div>
<div>      * X11 window instance. Indeed, using EGL after GLX on the same X11 window<br></div>
<div>
<br></div>
</pre></blockquote></div>
<div><br></div>
<div>--<br></div>
<div>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. <br></div>
<div><u>_______________________________________________</u><br></div>
<div>vlc-devel mailing list<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
</blockquote><div><br></div>
</blockquote></div>
<div><br></div>
<div>--<br></div>
<div> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. <br></div>
<div><u>_______________________________________________</u><br></div>
<div>vlc-devel mailing list<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
</blockquote><div><br></div>
</body>
</html>