/*
    SPDX-FileCopyrightText: 2020 Aleix Pol Gonzalez <aleixpol@kde.org>

    SPDX-License-Identifier: LGPL-2.0-or-later
*/

#pragma once
#include "kwin_export.h"
#include <QScopedPointer>

namespace KWin
{
class GLRenderTarget;
class GLTexture;

class KWIN_EXPORT DmaBufTexture
{
public:
    explicit DmaBufTexture(KWin::GLTexture* texture);
    virtual ~DmaBufTexture();

    virtual quint32 stride() const = 0;
    virtual int fd() const = 0;
    KWin::GLRenderTarget* framebuffer() const;

protected:
    QScopedPointer<KWin::GLTexture> m_texture;
    QScopedPointer<KWin::GLRenderTarget> m_framebuffer;
};

}