OpenCoverage

qsgsoftwarelayer.cpp

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/quick/scenegraph/adaptations/software/qsgsoftwarelayer.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5QSGSoftwareLayer::QSGSoftwareLayer(QSGRenderContext *renderContext)-
6 : m_item(nullptr)-
7 , m_context(renderContext)-
8 , m_renderer(nullptr)-
9 , m_device_pixel_ratio(1)-
10 , m_mirrorHorizontal(false)-
11 , m_mirrorVertical(true)-
12 , m_live(true)-
13 , m_grab(true)-
14 , m_recursive(false)-
15 , m_dirtyTexture(true)-
16{-
17-
18}
never executed: end of block
0
19-
20QSGSoftwareLayer::~QSGSoftwareLayer()-
21{-
22 invalidated();-
23}
never executed: end of block
0
24-
25int QSGSoftwareLayer::textureId() const-
26{-
27 return
never executed: return 0;
0;
never executed: return 0;
0
28}-
29-
30QSize QSGSoftwareLayer::textureSize() const-
31{-
32 return
never executed: return m_pixmap.size();
m_pixmap.size();
never executed: return m_pixmap.size();
0
33}-
34-
35bool QSGSoftwareLayer::hasAlphaChannel() const-
36{-
37 return
never executed: return m_pixmap.hasAlphaChannel();
m_pixmap.hasAlphaChannel();
never executed: return m_pixmap.hasAlphaChannel();
0
38}-
39-
40bool QSGSoftwareLayer::hasMipmaps() const-
41{-
42 return
never executed: return false;
false;
never executed: return false;
0
43}-
44-
45void QSGSoftwareLayer::bind()-
46{-
47}-
48-
49bool QSGSoftwareLayer::updateTexture()-
50{-
51 bool doGrab = (m_live
m_liveDescription
TRUEnever evaluated
FALSEnever evaluated
|| m_grab
m_grabDescription
TRUEnever evaluated
FALSEnever evaluated
) && m_dirtyTexture
m_dirtyTextureDescription
TRUEnever evaluated
FALSEnever evaluated
;
0
52 if (doGrab
doGrabDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
53 grab();
never executed: grab();
0
54 if (m_grab
m_grabDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
55 scheduledUpdateCompleted();
never executed: scheduledUpdateCompleted();
0
56 m_grab = false;-
57 return
never executed: return doGrab;
doGrab;
never executed: return doGrab;
0
58}-
59-
60void QSGSoftwareLayer::setItem(QSGNode *item)-
61{-
62 if (item == m_item
item == m_itemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
63 return;
never executed: return;
0
64 m_item = item;-
65-
66 if (m_live
m_liveDescription
TRUEnever evaluated
FALSEnever evaluated
&& !m_item
!m_itemDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
67 m_pixmap = QPixmap();
never executed: m_pixmap = QPixmap();
0
68-
69 markDirtyTexture();-
70}
never executed: end of block
0
71-
72void QSGSoftwareLayer::setRect(const QRectF &rect)-
73{-
74 if (rect == m_rect
rect == m_rectDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
75 return;
never executed: return;
0
76 m_rect = rect;-
77 markDirtyTexture();-
78}
never executed: end of block
0
79-
80void QSGSoftwareLayer::setSize(const QSize &size)-
81{-
82 if (size == m_size
size == m_sizeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
83 return;
never executed: return;
0
84 m_size = size;-
85-
86 if (m_live
m_liveDescription
TRUEnever evaluated
FALSEnever evaluated
&& m_size.isNull()
m_size.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
87 m_pixmap = QPixmap();
never executed: m_pixmap = QPixmap();
0
88-
89 markDirtyTexture();-
90}
never executed: end of block
0
91-
92void QSGSoftwareLayer::scheduleUpdate()-
93{-
94 if (m_grab
m_grabDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
95 return;
never executed: return;
0
96 m_grab = true;-
97 if (m_dirtyTexture
m_dirtyTextureDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
98 updateRequested();-
99 }
never executed: end of block
0
100}
never executed: end of block
0
101-
102QImage QSGSoftwareLayer::toImage() const-
103{-
104 return
never executed: return m_pixmap.toImage();
m_pixmap.toImage();
never executed: return m_pixmap.toImage();
0
105}-
106-
107void QSGSoftwareLayer::setLive(bool live)-
108{-
109 if (live == m_live
live == m_liveDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
110 return;
never executed: return;
0
111 m_live = live;-
112-
113 if (m_live
m_liveDescription
TRUEnever evaluated
FALSEnever evaluated
&& (!m_item
!m_itemDescription
TRUEnever evaluated
FALSEnever evaluated
|| m_size.isNull()
m_size.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
))
0
114 m_pixmap = QPixmap();
never executed: m_pixmap = QPixmap();
0
115-
116 markDirtyTexture();-
117}
never executed: end of block
0
118-
119void QSGSoftwareLayer::setRecursive(bool recursive)-
120{-
121 m_recursive = recursive;-
122}
never executed: end of block
0
123-
124void QSGSoftwareLayer::setFormat(uint)-
125{-
126}-
127-
128void QSGSoftwareLayer::setHasMipmaps(bool)-
129{-
130}-
131-
132void QSGSoftwareLayer::setDevicePixelRatio(qreal ratio)-
133{-
134 m_device_pixel_ratio = ratio;-
135}
never executed: end of block
0
136-
137void QSGSoftwareLayer::setMirrorHorizontal(bool mirror)-
138{-
139 if (m_mirrorHorizontal == mirror
m_mirrorHorizontal == mirrorDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
140 return;
never executed: return;
0
141 m_mirrorHorizontal = mirror;-
142 markDirtyTexture();-
143}
never executed: end of block
0
144-
145void QSGSoftwareLayer::setMirrorVertical(bool mirror)-
146{-
147 if (m_mirrorVertical == mirror
m_mirrorVertical == mirrorDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
148 return;
never executed: return;
0
149 m_mirrorVertical = mirror;-
150 markDirtyTexture();-
151}
never executed: end of block
0
152-
153void QSGSoftwareLayer::markDirtyTexture()-
154{-
155 m_dirtyTexture = true;-
156 if (m_live
m_liveDescription
TRUEnever evaluated
FALSEnever evaluated
|| m_grab
m_grabDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
157 updateRequested();-
158 }
never executed: end of block
0
159}
never executed: end of block
0
160-
161void QSGSoftwareLayer::invalidated()-
162{-
163 delete m_renderer;-
164 m_renderer = nullptr;-
165}
never executed: end of block
0
166-
167void QSGSoftwareLayer::grab()-
168{-
169 if (!m_item
!m_itemDescription
TRUEnever evaluated
FALSEnever evaluated
|| m_size.isNull()
m_size.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
170 m_pixmap = QPixmap();-
171 m_dirtyTexture = false;-
172 return;
never executed: return;
0
173 }-
174 QSGNode *root = m_item;-
175 while (root->firstChild()
root->firstChild()Description
TRUEnever evaluated
FALSEnever evaluated
&& root->type() != QSGNode::RootNodeType
root->type() !...::RootNodeTypeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
176 root = root->firstChild();
never executed: root = root->firstChild();
0
177 if (root->type() != QSGNode::RootNodeType
root->type() !...::RootNodeTypeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
178 return;
never executed: return;
0
179-
180 if (!m_renderer
!m_rendererDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
181 m_renderer = new QSGSoftwarePixmapRenderer(m_context);-
182 connect(m_renderer, qFlagLocation("2""sceneGraphChanged()" "\0" __FILE__ ":" "224"), this, qFlagLocation("1""markDirtyTexture()" "\0" __FILE__ ":" "224"));-
183 }
never executed: end of block
0
184 m_renderer->setDevicePixelRatio(m_device_pixel_ratio);-
185 m_renderer->setRootNode(static_cast<QSGRootNode *>(root));-
186-
187 if (m_pixmap.size() != m_size
m_pixmap.size() != m_sizeDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
188 m_pixmap = QPixmap(m_size);-
189 m_pixmap.setDevicePixelRatio(m_device_pixel_ratio);-
190 }
never executed: end of block
0
191-
192-
193 root->markDirty(QSGNode::DirtyForceUpdate);-
194 m_renderer->nodeChanged(root, QSGNode::DirtyForceUpdate);-
195-
196 m_dirtyTexture = false;-
197-
198 m_renderer->setDeviceRect(m_size);-
199 m_renderer->setViewportRect(m_size);-
200 QRect mirrored(m_mirrorHorizontal ? m_rect.right() * m_device_pixel_ratio : m_rect.left() * m_device_pixel_ratio,-
201 m_mirrorVertical ? m_rect.bottom() * m_device_pixel_ratio : m_rect.top() * m_device_pixel_ratio,-
202 m_mirrorHorizontal ? -m_rect.width() * m_device_pixel_ratio : m_rect.width() * m_device_pixel_ratio,-
203 m_mirrorVertical ? -m_rect.height() * m_device_pixel_ratio : m_rect.height() * m_device_pixel_ratio);-
204 m_renderer->setProjectionRect(mirrored);-
205 m_renderer->setClearColor(Qt::transparent);-
206-
207 m_renderer->renderScene();-
208 m_renderer->render(&m_pixmap);-
209-
210 root->markDirty(QSGNode::DirtyForceUpdate);-
211-
212 if (m_recursive
m_recursiveDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
213 markDirtyTexture();
never executed: markDirtyTexture();
0
214}
never executed: end of block
0
215-
216-
217-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.0