return priv->getBuffer();
}
+bool DSWaylandSurfaceCommitInfo::bufferChanged()
+{
+ DS_GET_PRIV(DSWaylandSurfaceCommitInfo);
+
+ return priv->bufferChanged;
+}
+
/* DSWaylandSurfacePrivate */
DSWaylandSurfacePrivate::DSWaylandSurfacePrivate(DSWaylandSurface *p_ptr)
: DSObjectPrivate(p_ptr),
if (buffer) {
dsBuffer = __bufferManager->getDSBuffer(buffer);
commitInfoPendingPriv->bufferRef = std::make_unique<DSBufferRef>(dsBuffer);
-
+ } else {
+ commitInfoPendingPriv->bufferRef = nullptr;
}
+
+ commitInfoPendingPriv->bufferChanged = true;
}
void DSWaylandSurfacePrivate::surface_damage(Resource *resource, int32_t x, int32_t y, int32_t width, int32_t height)
commitInfoPriv->scale = commitInfoPendingPriv->scale;
commitInfoPriv->damageBuffer = commitInfoPendingPriv->damageBuffer;
commitInfoPriv->bufferRef = std::move(commitInfoPendingPriv->bufferRef);
+ commitInfoPriv->bufferChanged = commitInfoPendingPriv->bufferChanged;
+ commitInfoPendingPriv->bufferChanged = false; // reset value
// emit a signal of the surface committed
pub->__surfaceCommittedSignal.emit(__commitInfo);