File indexing completed on 2025-04-20 10:57:33
0001 /* 0002 KWin - the KDE window manager 0003 This file is part of the KDE project. 0004 0005 SPDX-FileCopyrightText: 2022 Xaver Hugl <xaver.hugl@gmail.com> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 #pragma once 0010 0011 #include "drm_buffer.h" 0012 0013 namespace KWin 0014 { 0015 0016 class DrmDumbBuffer : public DrmGpuBuffer 0017 { 0018 public: 0019 DrmDumbBuffer(DrmGpu *gpu, const QSize &size, uint32_t format, uint32_t handle, uint32_t stride, size_t bufferSize); 0020 ~DrmDumbBuffer() override; 0021 0022 bool map(QImage::Format format = QImage::Format_RGB32); 0023 QImage *image() const; 0024 void *data() const; 0025 0026 static std::shared_ptr<DrmDumbBuffer> createDumbBuffer(DrmGpu *gpu, const QSize &size, uint32_t format); 0027 0028 private: 0029 const size_t m_bufferSize; 0030 void *m_memory = nullptr; 0031 std::unique_ptr<QImage> m_image; 0032 }; 0033 0034 }