Commit d60221ca authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

EGL: initial video output plugin

Currently, this require EGL 1.3 or later to compile.
This was only tested against the GLX driver from the Mesa Project,
and desktop OpenGL, which requires EGL 1.4. Win32 support is untested
(not even compilation).

OpenGL ES 1 and 2 are mostly implemented but completely untested too.
The USE_OPENGL_ES constant would have to be predefined appropriately.

This plugin mostly works, but there are two major remaining issues.
Therefore, this plugin is disabled by default and has zero priority.

(1) Mouse is not implemented. The stupid fix involves cut&paste from
the XCB-GLX plugin. Moving mouse event reception to the window provider
might be smart though: I would rather not corrupt the EGL plugin with
X11, otherwise we might as well stick to GLX anyway.

(2) Resize events are mostly not working. EGL does not provide
notification for this. But there may be some bugs in Control() too.
parent 5333f1c8
...@@ -3233,6 +3233,18 @@ AS_IF([test "${enable_glx}" != "no"], [ ...@@ -3233,6 +3233,18 @@ AS_IF([test "${enable_glx}" != "no"], [
AC_SUBST([GL_CFLAGS]) AC_SUBST([GL_CFLAGS])
AC_SUBST([GL_LIBS]) AC_SUBST([GL_LIBS])
dnl
dnl EGL
dnl
AC_ARG_ENABLE(egl,
[ --enable-egl EGL support (default disabled)],, [
enable_egl="no"
])
AS_IF([test "${enable_egl}" != "no"], [
PKG_CHECK_MODULES(EGL, [egl])
VLC_ADD_PLUGIN([egl])
])
dnl dnl
dnl SDL module dnl SDL module
dnl dnl
......
...@@ -104,6 +104,7 @@ $Id$ ...@@ -104,6 +104,7 @@ $Id$
* dvdnav: access module for DVDs with libdvdnav * dvdnav: access module for DVDs with libdvdnav
* dvdread: input module for accessing DVDs, uses libdvdread * dvdread: input module for accessing DVDs, uses libdvdread
* dynamicoverlay: subpicture filter using shared memory that can be written to by external applications * dynamicoverlay: subpicture filter using shared memory that can be written to by external applications
* egl: EGL video output
* equalizer: a equalizer audio filter * equalizer: a equalizer audio filter
* erase: Logo erase video filter * erase: Logo erase video filter
* es: input module for MPEG ES decapsulation * es: input module for MPEG ES decapsulation
......
...@@ -82,6 +82,20 @@ if HAVE_WIN32 ...@@ -82,6 +82,20 @@ if HAVE_WIN32
libvlc_LTLIBRARIES += libdrawable_plugin.la libvlc_LTLIBRARIES += libdrawable_plugin.la
endif endif
### EGL ###
libegl_plugin_la_SOURCES = \
opengl.h opengl.c \
egl.c
#FIXME FIXME FIXME
libegl_plugin_la_CFLAGS = $(AM_CFLAGS) \
$(EGL_CFLAGS) $(GL_CFLAGS)
libegl_plugin_la_LIBADD = $(AM_LIBADD) \
$(EGL_LIBS) $(GL_LIBS)
libegl_plugin_la_DEPENDENCIES =
EXTRA_LTLIBRARIES += libegl_plugin.la
libvlc_LTLIBRARIES += $(LTLIBegl)
### Common ###
libvlc_LTLIBRARIES += \ libvlc_LTLIBRARIES += \
libvmem_plugin.la \ libvmem_plugin.la \
libyuv_plugin.la libyuv_plugin.la
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment