File indexing completed on 2025-03-23 11:13:33
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