OpenCoverage

qquickshadereffectmesh_p.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/quick/items/qquickshadereffectmesh_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#include <private/qtquickglobal_p.h>-
41-
42QT_REQUIRE_CONFIG(quick_shadereffect);-
43-
44#include "qqmlparserstatus.h"-
45-
46#include <QtQuick/qtquickglobal.h>-
47#include <QtGui/qcolor.h>-
48#include <QtCore/qobject.h>-
49#include <QtCore/qsize.h>-
50#include <QtCore/qvector.h>-
51#include <QtCore/qbytearray.h>-
52-
53#ifndef QQUICKSHADEREFFECTMESH_P_H-
54#define QQUICKSHADEREFFECTMESH_P_H-
55-
56//-
57// W A R N I N G-
58// --------------
59//-
60// This file is not part of the Qt API. It exists purely as an-
61// implementation detail. This header file may change from version to-
62// version without notice, or even be removed.-
63//-
64// We mean it.-
65//-
66-
67QT_BEGIN_NAMESPACE-
68-
69const char *qtPositionAttributeName();-
70const char *qtTexCoordAttributeName();-
71-
72class QSGGeometry;-
73class QRectF;-
74-
75class QQuickShaderEffectMesh : public QObject-
76{-
77 Q_OBJECT-
78public:-
79 QQuickShaderEffectMesh(QObject *parent = nullptr);-
80 virtual bool validateAttributes(const QVector<QByteArray> &attributes, int *posIndex) = 0;-
81 // If 'geometry' != 0, 'attrCount' is the same as last time the function was called.-
82 virtual QSGGeometry *updateGeometry(QSGGeometry *geometry, int attrCount, int posIndex,-
83 const QRectF &srcRect, const QRectF &rect) = 0;-
84 // If updateGeometry() fails, the reason should appear in the log.-
85 virtual QString log() const { return QString(); }
never executed: return QString();
0
86-
87Q_SIGNALS:-
88 // Emitted when the geometry needs to be updated.-
89 void geometryChanged();-
90};-
91-
92class QQuickGridMesh : public QQuickShaderEffectMesh-
93{-
94 Q_OBJECT-
95 Q_PROPERTY(QSize resolution READ resolution WRITE setResolution NOTIFY resolutionChanged)-
96public:-
97 QQuickGridMesh(QObject *parent = nullptr);-
98 bool validateAttributes(const QVector<QByteArray> &attributes, int *posIndex) override;-
99 QSGGeometry *updateGeometry(QSGGeometry *geometry, int attrCount, int posIndex,-
100 const QRectF &srcRect, const QRectF &rect) override;-
101 QString log() const override { return m_log; }
never executed: return m_log;
0
102-
103 void setResolution(const QSize &res);-
104 QSize resolution() const;-
105-
106Q_SIGNALS:-
107 void resolutionChanged();-
108-
109private:-
110 QSize m_resolution;-
111 QString m_log;-
112};-
113-
114class QQuickScaleGrid;-
115class QQuickBorderImageMesh : public QQuickShaderEffectMesh-
116{-
117 Q_OBJECT-
118-
119 Q_PROPERTY(QQuickScaleGrid *border READ border CONSTANT)-
120 Q_PROPERTY(QSize size READ size WRITE setSize NOTIFY sizeChanged)-
121 Q_PROPERTY(TileMode horizontalTileMode READ horizontalTileMode WRITE setHorizontalTileMode NOTIFY horizontalTileModeChanged)-
122 Q_PROPERTY(TileMode verticalTileMode READ verticalTileMode WRITE setVerticalTileMode NOTIFY verticalTileModeChanged)-
123public:-
124 QQuickBorderImageMesh(QObject *parent = nullptr);-
125-
126 bool validateAttributes(const QVector<QByteArray> &attributes, int *posIndex) override;-
127 QSGGeometry *updateGeometry(QSGGeometry *geometry, int attrCount, int posIndex,-
128 const QRectF &srcRect, const QRectF &rect) override;-
129-
130 QQuickScaleGrid *border() const;-
131-
132 enum TileMode { Stretch = Qt::StretchTile, Repeat = Qt::RepeatTile, Round = Qt::RoundTile };-
133 Q_ENUM(TileMode)-
134-
135 QSize size() const;-
136 void setSize(const QSize &size);-
137-
138 TileMode horizontalTileMode() const;-
139 void setHorizontalTileMode(TileMode);-
140-
141 TileMode verticalTileMode() const;-
142 void setVerticalTileMode(TileMode);-
143-
144Q_SIGNALS:-
145 void sizeChanged();-
146 void horizontalTileModeChanged();-
147 void verticalTileModeChanged();-
148-
149private:-
150 QQuickScaleGrid *m_border;-
151 QSize m_size;-
152 TileMode m_horizontalTileMode;-
153 TileMode m_verticalTileMode;-
154};-
155-
156inline QColor qt_premultiply_color(const QColor &c)-
157{-
158 return QColor::fromRgbF(c.redF() * c.alphaF(), c.greenF() * c.alphaF(), c.blueF() * c.alphaF(), c.alphaF());
executed 8 times by 1 test: return QColor::fromRgbF(c.redF() * c.alphaF(), c.greenF() * c.alphaF(), c.blueF() * c.alphaF(), c.alphaF());
Executed by:
  • tst_examples
8
159}-
160-
161-
162QT_END_NAMESPACE-
163-
164#endif // QQUICKSHADEREFFECTMESH_P_H-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.0