QShaderProgramBuilder 类
class Qt3DRender::QShaderProgramBuilder从加载的图中生成着色器程序内容。更多信息...
| 标题 | #include <QShaderProgramBuilder> |
| CMake | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake | QT += 3drender |
| 实例化方式 | ShaderProgramBuilder |
| 继承 | Qt3DCore::QNode |
属性
|
|
公共函数
| QByteArray | computeShaderCode() const |
| QUrl | computeShaderGraph() const |
| QStringList | enabledLayers() const |
| QByteArray | fragmentShaderCode() const |
| QUrl | fragmentShaderGraph() const |
| QByteArray | geometryShaderCode() const |
| QUrl | geometryShaderGraph() const |
| Qt3DRender::QShaderProgram * | shaderProgram() const |
| QByteArray | tessellationControlShaderCode() const |
| QUrl | tessellationControlShaderGraph() const |
| QByteArray | tessellationEvaluationShaderCode() const |
| QUrl | tessellationEvaluationShaderGraph() const |
| QByteArray | vertexShaderCode() const |
| QUrl | vertexShaderGraph() const |
公共槽区
| void | setComputeShaderGraph(const QUrl &computeShaderGraph) |
| void | setEnabledLayers(const QStringList &layers) |
| void | setFragmentShaderGraph(const QUrl &fragmentShaderGraph) |
| void | setGeometryShaderGraph(const QUrl &geometryShaderGraph) |
| void | setShaderProgram(Qt3DRender::QShaderProgram *program) |
| void | setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph) |
| void | setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph) |
| void | setVertexShaderGraph(const QUrl &vertexShaderGraph) |
信号
| void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
| void | computeShaderGraphChanged(const QUrl &computeShaderGraph) |
| void | enabledLayersChanged(const QStringList &layers) |
| void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
| void | fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph) |
| void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
| void | geometryShaderGraphChanged(const QUrl &geometryShaderGraph) |
| void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
| void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
| void | tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph) |
| void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
| void | tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph) |
| void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
| void | vertexShaderGraphChanged(const QUrl &vertexShaderGraph) |
详细说明
着色器程序构建器由几个不同的着色器图组成,用于生成着色器代码。
维护一个生成的着色器代码缓存。默认情况下,生成的着色器保存在QStandardPaths::writableLocation(QStandardPaths::TempLocation))。此路径可以通过设置环境变量 QT3D_WRITABLE_CACHE_PATH 为有效的可写路径来覆盖。
可以通过设置环境变量 QT3D_DISABLE_SHADER_CACHE 禁用缓存的用途。
在大多数情况下,Qt 3D 会检测到对图形的更改,并生成新的缓存条目。一个不会发生这种情况的例子是当包含图形的代码片段发生变化时。为此,可以通过清除缓存目录或设置环境变量QT3D_REBUILD_SHADER_CACHE,强制重新生成着色器代码。
属性文档
[只读] computeShaderCode : const QByteArray
保存生成的计算着色器代码。
访问函数
| QByteArray | computeShaderCode() const |
通知信号
| void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
computeShaderGraph : QUrl
保存由本着色器程序构建器使用的计算着色器图的URL。
访问函数
| QUrl | computeShaderGraph() const |
| void | setComputeShaderGraph(const QUrl &computeShaderGraph) |
通知信号
| void | computeShaderGraphChanged(const QUrl &computeShaderGraph) |
enabledLayers : QStringList
保存在本构建器代码生成期间将在着色器图上激活的层列表。
访问函数
| QStringList | enabledLayers() const |
| void | setEnabledLayers(const QStringList &layers) |
通知信号
| void | enabledLayersChanged(const QStringList &layers) |
[只读] fragmentShaderCode : const QByteArray
保存生成的片段着色器代码。
访问函数
| QByteArray | fragmentShaderCode() const |
通知信号
| void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
fragmentShaderGraph : QUrl
保存由本着色器程序构建器使用的片段着色器图的URL。
访问函数
| QUrl | fragmentShaderGraph() const |
| void | setFragmentShaderGraph(const QUrl &fragmentShaderGraph) |
通知信号
| void | fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph) |
[只读] geometryShaderCode : const QByteArray
保存生成的几何着色器代码。
访问函数
| QByteArray | geometryShaderCode() const |
通知信号
| void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
geometryShaderGraph : QUrl
保存由本着色器程序构建器使用的几何着色器图的URL。
访问函数
| QUrl | geometryShaderGraph() const |
| void | setGeometryShaderGraph(const QUrl &geometryShaderGraph) |
通知信号
| void | geometryShaderGraphChanged(const QUrl &geometryShaderGraph) |
shaderProgram : Qt3DRender::QShaderProgram*
保存本构建器生成代码的着色器程序。
访问函数
| Qt3DRender::QShaderProgram * | shaderProgram() const |
| void | setShaderProgram(Qt3DRender::QShaderProgram *program) |
通知信号
| void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
[只读] tessellationControlShaderCode : const QByteArray
存储生成细分控制着色器代码。
访问函数
| QByteArray | tessellationControlShaderCode() const |
通知信号
| void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
tessellationControlShaderGraph : QUrl
存储该着色器程序构建器所使用的细分控制着色器图的URL。
访问函数
| QUrl | tessellationControlShaderGraph() const |
| void | setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph) |
通知信号
| void | tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph) |
[只读] tessellationEvaluationShaderCode : const QByteArray
存储生成细分评估着色器代码。
访问函数
| QByteArray | tessellationEvaluationShaderCode() const |
通知信号
| void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
tessellationEvaluationShaderGraph : QUrl
存储该着色器程序构建器所使用的细分评估着色器图的URL。
访问函数
| QUrl | tessellationEvaluationShaderGraph() const |
| void | setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph) |
通知信号
| void | tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph) |
[只读] vertexShaderCode : const QByteArray
存储生成顶点着色器代码。
访问函数
| QByteArray | vertexShaderCode() const |
通知信号
| void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
vertexShaderGraph : QUrl
存储该着色器程序构建器所使用的顶点着色器图的URL。
访问函数
| QUrl | vertexShaderGraph() const |
| void | setVertexShaderGraph(const QUrl &vertexShaderGraph) |
通知信号
| void | vertexShaderGraphChanged(const QUrl &vertexShaderGraph) |
© 2024 Qt公司。这里包含的文档贡献是各自所有者的版权。提供的文档受GNU自由文档许可证版本1.3的许可,由自由软件基金会发布。Qt及其相关标志是芬兰和/或其他国家的Qt公司的商标。所有其他商标均为其各自所有者的财产。