PySide6.QtOpenGL.QOpenGLShader

class QOpenGLShader

QOpenGLShader 类允许编译 OpenGL 着色器。更多

PySide6.QtOpenGL.QOpenGLShader 的继承图

概要

方法

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

该类支持使用OpenGL着色语言(GLSL)和OpenGL/ES着色语言(GLSL/ES)编写的着色器。

QOpenGLShaderQOpenGLShaderProgram 使程序员无需了解编译和链接顶点和片段着色器的细节。

另请参阅

QOpenGLShaderProgram

class ShaderTypeBit

(继承自 enum.Flag) 此枚举指定正在创建的 QOpenGLShader 的类型。

常量

描述

QOpenGLShader.Vertex

用OpenGL着色语言(GLSL)编写的顶点着色器。

QOpenGLShader.Fragment

使用OpenGL着色语言(GLSL)编写的片段着色器。

QOpenGLShader.Geometry

使用OpenGL着色语言(GLSL)编写的几何着色器(需要OpenGL >= 3.2或OpenGL ES >= 3.2)。

QOpenGLShader.TessellationControl

使用OpenGL着色语言(GLSL)编写的曲面细分控制着色器(需要OpenGL >= 4.0或OpenGL ES >= 3.2)。

QOpenGLShader.TessellationEvaluation

使用OpenGL着色语言(GLSL)编写的细分评估着色器(需要OpenGL >= 4.0或OpenGL ES >= 3.2)。

QOpenGLShader.Compute

使用OpenGL着色语言(GLSL)编写的计算着色器(需要OpenGL >= 4.3或OpenGL ES >= 3.1)。

__init__(type[, parent=None])
Parameters:

构造一个新的QOpenGLShader对象,其类型为指定的type,并将其附加到parent。如果不支持着色器程序,hasOpenGLShaderPrograms()将返回false。

此构造函数通常后跟对 compileSourceCode()compileSourceFile() 的调用。

着色器将与当前的 QOpenGLContext 关联。

compileSourceCode(source)
Parameters:

QByteArray

Return type:

布尔

这是一个重载函数。

设置此着色器的source代码并编译它。如果源代码成功编译,则返回true,否则返回false。

另请参阅

compileSourceFile()

compileSourceCode(source)
Parameters:

source – str

Return type:

布尔

这是一个重载函数。

设置此着色器的source代码并编译它。如果源代码成功编译,则返回true,否则返回false。

另请参阅

compileSourceFile()

compileSourceCode(source)
Parameters:

source – str

Return type:

布尔

设置此着色器的source代码并编译它。如果源代码成功编译,则返回true,否则返回false。

另请参阅

compileSourceFile()

compileSourceFile(fileName)
Parameters:

fileName – str

Return type:

布尔

将此着色器的源代码设置为fileName的内容并编译它。如果文件可以打开并且源代码可以编译,则返回true,否则返回false。

另请参阅

compileSourceCode()

static hasOpenGLShaders(type[, context=None])
Parameters:
Return type:

布尔

如果此系统支持类型为 type 的着色器程序,则返回 true;否则返回 false。

context 用于解析 GLSL 扩展。如果 contextNone,则使用 QOpenGLContext::currentContext()。

isCompiled()
Return type:

布尔

如果此着色器已编译,则返回true;否则返回false。

log()
Return type:

字符串

返回上次编译期间发生的错误和警告。

shaderId()
Return type:

整数

返回与此着色器关联的OpenGL标识符。

另请参阅

programId()

shaderType()
Return type:

ShaderTypeBit 的组合

返回此着色器的类型。

sourceCode()
Return type:

QByteArray

返回此着色器的源代码。

另请参阅

compileSourceCode()