diff options
author | Laszlo Agocs <laszlo.p.agocs@nokia.com> | 2012-07-17 10:44:18 +0300 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-18 08:15:52 +0200 |
commit | 7142e8bd23449fe33d685687f0a84c0a853d6787 (patch) | |
tree | 91538f7969ee944387e93a65f73d1c860930579d /src/plugins | |
parent | 504c2cb1e191ad41a4699e2b1ebaf6f190035150 (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')
-rw-r--r-- | src/plugins/platforms/kms/qkmsscreen.cpp | 8 |
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 |