X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fegl%2Fmain%2Fegldisplay.h;h=951679ba0f033d1f0e8f5d7ad3b6a422a5c1689c;hb=a38e21d6683aeecb51aea4f933a77c6e7f1a6179;hp=cfd0ff66d6493b36a4d81e0a78f35eb879b4df05;hpb=54fa5eceae237598d6fb329ec7cbe1d3a85e7d39;p=mesa.git diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h index cfd0ff66d64..951679ba0f0 100644 --- a/src/egl/main/egldisplay.h +++ b/src/egl/main/egldisplay.h @@ -50,6 +50,7 @@ enum _egl_platform_type { _EGL_PLATFORM_ANDROID, _EGL_PLATFORM_HAIKU, _EGL_PLATFORM_SURFACELESS, + _EGL_PLATFORM_DEVICE, _EGL_NUM_PLATFORMS, _EGL_INVALID_PLATFORM = -1 @@ -149,7 +150,6 @@ struct _egl_extensions EGLBoolean WL_create_wayland_buffer_from_image; }; - struct _egl_display { /* used to link displays */ @@ -167,7 +167,8 @@ struct _egl_display /* options that affect how the driver initializes the display */ struct { EGLBoolean ForceSoftware; /**< Use software path only */ - void *Platform; /**< Platform-specific options */ + EGLAttrib *Attribs; /**< Platform-specific options */ + int fd; /**< plaform device specific, local fd */ } Options; /* these fields are set by the driver during init */ @@ -202,7 +203,7 @@ _eglFiniDisplay(void); extern _EGLDisplay * -_eglFindDisplay(_EGLPlatformType plat, void *plat_dpy); +_eglFindDisplay(_EGLPlatformType plat, void *plat_dpy, const EGLAttrib *attr); extern void @@ -274,6 +275,19 @@ _eglIsResourceLinked(_EGLResource *res) return res->IsLinked; } +static inline size_t +_eglNumAttribs(const EGLAttrib *attribs) +{ + size_t len = 0; + + if (attribs) { + while (attribs[len] != EGL_NONE) + len += 2; + len++; + } + return len; +} + #ifdef HAVE_X11_PLATFORM _EGLDisplay* _eglGetX11Display(Display *native_display, const EGLAttrib *attrib_list); @@ -295,12 +309,20 @@ _eglGetWaylandDisplay(struct wl_display *native_display, const EGLAttrib *attrib_list); #endif -#ifdef HAVE_SURFACELESS_PLATFORM _EGLDisplay* _eglGetSurfacelessDisplay(void *native_display, const EGLAttrib *attrib_list); + +#ifdef HAVE_ANDROID_PLATFORM +_EGLDisplay* +_eglGetAndroidDisplay(void *native_display, + const EGLAttrib *attrib_list); #endif +_EGLDisplay* +_eglGetDeviceDisplay(void *native_display, + const EGLAttrib *attrib_list); + #ifdef __cplusplus } #endif