Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/quick/items/qquickframebufferobject.cpp |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||
3 | - | |||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||
6 | class QQuickFramebufferObjectPrivate : public QQuickItemPrivate | - | ||||||||||||||||||||||||
7 | { | - | ||||||||||||||||||||||||
8 | inline QQuickFramebufferObject* q_func() { return static_cast<QQuickFramebufferObject *>(q_ptr); } inline const QQuickFramebufferObject* q_func() const { return static_cast<const QQuickFramebufferObject *>(q_ptr); } friend class QQuickFramebufferObject; | - | ||||||||||||||||||||||||
9 | public: | - | ||||||||||||||||||||||||
10 | QQuickFramebufferObjectPrivate() | - | ||||||||||||||||||||||||
11 | : followsItemSize(true) | - | ||||||||||||||||||||||||
12 | , mirrorVertically(false) | - | ||||||||||||||||||||||||
13 | , node(nullptr) | - | ||||||||||||||||||||||||
14 | { | - | ||||||||||||||||||||||||
15 | } executed 10 times by 1 test: end of block Executed by:
| 10 | ||||||||||||||||||||||||
16 | - | |||||||||||||||||||||||||
17 | bool followsItemSize; | - | ||||||||||||||||||||||||
18 | bool mirrorVertically; | - | ||||||||||||||||||||||||
19 | mutable QSGFramebufferObjectNode *node; | - | ||||||||||||||||||||||||
20 | }; | - | ||||||||||||||||||||||||
21 | QQuickFramebufferObject::QQuickFramebufferObject(QQuickItem *parent) : | - | ||||||||||||||||||||||||
22 | QQuickItem(*new QQuickFramebufferObjectPrivate, parent) | - | ||||||||||||||||||||||||
23 | { | - | ||||||||||||||||||||||||
24 | setFlag(ItemHasContents); | - | ||||||||||||||||||||||||
25 | } executed 10 times by 1 test: end of block Executed by:
| 10 | ||||||||||||||||||||||||
26 | void QQuickFramebufferObject::setTextureFollowsItemSize(bool follows) | - | ||||||||||||||||||||||||
27 | { | - | ||||||||||||||||||||||||
28 | QQuickFramebufferObjectPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
29 | if (d->followsItemSize == follows
| 0-6 | ||||||||||||||||||||||||
30 | return; never executed: return; | 0 | ||||||||||||||||||||||||
31 | d->followsItemSize = follows; | - | ||||||||||||||||||||||||
32 | textureFollowsItemSizeChanged(d->followsItemSize); | - | ||||||||||||||||||||||||
33 | } executed 6 times by 1 test: end of block Executed by:
| 6 | ||||||||||||||||||||||||
34 | - | |||||||||||||||||||||||||
35 | bool QQuickFramebufferObject::textureFollowsItemSize() const | - | ||||||||||||||||||||||||
36 | { | - | ||||||||||||||||||||||||
37 | const QQuickFramebufferObjectPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
38 | return never executed: d->followsItemSize;return d->followsItemSize; never executed: return d->followsItemSize; | 0 | ||||||||||||||||||||||||
39 | } | - | ||||||||||||||||||||||||
40 | void QQuickFramebufferObject::setMirrorVertically(bool enable) | - | ||||||||||||||||||||||||
41 | { | - | ||||||||||||||||||||||||
42 | QQuickFramebufferObjectPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
43 | if (d->mirrorVertically == enable
| 0 | ||||||||||||||||||||||||
44 | return; never executed: return; | 0 | ||||||||||||||||||||||||
45 | d->mirrorVertically = enable; | - | ||||||||||||||||||||||||
46 | mirrorVerticallyChanged(d->mirrorVertically); | - | ||||||||||||||||||||||||
47 | update(); | - | ||||||||||||||||||||||||
48 | } never executed: end of block | 0 | ||||||||||||||||||||||||
49 | - | |||||||||||||||||||||||||
50 | bool QQuickFramebufferObject::mirrorVertically() const | - | ||||||||||||||||||||||||
51 | { | - | ||||||||||||||||||||||||
52 | const QQuickFramebufferObjectPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
53 | return never executed: d->mirrorVertically;return d->mirrorVertically; never executed: return d->mirrorVertically; | 0 | ||||||||||||||||||||||||
54 | } | - | ||||||||||||||||||||||||
55 | - | |||||||||||||||||||||||||
56 | - | |||||||||||||||||||||||||
57 | - | |||||||||||||||||||||||||
58 | - | |||||||||||||||||||||||||
59 | void QQuickFramebufferObject::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) | - | ||||||||||||||||||||||||
60 | { | - | ||||||||||||||||||||||||
61 | QQuickItem::geometryChanged(newGeometry, oldGeometry); | - | ||||||||||||||||||||||||
62 | - | |||||||||||||||||||||||||
63 | QQuickFramebufferObjectPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
64 | if (newGeometry.size() != oldGeometry.size()
| 0-28 | ||||||||||||||||||||||||
65 | update(); executed 24 times by 1 test: update(); Executed by:
| 24 | ||||||||||||||||||||||||
66 | } executed 28 times by 1 test: end of block Executed by:
| 28 | ||||||||||||||||||||||||
67 | - | |||||||||||||||||||||||||
68 | class QSGFramebufferObjectNode : public QSGTextureProvider, public QSGSimpleTextureNode | - | ||||||||||||||||||||||||
69 | { | - | ||||||||||||||||||||||||
70 | public: | - | ||||||||||||||||||||||||
71 | #pragma GCC diagnostic push | - | ||||||||||||||||||||||||
72 | - | |||||||||||||||||||||||||
73 | #pragma GCC diagnostic ignored "-Wsuggest-override" | - | ||||||||||||||||||||||||
74 | static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } __attribute__ ((__deprecated__)) static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: | - | ||||||||||||||||||||||||
75 | #pragma GCC diagnostic ignored "-Wattributes" | - | ||||||||||||||||||||||||
76 | __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); | - | ||||||||||||||||||||||||
77 | #pragma GCC diagnostic pop | - | ||||||||||||||||||||||||
78 | struct QPrivateSignal {}; | - | ||||||||||||||||||||||||
79 | - | |||||||||||||||||||||||||
80 | public: | - | ||||||||||||||||||||||||
81 | QSGFramebufferObjectNode() | - | ||||||||||||||||||||||||
82 | : window(nullptr) | - | ||||||||||||||||||||||||
83 | , fbo(nullptr) | - | ||||||||||||||||||||||||
84 | , msDisplayFbo(nullptr) | - | ||||||||||||||||||||||||
85 | , renderer(nullptr) | - | ||||||||||||||||||||||||
86 | , renderPending(true) | - | ||||||||||||||||||||||||
87 | , invalidatePending(false) | - | ||||||||||||||||||||||||
88 | , devicePixelRatio(1) | - | ||||||||||||||||||||||||
89 | { | - | ||||||||||||||||||||||||
90 | qsgnode_set_description(this, ([]() noexcept -> QString { enum { Size = sizeof(u"" "fbonode")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "fbonode" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return executed 10 times by 1 test: qstring_literal_temp;return qstring_literal_temp; Executed by:
executed 10 times by 1 test: }()));return qstring_literal_temp; Executed by:
| 10 | ||||||||||||||||||||||||
91 | } executed 10 times by 1 test: end of block Executed by:
| 10 | ||||||||||||||||||||||||
92 | - | |||||||||||||||||||||||||
93 | ~QSGFramebufferObjectNode() | - | ||||||||||||||||||||||||
94 | { | - | ||||||||||||||||||||||||
95 | delete renderer; | - | ||||||||||||||||||||||||
96 | delete texture(); | - | ||||||||||||||||||||||||
97 | delete fbo; | - | ||||||||||||||||||||||||
98 | delete msDisplayFbo; | - | ||||||||||||||||||||||||
99 | } executed 10 times by 1 test: end of block Executed by:
| 10 | ||||||||||||||||||||||||
100 | - | |||||||||||||||||||||||||
101 | void scheduleRender() | - | ||||||||||||||||||||||||
102 | { | - | ||||||||||||||||||||||||
103 | renderPending = true; | - | ||||||||||||||||||||||||
104 | window->update(); | - | ||||||||||||||||||||||||
105 | } executed 20 times by 1 test: end of block Executed by:
| 20 | ||||||||||||||||||||||||
106 | - | |||||||||||||||||||||||||
107 | QSGTexture *texture() const override | - | ||||||||||||||||||||||||
108 | { | - | ||||||||||||||||||||||||
109 | return executed 20 times by 1 test: QSGSimpleTextureNode::texture();return QSGSimpleTextureNode::texture(); Executed by:
executed 20 times by 1 test: return QSGSimpleTextureNode::texture(); Executed by:
| 20 | ||||||||||||||||||||||||
110 | } | - | ||||||||||||||||||||||||
111 | - | |||||||||||||||||||||||||
112 | public : | - | ||||||||||||||||||||||||
113 | void render() | - | ||||||||||||||||||||||||
114 | { | - | ||||||||||||||||||||||||
115 | if (renderPending
| 20-30 | ||||||||||||||||||||||||
116 | renderPending = false; | - | ||||||||||||||||||||||||
117 | fbo->bind(); | - | ||||||||||||||||||||||||
118 | QOpenGLContext::currentContext()->functions()->glViewport(0, 0, fbo->width(), fbo->height()); | - | ||||||||||||||||||||||||
119 | renderer->render(); | - | ||||||||||||||||||||||||
120 | fbo->bindDefault(); | - | ||||||||||||||||||||||||
121 | - | |||||||||||||||||||||||||
122 | if (msDisplayFbo
| 0-20 | ||||||||||||||||||||||||
123 | QOpenGLFramebufferObject::blitFramebuffer(msDisplayFbo, fbo); never executed: QOpenGLFramebufferObject::blitFramebuffer(msDisplayFbo, fbo); | 0 | ||||||||||||||||||||||||
124 | - | |||||||||||||||||||||||||
125 | markDirty(QSGNode::DirtyMaterial); | - | ||||||||||||||||||||||||
126 | textureChanged(); | - | ||||||||||||||||||||||||
127 | } executed 20 times by 1 test: end of block Executed by:
| 20 | ||||||||||||||||||||||||
128 | } executed 50 times by 1 test: end of block Executed by:
| 50 | ||||||||||||||||||||||||
129 | - | |||||||||||||||||||||||||
130 | void handleScreenChange() | - | ||||||||||||||||||||||||
131 | { | - | ||||||||||||||||||||||||
132 | if (window->effectiveDevicePixelRatio() != devicePixelRatio
| 0 | ||||||||||||||||||||||||
133 | renderer->invalidateFramebufferObject(); | - | ||||||||||||||||||||||||
134 | quickFbo->update(); | - | ||||||||||||||||||||||||
135 | } never executed: end of block | 0 | ||||||||||||||||||||||||
136 | } never executed: end of block | 0 | ||||||||||||||||||||||||
137 | - | |||||||||||||||||||||||||
138 | public: | - | ||||||||||||||||||||||||
139 | QQuickWindow *window; | - | ||||||||||||||||||||||||
140 | QOpenGLFramebufferObject *fbo; | - | ||||||||||||||||||||||||
141 | QOpenGLFramebufferObject *msDisplayFbo; | - | ||||||||||||||||||||||||
142 | QQuickFramebufferObject::Renderer *renderer; | - | ||||||||||||||||||||||||
143 | QQuickFramebufferObject *quickFbo; | - | ||||||||||||||||||||||||
144 | - | |||||||||||||||||||||||||
145 | bool renderPending; | - | ||||||||||||||||||||||||
146 | bool invalidatePending; | - | ||||||||||||||||||||||||
147 | - | |||||||||||||||||||||||||
148 | qreal devicePixelRatio; | - | ||||||||||||||||||||||||
149 | }; | - | ||||||||||||||||||||||||
150 | - | |||||||||||||||||||||||||
151 | static inline bool isOpenGL(QSGRenderContext *rc) | - | ||||||||||||||||||||||||
152 | { | - | ||||||||||||||||||||||||
153 | QSGRendererInterface *rif = rc->sceneGraphContext()->rendererInterface(rc); | - | ||||||||||||||||||||||||
154 | return executed 10 times by 1 test: !rif || rif->graphicsApi() == QSGRendererInterface::OpenGL;return !rif || rif->graphicsApi() == QSGRendererInterface::OpenGL; Executed by:
executed 10 times by 1 test: return !rif || rif->graphicsApi() == QSGRendererInterface::OpenGL; Executed by:
| 10 | ||||||||||||||||||||||||
155 | } | - | ||||||||||||||||||||||||
156 | - | |||||||||||||||||||||||||
157 | - | |||||||||||||||||||||||||
158 | - | |||||||||||||||||||||||||
159 | - | |||||||||||||||||||||||||
160 | QSGNode *QQuickFramebufferObject::updatePaintNode(QSGNode *node, UpdatePaintNodeData *) | - | ||||||||||||||||||||||||
161 | { | - | ||||||||||||||||||||||||
162 | QSGFramebufferObjectNode *n = static_cast<QSGFramebufferObjectNode *>(node); | - | ||||||||||||||||||||||||
163 | - | |||||||||||||||||||||||||
164 | - | |||||||||||||||||||||||||
165 | - | |||||||||||||||||||||||||
166 | - | |||||||||||||||||||||||||
167 | - | |||||||||||||||||||||||||
168 | - | |||||||||||||||||||||||||
169 | if (!n
| 0-10 | ||||||||||||||||||||||||
170 | return never executed: nullptr;return nullptr; never executed: return nullptr; | 0 | ||||||||||||||||||||||||
171 | - | |||||||||||||||||||||||||
172 | QQuickFramebufferObjectPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
173 | - | |||||||||||||||||||||||||
174 | if (!n
| 10 | ||||||||||||||||||||||||
175 | if (!isOpenGL(d->sceneGraphRenderContext())
| 0-10 | ||||||||||||||||||||||||
176 | return never executed: nullptr;return nullptr; never executed: return nullptr; | 0 | ||||||||||||||||||||||||
177 | if (!d->node
| 0-10 | ||||||||||||||||||||||||
178 | d->node = new QSGFramebufferObjectNode; executed 10 times by 1 test: d->node = new QSGFramebufferObjectNode; Executed by:
| 10 | ||||||||||||||||||||||||
179 | n = d->node; | - | ||||||||||||||||||||||||
180 | } executed 10 times by 1 test: end of block Executed by:
| 10 | ||||||||||||||||||||||||
181 | - | |||||||||||||||||||||||||
182 | if (!n->renderer
| 10 | ||||||||||||||||||||||||
183 | n->window = window(); | - | ||||||||||||||||||||||||
184 | n->renderer = createRenderer(); | - | ||||||||||||||||||||||||
185 | n->renderer->data = n; | - | ||||||||||||||||||||||||
186 | n->quickFbo = this; | - | ||||||||||||||||||||||||
187 | connect(window(), qFlagLocation("2""beforeRendering()" "\0" __FILE__ ":" "302"), n, qFlagLocation("1""render()" "\0" __FILE__ ":" "302")); | - | ||||||||||||||||||||||||
188 | connect(window(), qFlagLocation("2""screenChanged(QScreen*)" "\0" __FILE__ ":" "303"), n, qFlagLocation("1""handleScreenChange()" "\0" __FILE__ ":" "303")); | - | ||||||||||||||||||||||||
189 | } executed 10 times by 1 test: end of block Executed by:
| 10 | ||||||||||||||||||||||||
190 | - | |||||||||||||||||||||||||
191 | n->renderer->synchronize(this); | - | ||||||||||||||||||||||||
192 | - | |||||||||||||||||||||||||
193 | QSize minFboSize = d->sceneGraphContext()->minimumFBOSize(); | - | ||||||||||||||||||||||||
194 | QSize desiredFboSize(qMax<int>(minFboSize.width(), width()), | - | ||||||||||||||||||||||||
195 | qMax<int>(minFboSize.height(), height())); | - | ||||||||||||||||||||||||
196 | - | |||||||||||||||||||||||||
197 | n->devicePixelRatio = window()->effectiveDevicePixelRatio(); | - | ||||||||||||||||||||||||
198 | desiredFboSize *= n->devicePixelRatio; | - | ||||||||||||||||||||||||
199 | - | |||||||||||||||||||||||||
200 | if (n->fbo
| 0-10 | ||||||||||||||||||||||||
201 | delete n->texture(); | - | ||||||||||||||||||||||||
202 | delete n->fbo; | - | ||||||||||||||||||||||||
203 | n->fbo = nullptr; | - | ||||||||||||||||||||||||
204 | delete n->msDisplayFbo; | - | ||||||||||||||||||||||||
205 | n->msDisplayFbo = nullptr; | - | ||||||||||||||||||||||||
206 | n->invalidatePending = false; | - | ||||||||||||||||||||||||
207 | } executed 10 times by 1 test: end of block Executed by:
| 10 | ||||||||||||||||||||||||
208 | - | |||||||||||||||||||||||||
209 | if (!n->fbo
| 0-20 | ||||||||||||||||||||||||
210 | n->fbo = n->renderer->createFramebufferObject(desiredFboSize); | - | ||||||||||||||||||||||||
211 | - | |||||||||||||||||||||||||
212 | GLuint displayTexture = n->fbo->texture(); | - | ||||||||||||||||||||||||
213 | - | |||||||||||||||||||||||||
214 | if (n->fbo->format().samples() > 0
| 0-20 | ||||||||||||||||||||||||
215 | n->msDisplayFbo = new QOpenGLFramebufferObject(n->fbo->size()); | - | ||||||||||||||||||||||||
216 | displayTexture = n->msDisplayFbo->texture(); | - | ||||||||||||||||||||||||
217 | } never executed: end of block | 0 | ||||||||||||||||||||||||
218 | - | |||||||||||||||||||||||||
219 | n->setTexture(window()->createTextureFromId(displayTexture, | - | ||||||||||||||||||||||||
220 | n->fbo->size(), | - | ||||||||||||||||||||||||
221 | QQuickWindow::TextureHasAlphaChannel)); | - | ||||||||||||||||||||||||
222 | } executed 20 times by 1 test: end of block Executed by:
| 20 | ||||||||||||||||||||||||
223 | - | |||||||||||||||||||||||||
224 | n->setTextureCoordinatesTransform(d->mirrorVertically ? QSGSimpleTextureNode::MirrorVertically : QSGSimpleTextureNode::NoTransform); | - | ||||||||||||||||||||||||
225 | n->setFiltering(d->smooth ? QSGTexture::Linear : QSGTexture::Nearest); | - | ||||||||||||||||||||||||
226 | n->setRect(0, 0, width(), height()); | - | ||||||||||||||||||||||||
227 | - | |||||||||||||||||||||||||
228 | n->scheduleRender(); | - | ||||||||||||||||||||||||
229 | - | |||||||||||||||||||||||||
230 | return executed 20 times by 1 test: n;return n; Executed by:
executed 20 times by 1 test: return n; Executed by:
| 20 | ||||||||||||||||||||||||
231 | } | - | ||||||||||||||||||||||||
232 | - | |||||||||||||||||||||||||
233 | - | |||||||||||||||||||||||||
234 | - | |||||||||||||||||||||||||
235 | - | |||||||||||||||||||||||||
236 | bool QQuickFramebufferObject::isTextureProvider() const | - | ||||||||||||||||||||||||
237 | { | - | ||||||||||||||||||||||||
238 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||||||||
239 | } | - | ||||||||||||||||||||||||
240 | - | |||||||||||||||||||||||||
241 | - | |||||||||||||||||||||||||
242 | - | |||||||||||||||||||||||||
243 | - | |||||||||||||||||||||||||
244 | QSGTextureProvider *QQuickFramebufferObject::textureProvider() const | - | ||||||||||||||||||||||||
245 | { | - | ||||||||||||||||||||||||
246 | - | |||||||||||||||||||||||||
247 | - | |||||||||||||||||||||||||
248 | - | |||||||||||||||||||||||||
249 | if (QQuickItem::isTextureProvider()
| 0 | ||||||||||||||||||||||||
250 | return never executed: QQuickItem::textureProvider();return QQuickItem::textureProvider(); never executed: return QQuickItem::textureProvider(); | 0 | ||||||||||||||||||||||||
251 | - | |||||||||||||||||||||||||
252 | const QQuickFramebufferObjectPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
253 | QQuickWindow *w = window(); | - | ||||||||||||||||||||||||
254 | if (!w
| 0 | ||||||||||||||||||||||||
255 | QMessageLogger(__FILE__, 370, __PRETTY_FUNCTION__).warning("QQuickFramebufferObject::textureProvider: can only be queried on the rendering thread of an exposed window"); | - | ||||||||||||||||||||||||
256 | return never executed: nullptr;return nullptr; never executed: return nullptr; | 0 | ||||||||||||||||||||||||
257 | } | - | ||||||||||||||||||||||||
258 | if (!isOpenGL(d->sceneGraphRenderContext())
| 0 | ||||||||||||||||||||||||
259 | return never executed: nullptr;return nullptr; never executed: return nullptr; | 0 | ||||||||||||||||||||||||
260 | if (!d->node
| 0 | ||||||||||||||||||||||||
261 | d->node = new QSGFramebufferObjectNode; never executed: d->node = new QSGFramebufferObjectNode; | 0 | ||||||||||||||||||||||||
262 | return never executed: d->node;return d->node; never executed: return d->node; | 0 | ||||||||||||||||||||||||
263 | } | - | ||||||||||||||||||||||||
264 | - | |||||||||||||||||||||||||
265 | - | |||||||||||||||||||||||||
266 | - | |||||||||||||||||||||||||
267 | - | |||||||||||||||||||||||||
268 | void QQuickFramebufferObject::releaseResources() | - | ||||||||||||||||||||||||
269 | { | - | ||||||||||||||||||||||||
270 | - | |||||||||||||||||||||||||
271 | - | |||||||||||||||||||||||||
272 | - | |||||||||||||||||||||||||
273 | QQuickFramebufferObjectPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
274 | d->node = nullptr; | - | ||||||||||||||||||||||||
275 | } executed 10 times by 1 test: end of block Executed by:
| 10 | ||||||||||||||||||||||||
276 | - | |||||||||||||||||||||||||
277 | void QQuickFramebufferObject::invalidateSceneGraph() | - | ||||||||||||||||||||||||
278 | { | - | ||||||||||||||||||||||||
279 | QQuickFramebufferObjectPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
280 | d->node = nullptr; | - | ||||||||||||||||||||||||
281 | } never executed: end of block | 0 | ||||||||||||||||||||||||
282 | QQuickFramebufferObject::Renderer::Renderer() | - | ||||||||||||||||||||||||
283 | : data(nullptr) | - | ||||||||||||||||||||||||
284 | { | - | ||||||||||||||||||||||||
285 | } executed 10 times by 1 test: end of block Executed by:
| 10 | ||||||||||||||||||||||||
286 | QQuickFramebufferObject::Renderer::~Renderer() | - | ||||||||||||||||||||||||
287 | { | - | ||||||||||||||||||||||||
288 | } | - | ||||||||||||||||||||||||
289 | - | |||||||||||||||||||||||||
290 | - | |||||||||||||||||||||||||
291 | - | |||||||||||||||||||||||||
292 | - | |||||||||||||||||||||||||
293 | QOpenGLFramebufferObject *QQuickFramebufferObject::Renderer::framebufferObject() const | - | ||||||||||||||||||||||||
294 | { | - | ||||||||||||||||||||||||
295 | return executed 20 times by 1 test: data ? ((QSGFramebufferObjectNode *) data)->fbo : nullptr;return data ? ((QSGFramebufferObjectNode *) data)->fbo : nullptr; Executed by:
executed 20 times by 1 test: return data ? ((QSGFramebufferObjectNode *) data)->fbo : nullptr; Executed by:
| 20 | ||||||||||||||||||||||||
296 | } | - | ||||||||||||||||||||||||
297 | void QQuickFramebufferObject::Renderer::synchronize(QQuickFramebufferObject *item) | - | ||||||||||||||||||||||||
298 | { | - | ||||||||||||||||||||||||
299 | (void)item;; | - | ||||||||||||||||||||||||
300 | } never executed: end of block | 0 | ||||||||||||||||||||||||
301 | - | |||||||||||||||||||||||||
302 | - | |||||||||||||||||||||||||
303 | - | |||||||||||||||||||||||||
304 | - | |||||||||||||||||||||||||
305 | - | |||||||||||||||||||||||||
306 | void QQuickFramebufferObject::Renderer::invalidateFramebufferObject() | - | ||||||||||||||||||||||||
307 | { | - | ||||||||||||||||||||||||
308 | if (data
| 0-8 | ||||||||||||||||||||||||
309 | (( executed 8 times by 1 test: QSGFramebufferObjectNode *) data)->invalidatePending = true;((QSGFramebufferObjectNode *) data)->invalidatePending = true; Executed by:
executed 8 times by 1 test: ((QSGFramebufferObjectNode *) data)->invalidatePending = true; Executed by:
| 8 | ||||||||||||||||||||||||
310 | } executed 8 times by 1 test: end of block Executed by:
| 8 | ||||||||||||||||||||||||
311 | QOpenGLFramebufferObject *QQuickFramebufferObject::Renderer::createFramebufferObject(const QSize &size) | - | ||||||||||||||||||||||||
312 | { | - | ||||||||||||||||||||||||
313 | return never executed: new QOpenGLFramebufferObject(size);return new QOpenGLFramebufferObject(size); never executed: return new QOpenGLFramebufferObject(size); | 0 | ||||||||||||||||||||||||
314 | } | - | ||||||||||||||||||||||||
315 | void QQuickFramebufferObject::Renderer::update() | - | ||||||||||||||||||||||||
316 | { | - | ||||||||||||||||||||||||
317 | if (data
| 0 | ||||||||||||||||||||||||
318 | (( never executed: QSGFramebufferObjectNode *) data)->scheduleRender();((QSGFramebufferObjectNode *) data)->scheduleRender(); never executed: ((QSGFramebufferObjectNode *) data)->scheduleRender(); | 0 | ||||||||||||||||||||||||
319 | } never executed: end of block | 0 | ||||||||||||||||||||||||
320 | - | |||||||||||||||||||||||||
321 | - | |||||||||||||||||||||||||
322 | - | |||||||||||||||||||||||||
323 | - | |||||||||||||||||||||||||
Switch to Source code | Preprocessed file |