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公司的商标。所有其他商标均为其各自所有者的财产。