File indexing completed on 2024-05-19 05:32:18

0001 /*
0002     SPDX-FileCopyrightText: 2022 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 #include <QObject>
0009 #include <memory>
0010 
0011 #include "core/renderlayerdelegate.h"
0012 
0013 namespace KWin
0014 {
0015 
0016 class GLFramebuffer;
0017 class GLTexture;
0018 class Output;
0019 
0020 class CursorDelegateOpenGL final : public QObject, public RenderLayerDelegate
0021 {
0022     Q_OBJECT
0023 
0024 public:
0025     CursorDelegateOpenGL(Output *output);
0026     ~CursorDelegateOpenGL() override;
0027 
0028     void paint(const RenderTarget &renderTarget, const QRegion &region) override;
0029 
0030 private:
0031     Output *const m_output;
0032     std::unique_ptr<GLTexture> m_texture;
0033     std::unique_ptr<GLFramebuffer> m_framebuffer;
0034 };
0035 
0036 } // namespace KWin