diff options
author | Paul Olav Tvete <paul.tvete@qt.io> | 2017-06-26 12:27:19 +0200 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@qt.io> | 2017-08-15 11:45:18 +0000 |
commit | cf8fd0dec1593d063be36774a1a6bd3ac336c053 (patch) | |
tree | eecd45e434b3a39dfaa5924201c09deba0b36b60 /src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h | |
parent | 53f1d9d65d54b8e4869c92ce76675ac6d1208c73 (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.h | 8 |
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; } |