File indexing completed on 2024-05-12 17:02:08

0001 /*
0002     SPDX-FileCopyrightText: 2022 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "rendertarget.h"
0008 #include "kwinglutils.h"
0009 
0010 namespace KWin
0011 {
0012 
0013 RenderTarget::RenderTarget()
0014 {
0015 }
0016 
0017 RenderTarget::RenderTarget(GLFramebuffer *fbo)
0018     : m_nativeHandle(fbo)
0019 {
0020 }
0021 
0022 RenderTarget::RenderTarget(QImage *image)
0023     : m_nativeHandle(image)
0024 {
0025 }
0026 
0027 QSize RenderTarget::size() const
0028 {
0029     if (auto fbo = std::get_if<GLFramebuffer *>(&m_nativeHandle)) {
0030         return (*fbo)->size();
0031     } else if (auto image = std::get_if<QImage *>(&m_nativeHandle)) {
0032         return (*image)->size();
0033     } else {
0034         Q_UNREACHABLE();
0035     }
0036 }
0037 
0038 RenderTarget::NativeHandle RenderTarget::nativeHandle() const
0039 {
0040     return m_nativeHandle;
0041 }
0042 
0043 void RenderTarget::setDevicePixelRatio(qreal ratio)
0044 {
0045     m_devicePixelRatio = ratio;
0046 }
0047 
0048 qreal RenderTarget::devicePixelRatio() const
0049 {
0050     return m_devicePixelRatio;
0051 }
0052 
0053 } // namespace KWin