summaryrefslogtreecommitdiffstats
path: root/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@qt.io>2017-06-26 12:27:19 +0200
committerPaul Olav Tvete <paul.tvete@qt.io>2017-08-15 11:45:18 +0000
commitcf8fd0dec1593d063be36774a1a6bd3ac336c053 (patch)
treeeecd45e434b3a39dfaa5924201c09deba0b36b60 /src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h
parent53f1d9d65d54b8e4869c92ce76675ac6d1208c73 (diff)
Update server buffer integration
Fix crashes, and change the (private) API to be more usable. The libhybris code compiles without warnings, but is untested. Change-Id: I1433daf1ba76d7869d1dfe260642199ce5a1b849 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Diffstat (limited to 'src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h')
-rw-r--r--src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h b/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h
index 239a1f7d1..e1cc8768f 100644
--- a/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h
+++ b/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h
@@ -72,14 +72,15 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy,
QT_BEGIN_NAMESPACE
class DrmEglServerBufferIntegration;
+class QImage;
class DrmEglServerBuffer : public QtWayland::ServerBuffer, public QtWaylandServer::qt_server_buffer
{
public:
- DrmEglServerBuffer(DrmEglServerBufferIntegration *integration, const QSize &size, QtWayland::ServerBuffer::Format format);
+ DrmEglServerBuffer(DrmEglServerBufferIntegration *integration, const QImage &qimage, QtWayland::ServerBuffer::Format format);
struct ::wl_resource *resourceForClient(struct ::wl_client *) override;
- void bindTextureToBuffer() override;
+ QOpenGLTexture *toOpenGlTexture() override;
private:
DrmEglServerBufferIntegration *m_integration;
@@ -88,6 +89,7 @@ private:
int32_t m_name;
int32_t m_stride;
+ QOpenGLTexture *m_texture;
QtWaylandServer::qt_drm_egl_server_buffer::format m_drm_format;
};
@@ -102,7 +104,7 @@ public:
void initializeHardware(QWaylandCompositor *) override;
bool supportsFormat(QtWayland::ServerBuffer::Format format) const override;
- QtWayland::ServerBuffer *createServerBuffer(const QSize &size, QtWayland::ServerBuffer::Format format) override;
+ QtWayland::ServerBuffer *createServerBufferFromImage(const QImage &qimage, QtWayland::ServerBuffer::Format format) override;
EGLDisplay display() const { return m_egl_display; }