class QOpenGLShader#

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

Inheritance diagram of PySide6.QtOpenGL.QOpenGLShader

概述#

方法#

静态函数#

注意

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

详细描述#

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

QOpenGLShaderQOpenGLShaderProgram 可以为程序员屏蔽编译和链接顶点着色器和片段着色器的细节。

另请参阅

QOpenGLShaderProgram

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])#
参数:

构建一个新的指定的《code class="xref py py-class docutils literal notranslate">QOpenGLShader》类型的《code class="docutils literal notranslate">QOpenGLShader》对象,并将其附加到《code class="docutils literal notranslate">parent》。如果不支持着色器程序,则《code class="xref py py-meth docutils literal notranslate">hasOpenGLShaderPrograms()》将返回 false。

此构造函数通常随后调用《code class="xref py py-meth docutils literal notranslate">compileSourceCode()》或《code class="xref py py-meth docutils literal notranslate">compileSourceFile()》。

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

另请参阅

compileSourceCode / compileSourceFile

compileSourceCode(source)#
参数:

source – 《code class="xref py py-class docutils literal notranslate">QByteArray

返回类型::

bool

这是一个重载函数。

为此着色器设置源代码并对其进行编译。如果源代码成功编译,返回 true,否则返回 false

另请参阅

compileSourceFile()

compileSourceCode(source)
参数:

source – str

返回类型::

bool

这是一个重载函数。

为此着色器设置源代码并对其进行编译。如果源代码成功编译,返回 true,否则返回 false

另请参阅

compileSourceFile()

compileSourceCode(source)
参数:

source – str

返回类型::

bool

为此着色器设置源代码并对其进行编译。如果源代码成功编译,返回 true,否则返回 false

另请参阅

compileSourceFile()

compileSourceFile(fileName)#
参数:

fileName – str

返回类型::

bool

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

另请参阅

compileSourceCode()

static hasOpenGLShaders(type[, context=None])#
参数:
  • typeShaderTypeBit 组合

  • context – 《code class="xref py py-class docutils literal notranslate">QOpenGLContext

返回类型::

bool

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

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

isCompiled()#
返回类型::

bool

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

另请参阅

compileSourceCode / compileSourceFile

log()#
返回类型::

str

返回最后编译过程中出现的错误和警告。

另请参阅

compileSourceCode / compileSourceFile

shaderId()#
返回类型::

int

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

另请参阅

programId()

shaderType()#
返回类型::

ShaderTypeBit 的组合

返回此着色器的类型。

sourceCode()#
返回类型::

QByteArray

返回此着色器的源代码。

另请参阅

compileSourceCode()