summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/context_drm_egl.c
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2021-11-15 21:34:05 +0100
committersfan5 <sfan5@live.de>2021-11-17 22:38:34 +0100
commitf5cc28a627bc2adc3ce63e69384905a0c3fea66b (patch)
treec5b947121351518bd66d6ac2267f81558f74ec64 /video/out/opengl/context_drm_egl.c
parent3d9c0eae9e4d42494b9435ad3cf5c31217e262ad (diff)
downloadmpv-f5cc28a627bc2adc3ce63e69384905a0c3fea66b.tar.bz2
mpv-f5cc28a627bc2adc3ce63e69384905a0c3fea66b.tar.xz
context_drm_egl: use mpegl_get_display() helper over own code
Although there are no known problems with this, using the helper should be more portable. It will also prefer EGL 1.5's eglGetPlatformDisplay over eglGetPlatformDisplayEXT if available.
Diffstat (limited to 'video/out/opengl/context_drm_egl.c')
-rw-r--r--video/out/opengl/context_drm_egl.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/video/out/opengl/context_drm_egl.c b/video/out/opengl/context_drm_egl.c
index 2bd17dc871..4487751266 100644
--- a/video/out/opengl/context_drm_egl.c
+++ b/video/out/opengl/context_drm_egl.c
@@ -46,8 +46,6 @@
#endif
#ifndef EGL_EXT_platform_base
-typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC)
- (EGLenum platform, void *native_display, const EGLint *attrib_list);
typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)
(EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
#endif
@@ -201,18 +199,15 @@ static int match_config_to_visual(void *user_data, EGLConfig *configs, int num_c
static EGLDisplay egl_get_display(struct gbm_device *gbm_device)
{
- const char *ext = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
+ EGLDisplay ret;
- if (ext) {
- PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display = NULL;
- get_platform_display = (void *) eglGetProcAddress("eglGetPlatformDisplayEXT");
-
- if (get_platform_display && strstr(ext, "EGL_MESA_platform_gbm"))
- return get_platform_display(EGL_PLATFORM_GBM_MESA, gbm_device, NULL);
+ ret = mpegl_get_display(EGL_PLATFORM_GBM_MESA, "EGL_MESA_platform_gbm", gbm_device);
+ if (ret != EGL_NO_DISPLAY)
+ return ret;
- if (get_platform_display && strstr(ext, "EGL_KHR_platform_gbm"))
- return get_platform_display(EGL_PLATFORM_GBM_KHR, gbm_device, NULL);
- }
+ ret = mpegl_get_display(EGL_PLATFORM_GBM_KHR, "EGL_KHR_platform_gbm", gbm_device);
+ if (ret != EGL_NO_DISPLAY)
+ return ret;
return eglGetDisplay(gbm_device);
}