QLayerFilter 类

class Qt3DRender::QLayerFilter

控制在帧图分支中绘制的图层。 更多...

头文件 #include <QLayerFilter>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmakeQT += 3drender
实例化 LayerFilter
继承自 Qt3DRender::QFrameGraphNode

公共类型

枚举FilterMode { AcceptAnyMatchingLayers, AcceptAllMatchingLayers, DiscardAnyMatchingLayers, DiscardAllMatchingLayers }

属性

公共函数

QLayerFilter(Qt3DCore::QNode *parent = nullptr)
voidaddLayer(Qt3DRender::QLayer *layer)
Qt3DRender::QLayerFilter::FilterModefilterMode() const
QList<Qt3DRender::QLayer *>layers() const
voidremoveLayer(Qt3DRender::QLayer *layer)
voidsetFilterMode(Qt3DRender::QLayerFilter::FilterMode filterMode)

信号

voidfilterModeChanged(Qt3DRender::QLayerFilter::FilterMode filterMode)

详细描述

Qt3DRender::QLayerFilter 可用于指示渲染器绘制帧图该分支中的哪个图层(层)。QLayerFilter 根据添加到 QLayerFilter 的 QLayer 实例以及作为 Qt3DCore::QEntity 的组件选择要绘制的实体。

可以配置 QLayerFilter 以根据 filterMode 属性选择或丢弃具有特定 QLayer 的实体。默认情况下,引用了 QLayer 对象且同时被 QLayerFilter 引用的实体被选中(AcceptAnyMatchingLayers)。

在FrameGraph树中,可以在从根节点到叶子节点的分支中嵌套多个QLayerFilter节点。在这种情况下,过滤将首先使用首次声明的QLayerFilter指定的过滤方法对所有场景实体进行操作。然后,根据已声明的第二个QLayerFilter设置的过滤方法对筛选出的实体子集再次进行过滤。这个过程将重复进行,直到分支中所有QLayerFilter节点都被处理完毕。

成员类型文档

enum QLayerFilter::FilterMode

指定选择绘制实体的规则。

常量描述
Qt3DRender::QLayerFilter::AcceptAnyMatchingLayers0接受引用了一个或多个添加到此QLayerFilterQLayer对象的实体。这是默认选项
Qt3DRender::QLayerFilter::AcceptAllMatchingLayers1接受引用了添加到此QLayerFilter的所有QLayer对象的实体
Qt3DRender::QLayerFilter::DiscardAnyMatchingLayers2丢弃引用了一个或多个添加到此QLayerFilterQLayer对象的实体
Qt3DRender::QLayerFilter::DiscardAllMatchingLayers3丢弃引用了添加到此QLayerFilter的所有QLayer对象的实体

属性文档

filterMode : FilterMode

持有指定选择绘制实体的过滤模式。

默认值是AcceptMatchingLayers。

访问函数

Qt3DRender::QLayerFilter::FilterModefilterMode() const
voidsetFilterMode(Qt3DRender::QLayerFilter::FilterMode filterMode)

通知信号

voidfilterModeChanged(Qt3DRender::QLayerFilter::FilterMode filterMode)

成员函数文档

[explicit] QLayerFilter::QLayerFilter(Qt3DCore::QNode *parent = nullptr)

构造函数创建一个具有指定parent的实例。

void QLayerFilter::addLayer(Qt3DRender::QLayer *layer)

layer添加到当前层列表中

QList<Qt3DRender::QLayer *> QLayerFilter::layers() const

返回当前层列表

void QLayerFilter::removeLayer(Qt3DRender::QLayer *layer)

从当前层列表中删除layer

© 2024 Qt公司 Ltd。此处包含的文档贡献者的版权所有。本提供的文档是根据自由软件基金会的GNU自由文档许可协议版本1.3许可的。Qt和相应的商标是芬兰和/或其他国家的Qt公司 Ltd的商标。所有其他商标均为其所有者的财产。