diff options
Diffstat (limited to 'src/plugins/waylandcompositors/xcomposite_share/xcompositebuffer.cpp')
-rw-r--r-- | src/plugins/waylandcompositors/xcomposite_share/xcompositebuffer.cpp | 31 |
1 files changed, 10 insertions, 21 deletions
diff --git a/src/plugins/waylandcompositors/xcomposite_share/xcompositebuffer.cpp b/src/plugins/waylandcompositors/xcomposite_share/xcompositebuffer.cpp index d7196b796..0457214b4 100644 --- a/src/plugins/waylandcompositors/xcomposite_share/xcompositebuffer.cpp +++ b/src/plugins/waylandcompositors/xcomposite_share/xcompositebuffer.cpp @@ -40,41 +40,30 @@ #include "xcompositebuffer.h" -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE XCompositeBuffer::XCompositeBuffer(Window window, const QSize &size, struct ::wl_client *client, uint32_t id) - : mWindow(window) + : QtWaylandServer::wl_buffer(client, id) + , mWindow(window) , mInvertedY(false) + , mSize(size) { - base()->height = size.height(); - base()->width = size.width(); - - base()->resource.object.id = id; - base()->resource.object.interface = &::wl_buffer_interface; - base()->resource.object.implementation = (void (**)(void))&buffer_interface; - base()->resource.data = base(); - wl_client_add_resource(client, &base()->resource); - - base()->resource.destroy = delete_resource; } -struct wl_buffer_interface XCompositeBuffer::buffer_interface = { - XCompositeBuffer::buffer_interface_destroy -}; - -void XCompositeBuffer::buffer_interface_destroy(wl_client *client, wl_resource *buffer) +void XCompositeBuffer::buffer_destroy_resource(Resource *) { - Q_UNUSED(client); - Q_UNUSED(buffer); + delete this; } -void XCompositeBuffer::delete_resource(struct wl_resource *resource) +void XCompositeBuffer::buffer_destroy(Resource *resource) { - delete static_cast<XCompositeBuffer *>(static_cast<wl_buffer *>(resource->data)); + wl_resource_destroy(resource->handle); } Window XCompositeBuffer::window() { return mWindow; } + +QT_END_NAMESPACE |