File indexing completed on 2024-05-12 05:31:23

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 "core/rendertarget.h"
0008 #include "opengl/glutils.h"
0009 
0010 namespace KWin
0011 {
0012 
0013 RenderTarget::RenderTarget(GLFramebuffer *fbo, const ColorDescription &colorDescription)
0014     : m_framebuffer(fbo)
0015     , m_transform(fbo->colorAttachment() ? fbo->colorAttachment()->contentTransform() : OutputTransform())
0016     , m_colorDescription(colorDescription)
0017 {
0018 }
0019 
0020 RenderTarget::RenderTarget(QImage *image, const ColorDescription &colorDescription)
0021     : m_image(image)
0022     , m_colorDescription(colorDescription)
0023 {
0024 }
0025 
0026 QSize RenderTarget::size() const
0027 {
0028     if (m_framebuffer) {
0029         return m_framebuffer->size();
0030     } else if (m_image) {
0031         return m_image->size();
0032     } else {
0033         Q_UNREACHABLE();
0034     }
0035 }
0036 
0037 OutputTransform RenderTarget::transform() const
0038 {
0039     return m_transform;
0040 }
0041 
0042 GLFramebuffer *RenderTarget::framebuffer() const
0043 {
0044     return m_framebuffer;
0045 }
0046 
0047 GLTexture *RenderTarget::texture() const
0048 {
0049     return m_framebuffer->colorAttachment();
0050 }
0051 
0052 QImage *RenderTarget::image() const
0053 {
0054     return m_image;
0055 }
0056 
0057 const ColorDescription &RenderTarget::colorDescription() const
0058 {
0059     return m_colorDescription;
0060 }
0061 
0062 } // namespace KWin