summaryrefslogtreecommitdiffstats
path: root/src/hardwareintegration/client/wayland-egl
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@jollamobile.com>2014-04-07 07:22:13 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-04-07 15:50:59 +0200
commit1c5581d4d666b61878f1f89655bd69fbb3813eb8 (patch)
treed0c05e644433c56a498c08e1362c71f4ce6f0e38 /src/hardwareintegration/client/wayland-egl
parent439a084cd359acfafa284961b5f08d6b2891c6c6 (diff)
Implement invalidateSurface() to free up surface memory
Change-Id: I848a9f37f1b2e9616c3e5254a6329531e8eec825 Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Diffstat (limited to 'src/hardwareintegration/client/wayland-egl')
-rw-r--r--src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp8
-rw-r--r--src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
index 5d2866ea3..306f08507 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
@@ -139,6 +139,14 @@ QSurfaceFormat QWaylandEglWindow::format() const
return m_format;
}
+void QWaylandEglWindow::invalidateSurface()
+{
+ if (m_eglSurface) {
+ eglDestroySurface(m_clientBufferIntegration->eglDisplay(), m_eglSurface);
+ m_eglSurface = 0;
+ }
+}
+
EGLSurface QWaylandEglWindow::eglSurface() const
{
return m_eglSurface;
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
index c2c4dfa4c..d8fdbcfce 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
@@ -69,6 +69,8 @@ public:
void bindContentFBO();
+ void invalidateSurface() Q_DECL_OVERRIDE;
+
private:
QWaylandEglClientBufferIntegration *m_clientBufferIntegration;
struct wl_egl_window *m_waylandEglWindow;