egl: const _eglDriver
[mesa.git] / src / egl / main / eglimage.h
index 9a75d0c9537f22f98adf77e73f1d8ea07cd0991d..6d2e7ba8a2d3b0c812f573b62bcf95e3a4c81d07 100644 (file)
@@ -46,7 +46,7 @@ struct _egl_image_attrib_int
    EGLBoolean IsPresent;
 };
 
-#define DMA_BUF_MAX_PLANES 3
+#define DMA_BUF_MAX_PLANES 4
 
 struct _egl_image_attribs
 {
@@ -67,11 +67,14 @@ struct _egl_image_attribs
    /* EGL_WL_bind_wayland_display */
    EGLint PlaneWL;
 
-   /* EGL_EXT_image_dma_buf_import */
+   /* EGL_EXT_image_dma_buf_import and
+    * EGL_EXT_image_dma_buf_import_modifiers */
    struct _egl_image_attrib_int DMABufFourCC;
    struct _egl_image_attrib_int DMABufPlaneFds[DMA_BUF_MAX_PLANES];
    struct _egl_image_attrib_int DMABufPlaneOffsets[DMA_BUF_MAX_PLANES];
    struct _egl_image_attrib_int DMABufPlanePitches[DMA_BUF_MAX_PLANES];
+   struct _egl_image_attrib_int DMABufPlaneModifiersLo[DMA_BUF_MAX_PLANES];
+   struct _egl_image_attrib_int DMABufPlaneModifiersHi[DMA_BUF_MAX_PLANES];
    struct _egl_image_attrib_int DMABufYuvColorSpaceHint;
    struct _egl_image_attrib_int DMABufSampleRangeHint;
    struct _egl_image_attrib_int DMABufChromaHorizontalSiting;
@@ -88,13 +91,16 @@ struct _egl_image
 };
 
 
-extern EGLint
-_eglParseImageAttribList(_EGLImageAttribs *attrs, _EGLDisplay *dpy,
+EGLBoolean
+_eglParseImageAttribList(_EGLImageAttribs *attrs, _EGLDisplay *disp,
                          const EGLint *attrib_list);
 
 
-extern EGLBoolean
-_eglInitImage(_EGLImage *img, _EGLDisplay *dpy);
+static inline void
+_eglInitImage(_EGLImage *img, _EGLDisplay *disp)
+{
+   _eglInitResource(&img->Resource, sizeof(*img), disp);
+}
 
 
 /**
@@ -147,10 +153,10 @@ _eglUnlinkImage(_EGLImage *img)
  * Return NULL if the handle has no corresponding linked image.
  */
 static inline _EGLImage *
-_eglLookupImage(EGLImage image, _EGLDisplay *dpy)
+_eglLookupImage(EGLImage image, _EGLDisplay *disp)
 {
    _EGLImage *img = (_EGLImage *) image;
-   if (!dpy || !_eglCheckResource((void *) img, _EGL_RESOURCE_IMAGE, dpy))
+   if (!disp || !_eglCheckResource((void *) img, _EGL_RESOURCE_IMAGE, disp))
       img = NULL;
    return img;
 }