summaryrefslogtreecommitdiffstats
path: root/src/plugins/waylandcompositors/brcm-egl/brcmeglintegration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/waylandcompositors/brcm-egl/brcmeglintegration.cpp')
-rw-r--r--src/plugins/waylandcompositors/brcm-egl/brcmeglintegration.cpp47
1 files changed, 18 insertions, 29 deletions
diff --git a/src/plugins/waylandcompositors/brcm-egl/brcmeglintegration.cpp b/src/plugins/waylandcompositors/brcm-egl/brcmeglintegration.cpp
index 531bdc415..0ef8318fb 100644
--- a/src/plugins/waylandcompositors/brcm-egl/brcmeglintegration.cpp
+++ b/src/plugins/waylandcompositors/brcm-egl/brcmeglintegration.cpp
@@ -58,9 +58,7 @@
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
-#include "wayland-brcm-server-protocol.h"
-
-QT_USE_NAMESPACE
+QT_BEGIN_NAMESPACE
class BrcmEglIntegrationPrivate
{
@@ -79,6 +77,7 @@ public:
BrcmEglIntegration::BrcmEglIntegration()
: QWaylandGraphicsHardwareIntegration()
+ , QtWaylandServer::qt_brcm()
, d_ptr(new BrcmEglIntegrationPrivate)
{
}
@@ -121,12 +120,11 @@ void BrcmEglIntegration::initializeHardware(QtWayland::Display *waylandDisplay)
return;
}
d->valid = true;
+ init(waylandDisplay->handle());
}
-
- wl_display_add_global(waylandDisplay->handle(), &wl_brcm_interface, this, brcm_bind_func);
}
-GLuint BrcmEglIntegration::createTextureFromBuffer(wl_buffer *buffer, QOpenGLContext *context)
+GLuint BrcmEglIntegration::createTextureFromBuffer(struct ::wl_resource *buffer, QOpenGLContext *)
{
Q_D(BrcmEglIntegration);
if (!d->valid) {
@@ -134,7 +132,7 @@ GLuint BrcmEglIntegration::createTextureFromBuffer(wl_buffer *buffer, QOpenGLCon
return 0;
}
- BrcmBuffer *brcmBuffer = QtWayland::wayland_cast<BrcmBuffer>(buffer);
+ BrcmBuffer *brcmBuffer = BrcmBuffer::fromResource(buffer);
if (!d->eglQueryGlobalImageBRCM(brcmBuffer->handle(), brcmBuffer->handle() + 2)) {
qWarning("eglQueryGlobalImageBRCM failed!");
@@ -162,34 +160,25 @@ GLuint BrcmEglIntegration::createTextureFromBuffer(wl_buffer *buffer, QOpenGLCon
return textureId;
}
-void BrcmEglIntegration::create_buffer(struct wl_client *client,
- struct wl_resource *brcm,
- uint32_t id,
- int32_t width,
- int32_t height,
- wl_array *data)
+bool BrcmEglIntegration::isYInverted(struct ::wl_resource *) const
{
- BrcmEglIntegration *that = static_cast<BrcmEglIntegration *>(brcm->data);
- BrcmBuffer *buffer = new BrcmBuffer(that->m_compositor->handle(), QSize(width, height), static_cast<EGLint *>(data->data), data->size / sizeof(EGLint));
- buffer->addClientResource(client, &buffer->base()->resource,
- id, &wl_buffer_interface,
- &BrcmBuffer::buffer_interface,
- BrcmBuffer::delete_resource);
+ return false;
}
-static struct wl_brcm_interface brcm_interface = {
- BrcmEglIntegration::create_buffer
-};
+void BrcmEglIntegration::brcm_bind_resource(Resource *)
+{
+}
-void BrcmEglIntegration::brcm_bind_func(struct wl_client *client, void *data, uint32_t version, uint32_t id)
+void BrcmEglIntegration::brcm_create_buffer(Resource *resource, uint32_t id, int32_t width, int32_t height, wl_array *data)
{
- Q_UNUSED(version);
- BrcmEglIntegration *integration = static_cast<BrcmEglIntegration *>(data);
- wl_client_add_object(client, &wl_brcm_interface, &brcm_interface, id, integration);
+ new BrcmBuffer(resource->client(), id, QSize(width, height), static_cast<EGLint *>(data->data), data->size / sizeof(EGLint));
}
-bool BrcmEglIntegration::isYInverted(struct wl_buffer *buffer) const
+QSize BrcmEglIntegration::bufferSize(struct ::wl_resource *buffer) const
{
- Q_UNUSED(buffer);
- return false;
+ BrcmBuffer *brcmBuffer = BrcmBuffer::fromResource(buffer);
+
+ return brcmBuffer->size();
}
+
+QT_END_NAMESPACE