QT的QSGMaterialShader类的使用
详细说明
QSGMaterialShader类表示渲染器中的OpenGL着色器程序。
QSGMaterialShader API是非常底层的。可通过QSGSimpleMaterialShader获得几乎提供所有相同功能的更方便的API。
QSGMaterial和QSGMaterialShader形成紧密的关系。对于一个场景图(包括嵌套图),存在一个唯一的QSGMaterialShader实例,该实例封装了场景图用于渲染该材质的QOpenGLShaderProgram,例如将着色器着色为几何的平坦着色。每个QSGGeometryNode可以具有唯一的QSGMaterial,其中包含绘制该节点时应如何配置着色器,例如用于渲染几何的实际颜色。
用户绝不会明确创建QSGMaterialShader的实例,它将由场景图通过QSGMaterial :: createShader()进行创建。场景图将通过场景图确保每个着色器实现只有一个实例。
从vertexShader()返回的源代码用于控制材质如何处理来自几何体的vertiex数据。 fragmentShader()返回的源代码用于控制材料应如何填充几何图形中的每个像素。初始化过程中仅查询一次顶点和片段源代码,以后更改这些函数返回的内容将没有任何效果。
当开始使用着色器时,场景图会调用activate()函数。当不再使用着色器时,场景图将调用停用功能。处于活动状态时,场景图可以对updateState()进行一个或多个调用,这将为要渲染的每个单独的几何体更新着色器的状态。
attributeNames()返回在vertexShader()中使用的属性的名称。这些在activate()和deactivat
总结
以上是生活随笔为你收集整理的QT的QSGMaterialShader类的使用的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: QT的QSGGeometryNode类的
- 下一篇: QT的QSGSimpleMaterial