OpenCoverage

qsgsoftwarerenderablenode.cpp

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7const QLoggingCategory &lcRenderable() { static const QLoggingCategory category("qt.scenegraph.softwarecontext.renderable"); return
executed 26 times by 1 test: return category;
Executed by:
  • tst_qquickshape
category;
executed 26 times by 1 test: return category;
Executed by:
  • tst_qquickshape
}
26
8-
9-
10-
11-
12inline QRect toRectMin(const QRectF & r)-
13{-
14 int x1 = qCeil(r.left());-
15 int x2 = qFloor(r.right());-
16 int y1 = qCeil(r.top());-
17 int y2 = qFloor(r.bottom());-
18 return
executed 16 times by 1 test: return QRect(x1, y1, x2 - x1, y2 - y1);
Executed by:
  • tst_qquickshape
QRect(x1, y1, x2 - x1, y2 - y1);
executed 16 times by 1 test: return QRect(x1, y1, x2 - x1, y2 - y1);
Executed by:
  • tst_qquickshape
16
19}-
20-
21-
22inline QRect toRectMax(const QRectF & r)-
23{-
24 return
executed 16 times by 1 test: return r.toAlignedRect();
Executed by:
  • tst_qquickshape
r.toAlignedRect();
executed 16 times by 1 test: return r.toAlignedRect();
Executed by:
  • tst_qquickshape
16
25}-
26-
27QSGSoftwareRenderableNode::QSGSoftwareRenderableNode(NodeType type, QSGNode *node)-
28 : m_nodeType(type)-
29 , m_isOpaque(true)-
30 , m_isDirty(true)-
31 , m_hasClipRegion(false)-
32 , m_opacity(1.0f)-
33{-
34 switch (m_nodeType) {-
35 case
executed 8 times by 1 test: case QSGSoftwareRenderableNode::SimpleRect:
Executed by:
  • tst_qquickshape
QSGSoftwareRenderableNode::SimpleRect:
executed 8 times by 1 test: case QSGSoftwareRenderableNode::SimpleRect:
Executed by:
  • tst_qquickshape
8
36 m_handle.simpleRectNode = static_cast<QSGSimpleRectNode*>(node);-
37 break;
executed 8 times by 1 test: break;
Executed by:
  • tst_qquickshape
8
38 case
never executed: case QSGSoftwareRenderableNode::SimpleTexture:
QSGSoftwareRenderableNode::SimpleTexture:
never executed: case QSGSoftwareRenderableNode::SimpleTexture:
0
39 m_handle.simpleTextureNode = static_cast<QSGSimpleTextureNode*>(node);-
40 break;
never executed: break;
0
41 case
never executed: case QSGSoftwareRenderableNode::Image:
QSGSoftwareRenderableNode::Image:
never executed: case QSGSoftwareRenderableNode::Image:
0
42 m_handle.imageNode = static_cast<QSGSoftwareInternalImageNode*>(node);-
43 break;
never executed: break;
0
44 case
never executed: case QSGSoftwareRenderableNode::Painter:
QSGSoftwareRenderableNode::Painter:
never executed: case QSGSoftwareRenderableNode::Painter:
0
45 m_handle.painterNode = static_cast<QSGSoftwarePainterNode*>(node);-
46 break;
never executed: break;
0
47 case
never executed: case QSGSoftwareRenderableNode::Rectangle:
QSGSoftwareRenderableNode::Rectangle:
never executed: case QSGSoftwareRenderableNode::Rectangle:
0
48 m_handle.rectangleNode = static_cast<QSGSoftwareInternalRectangleNode*>(node);-
49 break;
never executed: break;
0
50 case
never executed: case QSGSoftwareRenderableNode::Glyph:
QSGSoftwareRenderableNode::Glyph:
never executed: case QSGSoftwareRenderableNode::Glyph:
0
51 m_handle.glpyhNode = static_cast<QSGSoftwareGlyphNode*>(node);-
52 break;
never executed: break;
0
53 case
never executed: case QSGSoftwareRenderableNode::NinePatch:
QSGSoftwareRenderableNode::NinePatch:
never executed: case QSGSoftwareRenderableNode::NinePatch:
0
54 m_handle.ninePatchNode = static_cast<QSGSoftwareNinePatchNode*>(node);-
55 break;
never executed: break;
0
56 case
never executed: case QSGSoftwareRenderableNode::SimpleRectangle:
QSGSoftwareRenderableNode::SimpleRectangle:
never executed: case QSGSoftwareRenderableNode::SimpleRectangle:
0
57 m_handle.simpleRectangleNode = static_cast<QSGRectangleNode*>(node);-
58 break;
never executed: break;
0
59 case
never executed: case QSGSoftwareRenderableNode::SimpleImage:
QSGSoftwareRenderableNode::SimpleImage:
never executed: case QSGSoftwareRenderableNode::SimpleImage:
0
60 m_handle.simpleImageNode = static_cast<QSGImageNode*>(node);-
61 break;
never executed: break;
0
62-
63 case
never executed: case QSGSoftwareRenderableNode::SpriteNode:
QSGSoftwareRenderableNode::SpriteNode:
never executed: case QSGSoftwareRenderableNode::SpriteNode:
0
64 m_handle.spriteNode = static_cast<QSGSoftwareSpriteNode*>(node);-
65 break;
never executed: break;
0
66-
67 case
executed 8 times by 1 test: case QSGSoftwareRenderableNode::RenderNode:
Executed by:
  • tst_qquickshape
QSGSoftwareRenderableNode::RenderNode:
executed 8 times by 1 test: case QSGSoftwareRenderableNode::RenderNode:
Executed by:
  • tst_qquickshape
8
68 m_handle.renderNode = static_cast<QSGRenderNode*>(node);-
69 break;
executed 8 times by 1 test: break;
Executed by:
  • tst_qquickshape
8
70 case
never executed: case QSGSoftwareRenderableNode::Invalid:
QSGSoftwareRenderableNode::Invalid:
never executed: case QSGSoftwareRenderableNode::Invalid:
0
71 m_handle.simpleRectNode = nullptr;-
72 break;
never executed: break;
0
73 }-
74}
executed 16 times by 1 test: end of block
Executed by:
  • tst_qquickshape
