QQuickFramebufferObject是主体,另外两个是辅助。QSGFramebufferObjectNode存在于渲染线程中,负责将自定义的几何元素渲染到FBO中。QOpenGLFramebufferObject就是具体的openGL中FBO的封装映射。

qtdeclarative\src\quick\items\qquickframebufferobject.h
class Q_QUICK_EXPORT QQuickFramebufferObject : public QQuickItem
{
class Q_QUICK_EXPORT Renderer {
virtual QOpenGLFramebufferObject *createFramebufferObject(const QSize &size);
friend class QSGFramebufferObjectNode;
}
}
qtdeclarative\src\quick\items\qquickframebufferobject.cpp
class QSGFramebufferObjectNode : public QSGTextureProvider, public QSGSimpleTextureNode
{
}
QSGNode *QQuickFramebufferObject::updatePaintNode(QSGNode *node, UpdatePaintNodeData *)
{
d->node = new QSGFramebufferObjectNode;
n = d->node;
n->fbo = n->renderer->createFramebufferObject(desiredFboSize);
connec

本文探讨了C++中的QQuickFramebufferObject及其与QSGFramebufferObjectNode、QOpenGLFramebufferObject的关系。QQuickFramebufferObject作为核心,QSGFramebufferObjectNode在渲染线程中将几何元素渲染到FBO,而QOpenGLFramebufferObject是对OpenGL FBO的封装和映射。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



