summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/kms
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.p.agocs@nokia.com>2012-07-17 10:44:18 +0300
committerQt by Nokia <qt-info@nokia.com>2012-07-18 08:15:52 +0200
commit7142e8bd23449fe33d685687f0a84c0a853d6787 (patch)
tree91538f7969ee944387e93a65f73d1c860930579d /src/plugins/platforms/kms
parent504c2cb1e191ad41a4699e2b1ebaf6f190035150 (diff)
Tear down properly in kms plugin when exiting
Change-Id: Idad060af4a8b4e68c2312cc2b69de39d2a58a1c4 Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Diffstat (limited to 'src/plugins/platforms/kms')
-rw-r--r--src/plugins/platforms/kms/qkmsscreen.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/platforms/kms/qkmsscreen.cpp b/src/plugins/platforms/kms/qkmsscreen.cpp
index f9b12d72e4..2f968a625f 100644
--- a/src/plugins/platforms/kms/qkmsscreen.cpp
+++ b/src/plugins/platforms/kms/qkmsscreen.cpp
@@ -71,6 +71,7 @@ QKmsScreen::QKmsScreen(QKmsDevice *device, int connectorId)
m_depth(32),
m_format(QImage::Format_Invalid),
m_refreshTime(16000),
+ m_eglWindowSurface(EGL_NO_SURFACE),
m_modeSet(false)
{
m_cursor = new QKmsCursor(this);
@@ -80,6 +81,13 @@ QKmsScreen::QKmsScreen(QKmsDevice *device, int connectorId)
QKmsScreen::~QKmsScreen()
{
delete m_cursor;
+ drmModeSetCrtc(m_device->fd(), m_oldCrtc->crtc_id, m_oldCrtc->buffer_id,
+ m_oldCrtc->x, m_oldCrtc->y,
+ &m_connectorId, 1, &m_oldCrtc->mode);
+ drmModeFreeCrtc(m_oldCrtc);
+ if (m_eglWindowSurface != EGL_NO_SURFACE)
+ eglDestroySurface(m_device->eglDisplay(), m_eglWindowSurface);
+ gbm_surface_destroy(m_gbmSurface);
}
QRect QKmsScreen::geometry() const