16
75-
76QSGSoftwareRenderableNode::~QSGSoftwareRenderableNode()-
77{-
78-
79}-
80-
81void QSGSoftwareRenderableNode::update()-
82{-
83-
84 m_isDirty = true;-
85 m_isOpaque = false;-
86-
87 QRectF boundingRect;-
88-
89 switch (m_nodeType) {-
90 case
executed 8 times by 1 test: case QSGSoftwareRenderableNode::SimpleRect:
Executed by:
  • tst_qquickshape
QSGSoftwareRenderableNode::SimpleRect:
executed 8 times by 1 test: case QSGSoftwareRenderableNode::SimpleRect:
Executed by:
  • tst_qquickshape
8
91 if (m_handle.simpleRectNode->color().alpha() == 255
m_handle.simpl...alpha() == 255Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
)
0-8
92 m_isOpaque = true;
executed 8 times by 1 test: m_isOpaque = true;
Executed by:
  • tst_qquickshape
8
93-
94 boundingRect = m_handle.simpleRectNode->rect();-
95 break;
executed 8 times by 1 test: break;
Executed by:
  • tst_qquickshape
8
96 case
never executed: case QSGSoftwareRenderableNode::SimpleTexture:
QSGSoftwareRenderableNode::SimpleTexture:
never executed: case QSGSoftwareRenderableNode::SimpleTexture:
0
97 if (!m_handle.simpleTextureNode->texture()->hasAlphaChannel()
!m_handle.simp...AlphaChannel()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
98 m_isOpaque = true;
never executed: m_isOpaque = true;
0
99-
100 boundingRect = m_handle.simpleTextureNode->rect();-
101 break;
never executed: break;
0
102 case
never executed: case QSGSoftwareRenderableNode::Image:
QSGSoftwareRenderableNode::Image:
never executed: case QSGSoftwareRenderableNode::Image:
0
103 m_isOpaque = !m_handle.imageNode->pixmap().hasAlphaChannel();-
104-
105 boundingRect = m_handle.imageNode->rect().toRect();-
106 break;
never executed: break;
0
107 case
never executed: case QSGSoftwareRenderableNode::Painter:
QSGSoftwareRenderableNode::Painter:
never executed: case QSGSoftwareRenderableNode::Painter:
0
108 if (m_handle.painterNode->opaquePainting()
m_handle.paint...aquePainting()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
109 m_isOpaque = true;
never executed: m_isOpaque = true;
0
110-
111 boundingRect = QRectF(0, 0, m_handle.painterNode->size().width(), m_handle.painterNode->size().height());-
112 break;
never executed: break;
0
113 case
never executed: case QSGSoftwareRenderableNode::Rectangle:
QSGSoftwareRenderableNode::Rectangle:
never executed: case QSGSoftwareRenderableNode::Rectangle:
0
114 if (m_handle.rectangleNode->isOpaque()
m_handle.recta...de->isOpaque()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
115 m_isOpaque = true;
never executed: m_isOpaque = true;
0
116-
117 boundingRect = m_handle.rectangleNode->rect();-
118 break;
never executed: break;
0
119 case
never executed: case QSGSoftwareRenderableNode::Glyph:
QSGSoftwareRenderableNode::Glyph:
never executed: case QSGSoftwareRenderableNode::Glyph:
0
120-
121 boundingRect = m_handle.glpyhNode->boundingRect();-
122 break;
never executed: break;
0
123 case
never executed: case QSGSoftwareRenderableNode::NinePatch:
QSGSoftwareRenderableNode::NinePatch:
never executed: case QSGSoftwareRenderableNode::NinePatch:
0
124 m_isOpaque = m_handle.ninePatchNode->isOpaque();-
125-
126 boundingRect = m_handle.ninePatchNode->bounds();-
127 break;
never executed: break;
0
128 case
never executed: case QSGSoftwareRenderableNode::SimpleRectangle:
QSGSoftwareRenderableNode::SimpleRectangle:
never executed: case QSGSoftwareRenderableNode::SimpleRectangle:
0
129 if (m_handle.simpleRectangleNode->color().alpha() == 255
m_handle.simpl...alpha() == 255Description
TRUEnever evaluated
FALSEnever evaluated
)
0
130 m_isOpaque = true;
never executed: m_isOpaque = true;
0
131-
132 boundingRect = m_handle.simpleRectangleNode->rect();-
133 break;
never executed: break;
0
134 case
never executed: case QSGSoftwareRenderableNode::SimpleImage:
QSGSoftwareRenderableNode::SimpleImage:
never executed: case QSGSoftwareRenderableNode::SimpleImage:
0
135 if (!m_handle.simpleImageNode->texture()->hasAlphaChannel()
!m_handle.simp...AlphaChannel()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
136 m_isOpaque = true;
never executed: m_isOpaque = true;
0
137-
138 boundingRect = m_handle.simpleImageNode->rect();-
139 break;
never executed: break;
0
140-
141 case
never executed: case QSGSoftwareRenderableNode::SpriteNode:
QSGSoftwareRenderableNode::SpriteNode:
never executed: case QSGSoftwareRenderableNode::SpriteNode:
0
142 m_isOpaque = m_handle.spriteNode->isOpaque();-
143 boundingRect = m_handle.spriteNode->rect();-
144 break;
never executed: break;
0
145-
146 case
executed 8 times by 1 test: case QSGSoftwareRenderableNode::RenderNode:
Executed by:
  • tst_qquickshape
QSGSoftwareRenderableNode::RenderNode:
executed 8 times by 1 test: case QSGSoftwareRenderableNode::RenderNode:
Executed by:
  • tst_qquickshape
8
147 if (m_handle.renderNode->flags().testFlag(QSGRenderNode::OpaqueRendering)
m_handle.rende...aqueRendering)Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
)
0-8
148 m_isOpaque = true;
never executed: m_isOpaque = true;
0
149-
150 boundingRect = m_handle.renderNode->rect();-
151 break;
executed 8 times by 1 test: break;
Executed by:
  • tst_qquickshape
8
152 default
never executed: default:
:
never executed: default:
0
153 break;
never executed: break;
0
154 }-
155-
156 if (m_transform.isRotating()
m_transform.isRotating()Description
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • tst_qquickshape
)
0-16
157 m_isOpaque = false;
never executed: m_isOpaque = false;
0
158-
159 const QRectF transformedRect = m_transform.mapRect(boundingRect);-
160 m_boundingRectMin = toRectMin(transformedRect);-
161 m_boundingRectMax = toRectMax(transformedRect);-
162-
163 if (m_hasClipRegion
m_hasClipRegionDescription
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • tst_qquickshape
&& m_clipRegion.rectCount() <= 1
m_clipRegion.rectCount() <= 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0-16
164-
165 if (m_clipRegion.isEmpty()
m_clipRegion.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
166 m_boundingRectMin = QRect();-
167 m_boundingRectMax = QRect();-
168 }
never executed: end of block
else {
0
169 const auto rects = m_clipRegion.begin();-
170 m_boundingRectMin = m_boundingRectMin.intersected(rects[0]);-
171 m_boundingRectMax = m_boundingRectMax.intersected(rects[0]);-
172 }
never executed: end of block
0
173 }-
174-
175-
176 if (m_opacity < 1.0f
m_opacity < 1.0fDescription
TRUEnever evaluated
FALSEevaluated 16 times by 1 test
Evaluated by:
  • tst_qquickshape
)
0-16
177 m_isOpaque = false;
never executed: m_isOpaque = false;
0
178-
179 m_dirtyRegion = QRegion(m_boundingRectMax);-
180}
executed 16 times by 1 test: end of block
Executed by:
  • tst_qquickshape
16
181-
182struct RenderNodeState : public QSGRenderNode::RenderState-
183{-
184 const QMatrix4x4 *projectionMatrix() const override { return
never executed: return &ident;
&ident;
never executed: return &ident;
}
0
185 QRect scissorRect() const override { return
never executed: return QRect();
QRect();
never executed: return QRect();
}
0
186 bool scissorEnabled() const override { return
never executed: return false;
false;
never executed: return false;
}
0
187 int stencilValue() const override { return
never executed: return 0;
0;
never executed: return 0;
}
0
188 bool stencilEnabled() const override { return
never executed: return false;
false;
never executed: return false;
}
0
189 const QRegion *clipRegion() const override { return
executed 8 times by 1 test: return &cr;
Executed by:
  • tst_qquickshape
&cr;
executed 8 times by 1 test: return &cr;
Executed by:
  • tst_qquickshape
}
8
190 QMatrix4x4 ident;-
191 QRegion cr;-
192};-
193-
194QRegion QSGSoftwareRenderableNode::renderNode(QPainter *painter, bool forceOpaquePainting)-
195{-
196 ((painter) ? static_cast<void>(0) : qt_assert("painter", __FILE__, 248));-
197-
198-
199 if (m_nodeType != RenderNode
m_nodeType != RenderNodeDescription
TRUEevaluated 24 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEevaluated 24 times by 1 test
Evaluated by:
  • tst_qquickshape
) {
24
200 if (!m_isDirty
!m_isDirtyDescription
TRUEevaluated 16 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
|| qFuzzyIsNull(m_opacity)
qFuzzyIsNull(m_opacity)Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
|| m_dirtyRegion.isEmpty()
m_dirtyRegion.isEmpty()Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
) {
0-16
201 m_isDirty = false;-
202 m_dirtyRegion = QRegion();-
203 return
executed 16 times by 1 test: return QRegion();
Executed by:
  • tst_qquickshape
QRegion();
executed 16 times by 1 test: return QRegion();
Executed by:
  • tst_qquickshape
16
204 }-
205 }
executed 8 times by 1 test: end of block
Executed by:
  • tst_qquickshape
else {
8
206 if (!m_isDirty
!m_isDirtyDescription
TRUEevaluated 16 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
|| qFuzzyIsNull(m_opacity)
qFuzzyIsNull(m_opacity)Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
) {
0-16
207 m_isDirty = false;-
208 m_dirtyRegion = QRegion();-
209 return
executed 16 times by 1 test: return QRegion();
Executed by:
  • tst_qquickshape
QRegion();
executed 16 times by 1 test: return QRegion();
Executed by:
  • tst_qquickshape
16
210 } else {-
211 QSGRenderNodePrivate *rd = QSGRenderNodePrivate::get(m_handle.renderNode);-
212 QMatrix4x4 m = m_transform;-
213 rd->m_matrix = &m;-
214 rd->m_opacity = m_opacity;-
215-
216-
217 QRegion cr = m_dirtyRegion;-
218 if (m_clipRegion.rectCount() > 1
m_clipRegion.rectCount() > 1Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
)
0-8
219 cr &= m_clipRegion;
never executed: cr &= m_clipRegion;
0
220-
221 painter->save();-
222 RenderNodeState rs;-
223 rs.cr = cr;-
224 m_handle.renderNode->render(&rs);-
225 painter->restore();-
226-
227 const QRect br = m_handle.renderNode->flags().testFlag(QSGRenderNode::BoundedRectRendering)
m_handle.rende...RectRendering)Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
0-8
228 ? m_boundingRectMax-
229 : QRect(0, 0, painter->device()->width(), painter->device()->height());-
230 m_previousDirtyRegion = QRegion(br);-
231 m_isDirty = false;-
232 m_dirtyRegion = QRegion();-
233 return
executed 8 times by 1 test: return br;
Executed by:
  • tst_qquickshape
br;
executed 8 times by 1 test: return br;
Executed by:
  • tst_qquickshape
8
234 }-
235 }-
236-
237 painter->save();-
238 painter->setOpacity(m_opacity);-
239-
240-
241-
242 painter->setClipRegion(m_dirtyRegion, Qt::ReplaceClip);-
243 if (m_clipRegion.rectCount() > 1
m_clipRegion.rectCount() > 1Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
)
0-8
244 painter->setClipRegion(m_clipRegion, Qt::IntersectClip);
never executed: painter->setClipRegion(m_clipRegion, Qt::IntersectClip);
0
245-
246 painter->setTransform(m_transform, false);-
247 if (forceOpaquePainting
forceOpaquePaintingDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
|| m_isOpaque
m_isOpaqueDescription
TRUEnever evaluated
FALSEnever evaluated
)
0-8
248 painter->setCompositionMode(QPainter::CompositionMode_Source);
executed 8 times by 1 test: painter->setCompositionMode(QPainter::CompositionMode_Source);
Executed by:
  • tst_qquickshape
8
249-
250 switch (m_nodeType) {-
251 case
executed 8 times by 1 test: case QSGSoftwareRenderableNode::SimpleRect:
Executed by:
  • tst_qquickshape
QSGSoftwareRenderableNode::SimpleRect:
executed 8 times by 1 test: case QSGSoftwareRenderableNode::SimpleRect:
Executed by:
  • tst_qquickshape
8
252 painter->fillRect(m_handle.simpleRectNode->rect(), m_handle.simpleRectNode->color());-
253 break;
executed 8 times by 1 test: break;
Executed by:
  • tst_qquickshape
8
254 case
never executed: case QSGSoftwareRenderableNode::SimpleTexture:
QSGSoftwareRenderableNode::SimpleTexture:
never executed: case QSGSoftwareRenderableNode::SimpleTexture:
0
255 {-
256 QSGTexture *texture = m_handle.simpleTextureNode->texture();-
257 if (QSGSoftwarePixmapTexture *pt = qobject_cast<QSGSoftwarePixmapTexture *>(texture)
QSGSoftwarePix...re *>(texture)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
258 const QPixmap &pm = pt->pixmap();-
259 painter->drawPixmap(m_handle.simpleTextureNode->rect(), pm, m_handle.simpleTextureNode->sourceRect());-
260 }
never executed: end of block
else if (QSGPlainTexture *pt = qobject_cast<QSGPlainTexture *>(texture)
QSGPlainTextur...re *>(texture)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
261 const QImage &im = pt->image();-
262 painter->drawImage(m_handle.simpleTextureNode->rect(), im, m_handle.simpleTextureNode->sourceRect());-
263 }
never executed: end of block
0
264 }-
265 break;
never executed: break;
0
266 case
never executed: case QSGSoftwareRenderableNode::Image:
QSGSoftwareRenderableNode::Image:
never executed: case QSGSoftwareRenderableNode::Image:
0
267 m_handle.imageNode->paint(painter);-
268 break;
never executed: break;
0
269 case
never executed: case QSGSoftwareRenderableNode::Painter:
QSGSoftwareRenderableNode::Painter:
never executed: case QSGSoftwareRenderableNode::Painter:
0
270 m_handle.painterNode->paint(painter);-
271 break;
never executed: break;
0
272 case
never executed: case QSGSoftwareRenderableNode::Rectangle:
QSGSoftwareRenderableNode::Rectangle:
never executed: case QSGSoftwareRenderableNode::Rectangle:
0
273 m_handle.rectangleNode->paint(painter);-
274 break;
never executed: break;
0
275 case
never executed: case QSGSoftwareRenderableNode::Glyph:
QSGSoftwareRenderableNode::Glyph:
never executed: case QSGSoftwareRenderableNode::Glyph:
0
276 m_handle.glpyhNode->paint(painter);-
277 break;
never executed: break;
0
278 case
never executed: case QSGSoftwareRenderableNode::NinePatch:
QSGSoftwareRenderableNode::NinePatch:
never executed: case QSGSoftwareRenderableNode::NinePatch:
0
279 m_handle.ninePatchNode->paint(painter);-
280 break;
never executed: break;
0
281 case
never executed: case QSGSoftwareRenderableNode::SimpleRectangle:
QSGSoftwareRenderableNode::SimpleRectangle:
never executed: case QSGSoftwareRenderableNode::SimpleRectangle:
0
282 static_cast<QSGSoftwareRectangleNode *>(m_handle.simpleRectangleNode)->paint(painter);-
283 break;
never executed: break;
0
284 case
never executed: case QSGSoftwareRenderableNode::SimpleImage:
QSGSoftwareRenderableNode::SimpleImage:
never executed: case QSGSoftwareRenderableNode::SimpleImage:
0
285 static_cast<QSGSoftwareImageNode *>(m_handle.simpleImageNode)->paint(painter);-
286 break;
never executed: break;
0
287-
288 case
never executed: case QSGSoftwareRenderableNode::SpriteNode:
QSGSoftwareRenderableNode::SpriteNode:
never executed: case QSGSoftwareRenderableNode::SpriteNode:
0
289 static_cast<QSGSoftwareSpriteNode *>(m_handle.spriteNode)->paint(painter);-
290 break;
never executed: break;
0
291-
292 default
never executed: default:
:
never executed: default:
0
293 break;
never executed: break;
0
294 }-
295-
296 painter->restore();-
297-
298 QRegion areaToBeFlushed = m_dirtyRegion;-
299 m_previousDirtyRegion = QRegion(m_boundingRectMax);-
300 m_isDirty = false;-
301 m_dirtyRegion = QRegion();-
302-
303 return
executed 8 times by 1 test: return areaToBeFlushed;
Executed by:
  • tst_qquickshape
areaToBeFlushed;
executed 8 times by 1 test: return areaToBeFlushed;
Executed by:
  • tst_qquickshape
8
304}-
305-
306bool QSGSoftwareRenderableNode::isDirtyRegionEmpty() const-
307{-
308 return
never executed: return m_dirtyRegion.isEmpty();
m_dirtyRegion.isEmpty();
never executed: return m_dirtyRegion.isEmpty();
0
309}-
310-
311void QSGSoftwareRenderableNode::setTransform(const QTransform &transform)-
312{-
313 if (m_transform == transform
m_transform == transformDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
)
0-8
314 return;
executed 8 times by 1 test: return;
Executed by:
  • tst_qquickshape
8
315 m_transform = transform;-
316 update();-
317}
never executed: end of block
0
318-
319void QSGSoftwareRenderableNode::setClipRegion(const QRegion &clipRect, bool hasClipRegion)-
320{-
321 if (m_clipRegion == clipRect
m_clipRegion == clipRectDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
&& m_hasClipRegion == hasClipRegion
m_hasClipRegio... hasClipRegionDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
)
0-8
322 return;
executed 8 times by 1 test: return;
Executed by:
  • tst_qquickshape
8
323-
324 m_clipRegion = clipRect;-
325 m_hasClipRegion = hasClipRegion;-
326 update();-
327}
never executed: end of block
0
328-
329void QSGSoftwareRenderableNode::setOpacity(float opacity)-
330{-
331 if (qFuzzyCompare(m_opacity, opacity)
qFuzzyCompare(...city, opacity)Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
)
0-8
332 return;
executed 8 times by 1 test: return;
Executed by:
  • tst_qquickshape
8
333-
334 m_opacity = opacity;-
335 update();-
336}
never executed: end of block
0
337-
338void QSGSoftwareRenderableNode::markGeometryDirty()-
339{-
340 update();-
341}
executed 8 times by 1 test: end of block
Executed by:
  • tst_qquickshape
8
342-
343void QSGSoftwareRenderableNode::markMaterialDirty()-
344{-
345 update();-
346}
never executed: end of block
0
347-
348void QSGSoftwareRenderableNode::addDirtyRegion(const QRegion &dirtyRegion, bool forceDirty)-
349{-
350-
351 QRegion prev = m_dirtyRegion;-
352 if (dirtyRegion.intersects(m_boundingRectMax)
dirtyRegion.in...undingRectMax)Description
TRUEevaluated 24 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
) {
0-24
353 if (forceDirty
forceDirtyDescription
TRUEevaluated 24 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
)
0-24
354 m_isDirty = true;
executed 24 times by 1 test: m_isDirty = true;
Executed by:
  • tst_qquickshape
24
355 m_dirtyRegion += dirtyRegion.intersected(m_boundingRectMax);-
356 }
executed 24 times by 1 test: end of block
Executed by:
  • tst_qquickshape
24
357 for (bool qt_category_enabled = lcRenderable().isDebugEnabled(); qt_category_enabled
qt_category_enabledDescription
TRUEnever evaluated
FALSEevaluated 24 times by 1 test
Evaluated by:
  • tst_qquickshape
; qt_category_enabled = false) QMessageLogger(__FILE__, 409, __PRETTY_FUNCTION__, lcRenderable().categoryName()).debug() << "addDirtyRegion: " << dirtyRegion << "old dirtyRegion: " << prev << "new dirtyRegion: " << m_dirtyRegion;
never executed: QMessageLogger(__FILE__, 409, __PRETTY_FUNCTION__, lcRenderable().categoryName()).debug() << "addDirtyRegion: " << dirtyRegion << "old dirtyRegion: " << prev << "new dirtyRegion: " << m_dirtyRegion;
0-24
358}
executed 24 times by 1 test: end of block
Executed by:
  • tst_qquickshape
24
359-
360void QSGSoftwareRenderableNode::subtractDirtyRegion(const QRegion &dirtyRegion)-
361{-
362 QRegion prev = m_dirtyRegion;-
363 if (m_isDirty
m_isDirtyDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
) {
0-2
364-
365 if (dirtyRegion.intersects(m_boundingRectMax)
dirtyRegion.in...undingRectMax)Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEnever evaluated
) {
0-2
366 m_dirtyRegion -= dirtyRegion;-
367 if (m_dirtyRegion.isEmpty()
m_dirtyRegion.isEmpty()Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • tst_qquickshape
)
0-2
368 m_isDirty = false;
never executed: m_isDirty = false;
0
369 }
executed 2 times by 1 test: end of block
Executed by:
  • tst_qquickshape
2
370 }
executed 2 times by 1 test: end of block
Executed by:
  • tst_qquickshape
2
371 for (bool qt_category_enabled = lcRenderable().isDebugEnabled(); qt_category_enabled
qt_category_enabledDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • tst_qquickshape
; qt_category_enabled = false) QMessageLogger(__FILE__, 423, __PRETTY_FUNCTION__, lcRenderable().categoryName()).debug() << "subtractDirtyRegion: " << dirtyRegion << "old dirtyRegion" << prev << "new dirtyRegion: " << m_dirtyRegion;
never executed: QMessageLogger(__FILE__, 423, __PRETTY_FUNCTION__, lcRenderable().categoryName()).debug() << "subtractDirtyRegion: " << dirtyRegion << "old dirtyRegion" << prev << "new dirtyRegion: " << m_dirtyRegion;
0-2
372}
executed 2 times by 1 test: end of block
Executed by:
  • tst_qquickshape
