KWin
Loading...
Searching...
No Matches
renderviewport.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2023 Xaver Hugl <xaver.hugl@gmail.com>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#pragma once
8
9#include "core/output.h"
10
11#include <QMatrix4x4>
12#include <QRectF>
13#include <QRegion>
14
15namespace KWin
16{
17
18class RenderTarget;
19
20class KWIN_EXPORT RenderViewport
21{
22public:
23 explicit RenderViewport(const QRectF &renderRect, double scale, const RenderTarget &renderTarget);
24
25 QMatrix4x4 projectionMatrix() const;
26 QRectF renderRect() const;
27 double scale() const;
28
29 QRectF mapToRenderTarget(const QRectF &logicalGeometry) const;
30 QRect mapToRenderTarget(const QRect &logicalGeometry) const;
31 QPoint mapToRenderTarget(const QPoint &logicalGeometry) const;
32 QPointF mapToRenderTarget(const QPointF &logicalGeometry) const;
33 QRegion mapToRenderTarget(const QRegion &logicalGeometry) const;
34
35 QRectF mapToRenderTargetTexture(const QRectF &logicalGeometry) const;
36 QRect mapToRenderTargetTexture(const QRect &logicalGeometry) const;
37 QPoint mapToRenderTargetTexture(const QPoint &logicalGeometry) const;
38 QPointF mapToRenderTargetTexture(const QPointF &logicalGeometry) const;
39 QRegion mapToRenderTargetTexture(const QRegion &logicalGeometry) const;
40
41private:
42 const OutputTransform m_transform;
43 const QSize m_transformBounds;
44 const QRectF m_renderRect;
45 const QRect m_deviceRenderRect;
46 const QMatrix4x4 m_projectionMatrix;
47 const double m_scale;
48};
49
50} // namespace KWin