OpenCoverage

qsgsoftwarepublicnodes_p.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/quick/scenegraph/adaptations/software/qsgsoftwarepublicnodes_p.h
Source codeSwitch to Preprocessed file
LineSourceCount
1/****************************************************************************-
2**-
3** Copyright (C) 2016 The Qt Company Ltd.-
4** Contact: https://www.qt.io/licensing/-
5**-
6** This file is part of the QtQuick module of the Qt Toolkit.-
7**-
8** $QT_BEGIN_LICENSE:LGPL$-
9** Commercial License Usage-
10** Licensees holding valid commercial Qt licenses may use this file in-
11** accordance with the commercial license agreement provided with the-
12** Software or, alternatively, in accordance with the terms contained in-
13** a written agreement between you and The Qt Company. For licensing terms-
14** and conditions see https://www.qt.io/terms-conditions. For further-
15** information use the contact form at https://www.qt.io/contact-us.-
16**-
17** GNU Lesser General Public License Usage-
18** Alternatively, this file may be used under the terms of the GNU Lesser-
19** General Public License version 3 as published by the Free Software-
20** Foundation and appearing in the file LICENSE.LGPL3 included in the-
21** packaging of this file. Please review the following information to-
22** ensure the GNU Lesser General Public License version 3 requirements-
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.-
24**-
25** GNU General Public License Usage-
26** Alternatively, this file may be used under the terms of the GNU-
27** General Public License version 2.0 or (at your option) the GNU General-
28** Public license version 3 or any later version approved by the KDE Free-
29** Qt Foundation. The licenses are as published by the Free Software-
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3-
31** included in the packaging of this file. Please review the following-
32** information to ensure the GNU General Public License requirements will-
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and-
34** https://www.gnu.org/licenses/gpl-3.0.html.-
35**-
36** $QT_END_LICENSE$-
37**-
38****************************************************************************/-
39-
40#ifndef QSGSOFTWAREPUBLICNODES_H-
41#define QSGSOFTWAREPUBLICNODES_H-
42-
43#include <QtQuick/qsgrectanglenode.h>-
44#include <QtQuick/qsgimagenode.h>-
45#include <QtQuick/qsgninepatchnode.h>-
46#include <QtGui/qpixmap.h>-
47-
48//-
49// W A R N I N G-
50// --------------
51//-
52// This file is not part of the Qt API. It exists purely as an-
53// implementation detail. This header file may change from version to-
54// version without notice, or even be removed.-
55//-
56// We mean it.-
57//-
58-
59QT_BEGIN_NAMESPACE-
60-
61class QSGSoftwareRectangleNode : public QSGRectangleNode-
62{-
63public:-
64 QSGSoftwareRectangleNode();-
65-
66 void setRect(const QRectF &rect) override { m_rect = rect; markDirty(DirtyMaterial); }
never executed: end of block
0
67 QRectF rect() const override { return m_rect; }
never executed: return m_rect;
0
68-
69 void setColor(const QColor &color) override { m_color = color; markDirty(DirtyMaterial); }
never executed: end of block
0
70 QColor color() const override { return m_color; }
never executed: return m_color;
0
71-
72 void paint(QPainter *painter);-
73-
74private:-
75 QRectF m_rect;-
76 QColor m_color;-
77};-
78-
79class QSGSoftwareImageNode : public QSGImageNode-
80{-
81public:-
82 QSGSoftwareImageNode();-
83 ~QSGSoftwareImageNode();-
84-
85 void setRect(const QRectF &rect) override { m_rect = rect; markDirty(DirtyMaterial); }
never executed: end of block
0
86 QRectF rect() const override { return m_rect; }
never executed: return m_rect;
0
87-
88 void setSourceRect(const QRectF &r) override { m_sourceRect = r; }
never executed: end of block
0
89 QRectF sourceRect() const override { return m_sourceRect; }
never executed: return m_sourceRect;
0
90-
91 void setTexture(QSGTexture *texture) override;-
92 QSGTexture *texture() const override { return m_texture; }
never executed: return m_texture;
0
93-
94 void setFiltering(QSGTexture::Filtering filtering) override { m_filtering = filtering; markDirty(DirtyMaterial); }
never executed: end of block
0
95 QSGTexture::Filtering filtering() const override { return m_filtering; }
never executed: return m_filtering;
0
96-
97 void setMipmapFiltering(QSGTexture::Filtering) override { }-
98 QSGTexture::Filtering mipmapFiltering() const override { return QSGTexture::None; }
never executed: return QSGTexture::None;
0
99-
100 void setTextureCoordinatesTransform(TextureCoordinatesTransformMode transformNode) override;-
101 TextureCoordinatesTransformMode textureCoordinatesTransform() const override { return m_transformMode; }
never executed: return m_transformMode;
0
102-
103 void setOwnsTexture(bool owns) override { m_owns = owns; }
never executed: end of block
0
104 bool ownsTexture() const override { return m_owns; }
never executed: return m_owns;
0
105-
106 void paint(QPainter *painter);-
107-
108private:-
109 void updateCachedMirroredPixmap();-
110-
111 QPixmap m_cachedPixmap;-
112 QSGTexture *m_texture;-
113 QRectF m_rect;-
114 QRectF m_sourceRect;-
115 bool m_owns;-
116 QSGTexture::Filtering m_filtering;-
117 TextureCoordinatesTransformMode m_transformMode;-
118 bool m_cachedMirroredPixmapIsDirty;-
119};-
120-
121class QSGSoftwareNinePatchNode : public QSGNinePatchNode-
122{-
123public:-
124 QSGSoftwareNinePatchNode();-
125-
126 void setTexture(QSGTexture *texture) override;-
127 void setBounds(const QRectF &bounds) override;-
128 void setDevicePixelRatio(qreal ratio) override;-
129 void setPadding(qreal left, qreal top, qreal right, qreal bottom) override;-
130 void update() override;-
131-
132 void paint(QPainter *painter);-
133-
134 QRectF bounds() const;-
135-
136 bool isOpaque() const { return !m_pixmap.hasAlphaChannel(); }
never executed: return !m_pixmap.hasAlphaChannel();
0
137-
138private:-
139 QPixmap m_pixmap;-
140 QRectF m_bounds;-
141 qreal m_pixelRatio;-
142 QMargins m_margins;-
143};-
144-
145QT_END_NAMESPACE-
146-
147#endif // QSGSOFTWAREPUBLICNODES_H-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.0