diff --git a/src/plugins/platforms/drm/abstract_egl_drm_backend.cpp b/src/plugins/platforms/drm/abstract_egl_drm_backend.cpp index 3420ee912c..c9edfa4015 100644 --- a/src/plugins/platforms/drm/abstract_egl_drm_backend.cpp +++ b/src/plugins/platforms/drm/abstract_egl_drm_backend.cpp @@ -24,11 +24,6 @@ AbstractEglDrmBackend::AbstractEglDrmBackend(DrmBackend *drmBackend, DrmGpu *gpu connect(m_gpu, &DrmGpu::outputDisabled, this, &AbstractEglDrmBackend::removeOutput); } -AbstractEglDrmBackend::~AbstractEglDrmBackend() -{ - cleanup(); -} - void AbstractEglDrmBackend::screenGeometryChanged(const QSize &size) { Q_UNUSED(size) diff --git a/src/plugins/platforms/drm/abstract_egl_drm_backend.h b/src/plugins/platforms/drm/abstract_egl_drm_backend.h index 301dd0ef8c..0068e97a71 100644 --- a/src/plugins/platforms/drm/abstract_egl_drm_backend.h +++ b/src/plugins/platforms/drm/abstract_egl_drm_backend.h @@ -22,8 +22,6 @@ class DrmOutput; class AbstractEglDrmBackend : public AbstractEglBackend { public: - ~AbstractEglDrmBackend(); - void screenGeometryChanged(const QSize &size) override; virtual int screenCount() const = 0; diff --git a/src/plugins/platforms/drm/egl_gbm_backend.cpp b/src/plugins/platforms/drm/egl_gbm_backend.cpp index aaa775b673..534cbe2141 100644 --- a/src/plugins/platforms/drm/egl_gbm_backend.cpp +++ b/src/plugins/platforms/drm/egl_gbm_backend.cpp @@ -41,6 +41,11 @@ EglGbmBackend::EglGbmBackend(DrmBackend *drmBackend, DrmGpu *gpu) { } +EglGbmBackend::~EglGbmBackend() +{ + cleanup(); +} + void EglGbmBackend::cleanupSurfaces() { for (auto it = m_outputs.begin(); it != m_outputs.end(); ++it) { diff --git a/src/plugins/platforms/drm/egl_gbm_backend.h b/src/plugins/platforms/drm/egl_gbm_backend.h index cc5add77ca..0b815f8683 100644 --- a/src/plugins/platforms/drm/egl_gbm_backend.h +++ b/src/plugins/platforms/drm/egl_gbm_backend.h @@ -38,6 +38,7 @@ class EglGbmBackend : public AbstractEglDrmBackend Q_OBJECT public: EglGbmBackend(DrmBackend *drmBackend, DrmGpu *gpu); + ~EglGbmBackend() override; SceneOpenGLTexturePrivate *createBackendTexture(SceneOpenGLTexture *texture) override; QRegion beginFrame(int screenId) override; diff --git a/src/plugins/platforms/drm/egl_stream_backend.cpp b/src/plugins/platforms/drm/egl_stream_backend.cpp index a421cf9078..bca18e53eb 100644 --- a/src/plugins/platforms/drm/egl_stream_backend.cpp +++ b/src/plugins/platforms/drm/egl_stream_backend.cpp @@ -75,6 +75,11 @@ EglStreamBackend::EglStreamBackend(DrmBackend *drmBackend, DrmGpu *gpu) { } +EglStreamBackend::~EglStreamBackend() +{ + cleanup(); +} + void EglStreamBackend::cleanupSurfaces() { for (auto it = m_outputs.constBegin(); it != m_outputs.constEnd(); ++it) { diff --git a/src/plugins/platforms/drm/egl_stream_backend.h b/src/plugins/platforms/drm/egl_stream_backend.h index 6ceb1baf4e..714b1239ab 100644 --- a/src/plugins/platforms/drm/egl_stream_backend.h +++ b/src/plugins/platforms/drm/egl_stream_backend.h @@ -27,6 +27,7 @@ class EglStreamBackend : public AbstractEglDrmBackend Q_OBJECT public: EglStreamBackend(DrmBackend *b, DrmGpu *gpu); + ~EglStreamBackend() override; SceneOpenGLTexturePrivate *createBackendTexture(SceneOpenGLTexture *texture) override; QRegion beginFrame(int screenId) override; void endFrame(int screenId, const QRegion &damage, const QRegion &damagedRegion) override;