egl: Update to Wayland 1.2 server API

Since Wayland 1.2, struct wl_buffer and a few functions are deprecated.

References to wl_buffer are replaced with wl_resource and some getter
functions and calls to deprecated functions are replaced with the proper
new API. The latter changes are related to resource versioning.

Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 81ae271..04ab564 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -42,6 +42,10 @@
 
 #include "egl_dri2.h"
 
+#ifdef HAVE_WAYLAND_PLATFORM
+#include "wayland-drm.h"
+#endif
+
 const __DRIuseInvalidateExtension use_invalidate = {
    { __DRI_USE_INVALIDATE, 1 }
 };
@@ -1200,7 +1204,7 @@
 				    EGLClientBuffer _buffer,
 				    const EGLint *attr_list)
 {
-   struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) _buffer;
+   struct wl_drm_buffer *buffer;
    struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
    const struct wl_drm_components_descriptor *f;
    __DRIimage *dri_image;
@@ -1208,7 +1212,8 @@
    EGLint err;
    int32_t plane;
 
-   if (!wayland_buffer_is_drm(&buffer->buffer))
+   buffer = wayland_drm_buffer_get((struct wl_resource *) _buffer);
+   if (!buffer)
        return NULL;
 
    err = _eglParseImageAttribList(&attrs, disp, attr_list);
@@ -1770,8 +1775,8 @@
 
    if (fd == -1)
       img = dri2_dpy->image->createImageFromNames(dri2_dpy->dri_screen,
-                                                  buffer->buffer.width,
-                                                  buffer->buffer.height,
+                                                  buffer->width,
+                                                  buffer->height,
                                                   buffer->format,
                                                   (int*)&name, 1,
                                                   buffer->stride,
@@ -1779,8 +1784,8 @@
                                                   NULL);
    else
       img = dri2_dpy->image->createImageFromFds(dri2_dpy->dri_screen,
-                                                buffer->buffer.width,
-                                                buffer->buffer.height,
+                                                buffer->width,
+                                                buffer->height,
                                                 buffer->format,
                                                 &fd, 1,
                                                 buffer->stride,
@@ -1869,13 +1874,14 @@
 
 static EGLBoolean
 dri2_query_wayland_buffer_wl(_EGLDriver *drv, _EGLDisplay *disp,
-                             struct wl_buffer *_buffer,
+                             struct wl_resource *buffer_resource,
                              EGLint attribute, EGLint *value)
 {
-   struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) _buffer;
+   struct wl_drm_buffer *buffer;
    const struct wl_drm_components_descriptor *format;
 
-   if (!wayland_buffer_is_drm(&buffer->buffer))
+   buffer = wayland_drm_buffer_get(buffer_resource);
+   if (!buffer)
       return EGL_FALSE;
 
    format = buffer->driver_format;
@@ -1884,10 +1890,10 @@
       *value = format->components;
       return EGL_TRUE;
    case EGL_WIDTH:
-      *value = buffer->buffer.width;
+      *value = buffer->width;
       return EGL_TRUE;
    case EGL_HEIGHT:
-      *value = buffer->buffer.height;
+      *value = buffer->height;
       return EGL_TRUE;
    }