mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-11 19:06:33 +00:00
gl: Add meson support for GBM backend
https://bugzilla.gnome.org/show_bug.cgi?id=782923
This commit is contained in:
parent
4df219f336
commit
1a97338dc7
2 changed files with 43 additions and 0 deletions
|
@ -24,6 +24,7 @@ G_BEGIN_DECLS
|
||||||
#mesondefine GST_GL_HAVE_WINDOW_DISPMANX
|
#mesondefine GST_GL_HAVE_WINDOW_DISPMANX
|
||||||
#mesondefine GST_GL_HAVE_WINDOW_EAGL
|
#mesondefine GST_GL_HAVE_WINDOW_EAGL
|
||||||
#mesondefine GST_GL_HAVE_WINDOW_VIV_FB
|
#mesondefine GST_GL_HAVE_WINDOW_VIV_FB
|
||||||
|
#mesondefine GST_GL_HAVE_WINDOW_GBM
|
||||||
|
|
||||||
#mesondefine GST_GL_HAVE_PLATFORM_EGL
|
#mesondefine GST_GL_HAVE_PLATFORM_EGL
|
||||||
#mesondefine GST_GL_HAVE_PLATFORM_GLX
|
#mesondefine GST_GL_HAVE_PLATFORM_GLX
|
||||||
|
|
|
@ -88,6 +88,7 @@ gl_wayland_headers = []
|
||||||
gl_win32_headers = []
|
gl_win32_headers = []
|
||||||
gl_cocoa_headers = []
|
gl_cocoa_headers = []
|
||||||
gl_egl_headers = []
|
gl_egl_headers = []
|
||||||
|
gl_gbm_headers = []
|
||||||
|
|
||||||
glconf = configuration_data()
|
glconf = configuration_data()
|
||||||
glconf_options = [
|
glconf_options = [
|
||||||
|
@ -223,6 +224,7 @@ if gl_winsys_s == 'auto'
|
||||||
need_win_eagl = 'auto'
|
need_win_eagl = 'auto'
|
||||||
need_win_dispmanx = 'auto'
|
need_win_dispmanx = 'auto'
|
||||||
need_win_viv_fb = 'auto'
|
need_win_viv_fb = 'auto'
|
||||||
|
need_win_gbm = 'auto'
|
||||||
else
|
else
|
||||||
need_win_x11 = 'no'
|
need_win_x11 = 'no'
|
||||||
need_win_wayland = 'no'
|
need_win_wayland = 'no'
|
||||||
|
@ -231,6 +233,7 @@ else
|
||||||
need_win_eagl = 'no'
|
need_win_eagl = 'no'
|
||||||
need_win_dispmanx = 'no'
|
need_win_dispmanx = 'no'
|
||||||
need_win_viv_fb = 'no'
|
need_win_viv_fb = 'no'
|
||||||
|
need_win_gbm = 'no'
|
||||||
gl_winsys = gl_winsys_s.split(',')
|
gl_winsys = gl_winsys_s.split(',')
|
||||||
foreach winsys : gl_winsys
|
foreach winsys : gl_winsys
|
||||||
if winsys == 'x11'
|
if winsys == 'x11'
|
||||||
|
@ -247,6 +250,8 @@ else
|
||||||
need_win_dispmanx = 'yes'
|
need_win_dispmanx = 'yes'
|
||||||
elif winsys == 'viv-fb'
|
elif winsys == 'viv-fb'
|
||||||
need_win_viv_fb = 'yes'
|
need_win_viv_fb = 'yes'
|
||||||
|
elif winsys == 'gbm'
|
||||||
|
need_win_gbm = 'no'
|
||||||
else
|
else
|
||||||
error('Unsupported GL winsys provided ' + winsys)
|
error('Unsupported GL winsys provided ' + winsys)
|
||||||
endif
|
endif
|
||||||
|
@ -597,6 +602,42 @@ if host_machine.system() == 'darwin'
|
||||||
# ]
|
# ]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# GDM Checks
|
||||||
|
gbm_gudev_dep = unneeded_dep
|
||||||
|
gbm_libdrm_dep = unneeded_dep
|
||||||
|
gbm_dep = unneeded_dep
|
||||||
|
if need_win_gbm != 'no'
|
||||||
|
if need_win_gbm == 'yes'
|
||||||
|
if need_platform_egl == 'no'
|
||||||
|
error('Impossible situation requested: Cannot use GBM without EGL support')
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
gbm_gudev_dep = dependency('gudev-1.0', version : '>=147', required : false)
|
||||||
|
gbm_libdrm_dep = dependency('libdrm', version : '>= 2.4.55', required : false)
|
||||||
|
gbm_dep = dependency('gbm', required : false)
|
||||||
|
if egl_dep.found() and gbm_gudev_dep.found() and gbm_libdrm_dep.found() and gbm_dep.found()
|
||||||
|
gl_sources += [
|
||||||
|
'gbm/gstgldisplay_gbm.c',
|
||||||
|
'gbm/gstgl_gbm_utils.c',
|
||||||
|
'gbm/gstglwindow_gbm_egl.c',
|
||||||
|
]
|
||||||
|
gl_gbm_headers += [
|
||||||
|
'gbm/gstgldisplay_gbm.h'
|
||||||
|
]
|
||||||
|
enabled_gl_winsys += 'gbm'
|
||||||
|
gl_winsys_deps += [gbm_gudev_dep, gbm_libdrm_dep, gbm_dep]
|
||||||
|
glconf.set('GST_GL_HAVE_WINDOW_GBM', 1)
|
||||||
|
else
|
||||||
|
if need_win_gbm == 'yes'
|
||||||
|
error ('Could not find requested GBM libraries')
|
||||||
|
endif
|
||||||
|
gbm_gudev_dep = unneeded_dep
|
||||||
|
gbm_libdrm_dep = unneeded_dep
|
||||||
|
gbm_dep = unneeded_dep
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
if need_platform_egl != 'no' and need_win_viv_fb != 'no'
|
if need_platform_egl != 'no' and need_win_viv_fb != 'no'
|
||||||
if egl_dep.found() and cc.has_function ('fbGetDisplay', dependencies : egl_dep)
|
if egl_dep.found() and cc.has_function ('fbGetDisplay', dependencies : egl_dep)
|
||||||
if cc.has_function ('glTexDirectVIV', dependencies : gles2_dep)
|
if cc.has_function ('glTexDirectVIV', dependencies : gles2_dep)
|
||||||
|
@ -666,6 +707,7 @@ if build_gstgl
|
||||||
install_headers(gl_prototype_headers, subdir : 'gstreamer-1.0/gst/gl/glprototypes')
|
install_headers(gl_prototype_headers, subdir : 'gstreamer-1.0/gst/gl/glprototypes')
|
||||||
install_headers(gl_x11_headers, subdir : 'gstreamer-1.0/gst/gl/x11')
|
install_headers(gl_x11_headers, subdir : 'gstreamer-1.0/gst/gl/x11')
|
||||||
install_headers(gl_wayland_headers, subdir : 'gstreamer-1.0/gst/gl/wayland')
|
install_headers(gl_wayland_headers, subdir : 'gstreamer-1.0/gst/gl/wayland')
|
||||||
|
install_headers(gl_gbm_headers, subdir : 'gstreamer-1.0/gst/gl/gbm')
|
||||||
|
|
||||||
configure_file(input : 'gstglconfig.h.meson',
|
configure_file(input : 'gstglconfig.h.meson',
|
||||||
output : 'gstglconfig.h',
|
output : 'gstglconfig.h',
|
||||||
|
|
Loading…
Reference in a new issue