]> git.pld-linux.org Git - packages/Mesa.git/blame - 0003-egl-Update-to-Wayland-1.2-server-API.patch
Added Wayland 1.2 compatibility patches, release 22
[packages/Mesa.git] / 0003-egl-Update-to-Wayland-1.2-server-API.patch
CommitLineData
4469c4e7
AF
1From 29c760d8bb6338679abaf8a30549341bd181cc51 Mon Sep 17 00:00:00 2001
2From: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
3Date: Thu, 18 Jul 2013 15:11:25 +0300
4Subject: [PATCH 3/4] egl: Update to Wayland 1.2 server API
5
6Since Wayland 1.2, struct wl_buffer and a few functions are deprecated.
7
8References to wl_buffer are replaced with wl_resource and some getter
9functions and calls to deprecated functions are replaced with the proper
10new API. The latter changes are related to resource versioning.
11
12Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
13---
14 docs/specs/WL_bind_wayland_display.spec | 8 ++-
15 include/EGL/eglmesaext.h | 6 +-
16 src/egl/drivers/dri2/egl_dri2.c | 28 +++++----
17 src/egl/drivers/dri2/egl_dri2.h | 1 -
18 src/egl/main/eglapi.c | 2 +-
19 src/egl/main/eglapi.h | 2 +-
20 src/egl/wayland/wayland-drm/wayland-drm.c | 66 +++++++++++++---------
21 src/egl/wayland/wayland-drm/wayland-drm.h | 13 +++--
22 .../state_trackers/egl/common/egl_g3d_api.c | 2 +-
23 .../state_trackers/egl/common/egl_g3d_image.c | 4 +-
24 .../egl/common/native_wayland_bufmgr.h | 6 +-
25 .../egl/common/native_wayland_drm_bufmgr.c | 25 +++++---
26 src/gbm/backends/dri/gbm_dri.c | 5 +-
27 13 files changed, 99 insertions(+), 69 deletions(-)
28
29diff --git a/docs/specs/WL_bind_wayland_display.spec b/docs/specs/WL_bind_wayland_display.spec
30index 02bd6ea..8f0083c 100644
31--- a/docs/specs/WL_bind_wayland_display.spec
32+++ b/docs/specs/WL_bind_wayland_display.spec
33@@ -17,7 +17,7 @@ Status
34
35 Version
36
37- Version 1, March 1, 2011
38+ Version 5, July 16, 2013
39
40 Number
41
42@@ -57,7 +57,7 @@ New Procedures and Functions
43 struct wl_display *display);
44
45 EGLBoolean eglQueryWaylandBufferWL(EGLDisplay dpy,
46- struct wl_buffer *buffer,
47+ struct wl_resource *buffer,
48 EGLint attribute, EGLint *value);
49
50 New Tokens
51@@ -173,3 +173,7 @@ Revision History
52 Use EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, and EGL_TEXTURE_RGBA,
53 and just define the new YUV texture formats. Add support for
54 EGL_WIDTH and EGL_HEIGHT in the query attributes (Kristian Høgsberg)
55+ Version 5, July 16, 2013
56+ Change eglQueryWaylandBufferWL to take a resource pointer to the
57+ buffer instead of a pointer to a struct wl_buffer, as the latter has
58+ been deprecated. (Ander Conselvan de Oliveira)
59diff --git a/include/EGL/eglmesaext.h b/include/EGL/eglmesaext.h
60index d476d18..e0eae28 100644
61--- a/include/EGL/eglmesaext.h
62+++ b/include/EGL/eglmesaext.h
63@@ -120,15 +120,15 @@ typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDRMDISPLAYMESA) (int fd);
64 #define EGL_TEXTURE_Y_XUXV_WL 0x31D9
65
66 struct wl_display;
67-struct wl_buffer;
68+struct wl_resource;
69 #ifdef EGL_EGLEXT_PROTOTYPES
70 EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display);
71 EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display);
72-EGLAPI EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL(EGLDisplay dpy, struct wl_buffer *buffer, EGLint attribute, EGLint *value);
73+EGLAPI EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL(EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value);
74 #endif
75 typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
76 typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
77-typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWL) (EGLDisplay dpy, struct wl_buffer *buffer, EGLint attribute, EGLint *value);
78+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWL) (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value);
79
80 #endif
81
82diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
83index 52fcb3f..bdbb450 100644
84--- a/src/egl/drivers/dri2/egl_dri2.c
85+++ b/src/egl/drivers/dri2/egl_dri2.c
86@@ -41,6 +41,10 @@
87
88 #include "egl_dri2.h"
89
90+#ifdef HAVE_WAYLAND_PLATFORM
91+#include "wayland-drm.h"
92+#endif
93+
94 const __DRIuseInvalidateExtension use_invalidate = {
95 { __DRI_USE_INVALIDATE, 1 }
96 };
97@@ -1195,7 +1199,7 @@ dri2_create_image_wayland_wl_buffer(_EGLDisplay *disp, _EGLContext *ctx,
98 EGLClientBuffer _buffer,
99 const EGLint *attr_list)
100 {
101- struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) _buffer;
102+ struct wl_drm_buffer *buffer;
103 struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
104 const struct wl_drm_components_descriptor *f;
105 __DRIimage *dri_image;
106@@ -1203,7 +1207,8 @@ dri2_create_image_wayland_wl_buffer(_EGLDisplay *disp, _EGLContext *ctx,
107 EGLint err;
108 int32_t plane;
109
110- if (!wayland_buffer_is_drm(&buffer->buffer))
111+ buffer = wayland_drm_buffer_get((struct wl_resource *) _buffer);
112+ if (!buffer)
113 return NULL;
114
115 err = _eglParseImageAttribList(&attrs, disp, attr_list);
116@@ -1508,8 +1513,8 @@ dri2_wl_reference_buffer(void *user_data, uint32_t name, int fd,
117
118 if (fd == -1)
119 img = dri2_dpy->image->createImageFromNames(dri2_dpy->dri_screen,
120- buffer->buffer.width,
121- buffer->buffer.height,
122+ buffer->width,
123+ buffer->height,
124 buffer->format,
125 (int*)&name, 1,
126 buffer->stride,
127@@ -1517,8 +1522,8 @@ dri2_wl_reference_buffer(void *user_data, uint32_t name, int fd,
128 NULL);
129 else
130 img = dri2_dpy->image->createImageFromFds(dri2_dpy->dri_screen,
131- buffer->buffer.width,
132- buffer->buffer.height,
133+ buffer->width,
134+ buffer->height,
135 buffer->format,
136 &fd, 1,
137 buffer->stride,
138@@ -1607,13 +1612,14 @@ dri2_unbind_wayland_display_wl(_EGLDriver *drv, _EGLDisplay *disp,
139
140 static EGLBoolean
141 dri2_query_wayland_buffer_wl(_EGLDriver *drv, _EGLDisplay *disp,
142- struct wl_buffer *_buffer,
143+ struct wl_resource *buffer_resource,
144 EGLint attribute, EGLint *value)
145 {
146- struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) _buffer;
147+ struct wl_drm_buffer *buffer;
148 const struct wl_drm_components_descriptor *format;
149
150- if (!wayland_buffer_is_drm(&buffer->buffer))
151+ buffer = wayland_drm_buffer_get(buffer_resource);
152+ if (!buffer)
153 return EGL_FALSE;
154
155 format = buffer->driver_format;
156@@ -1622,10 +1628,10 @@ dri2_query_wayland_buffer_wl(_EGLDriver *drv, _EGLDisplay *disp,
157 *value = format->components;
158 return EGL_TRUE;
159 case EGL_WIDTH:
160- *value = buffer->buffer.width;
161+ *value = buffer->width;
162 return EGL_TRUE;
163 case EGL_HEIGHT:
164- *value = buffer->buffer.height;
165+ *value = buffer->height;
166 return EGL_TRUE;
167 }
168
169diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h
170index 6dfdf94..fba5f81 100644
171--- a/src/egl/drivers/dri2/egl_dri2.h
172+++ b/src/egl/drivers/dri2/egl_dri2.h
173@@ -37,7 +37,6 @@
174
175 #ifdef HAVE_WAYLAND_PLATFORM
176 #include <wayland-client.h>
177-#include "wayland-drm.h"
178 #include "wayland-egl-priv.h"
179 #endif
180
181diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
182index 4a9831b..a788295 100644
183--- a/src/egl/main/eglapi.c
184+++ b/src/egl/main/eglapi.c
185@@ -1571,7 +1571,7 @@ eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display)
186 }
187
188 EGLBoolean EGLAPIENTRY
189-eglQueryWaylandBufferWL(EGLDisplay dpy,struct wl_buffer *buffer,
190+eglQueryWaylandBufferWL(EGLDisplay dpy, struct wl_resource *buffer,
191 EGLint attribute, EGLint *value)
192 {
193 _EGLDisplay *disp = _eglLockDisplay(dpy);
194diff --git a/src/egl/main/eglapi.h b/src/egl/main/eglapi.h
195index ee382d0..4a4f976 100644
196--- a/src/egl/main/eglapi.h
197+++ b/src/egl/main/eglapi.h
198@@ -123,7 +123,7 @@ typedef EGLBoolean (*ExportDRMImageMESA_t)(_EGLDriver *drv, _EGLDisplay *disp, _
199 struct wl_display;
200 typedef EGLBoolean (*BindWaylandDisplayWL_t)(_EGLDriver *drv, _EGLDisplay *disp, struct wl_display *display);
201 typedef EGLBoolean (*UnbindWaylandDisplayWL_t)(_EGLDriver *drv, _EGLDisplay *disp, struct wl_display *display);
202-typedef EGLBoolean (*QueryWaylandBufferWL_t)(_EGLDriver *drv, _EGLDisplay *displ, struct wl_buffer *buffer, EGLint attribute, EGLint *value);
203+typedef EGLBoolean (*QueryWaylandBufferWL_t)(_EGLDriver *drv, _EGLDisplay *displ, struct wl_resource *buffer, EGLint attribute, EGLint *value);
204 #endif
205
206 typedef EGLBoolean (*PostSubBufferNV_t)(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surface, EGLint x, EGLint y, EGLint width, EGLint height);
207diff --git a/src/egl/wayland/wayland-drm/wayland-drm.c b/src/egl/wayland/wayland-drm/wayland-drm.c
208index 7e2073a..d317c5e 100644
209--- a/src/egl/wayland/wayland-drm/wayland-drm.c
210+++ b/src/egl/wayland/wayland-drm/wayland-drm.c
211@@ -37,6 +37,8 @@
212 #include "wayland-drm.h"
213 #include "wayland-drm-server-protocol.h"
214
215+#define MIN(x,y) (((x)<(y))?(x):(y))
216+
217 struct wl_drm {
218 struct wl_display *display;
219
220@@ -86,8 +88,8 @@ create_buffer(struct wl_client *client, struct wl_resource *resource,
221 }
222
223 buffer->drm = drm;
224- buffer->buffer.width = width;
225- buffer->buffer.height = height;
226+ buffer->width = width;
227+ buffer->height = height;
228 buffer->format = format;
229 buffer->offset[0] = offset0;
230 buffer->stride[0] = stride0;
231@@ -104,16 +106,17 @@ create_buffer(struct wl_client *client, struct wl_resource *resource,
232 return;
233 }
234
235- buffer->buffer.resource.object.id = id;
236- buffer->buffer.resource.object.interface = &wl_buffer_interface;
237- buffer->buffer.resource.object.implementation =
238- (void (**)(void)) &drm_buffer_interface;
239- buffer->buffer.resource.data = buffer;
240-
241- buffer->buffer.resource.destroy = destroy_buffer;
242- buffer->buffer.resource.client = resource->client;
243+ buffer->resource =
244+ wl_resource_create(client, &wl_buffer_interface, 1, id);
245+ if (!buffer->resource) {
246+ wl_resource_post_no_memory(resource);
247+ free(buffer);
248+ return;
249+ }
250
251- wl_client_add_resource(resource->client, &buffer->buffer.resource);
252+ wl_resource_set_implementation(buffer->resource,
253+ (void (**)(void)) &drm_buffer_interface,
254+ buffer, destroy_buffer);
255 }
256
257 static void
258@@ -208,8 +211,15 @@ bind_drm(struct wl_client *client, void *data, uint32_t version, uint32_t id)
259 struct wl_resource *resource;
260 uint32_t capabilities;
261
262- resource = wl_client_add_object(client, &wl_drm_interface,
263- &drm_interface, id, data);
264+ resource = wl_resource_create(client, &wl_drm_interface,
265+ MIN(version, 2), id);
266+ if (!resource) {
267+ wl_client_post_no_memory(client);
268+ return;
269+ }
270+
271+ wl_resource_set_implementation(resource, &drm_interface, data, NULL);
272+
273 wl_resource_post_event(resource, WL_DRM_DEVICE, drm->device_name);
274 wl_resource_post_event(resource, WL_DRM_FORMAT,
275 WL_DRM_FORMAT_ARGB8888);
276@@ -232,6 +242,19 @@ bind_drm(struct wl_client *client, void *data, uint32_t version, uint32_t id)
277 wl_resource_post_event(resource, WL_DRM_CAPABILITIES, capabilities);
278 }
279
280+struct wl_drm_buffer *
281+wayland_drm_buffer_get(struct wl_resource *resource)
282+{
283+ if (resource == NULL)
284+ return NULL;
285+
286+ if (wl_resource_instance_of(resource, &wl_buffer_interface,
287+ &drm_buffer_interface))
288+ return wl_resource_get_user_data(resource);
289+ else
290+ return NULL;
291+}
292+
293 struct wl_drm *
294 wayland_drm_init(struct wl_display *display, char *device_name,
295 struct wayland_drm_callbacks *callbacks, void *user_data,
296@@ -247,7 +270,7 @@ wayland_drm_init(struct wl_display *display, char *device_name,
297 drm->user_data = user_data;
298 drm->flags = flags;
299
300- wl_display_add_global(display, &wl_drm_interface, drm, bind_drm);
301+ wl_global_create(display, &wl_drm_interface, 2, drm, bind_drm);
302
303 return drm;
304 }
305@@ -262,25 +285,14 @@ wayland_drm_uninit(struct wl_drm *drm)
306 free(drm);
307 }
308
309-int
310-wayland_buffer_is_drm(struct wl_buffer *buffer)
311-{
312- return buffer->resource.object.implementation ==
313- (void (**)(void)) &drm_buffer_interface;
314-}
315-
316 uint32_t
317-wayland_drm_buffer_get_format(struct wl_buffer *buffer_base)
318+wayland_drm_buffer_get_format(struct wl_drm_buffer *buffer)
319 {
320- struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) buffer_base;
321-
322 return buffer->format;
323 }
324
325 void *
326-wayland_drm_buffer_get_buffer(struct wl_buffer *buffer_base)
327+wayland_drm_buffer_get_buffer(struct wl_drm_buffer *buffer)
328 {
329- struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) buffer_base;
330-
331 return buffer->driver_buffer;
332 }
333diff --git a/src/egl/wayland/wayland-drm/wayland-drm.h b/src/egl/wayland/wayland-drm/wayland-drm.h
334index 335073a..ca04882 100644
335--- a/src/egl/wayland/wayland-drm/wayland-drm.h
336+++ b/src/egl/wayland/wayland-drm/wayland-drm.h
337@@ -70,8 +70,9 @@ enum wl_drm_format {
338 struct wl_drm;
339
340 struct wl_drm_buffer {
341- struct wl_buffer buffer;
342+ struct wl_resource *resource;
343 struct wl_drm *drm;
344+ int32_t width, height;
345 uint32_t format;
346 const void *driver_format;
347 int32_t offset[3];
348@@ -90,6 +91,9 @@ struct wayland_drm_callbacks {
349
350 enum { WAYLAND_DRM_PRIME = 0x01 };
351
352+struct wl_drm_buffer *
353+wayland_drm_buffer_get(struct wl_resource *resource);
354+
355 struct wl_drm *
356 wayland_drm_init(struct wl_display *display, char *device_name,
357 struct wayland_drm_callbacks *callbacks, void *user_data,
358@@ -98,13 +102,10 @@ wayland_drm_init(struct wl_display *display, char *device_name,
359 void
360 wayland_drm_uninit(struct wl_drm *drm);
361
362-int
363-wayland_buffer_is_drm(struct wl_buffer *buffer);
364-
365 uint32_t
366-wayland_drm_buffer_get_format(struct wl_buffer *buffer_base);
367+wayland_drm_buffer_get_format(struct wl_drm_buffer *buffer);
368
369 void *
370-wayland_drm_buffer_get_buffer(struct wl_buffer *buffer);
371+wayland_drm_buffer_get_buffer(struct wl_drm_buffer *buffer);
372
373 #endif
374diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_api.c b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
375index 59187a9..46a3245 100644
376--- a/src/gallium/state_trackers/egl/common/egl_g3d_api.c
377+++ b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
378@@ -874,7 +874,7 @@ egl_g3d_unbind_wayland_display_wl(_EGLDriver *drv, _EGLDisplay *dpy,
379
380 static EGLBoolean
381 egl_g3d_query_wayland_buffer_wl(_EGLDriver *drv, _EGLDisplay *dpy,
382- struct wl_buffer *buffer,
383+ struct wl_resource *buffer,
384 EGLint attribute, EGLint *value)
385 {
386 struct egl_g3d_display *gdpy = egl_g3d_display(dpy);
387diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_image.c b/src/gallium/state_trackers/egl/common/egl_g3d_image.c
388index aa1980b..c459dc3 100644
389--- a/src/gallium/state_trackers/egl/common/egl_g3d_image.c
390+++ b/src/gallium/state_trackers/egl/common/egl_g3d_image.c
391@@ -183,7 +183,7 @@ egl_g3d_reference_drm_buffer(_EGLDisplay *dpy, EGLint name,
392 #ifdef EGL_WL_bind_wayland_display
393
394 static struct pipe_resource *
395-egl_g3d_reference_wl_buffer(_EGLDisplay *dpy, struct wl_buffer *buffer,
396+egl_g3d_reference_wl_buffer(_EGLDisplay *dpy, struct wl_resource *buffer,
397 _EGLImage *img, const EGLint *attribs)
398 {
399 struct egl_g3d_display *gdpy = egl_g3d_display(dpy);
400@@ -253,7 +253,7 @@ egl_g3d_create_image(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx,
401 #ifdef EGL_WL_bind_wayland_display
402 case EGL_WAYLAND_BUFFER_WL:
403 ptex = egl_g3d_reference_wl_buffer(dpy,
404- (struct wl_buffer *) buffer, &gimg->base, attribs);
405+ (struct wl_resource *) buffer, &gimg->base, attribs);
406 break;
407 #endif
408 #ifdef EGL_ANDROID_image_native_buffer
409diff --git a/src/gallium/state_trackers/egl/common/native_wayland_bufmgr.h b/src/gallium/state_trackers/egl/common/native_wayland_bufmgr.h
410index dd27828..eb324bf 100644
411--- a/src/gallium/state_trackers/egl/common/native_wayland_bufmgr.h
412+++ b/src/gallium/state_trackers/egl/common/native_wayland_bufmgr.h
413@@ -27,7 +27,7 @@
414
415 struct native_display;
416 struct wl_display;
417-struct wl_buffer;
418+struct wl_resource;
419 struct pipe_resource;
420
421 struct native_display_wayland_bufmgr {
422@@ -38,11 +38,11 @@ struct native_display_wayland_bufmgr {
423 struct wl_display *wl_dpy);
424
425 struct pipe_resource *(*buffer_get_resource)(struct native_display *ndpy,
426- struct wl_buffer *buffer);
427+ struct wl_resource *buffer);
428
429
430 boolean (*query_buffer)(struct native_display *ndpy,
431- struct wl_buffer *buffer,
432+ struct wl_resource *buffer,
433 int attribute, int *value);
434 };
435
436diff --git a/src/gallium/state_trackers/egl/common/native_wayland_drm_bufmgr.c b/src/gallium/state_trackers/egl/common/native_wayland_drm_bufmgr.c
437index 1603a3a..9b69cb9 100644
438--- a/src/gallium/state_trackers/egl/common/native_wayland_drm_bufmgr.c
439+++ b/src/gallium/state_trackers/egl/common/native_wayland_drm_bufmgr.c
440@@ -70,8 +70,8 @@ wayland_drm_bufmgr_reference_buffer(void *user_data, uint32_t name, int fd,
441 templ.target = PIPE_TEXTURE_2D;
442 templ.format = pf;
443 templ.bind = PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW;
444- templ.width0 = buffer->buffer.width;
445- templ.height0 = buffer->buffer.height;
446+ templ.width0 = buffer->width;
447+ templ.height0 = buffer->height;
448 templ.depth0 = 1;
449 templ.array_size = 1;
450
451@@ -137,22 +137,29 @@ wayland_drm_bufmgr_unbind_display(struct native_display *ndpy,
452
453 static struct pipe_resource *
454 wayland_drm_bufmgr_wl_buffer_get_resource(struct native_display *ndpy,
455- struct wl_buffer *buffer)
456+ struct wl_resource *buffer_resource)
457 {
458+ struct wl_drm_buffer *buffer = wayland_drm_buffer_get(buffer_resource);
459+
460+ if (!buffer)
461+ return NULL;
462+
463 return wayland_drm_buffer_get_buffer(buffer);
464 }
465
466 static EGLBoolean
467 wayland_drm_bufmgr_query_buffer(struct native_display *ndpy,
468- struct wl_buffer *_buffer,
469+ struct wl_resource *buffer_resource,
470 EGLint attribute, EGLint *value)
471 {
472- struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) _buffer;
473- struct pipe_resource *resource = buffer->driver_buffer;
474+ struct wl_drm_buffer *buffer = wayland_drm_buffer_get(buffer_resource);
475+ struct pipe_resource *resource;
476
477- if (!wayland_buffer_is_drm(&buffer->buffer))
478+ if (!buffer)
479 return EGL_FALSE;
480
481+ resource = buffer->driver_buffer;
482+
483 switch (attribute) {
484 case EGL_TEXTURE_FORMAT:
485 switch (resource->format) {
486@@ -166,10 +173,10 @@ wayland_drm_bufmgr_query_buffer(struct native_display *ndpy,
487 return EGL_FALSE;
488 }
489 case EGL_WIDTH:
490- *value = buffer->buffer.width;
491+ *value = buffer->width;
492 return EGL_TRUE;
493 case EGL_HEIGHT:
494- *value = buffer->buffer.height;
495+ *value = buffer->height;
496 return EGL_TRUE;
497 default:
498 return EGL_FALSE;
499diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
500index a3a0530..f7da79c 100644
501--- a/src/gbm/backends/dri/gbm_dri.c
502+++ b/src/gbm/backends/dri/gbm_dri.c
503@@ -374,9 +374,10 @@ gbm_dri_bo_import(struct gbm_device *gbm,
504 #if HAVE_WAYLAND_PLATFORM
505 case GBM_BO_IMPORT_WL_BUFFER:
506 {
507- struct wl_drm_buffer *wb = (struct wl_drm_buffer *) buffer;
508+ struct wl_drm_buffer *wb;
509
510- if (!wayland_buffer_is_drm(buffer))
511+ wb = wayland_drm_buffer_get((struct wl_resource *) buffer);
512+ if (!wb)
513 return NULL;
514
515 image = wb->driver_buffer;
516--
5171.8.4
518
This page took 0.093989 seconds and 4 git commands to generate.