~BufferAttacher() { if (texture) texture->deleteLater(); bufferRef = QWaylandBufferRef(); nextBuffer = QWaylandBufferRef(); }
void Surface::surface_commit(Resource *) { m_damage = m_pending.damage; if (m_pending.buffer || m_pending.newlyAttached) { setBackBuffer(m_pending.buffer); m_bufferRef = QWaylandBufferRef(m_buffer); if (m_attacher) m_attacher->attach(m_bufferRef); emit m_waylandSurface->configure(m_bufferRef); } m_pending.buffer = 0; m_pending.offset = QPoint(); m_pending.newlyAttached = false; m_pending.damage = QRegion(); if (m_buffer) m_buffer->setCommitted(); m_frameCallbacks << m_pendingFrameCallbacks; m_pendingFrameCallbacks.clear(); emit m_waylandSurface->redraw(); }
void invalidateTexture() { if (bufferRef) bufferRef.destroyTexture(); delete texture; texture = 0; update = true; bufferRef = QWaylandBufferRef(); }