Changeset View
Changeset View
Standalone View
Standalone View
plugins/platforms/drm/drm_buffer.cpp
Show First 20 Lines • Show All 87 Lines • ▼ Show 20 Line(s) | 87 | if (drmModeAddFB(m_backend->fd(), m_size.width(), m_size.height(), 24, 32, m_stride, gbm_bo_get_handle(m_bo).u32, &m_bufferId) != 0) { | |||
---|---|---|---|---|---|
88 | qCWarning(KWIN_DRM) << "drmModeAddFB failed"; | 88 | qCWarning(KWIN_DRM) << "drmModeAddFB failed"; | ||
89 | } | 89 | } | ||
90 | gbm_bo_set_user_data(m_bo, m_backend, gbmCallback); | 90 | gbm_bo_set_user_data(m_bo, m_backend, gbmCallback); | ||
91 | #endif | 91 | #endif | ||
92 | } | 92 | } | ||
93 | 93 | | |||
94 | DrmBuffer::~DrmBuffer() | 94 | DrmBuffer::~DrmBuffer() | ||
95 | { | 95 | { | ||
96 | if (m_bufferId) { | ||||
97 | drmModeRmFB(m_backend->fd(), m_bufferId); | ||||
98 | } | ||||
96 | m_backend->bufferDestroyed(this); | 99 | m_backend->bufferDestroyed(this); | ||
97 | delete m_image; | 100 | delete m_image; | ||
98 | if (m_memory) { | 101 | if (m_memory) { | ||
99 | munmap(m_memory, m_bufferSize); | 102 | munmap(m_memory, m_bufferSize); | ||
100 | } | 103 | } | ||
101 | if (m_bufferId) { | | |||
102 | drmModeRmFB(m_backend->fd(), m_bufferId); | | |||
103 | } | | |||
104 | if (m_handle) { | 104 | if (m_handle) { | ||
105 | drm_mode_destroy_dumb destroyArgs; | 105 | drm_mode_destroy_dumb destroyArgs; | ||
106 | destroyArgs.handle = m_handle; | 106 | destroyArgs.handle = m_handle; | ||
107 | drmIoctl(m_backend->fd(), DRM_IOCTL_MODE_DESTROY_DUMB, &destroyArgs); | 107 | drmIoctl(m_backend->fd(), DRM_IOCTL_MODE_DESTROY_DUMB, &destroyArgs); | ||
108 | } | 108 | } | ||
109 | releaseGbm(); | 109 | releaseGbm(); | ||
110 | } | 110 | } | ||
111 | 111 | | |||
Show All 31 Lines |