diff --git a/src/backends/drm/drm_backend.cpp b/src/backends/drm/drm_backend.cpp index 60bce6a222..b6cff8c3d5 100644 --- a/src/backends/drm/drm_backend.cpp +++ b/src/backends/drm/drm_backend.cpp @@ -33,6 +33,7 @@ // system #include #include +#include #include #include // drm @@ -136,7 +137,7 @@ void DrmBackend::handleUdevEvent() // Ignore the device seat if the KWIN_DRM_DEVICES envvar is set. if (!m_explicitGpus.isEmpty()) { const auto canonicalPath = QFileInfo(device->devNode()).canonicalPath(); - const bool foundMatch = std::any_of(m_explicitGpus.begin(), m_explicitGpus.end(), [&canonicalPath](const QString &explicitPath) { + const bool foundMatch = std::ranges::any_of(m_explicitGpus, [&canonicalPath](const QString &explicitPath) { return QFileInfo(explicitPath).canonicalPath() == canonicalPath; }); if (!foundMatch) { @@ -214,7 +215,7 @@ DrmGpu *DrmBackend::addGpu(const QString &fileName) void DrmBackend::addOutput(DrmAbstractOutput *o) { - const bool allOff = std::all_of(m_outputs.begin(), m_outputs.end(), [](Output *output) { + const bool allOff = std::ranges::all_of(m_outputs, [](Output *output) { return output->dpmsMode() != Output::DpmsMode::On; }); if (allOff && m_recentlyUnpluggedDpmsOffOutputs.contains(o->uuid())) { @@ -341,7 +342,7 @@ DrmGpu *DrmBackend::primaryGpu() const DrmGpu *DrmBackend::findGpu(dev_t deviceId) const { - auto it = std::find_if(m_gpus.begin(), m_gpus.end(), [deviceId](const auto &gpu) { + auto it = std::ranges::find_if(m_gpus, [deviceId](const auto &gpu) { return gpu->deviceId() == deviceId; }); return it == m_gpus.end() ? nullptr : it->get(); @@ -356,7 +357,7 @@ bool DrmBackend::applyOutputChanges(const OutputConfiguration &config) { QList toBeEnabled; QList toBeDisabled; - for (const auto &gpu : std::as_const(m_gpus)) { + for (const auto &gpu : m_gpus) { const auto &outputs = gpu->drmOutputs(); for (const auto &output : outputs) { if (output->isNonDesktop()) { diff --git a/src/backends/drm/drm_buffer.cpp b/src/backends/drm/drm_buffer.cpp index 21dd84a5c5..e27b692a0f 100644 --- a/src/backends/drm/drm_buffer.cpp +++ b/src/backends/drm/drm_buffer.cpp @@ -98,9 +98,10 @@ bool DrmFramebuffer::isReadable() return m_readable = m_syncFd.isReadable(); } else { const auto &fds = m_bufferRef->dmabufAttributes()->fd; - return m_readable = std::all_of(fds.begin(), fds.end(), [](const auto &fd) { - return !fd.isValid() || fd.isReadable(); - }); + m_readable = std::ranges::all_of(fds, [](const auto &fd) { + return !fd.isValid() || fd.isReadable(); + }); + return m_readable; } } diff --git a/src/backends/drm/drm_commit.cpp b/src/backends/drm/drm_commit.cpp index ec4915091b..e80765d714 100644 --- a/src/backends/drm/drm_commit.cpp +++ b/src/backends/drm/drm_commit.cpp @@ -150,7 +150,7 @@ void DrmAtomicCommit::pageFlipped(std::chrono::nanoseconds timestamp) const bool DrmAtomicCommit::areBuffersReadable() const { - return std::all_of(m_buffers.begin(), m_buffers.end(), [](const auto &pair) { + return std::ranges::all_of(m_buffers, [](const auto &pair) { const auto &[plane, buffer] = pair; return !buffer || buffer->isReadable(); }); diff --git a/src/backends/drm/drm_commit_thread.cpp b/src/backends/drm/drm_commit_thread.cpp index 4ecb1ba4b7..8636a4e9d7 100644 --- a/src/backends/drm/drm_commit_thread.cpp +++ b/src/backends/drm/drm_commit_thread.cpp @@ -84,7 +84,7 @@ DrmCommitThread::DrmCommitThread(DrmGpu *gpu, const QString &name) // wait for a primary plane commit to be in, while still enforcing // a minimum cursor refresh rate of 30Hz const auto cursorTarget = m_lastPageflip + std::chrono::duration_cast(1s) / 30; - const bool cursorOnly = std::all_of(m_commits.begin(), m_commits.end(), [](const auto &commit) { + const bool cursorOnly = std::ranges::all_of(m_commits, [](const auto &commit) { return commit->isCursorOnly(); }); if (cursorOnly) { @@ -136,7 +136,7 @@ void DrmCommitThread::submit() return; } } - const bool cursorOnly = std::all_of(m_commits.begin(), m_commits.end(), [](const auto &commit) { + const bool cursorOnly = std::ranges::all_of(m_commits, [](const auto &commit) { return commit->isCursorOnly(); }); for (auto &commit : m_commits) { @@ -190,7 +190,7 @@ void DrmCommitThread::optimizeCommits() // commits that target the same plane(s) need to stay in the same order const auto &planes = commit->modifiedPlanes(); const bool skipping = std::any_of(m_commits.begin(), it, [&planes](const auto &other) { - return std::any_of(planes.begin(), planes.end(), [&other](DrmPlane *plane) { + return std::ranges::any_of(planes, [&other](DrmPlane *plane) { return other->modifiedPlanes().contains(plane); }); }); diff --git a/src/backends/drm/drm_connector.cpp b/src/backends/drm/drm_connector.cpp index b5e4541e87..7abe81375e 100644 --- a/src/backends/drm/drm_connector.cpp +++ b/src/backends/drm/drm_connector.cpp @@ -210,7 +210,7 @@ QList> DrmConnector::modes() const std::shared_ptr DrmConnector::findMode(const drmModeModeInfo &modeInfo) const { - const auto it = std::find_if(m_modes.constBegin(), m_modes.constEnd(), [&modeInfo](const auto &mode) { + const auto it = std::ranges::find_if(m_modes, [&modeInfo](const auto &mode) { return checkIfEqual(mode->nativeMode(), &modeInfo); }); return it == m_modes.constEnd() ? nullptr : *it; @@ -399,9 +399,10 @@ QList> DrmConnector::generateCommonModes() continue; } const auto generatedMode = generateMode(size, 60); - if (std::any_of(m_driverModes.cbegin(), m_driverModes.cend(), [generatedMode](const auto &mode) { - return mode->size() == generatedMode->size() && mode->refreshRate() == generatedMode->refreshRate(); - })) { + const bool alreadyExists = std::ranges::any_of(m_driverModes, [generatedMode](const auto &mode) { + return mode->size() == generatedMode->size() && mode->refreshRate() == generatedMode->refreshRate(); + }); + if (alreadyExists) { continue; } ret << generatedMode; diff --git a/src/backends/drm/drm_egl_layer_surface.cpp b/src/backends/drm/drm_egl_layer_surface.cpp index 62a6d687cf..5dac77761c 100644 --- a/src/backends/drm/drm_egl_layer_surface.cpp +++ b/src/backends/drm/drm_egl_layer_surface.cpp @@ -324,20 +324,18 @@ std::unique_ptr EglGbmLayerSurface::createSurface(c if (m_gpu == m_eglBackend->gpu()) { const auto checkSurfaceNeedsLinear = [&formats](const FormatInfo &fmt) { const auto &mods = formats[fmt.drmFormat]; - return std::all_of(mods.cbegin(), mods.cend(), [](const auto &mod) { + return std::ranges::all_of(mods, [](const auto &mod) { return mod == DRM_FORMAT_MOD_LINEAR; }); }; - const bool needsLinear = - std::all_of(preferredFormats.cbegin(), preferredFormats.cend(), checkSurfaceNeedsLinear) && std::all_of(fallbackFormats.cbegin(), fallbackFormats.cend(), checkSurfaceNeedsLinear); + const bool needsLinear = std::ranges::all_of(preferredFormats, checkSurfaceNeedsLinear) && std::ranges::all_of(fallbackFormats, checkSurfaceNeedsLinear); if (needsLinear) { const auto renderFormats = m_eglBackend->eglDisplayObject()->allSupportedDrmFormats(); const auto checkFormatSupportsLinearRender = [&renderFormats](const auto &formatInfo) { const auto it = renderFormats.constFind(formatInfo.drmFormat); return it != renderFormats.cend() && it->nonExternalOnlyModifiers.contains(DRM_FORMAT_MOD_LINEAR); }; - const bool noLinearSupport = - std::none_of(preferredFormats.cbegin(), preferredFormats.cend(), checkFormatSupportsLinearRender) && std::none_of(fallbackFormats.cbegin(), fallbackFormats.cend(), checkFormatSupportsLinearRender); + const bool noLinearSupport = std::ranges::none_of(preferredFormats, checkFormatSupportsLinearRender) && std::ranges::none_of(fallbackFormats, checkFormatSupportsLinearRender); if (noLinearSupport) { bufferTarget = BufferTarget::Dumb; } diff --git a/src/backends/drm/drm_gpu.cpp b/src/backends/drm/drm_gpu.cpp index aee08ab737..73276cca33 100644 --- a/src/backends/drm/drm_gpu.cpp +++ b/src/backends/drm/drm_gpu.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include // drm #include @@ -207,14 +208,14 @@ void DrmGpu::initDrmResources() } const auto findBestPlane = [crtcId](const QList &list) { // if the plane is already used with this crtc, prefer it - const auto connected = std::find_if(list.begin(), list.end(), [crtcId](DrmPlane *plane) { + const auto connected = std::ranges::find_if(list, [crtcId](DrmPlane *plane) { return plane->crtcId.value() == crtcId; }); if (connected != list.end()) { return *connected; } // don't take away planes from other crtcs. The kernel currently rejects such commits - const auto notconnected = std::find_if(list.begin(), list.end(), [](DrmPlane *plane) { + const auto notconnected = std::ranges::find_if(list, [](DrmPlane *plane) { return plane->crtcId.value() == 0; }); if (notconnected != list.end()) { @@ -254,13 +255,9 @@ bool DrmGpu::updateOutputs() DrmUniquePtr lessees{drmModeListLessees(m_fd)}; for (const auto &output : std::as_const(m_drmOutputs)) { if (output->lease()) { - bool leaseActive = false; - for (uint i = 0; i < lessees->count; i++) { - if (lessees->lessees[i] == output->lease()->lesseeId()) { - leaseActive = true; - break; - } - } + const bool leaseActive = std::ranges::any_of(std::span(lessees->lessees, lessees->count), [output](uint32_t id) { + return output->lease()->lesseeId() == id; + }); if (!leaseActive) { Q_EMIT output->lease()->revokeRequested(); } @@ -272,7 +269,7 @@ bool DrmGpu::updateOutputs() QList addedOutputs; for (int i = 0; i < resources->count_connectors; ++i) { const uint32_t currentConnector = resources->connectors[i]; - const auto it = std::find_if(m_connectors.begin(), m_connectors.end(), [currentConnector](const auto &connector) { + const auto it = std::ranges::find_if(m_connectors, [currentConnector](const auto &connector) { return connector->id() == currentConnector; }); if (it == m_connectors.end()) { @@ -339,7 +336,7 @@ bool DrmGpu::updateOutputs() } for (const auto &output : std::as_const(addedOutputs)) { removeOutput(output); - const auto it = std::find_if(m_connectors.begin(), m_connectors.end(), [output](const auto &conn) { + const auto it = std::ranges::find_if(m_connectors, [output](const auto &conn) { return conn.get() == output->connector(); }); Q_ASSERT(it != m_connectors.end()); @@ -397,7 +394,7 @@ DrmPipeline::Error DrmGpu::checkCrtcAssignment(QList connectors, if (m_atomicModeSetting) { // try the crtc that this connector is already connected to first const uint32_t id = connector->crtcId.value(); - auto it = std::find_if(crtcs.begin(), crtcs.end(), [id](const auto &crtc) { + auto it = std::ranges::find_if(crtcs, [id](const auto &crtc) { return id == crtc->id(); }); if (it != crtcs.end()) { @@ -435,7 +432,7 @@ DrmPipeline::Error DrmGpu::testPendingConfiguration() QList crtcs; // only change resources that aren't currently leased away for (const auto &conn : m_connectors) { - bool isLeased = std::any_of(m_drmOutputs.cbegin(), m_drmOutputs.cend(), [&conn](const auto output) { + const bool isLeased = std::ranges::any_of(m_drmOutputs, [&conn](const auto output) { return output->lease() && output->pipeline()->connector() == conn.get(); }); if (!isLeased) { @@ -443,7 +440,7 @@ DrmPipeline::Error DrmGpu::testPendingConfiguration() } } for (const auto &crtc : m_crtcs) { - bool isLeased = std::any_of(m_drmOutputs.cbegin(), m_drmOutputs.cend(), [&crtc](const auto output) { + const bool isLeased = std::ranges::any_of(m_drmOutputs, [&crtc](const auto output) { return output->lease() && output->pipeline()->crtc() == crtc.get(); }); if (!isLeased) { @@ -482,7 +479,7 @@ DrmPipeline::Error DrmGpu::testPipelines() DrmOutput *DrmGpu::findOutput(quint32 connector) { - auto it = std::find_if(m_drmOutputs.constBegin(), m_drmOutputs.constEnd(), [connector](DrmOutput *o) { + auto it = std::ranges::find_if(m_drmOutputs, [connector](DrmOutput *o) { return o->connector()->id() == connector; }); if (it != m_drmOutputs.constEnd()) { @@ -495,7 +492,7 @@ void DrmGpu::waitIdle() { m_socketNotifier->setEnabled(false); while (true) { - const bool idle = std::all_of(m_drmOutputs.constBegin(), m_drmOutputs.constEnd(), [](DrmOutput *output) { + const bool idle = std::ranges::all_of(m_drmOutputs, [](DrmOutput *output) { return !output->pipeline()->pageflipsPending(); }); if (idle) { @@ -748,7 +745,7 @@ bool DrmGpu::isActive() const bool DrmGpu::needsModeset() const { - return m_forceModeset || std::any_of(m_pipelines.constBegin(), m_pipelines.constEnd(), [](const auto &pipeline) { + return m_forceModeset || std::ranges::any_of(m_pipelines, [](const auto &pipeline) { return pipeline->needsModeset(); }); } @@ -761,7 +758,7 @@ bool DrmGpu::maybeModeset() pipelines.removeOne(output->pipeline()); } } - bool presentPendingForAll = std::all_of(pipelines.constBegin(), pipelines.constEnd(), [](const auto &pipeline) { + const bool presentPendingForAll = std::ranges::all_of(pipelines, [](const auto &pipeline) { return pipeline->modesetPresentPending() || !pipeline->activePending(); }); if (!presentPendingForAll) { diff --git a/src/backends/drm/drm_object.cpp b/src/backends/drm/drm_object.cpp index 39bda42505..624d2ed3cf 100644 --- a/src/backends/drm/drm_object.cpp +++ b/src/backends/drm/drm_object.cpp @@ -85,7 +85,7 @@ void DrmPropertyList::addProperty(DrmUniquePtr &&prop, uint6 std::optional, uint64_t>> DrmPropertyList::takeProperty(const QByteArray &name) { - const auto it = std::find_if(m_properties.begin(), m_properties.end(), [&name](const auto &pair) { + const auto it = std::ranges::find_if(m_properties, [&name](const auto &pair) { return pair.first->name == name; }); if (it != m_properties.end()) { diff --git a/src/backends/drm/drm_pipeline.cpp b/src/backends/drm/drm_pipeline.cpp index 93fda5f520..a29b1d7cb8 100644 --- a/src/backends/drm/drm_pipeline.cpp +++ b/src/backends/drm/drm_pipeline.cpp @@ -128,7 +128,7 @@ DrmPipeline::Error DrmPipeline::commitPipelinesAtomic(const QList if (mode == CommitMode::Test) { // if there's a modeset pending, the tests on top of that state // also have to allow modesets or they'll always fail - const bool wantsModeset = std::any_of(pipelines.begin(), pipelines.end(), [](DrmPipeline *pipeline) { + const bool wantsModeset = std::ranges::any_of(pipelines, [](DrmPipeline *pipeline) { return pipeline->needsModeset(); }); if (wantsModeset) { @@ -149,7 +149,7 @@ DrmPipeline::Error DrmPipeline::commitPipelinesAtomic(const QList qCDebug(KWIN_DRM) << "Atomic modeset test failed!" << strerror(errno); return errnoToError(); } - const bool withoutModeset = std::all_of(pipelines.begin(), pipelines.end(), [](DrmPipeline *pipeline) { + const bool withoutModeset = std::ranges::all_of(pipelines, [](DrmPipeline *pipeline) { auto commit = std::make_unique(QVector{pipeline}); return pipeline->prepareAtomicCommit(commit.get(), CommitMode::TestAllowModeset) == Error::None && commit->test(); }); diff --git a/src/backends/libinput/connection.cpp b/src/backends/libinput/connection.cpp index 46c772ffab..a0f1b457b7 100644 --- a/src/backends/libinput/connection.cpp +++ b/src/backends/libinput/connection.cpp @@ -287,7 +287,7 @@ void Connection::processEvents() break; } case LIBINPUT_EVENT_DEVICE_REMOVED: { - auto it = std::find_if(m_devices.begin(), m_devices.end(), [&event](Device *d) { + auto it = std::ranges::find_if(m_devices, [&event](Device *d) { return event->device() == d; }); if (it == m_devices.end()) { diff --git a/src/backends/x11/windowed/x11_windowed_backend.cpp b/src/backends/x11/windowed/x11_windowed_backend.cpp index 24f6c011d2..629e62dcb6 100644 --- a/src/backends/x11/windowed/x11_windowed_backend.cpp +++ b/src/backends/x11/windowed/x11_windowed_backend.cpp @@ -42,6 +42,7 @@ #include #include #include +#include namespace KWin { @@ -343,10 +344,9 @@ void X11WindowedBackend::initDri3() X11WindowedOutput *X11WindowedBackend::findOutput(xcb_window_t window) const { - auto it = std::find_if(m_outputs.constBegin(), m_outputs.constEnd(), - [window](X11WindowedOutput *output) { - return output->window() == window; - }); + const auto it = std::ranges::find_if(m_outputs, [window](X11WindowedOutput *output) { + return output->window() == window; + }); if (it != m_outputs.constEnd()) { return *it; } @@ -516,10 +516,9 @@ void X11WindowedBackend::updateWindowTitle() void X11WindowedBackend::handleClientMessage(xcb_client_message_event_t *event) { - auto it = std::find_if(m_outputs.begin(), m_outputs.end(), - [event](X11WindowedOutput *output) { - return output->window() == event->window; - }); + auto it = std::ranges::find_if(m_outputs, [event](X11WindowedOutput *output) { + return output->window() == event->window; + }); if (it == m_outputs.end()) { return; }