2
373-
374QRegion QSGSoftwareRenderableNode::previousDirtyRegion(bool wasRemoved) const-
375{-
376-
377-
378 if (wasRemoved
wasRemovedDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • tst_qquickshape
FALSEevaluated 16 times by 1 test
Evaluated by:
  • tst_qquickshape
)
8-16
379 return
executed 8 times by 1 test: return m_previousDirtyRegion;
Executed by:
  • tst_qquickshape
m_previousDirtyRegion;
executed 8 times by 1 test: return m_previousDirtyRegion;
Executed by:
  • tst_qquickshape
8
380-
381 return
executed 16 times by 1 test: return m_previousDirtyRegion.subtracted(QRegion(m_boundingRectMax));
Executed by:
  • tst_qquickshape
m_previousDirtyRegion.subtracted(QRegion(m_boundingRectMax));
executed 16 times by 1 test: return m_previousDirtyRegion.subtracted(QRegion(m_boundingRectMax));
Executed by:
  • tst_qquickshape
16
382}-
383-
384QRegion QSGSoftwareRenderableNode::dirtyRegion() const-
385{-
386 return
executed 66 times by 1 test: return m_dirtyRegion;
Executed by:
  • tst_qquickshape
m_dirtyRegion;
executed 66 times by 1 test: return m_dirtyRegion;
Executed by:
  • tst_qquickshape
66
387}-
388-
389-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.0