Qt3DRender::QNoDraw Class
class Qt3DRender::QNoDraw当 FrameGraph 分支中存在Qt3DRender::QNoDraw 节点时,这会阻止渲染器渲染任何基元。更多...
| 标题: | #include <qnodraw.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| 在 QML 中: | NoDraw |
| 继承自: | Qt3DRender::QFrameGraphNode |
| 状态: | 已弃用 |
该类已弃用。我们强烈建议不要在新代码中使用它。
公共函数
| QNoDraw(Qt3DCore::QNode *parent = nullptr) |
详细说明
Qt3DRender::QNoDraw 当 FrameGraph 需要设置某些渲染状态或清除某些缓冲区,且无需绘制任何网格时,应使用此方法。其效果等同于拥有一个与场景中所有可用Qt3DRender::QRenderPass 实例均不匹配的 `Qt3DRender::QRenderPassFilter `,同时避免了实际执行过滤操作带来的开销。
当禁用时,Qt3DRender::QNoDraw 节点不会阻止场景的渲染。因此,切换enabled属性是使Qt3DRender::QNoDraw 激活或停用的方法。
Qt3DRender::QNoDraw 通常作为 Qt3DRenderR::QClearBuffers 节点的子节点使用,以防止在存在多个渲染通道时渲染场景。
Qt3DRender::QViewport *viewport = new Qt3DRender::QViewport();
Qt3DRender::QCameraSelector *cameraSelector = new Qt3DRender::QCameraSelector(viewport);
Qt3DRender::QClearBuffers *clearBuffers = new Qt3DRender::QClearBuffers(cameraSelector);
clearBuffers->setBuffers(Qt3DRender::QClearBuffers::ColorDepthBuffer);
Qt3DRender::QNoDraw *noDraw = new Qt3DRender::QNoDraw(clearBuffers);
Qt3DRender::QRenderPassFilter *mainPass = new Qt3DRender::QRenderPassFilter(cameraSelector);
....
Qt3DRender::QRenderPassFilter *previewPass = new Qt3DRender::QRenderPassFilter(cameraSelector);
....© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.