| 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted by:
| 10 | ||||||||||||||||||||||||
| 100 | - | |||||||||||||||||||||||||
| 101 | void scheduleRender() | - | ||||||||||||||||||||||||
| 102 | { | - | ||||||||||||||||||||||||
| 103 | renderPending = true; | - | ||||||||||||||||||||||||
| 104 | window->update(); | - | ||||||||||||||||||||||||
| 105 | } executed 20 times by 1 test: end of blockExecuted 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 blockExecuted by:
| 20 | ||||||||||||||||||||||||
| 128 | } executed 50 times by 1 test: end of blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 |