EGL: fix build without libdrm
This fixes building EGL without libdrm support. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
This commit is contained in:
parent
5442c0eae3
commit
a594cec7e3
|
@ -33,8 +33,10 @@
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#ifdef HAVE_DRM_PLATFORM
|
||||||
#include <xf86drm.h>
|
#include <xf86drm.h>
|
||||||
#include <drm_fourcc.h>
|
#include <drm_fourcc.h>
|
||||||
|
#endif
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
#include <GL/internal/dri_interface.h>
|
#include <GL/internal/dri_interface.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@ -520,10 +522,12 @@ dri2_setup_screen(_EGLDisplay *disp)
|
||||||
disp->Extensions.KHR_gl_texture_2D_image = EGL_TRUE;
|
disp->Extensions.KHR_gl_texture_2D_image = EGL_TRUE;
|
||||||
disp->Extensions.KHR_gl_texture_cubemap_image = EGL_TRUE;
|
disp->Extensions.KHR_gl_texture_cubemap_image = EGL_TRUE;
|
||||||
}
|
}
|
||||||
|
#ifdef HAVE_DRM_PLATFORM
|
||||||
if (dri2_dpy->image->base.version >= 8 &&
|
if (dri2_dpy->image->base.version >= 8 &&
|
||||||
dri2_dpy->image->createImageFromDmaBufs) {
|
dri2_dpy->image->createImageFromDmaBufs) {
|
||||||
disp->Extensions.EXT_image_dma_buf_import = EGL_TRUE;
|
disp->Extensions.EXT_image_dma_buf_import = EGL_TRUE;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1158,6 +1162,7 @@ dri2_create_image_khr_renderbuffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||||
return dri2_create_image(disp, dri_image);
|
return dri2_create_image(disp, dri_image);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_DRM_PLATFORM
|
||||||
static _EGLImage *
|
static _EGLImage *
|
||||||
dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||||
EGLClientBuffer buffer, const EGLint *attr_list)
|
EGLClientBuffer buffer, const EGLint *attr_list)
|
||||||
|
@ -1202,6 +1207,7 @@ dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||||
|
|
||||||
return dri2_create_image(disp, dri_image);
|
return dri2_create_image(disp, dri_image);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_WAYLAND_PLATFORM
|
#ifdef HAVE_WAYLAND_PLATFORM
|
||||||
|
|
||||||
|
@ -1375,6 +1381,7 @@ dri2_create_image_khr_texture(_EGLDisplay *disp, _EGLContext *ctx,
|
||||||
return &dri2_img->base;
|
return &dri2_img->base;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_DRM_PLATFORM
|
||||||
static EGLBoolean
|
static EGLBoolean
|
||||||
dri2_check_dma_buf_attribs(const _EGLImageAttribs *attrs)
|
dri2_check_dma_buf_attribs(const _EGLImageAttribs *attrs)
|
||||||
{
|
{
|
||||||
|
@ -1629,6 +1636,7 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
_EGLImage *
|
_EGLImage *
|
||||||
dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
||||||
|
@ -1648,14 +1656,18 @@ dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
||||||
return dri2_create_image_khr_texture(disp, ctx, target, buffer, attr_list);
|
return dri2_create_image_khr_texture(disp, ctx, target, buffer, attr_list);
|
||||||
case EGL_GL_RENDERBUFFER_KHR:
|
case EGL_GL_RENDERBUFFER_KHR:
|
||||||
return dri2_create_image_khr_renderbuffer(disp, ctx, buffer, attr_list);
|
return dri2_create_image_khr_renderbuffer(disp, ctx, buffer, attr_list);
|
||||||
|
#ifdef HAVE_DRM_PLATFORM
|
||||||
case EGL_DRM_BUFFER_MESA:
|
case EGL_DRM_BUFFER_MESA:
|
||||||
return dri2_create_image_mesa_drm_buffer(disp, ctx, buffer, attr_list);
|
return dri2_create_image_mesa_drm_buffer(disp, ctx, buffer, attr_list);
|
||||||
|
#endif
|
||||||
#ifdef HAVE_WAYLAND_PLATFORM
|
#ifdef HAVE_WAYLAND_PLATFORM
|
||||||
case EGL_WAYLAND_BUFFER_WL:
|
case EGL_WAYLAND_BUFFER_WL:
|
||||||
return dri2_create_image_wayland_wl_buffer(disp, ctx, buffer, attr_list);
|
return dri2_create_image_wayland_wl_buffer(disp, ctx, buffer, attr_list);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_DRM_PLATFORM
|
||||||
case EGL_LINUX_DMA_BUF_EXT:
|
case EGL_LINUX_DMA_BUF_EXT:
|
||||||
return dri2_create_image_dma_buf(disp, ctx, buffer, attr_list);
|
return dri2_create_image_dma_buf(disp, ctx, buffer, attr_list);
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
_eglError(EGL_BAD_PARAMETER, "dri2_create_image_khr");
|
_eglError(EGL_BAD_PARAMETER, "dri2_create_image_khr");
|
||||||
return EGL_NO_IMAGE_KHR;
|
return EGL_NO_IMAGE_KHR;
|
||||||
|
@ -1676,6 +1688,7 @@ dri2_destroy_image_khr(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *image)
|
||||||
return EGL_TRUE;
|
return EGL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_DRM_PLATFORM
|
||||||
static _EGLImage *
|
static _EGLImage *
|
||||||
dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp,
|
dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp,
|
||||||
const EGLint *attr_list)
|
const EGLint *attr_list)
|
||||||
|
@ -1786,6 +1799,7 @@ dri2_export_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *img,
|
||||||
|
|
||||||
return EGL_TRUE;
|
return EGL_TRUE;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_WAYLAND_PLATFORM
|
#ifdef HAVE_WAYLAND_PLATFORM
|
||||||
|
|
||||||
|
@ -2020,8 +2034,10 @@ _eglBuiltInDriverDRI2(const char *args)
|
||||||
dri2_drv->base.API.ReleaseTexImage = dri2_release_tex_image;
|
dri2_drv->base.API.ReleaseTexImage = dri2_release_tex_image;
|
||||||
dri2_drv->base.API.CreateImageKHR = dri2_create_image_khr;
|
dri2_drv->base.API.CreateImageKHR = dri2_create_image_khr;
|
||||||
dri2_drv->base.API.DestroyImageKHR = dri2_destroy_image_khr;
|
dri2_drv->base.API.DestroyImageKHR = dri2_destroy_image_khr;
|
||||||
|
#ifdef HAVE_DRM_PLATFORM
|
||||||
dri2_drv->base.API.CreateDRMImageMESA = dri2_create_drm_image_mesa;
|
dri2_drv->base.API.CreateDRMImageMESA = dri2_create_drm_image_mesa;
|
||||||
dri2_drv->base.API.ExportDRMImageMESA = dri2_export_drm_image_mesa;
|
dri2_drv->base.API.ExportDRMImageMESA = dri2_export_drm_image_mesa;
|
||||||
|
#endif
|
||||||
#ifdef HAVE_WAYLAND_PLATFORM
|
#ifdef HAVE_WAYLAND_PLATFORM
|
||||||
dri2_drv->base.API.BindWaylandDisplayWL = dri2_bind_wayland_display_wl;
|
dri2_drv->base.API.BindWaylandDisplayWL = dri2_bind_wayland_display_wl;
|
||||||
dri2_drv->base.API.UnbindWaylandDisplayWL = dri2_unbind_wayland_display_wl;
|
dri2_drv->base.API.UnbindWaylandDisplayWL = dri2_unbind_wayland_display_wl;
|
||||||
|
|
|
@ -33,7 +33,9 @@
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#ifdef HAVE_DRM_PLATFORM
|
||||||
#include <xf86drm.h>
|
#include <xf86drm.h>
|
||||||
|
#endif
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
@ -606,6 +608,7 @@ dri2_x11_authenticate(_EGLDisplay *disp, uint32_t id)
|
||||||
static EGLBoolean
|
static EGLBoolean
|
||||||
dri2_authenticate(_EGLDisplay *disp)
|
dri2_authenticate(_EGLDisplay *disp)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_DRM_PLATFORM
|
||||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||||
drm_magic_t magic;
|
drm_magic_t magic;
|
||||||
|
|
||||||
|
@ -620,6 +623,9 @@ dri2_authenticate(_EGLDisplay *disp)
|
||||||
}
|
}
|
||||||
|
|
||||||
return EGL_TRUE;
|
return EGL_TRUE;
|
||||||
|
#else
|
||||||
|
return EGL_FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static EGLBoolean
|
static EGLBoolean
|
||||||
|
|
Loading…
Reference in New Issue