fix compile with Mesa 10.0
authorClemens Buchacher <drizzd@aon.at>
Wed, 1 Jan 2014 15:40:13 +0000 (16:40 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 29 Jan 2014 12:48:00 +0000 (13:48 +0100)
commit5b5ad2079394880ab3379ba2e6fb7f9295490627
tree69540228b0efbbc0674297dd388455376ca535a3
parenta578c2801a134a8d97e37ab9b6d9fd0a3093952a
fix compile with Mesa 10.0

Mesa 10.0 replaces struct wl_buffer with struct wl_resource in the
eglQueryWaylandBufferWL signature. The structures are binary compatible
(struct wl_buffer is a superset of struct wl_resource), but C++
complains about the type mismatch:

 error: cannot convert ‘wl_buffer*’ to ‘wl_resource*’ in argument passing

We are already using struct wl_resource on our side, so removing the now
redundant reinterpret_cast would fix it. But then we could not compile
with Mesa versions older than 10.0 any more, and those are still common
in mainstream distributions today.

A compile-time switch for different Mesa versions is possible, but
unnecessarily clumsy. Instead, re-declare the new signature and use that
independently of the Mesa version. The duplicate declaration can be
removed when backwards compatibility is no longer needed.

Change-Id: I3d0e326f5a0eb88d125b8c9fd23147682e23b94b
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp