QShaderProgramBuilder 类

class Qt3DRender::QShaderProgramBuilder

从加载的图中生成着色器程序内容。更多信息...

标题 #include <QShaderProgramBuilder>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmakeQT += 3drender
实例化方式 ShaderProgramBuilder
继承 Qt3DCore::QNode

属性

公共函数

QByteArraycomputeShaderCode() const
QUrlcomputeShaderGraph() const
QStringListenabledLayers() const
QByteArrayfragmentShaderCode() const
QUrlfragmentShaderGraph() const
QByteArraygeometryShaderCode() const
QUrlgeometryShaderGraph() const
Qt3DRender::QShaderProgram *shaderProgram() const
QByteArraytessellationControlShaderCode() const
QUrltessellationControlShaderGraph() const
QByteArraytessellationEvaluationShaderCode() const
QUrltessellationEvaluationShaderGraph() const
QByteArrayvertexShaderCode() const
QUrlvertexShaderGraph() const

公共槽区

voidsetComputeShaderGraph(const QUrl &computeShaderGraph)
voidsetEnabledLayers(const QStringList &layers)
voidsetFragmentShaderGraph(const QUrl &fragmentShaderGraph)
voidsetGeometryShaderGraph(const QUrl &geometryShaderGraph)
voidsetShaderProgram(Qt3DRender::QShaderProgram *program)
voidsetTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph)
voidsetTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph)
voidsetVertexShaderGraph(const QUrl &vertexShaderGraph)

信号

voidcomputeShaderCodeChanged(const QByteArray &computeShaderCode)
voidcomputeShaderGraphChanged(const QUrl &computeShaderGraph)
voidenabledLayersChanged(const QStringList &layers)
voidfragmentShaderCodeChanged(const QByteArray &fragmentShaderCode)
voidfragmentShaderGraphChanged(const QUrl &fragmentShaderGraph)
voidgeometryShaderCodeChanged(const QByteArray &geometryShaderCode)
voidgeometryShaderGraphChanged(const QUrl &geometryShaderGraph)
voidshaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)
voidtessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode)
voidtessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph)
voidtessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode)
voidtessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph)
voidvertexShaderCodeChanged(const QByteArray &vertexShaderCode)
voidvertexShaderGraphChanged(const QUrl &vertexShaderGraph)

详细说明

着色器程序构建器由几个不同的着色器图组成,用于生成着色器代码。

维护一个生成的着色器代码缓存。默认情况下,生成的着色器保存在QStandardPaths::writableLocation(QStandardPaths::TempLocation))。此路径可以通过设置环境变量 QT3D_WRITABLE_CACHE_PATH 为有效的可写路径来覆盖。

可以通过设置环境变量 QT3D_DISABLE_SHADER_CACHE 禁用缓存的用途。

在大多数情况下,Qt 3D 会检测到对图形的更改,并生成新的缓存条目。一个不会发生这种情况的例子是当包含图形的代码片段发生变化时。为此,可以通过清除缓存目录或设置环境变量QT3D_REBUILD_SHADER_CACHE,强制重新生成着色器代码。

属性文档

[只读] computeShaderCode : const QByteArray

保存生成的计算着色器代码。

访问函数

QByteArraycomputeShaderCode() const

通知信号

voidcomputeShaderCodeChanged(const QByteArray &computeShaderCode)

computeShaderGraph : QUrl

保存由本着色器程序构建器使用的计算着色器图的URL。

访问函数

QUrlcomputeShaderGraph() const
voidsetComputeShaderGraph(const QUrl &computeShaderGraph)

通知信号

voidcomputeShaderGraphChanged(const QUrl &computeShaderGraph)

enabledLayers : QStringList

保存在本构建器代码生成期间将在着色器图上激活的层列表。

访问函数

QStringListenabledLayers() const
voidsetEnabledLayers(const QStringList &layers)

通知信号

voidenabledLayersChanged(const QStringList &layers)

[只读] fragmentShaderCode : const QByteArray

保存生成的片段着色器代码。

访问函数

QByteArrayfragmentShaderCode() const

通知信号

voidfragmentShaderCodeChanged(const QByteArray &fragmentShaderCode)

fragmentShaderGraph : QUrl

保存由本着色器程序构建器使用的片段着色器图的URL。

访问函数

QUrlfragmentShaderGraph() const
voidsetFragmentShaderGraph(const QUrl &fragmentShaderGraph)

通知信号

voidfragmentShaderGraphChanged(const QUrl &fragmentShaderGraph)

[只读] geometryShaderCode : const QByteArray

保存生成的几何着色器代码。

访问函数

QByteArraygeometryShaderCode() const

通知信号

voidgeometryShaderCodeChanged(const QByteArray &geometryShaderCode)

geometryShaderGraph : QUrl

保存由本着色器程序构建器使用的几何着色器图的URL。

访问函数

QUrlgeometryShaderGraph() const
voidsetGeometryShaderGraph(const QUrl &geometryShaderGraph)

通知信号

voidgeometryShaderGraphChanged(const QUrl &geometryShaderGraph)

shaderProgram : Qt3DRender::QShaderProgram*

保存本构建器生成代码的着色器程序。

访问函数

Qt3DRender::QShaderProgram *shaderProgram() const
voidsetShaderProgram(Qt3DRender::QShaderProgram *program)

通知信号

voidshaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

[只读] tessellationControlShaderCode : const QByteArray

存储生成细分控制着色器代码。

访问函数

QByteArraytessellationControlShaderCode() const

通知信号

voidtessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode)

tessellationControlShaderGraph : QUrl

存储该着色器程序构建器所使用的细分控制着色器图的URL。

访问函数

QUrltessellationControlShaderGraph() const
voidsetTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph)

通知信号

voidtessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph)

[只读] tessellationEvaluationShaderCode : const QByteArray

存储生成细分评估着色器代码。

访问函数

QByteArraytessellationEvaluationShaderCode() const

通知信号

voidtessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode)

tessellationEvaluationShaderGraph : QUrl

存储该着色器程序构建器所使用的细分评估着色器图的URL。

访问函数

QUrltessellationEvaluationShaderGraph() const
voidsetTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph)

通知信号

voidtessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph)

[只读] vertexShaderCode : const QByteArray

存储生成顶点着色器代码。

访问函数

QByteArrayvertexShaderCode() const

通知信号

voidvertexShaderCodeChanged(const QByteArray &vertexShaderCode)

vertexShaderGraph : QUrl

存储该着色器程序构建器所使用的顶点着色器图的URL。

访问函数

QUrlvertexShaderGraph() const
voidsetVertexShaderGraph(const QUrl &vertexShaderGraph)

通知信号

voidvertexShaderGraphChanged(const QUrl &vertexShaderGraph)

© 2024 Qt公司。这里包含的文档贡献是各自所有者的版权。提供的文档受GNU自由文档许可证版本1.3的许可,由自由软件基金会发布。Qt及其相关标志是芬兰和/或其他国家的Qt公司的商标。所有其他商标均为其各自所有者的财产。