- class QOpenGLShaderProgram#
类
QOpenGLShaderProgram
允许链接并使用 OpenGL 着色程序。 更多信息…摘要#
方法#
def
__init__()
def
addShader()
定义
bind()
定义
create()
定义
isLinked()
定义
log()
定义
programId()
定义
release()
定义
shaders()
虚函数#
定义
link()
静态函数#
注释
本文档可能包含从C++自动翻译成Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单的方式来告诉我们。
详细描述#
警告
本节包含从C++自动翻译成Python的代码片段,可能包含错误。
介绍#
此类支持用OpenGL着色语言(GLSL)和OpenGL/ES着色语言(GLSL/ES)编写的着色程序。
QOpenGLShader
和QOpenGLShaderProgram
保护程序员免于编译和链接顶点和片段着色器的细节。以下示例使用提供的源代码
code
创建一个顶点着色程序。一旦编译和链接,通过调用bind()
在当前 QOpenGLContext 中激活着色程序。shader = QOpenGLShader(QOpenGLShader.Vertex) shader.compileSourceCode(code) program = QOpenGLShaderProgram(context) program.addShader(shader) program.link() program.bind()
编写可移植着色程序#
着色器程序由于标准顶点属性和统一变量的支持水平不同,在OpenGL实现中的重用可能会很困难。特别是在GLSL/ES中缺少桌面OpenGL系统中的所有标准变量:
gl_Vertex
、gl_Normal
、gl_Color
等等。桌面OpenGL缺少变量限定符highp
、mediump
和lowp
。QOpenGLShaderProgram
类通过在桌面OpenGL上为所有着色器程序添加以下行,使编写便携式着色器变得更容易:#define highp #define mediump #define lowp
这使得在桌面系统中运行大多数GLSL/ES着色器程序成为可能。程序员应仅使用GLSL/ES中存在的功能,避免使用仅在桌面系统中有效的基本变量名称。
简单着色器示例#
program.addShaderFromSourceCode(QOpenGLShader.Vertex, "attribute highp vec4 vertex;\n" "uniform highp mat4 matrix;\n" "void main(void)\n" "{\n" " gl_Position = matrix * vertex;\n" "}") program.addShaderFromSourceCode(QOpenGLShader.Fragment, "uniform mediump vec4 color;\n" "void main(void)\n" "{\n" " gl_FragColor = color;\n" "}") program.link() program.bind() vertexLocation = program.attributeLocation("vertex") matrixLocation = program.uniformLocation("matrix") colorLocation = program.uniformLocation("color")
使用上述着色器程序,我们可以按照如下方式绘制一个绿色三角形:
triangleVertices = { 60.0f, 10.0f, 0.0f, 110.0f, 110.0f, 0.0f, 10.0f, 110.0f, 0.0f color = QColor(0, 255, 0, 255) pmvMatrix = QMatrix4x4() pmvMatrix.ortho(rect()) program.enableAttributeArray(vertexLocation) program.setAttributeArray(vertexLocation, triangleVertices, 3) program.setUniformValue(matrixLocation, pmvMatrix) program.setUniformValue(colorLocation, color) glDrawArrays(GL_TRIANGLES, 0, 3) program.disableAttributeArray(vertexLocation)
二进制着色器和程序#
可以使用
glShaderBinary()
在shaderId()
的返回值上指定二进制着色器。然后,可以使用addShader()
将包含二进制的QOpenGLShader
实例添加到着色器程序中,并使用link()
以常规方式链接。可以使用
glProgramBinaryOES()
在programId()
的返回值上指定二进制程序。然后应用程序应调用link()
,这将会注意到程序已经被指定和链接,允许对着色器程序执行其他操作。着色器程序ID可以使用create()
函数显式创建。缓存程序二进制#
自 Qt 5.9 版本起,对磁盘上缓存程序二进制文件的支持已经内置。要启用此功能,切换到使用
addCacheableShaderFromSourceCode()
和addCacheableShaderFromSourceFile()
。如果具有 OpenGL ES 3.x 上下文或支持GL_ARB_get_program_binary
,则会透明地将程序二进制文件缓存到 QStandardPaths::GenericCacheLocation 或 QStandardPaths::CacheLocation。当不支持时,调用缓存函数变体与普通变体等效。构造一个新的着色器程序并将其附加到
parent
。程序将在调用addShader()
之前无效。着色器程序将与当前的 QOpenGLContext 关联。
另请参阅
- addCacheableShaderFromSourceCode(type, source)#
- 参数:
type –
ShaderTypeBit
的组合source –
QByteArray
- 返回类型:
bool
这是一个重载函数。
将指定
type
和source
的着色器注册到程序中。与addShaderFromSourceCode()
不同,此函数不执行编译。编译被延迟到link()
,并且可能根本不会发生,因为link()
可能会使用来自 Qt 着色器磁盘缓存的程序二进制文件。这通常会导致性能显著提高。如果着色器已注册或在没有缓存的案例中成功编译,则返回true;如果发生错误,则返回false。编译错误信息可以通过
log()
获取。当通过Qt::AA_DisableShaderDiskCache等禁用磁盘缓存时,或者OpenGL上下文不支持上下文二进制时,调用此函数等同于
addShaderFromSourceCode()
。- addCacheableShaderFromSourceCode(type, source)
- 参数:
type –
ShaderTypeBit
的组合source – 字符串
- 返回类型:
bool
将指定
type
和source
的着色器注册到程序中。与addShaderFromSourceCode()
不同,此函数不执行编译。编译被延迟到link()
,并且可能根本不会发生,因为link()
可能会使用来自 Qt 着色器磁盘缓存的程序二进制文件。这通常会导致性能显著提高。如果着色器已注册或在没有缓存的案例中成功编译,则返回true;如果发生错误,则返回false。编译错误信息可以通过
log()
获取。当通过Qt::AA_DisableShaderDiskCache等禁用磁盘缓存时,或者OpenGL上下文不支持上下文二进制时,调用此函数等同于
addShaderFromSourceCode()
。- addCacheableShaderFromSourceCode(type, source)
- 参数:
type –
ShaderTypeBit
的组合source – 字符串
- 返回类型:
bool
这是一个重载函数。
将指定
type
和source
的着色器注册到程序中。与addShaderFromSourceCode()
不同,此函数不执行编译。编译被延迟到link()
,并且可能根本不会发生,因为link()
可能会使用来自 Qt 着色器磁盘缓存的程序二进制文件。这通常会导致性能显著提高。当通过Qt::AA_DisableShaderDiskCache等禁用磁盘缓存时,或者OpenGL上下文不支持上下文二进制时,调用此函数等同于
addShaderFromSourceCode()
。- addCacheableShaderFromSourceFile(type, fileName)#
- 参数:
type –
ShaderTypeBit
的组合fileName – 字符串
- 返回类型:
bool
将指定
type
和fileName
的着色器注册到该程序中。与addShaderFromSourceFile()
不同,此函数不会执行编译。编译被延迟到link()
,并且可能根本不会发生,因为link()
可能会使用来自Qt着色器磁盘缓存的程序二进制。这通常会导致性能显著提高。如果文件已成功读取,则返回true;如果文件不能打开或着色器正常、非缓存的编译失败,则返回false。编译错误信息可以通过
log()
获取。当通过Qt::AA_DisableShaderDiskCache等禁用磁盘缓存,或者OpenGL上下文不支持上下文二进制时,调用此函数等同于
addShaderFromSourceFile()
。- addShader(shader)#
- 参数:
shader –
QOpenGLShader
- 返回类型:
bool
将编译好的
shader
添加到此着色器程序中。如果着色器添加成功则返回true
,否则返回false
。shader
对象的所有权仍然属于调用者。当此QOpenGLShaderProgram
实例被删除时,它不会被删除。这允许调用者将同一个着色器添加到多个着色器程序中。- addShaderFromSourceCode(type, source)#
- 参数:
type –
ShaderTypeBit
的组合source –
QByteArray
- 返回类型:
bool
这是一个重载函数。
将
source
编译为指定type
的着色器,并添加到此着色器程序中。如果编译成功则返回true
,否则返回false
。编译错误和警告将通过log()
提供获取。此函数旨在通过不首先创建
QOpenGLShader
实例,快速将顶点着色器和片段着色器添加到着色器程序中。- addShaderFromSourceCode(type, source)
- 参数:
type –
ShaderTypeBit
的组合source – 字符串
- 返回类型:
bool
这是一个重载函数。
将
source
编译为指定type
的着色器,并添加到此着色器程序中。如果编译成功则返回true
,否则返回false
。编译错误和警告将通过log()
提供获取。此函数旨在通过不首先创建
QOpenGLShader
实例,快速将顶点着色器和片段着色器添加到着色器程序中。- addShaderFromSourceCode(type, source)
- 参数:
type –
ShaderTypeBit
的组合source – 字符串
- 返回类型:
bool
将
source
编译为指定type
的着色器,并添加到此着色器程序中。如果编译成功则返回true
,否则返回false
。编译错误和警告将通过log()
提供获取。此函数旨在通过不首先创建
QOpenGLShader
实例,快速将顶点着色器和片段着色器添加到着色器程序中。- addShaderFromSourceFile(type, fileName)#
- 参数:
type –
ShaderTypeBit
的组合fileName – 字符串
- 返回类型:
bool
将指定类型
type
的着色器文件fileName
内容编译成着色器,并将其添加到这个着色器程序中。如果编译成功,返回true
,否则返回false
。编译错误和警告将通过log()
获取。此函数旨在通过不首先创建
QOpenGLShader
实例,快速将顶点着色器和片段着色器添加到着色器程序中。- attributeLocation(name)#
- 参数:
name -
QByteArray
- 返回类型:
int
这是一个重载函数。
返回属性
name
在这个着色器程序的参数列表中的位置。如果名称不是本着色器程序的有效属性,则返回 -1。- attributeLocation(name)
- 参数:
name - str
- 返回类型:
int
这是一个重载函数。
返回属性
name
在这个着色器程序的参数列表中的位置。如果名称不是本着色器程序的有效属性,则返回 -1。- attributeLocation(name)
- 参数:
name - str
- 返回类型:
int
返回属性
name
在这个着色器程序的参数列表中的位置。如果名称不是本着色器程序的有效属性,则返回 -1。- bind()#
- 返回类型:
bool
将此着色器程序绑定到当前 QOpenGLContext 并将其设置为当前着色器程序。释放之前绑定的任何着色器程序。这相当于在
programId()
上调用glUseProgram()
。如果程序成功绑定,返回true
,否则返回false
。如果着色器程序尚未链接或需要重新链接,则此函数将调用link()
。- bindAttributeLocation(name, location)#
- 参数:
name -
QByteArray
location – int
这是一个重载函数。
将属性
name
绑定到指定的location
。此函数可以在程序链接之前或之后调用。在程序链接时未明确绑定的任何属性将自动分配位置。当此函数在程序链接后调用时,程序需要重新链接才能使更改生效。
另请参阅
- bindAttributeLocation(name, location)
- 参数:
name - str
location – int
将属性
name
绑定到指定的location
。此函数可以在程序链接之前或之后调用。在程序链接时未明确绑定的任何属性将自动分配位置。当此函数在程序链接后调用时,程序需要重新链接才能使更改生效。
另请参阅
- bindAttributeLocation(name, location)
- 参数:
name - str
location – int
这是一个重载函数。
将属性
name
绑定到指定的location
。此函数可以在程序链接之前或之后调用。在程序链接时未明确绑定的任何属性将自动分配位置。当此函数在程序链接后调用时,程序需要重新链接才能使更改生效。
另请参阅
- create()#
- 返回类型:
bool
请求立即创建着色器程序ID。如果成功返回
true
;否则返回false
。此函数主要在结合
QOpenGLShaderProgram
与其他直接操作着色器程序ID的OpenGL函数(如GL_OES_get_program_binary
)时使用。当通常使用着色器程序时,着色器程序的ID将按需创建。
另请参阅
- defaultInnerTessellationLevels()#
- 返回类型:
浮点数列表
当曲面细分着色器没有输出时,返回用于曲面生成器的默认内部曲面细分级别。有关OpenGL和曲面细分着色器的更多详细信息,请参阅OpenGL曲面细分着色器。
返回描述内部曲面细分级别的浮点数QList。此向量始终有两个元素,但并不是所有元素在每种曲面细分方式下都有意义。
注释
这返回全局OpenGL状态值。它不是特定于此
QOpenGLShaderProgram
实例。注释
该函数仅支持OpenGL >= 4.0,并且在使用OpenGL ES 3.2时不会返回有效结果。
- defaultOuterTessellationLevels()#
- 返回类型:
浮点数列表
当曲面细分着色器没有输出时,返回用于曲面生成器的默认外部曲面细分级别。有关OpenGL和曲面细分着色器的更多详细信息,请参阅OpenGL曲面细分着色器。
返回描述外部曲面细分级别的浮点数QList。此向量始终有四个元素,但并不是所有元素在每种曲面细分方式下都有意义。
注释
这返回全局OpenGL状态值。它不是特定于此
QOpenGLShaderProgram
实例。注释
该函数仅支持OpenGL >= 4.0,并且在使用OpenGL ES 3.2时不会返回有效结果。
- disableAttributeArray(name)#
- 参数:
name - str
这是一个重载函数。
禁用由前面的
enableAttributeArray()
调用启用的名为name
的顶点数组.- disableAttributeArray(location)
- 参数:
location – int
禁用位于
location
的这个着色程序中的顶点数组,该数组之前通过enableAttributeArray()
调用启用。- enableAttributeArray(name)#
- 参数:
name - str
这是一个重载函数。
在此着色程序中启用名为
name
的顶点数组,以便使用setAttributeArray()
在name
上设置的值。- enableAttributeArray(location)
- 参数:
location – int
启用此着色程序中“位置”为
location
的顶点数组,以便在location
上通过setAttributeArray()
设置的值将被着色程序使用。- 静态hasOpenGLShaderPrograms([context=None])#
- 参数:
上下文 –
QOpenGLContext
- 返回类型:
bool
如果系统支持OpenGL着色语言(GLSL)编写的着色程序,则返回
true
;否则返回false
。使用
context
来解析GLSL扩展。如果context
为None
,则使用 QOpenGLContext::currentContext()。- isLinked()#
- 返回类型:
bool
如果此着色程序已链接,则返回
true
;否则返回false
。另请参阅
- link()#
- 返回类型:
bool
将使用
addShader()
添加到程序中的着色器链接起来。如果链接成功,则返回true
;否则返回false
。如果链接失败,可以使用log()
获取错误信息。子类可以覆盖此函数以初始化特定着色程序中使用的属性和统一变量。
如果着色程序已经链接,则再次调用此函数将强制重新链接。
当通过
addCacheableShaderFromSourceCode()
或addCacheableShaderFromSourceFile()
将着色器添加到程序中时,程序二进制支持,磁盘上存在缓存的二进制文件,将跳过实际的编译和链接。相反,将使用 glProgramBinary() 通过二进制blob初始化程序。如果没有缓存的程序版本或它使用不同的驱动程序版本生成,将从源编译着色器,并将正常链接程序。这允许无缝升级图形驱动程序,而无需担心潜在的兼容性问题。另请参阅
- log()#
- 返回类型:
字符串
在执行最后的link()或使用显式指定源码的addShader()调用时,返回发生的错误和警告。
另请参阅
- maxGeometryOutputVertices()#
- 返回类型:
int
返回几何着色器能输出的顶点数量的硬件限制。
- patchVertexCount()#
- 返回类型:
int
返回渲染时每个补丁应该使用的顶点数量。
- programId()#
- 返回类型:
int
返回与该着色器程序关联的OpenGL标识符。
另请参阅
- release()#
释放当前QOpenGLContext中激活的着色器程序。这等同于调用
glUseProgram(0)
。另请参阅
- removeAllShaders()#
删除之前添加到该程序中的所有着色器。如果着色器的
QOpenGLShader
对象在外部构建,则不会删除该对象。由QOpenGLShaderProgram
内部构建的着色器对象将被删除。- removeShader(shader)#
- 参数:
shader –
QOpenGLShader
从着色器程序中移除
shader
。对象不会被删除。着色器程序必须在当前QOpenGLContext中被视为有效。
- setAttributeArray(location, type, values, tupleSize[, stride=0])#
- 参数:
location – int
type - 整数
values -
void
tupleSize - 整数
stride - 整数
- setAttributeArray(location, values, tupleSize[, stride=0])
- 参数:
location – int
values - 浮点数
tupleSize - 整数
stride - 整数
- setAttributeArray(name, type, values, tupleSize[, stride=0])
- 参数:
name - str
type - 整数
values -
void
tupleSize - 整数
stride - 整数
- setAttributeArray(name, values, tupleSize[, stride=0])
- 参数:
name - str
values - 浮点数
tupleSize - 整数
stride - 整数
- setAttributeBuffer(name, type, offset, tupleSize[, stride=0])#
- 参数:
name - str
type - 整数
offset - 整数
tupleSize - 整数
stride - 整数
- setAttributeBuffer(location, type, offset, tupleSize[, stride=0])
- 参数:
location – int
type - 整数
offset - 整数
tupleSize - 整数
stride - 整数
这是一个重载函数。
设置当前上下文中名为
name
的属性值为value
。另请参阅
- setAttributeValue(location, x, y, z, w)
- 参数:
location – int
x - 浮点数
y - 浮点数
z – 单精度浮点数
w – 单精度浮点数
- setAttributeValue(location, x, y, z)
- 参数:
location – int
x - 浮点数
y - 浮点数
z – 单精度浮点数
- setAttributeValue(location, x, y)
- 参数:
location – int
x - 浮点数
y - 浮点数
- setAttributeValue(location, value)
- 参数:
location – int
value – 单精度浮点数
- setAttributeValue(location, values, columns, rows)
- 参数:
location – int
values - 浮点数
columns – 整数
rows – 整数
- setAttributeValue(location, value)
- 参数:
location – int
value -
QVector4D
将当前上下文中的
location
位置的属性设置为value
。另请参阅
- setAttributeValue(location, value)
- 参数:
location – int
value –
QVector3D
将当前上下文中的
location
位置的属性设置为value
。另请参阅
- setAttributeValue(location, value)
- 参数:
location – int
value –
QVector2D
将当前上下文中的
location
位置的属性设置为value
。另请参阅
- setAttributeValue(name, x, y, z, w)
- 参数:
name - str
x - 浮点数
y - 浮点数
z – 单精度浮点数
w – 单精度浮点数
- setAttributeValue(name, x, y, z)
- 参数:
name - str
x - 浮点数
y - 浮点数
z – 单精度浮点数
- setAttributeValue(name, x, y)
- 参数:
name - str
x - 浮点数
y - 浮点数
- setAttributeValue(name, value)
- 参数:
name - str
value – 单精度浮点数
- setAttributeValue(name, values, columns, rows)
- 参数:
name - str
values - 浮点数
columns – 整数
rows – 整数
- setAttributeValue(location, value)
- 参数:
location – int
value –
QColor
将当前上下文中的
location
位置的属性设置为value
。另请参阅
- setAttributeValue(name, value)
- 参数:
name - str
value –
QVector3D
这是一个重载函数。
设置当前上下文中名为
name
的属性值为value
。另请参阅
- setAttributeValue(name, value)
- 参数:
name - str
value –
QVector2D
这是一个重载函数。
设置当前上下文中名为
name
的属性值为value
。另请参阅
- setAttributeValue(name, value)
- 参数:
name - str
value –
QColor
这是一个重载函数。
设置当前上下文中名为
name
的属性值为value
。另请参阅
- setDefaultInnerTessellationLevels(levels)#
- 参数:
levels – 浮点数列表
设置默认的外部细分级别,当细分控制着色器未输出到
levels
时将由细分原语生成器使用。有关OpenGL和细分着色器的更多详情,请参阅OpenGL细分着色器。参数
levels
应该是一个包含2个浮点数的 QList。并非所有值都适用于所有细分模式。如果您指定了一个元素少于2个的向量,剩余元素将被赋予默认值1。注释
这修改了全局OpenGL状态,并非特指此
QOpenGLShaderProgram
实例。您应在需要时调用此方法,因为QOpenGLShaderProgram
不会为您应用此设置。这是一个纯便利函数。注释
此函数仅在OpenGL >= 4.0时可用,并且不受OpenGL ES 3.2支持。
- setDefaultOuterTessellationLevels(levels)#
- 参数:
levels – 浮点数列表
设置默认的外部细分级别,当细分控制着色器未输出到
levels
时将由细分原语生成器使用。有关OpenGL和细分着色器的更多详情,请参阅OpenGL细分着色器。参数
levels
应该是一个包含4个浮点数的 QList。并非所有值都适用于所有细分模式。如果您指定了一个元素少于4个的向量,剩余元素将被赋予默认值1。注释
这修改了全局OpenGL状态,并非特指此
QOpenGLShaderProgram
实例。您应在需要时调用此方法,因为QOpenGLShaderProgram
不会为您应用此设置。这是一个纯便利函数。注释
此函数仅在OpenGL >= 4.0时可用,并且不受OpenGL ES 3.2支持。
- setPatchVertexCount(count)#
- 参数:
count – int
使用此函数指定OpenGL中将patch的顶点数设置为何值。patch是一个由细分着色器阶段完全定义的解释的OpenGL原语。因此,仅当使用包含细分阶段着色器的
QOpenGLShaderProgram
时调用此函数才有意义。在使用OpenGL细分时,只有可以用glDraw*()
函数渲染的原语是GL_PATCHES
。这等同于调用glPatchParameteri(GL_PATCH_VERTICES, count)。
注释
这修改了全局OpenGL状态,并非特指此
QOpenGLShaderProgram
实例。您应在需要时调用此方法,因为QOpenGLShaderProgram
不会为您应用此设置。这是一个纯便利函数。另请参阅
- setUniformValue(location, value)#
- 参数:
location – int
value –
QMatrix2x3
将当前上下文中的均匀变量在
location
位置设置为一个 2x3 矩阵value
。- setUniformValue(location, size)
- 参数:
location – int
size –
QSizeF
将当前上下文中的均匀变量在
location
位置设置给定的size
的宽度和高度。另请参阅
- setUniformValue(location, value)
- 参数:
location – int
value –
QTransform
将当前上下文中的均匀变量在
location
位置设置为一个 3x3 变换矩阵value
,该值指定为 QTransform 值。要在着色器中将 QTransform 值作为 4x4 矩阵设置,请使用
setUniformValue(location, QMatrix4x4(value))
。- setUniformValue(location, size)
- 参数:
location – int
size –
QSize
将当前上下文中的均匀变量在
location
位置设置给定的size
的宽度和高度。另请参阅
- setUniformValue(location, point)
- 参数:
location – int
point –
QPointF
将当前上下文中的均匀变量在
location
位置设置为点point
的 x 和 y 坐标。另请参阅
- setUniformValue(location, point)
- 参数:
location – int
point –
QPoint
将当前上下文中的均匀变量在
location
位置设置为点point
的 x 和 y 坐标。另请参阅
- setUniformValue(location, value)
- 参数:
location – int
value –
QMatrix4x4
将当前上下文中的均匀变量在
location
位置设置为 4x4 矩阵value
。另请参阅
- setUniformValue(location, value)
- 参数:
location – int
value –
QMatrix4x3
将当前上下文中的均匀变量在
location
位置设置为 4x3 矩阵value
。- setUniformValue(location, value)
- 参数:
location – int
value –
QMatrix4x2
将当前上下文中的均匀变量在
location
位置设置为一个 4x2 矩阵value
。- setUniformValue(location, value)
- 参数:
location – int
value –
QMatrix3x4
将当前上下文中的
location
位置的uniform变量设置为3x4的矩阵value
。- setUniformValue(location, value)
- 参数:
location – int
value –
QMatrix3x3
将当前上下文中的
location
位置的uniform变量设置为3x3的矩阵value
。另请参阅
- setUniformValue(location, value)
- 参数:
location – int
value –
QMatrix3x2
将当前上下文中的
location
位置的uniform变量设置为3x2的矩阵value
。- setUniformValue(location, value)
- 参数:
location – int
value –
QMatrix2x4
将当前上下文中的
location
位置的uniform变量设置为2x4的矩阵value
。- setUniformValue(location, value)
- 参数:
location – int
value –
QVector2D
将当前上下文中的
location
位置的uniform变量设置为value
。另请参阅
- setUniformValue(location, value)
- 参数:
location – int
value –
QVector3D
将当前上下文中的
location
位置的uniform变量设置为value
。另请参阅
- setUniformValue(location, value)
- 参数:
location – int
value -
QVector4D
将当前上下文中的
location
位置的uniform变量设置为value
。另请参阅
- setUniformValue(location, value)
- 参数:
location – int
value –
float[][]
- setUniformValue(location, value)
- 参数:
location – int
value –
float[][]
- setUniformValue(location, value)
- 参数:
location – int
value –
float[][]
- setUniformValue(location, value)
- 参数:
location – int
value – 单精度浮点数
- setUniformValue(location, x, y)
- 参数:
location – int
x - 浮点数
y - 浮点数
- setUniformValue(location, x, y, z)
- 参数:
location – int
x - 浮点数
y - 浮点数
z – 单精度浮点数
- setUniformValue(location, x, y, z, w)
- 参数:
location – int
x - 浮点数
y - 浮点数
z – 单精度浮点数
w – 单精度浮点数
- setUniformValue(location, value)
- 参数:
location – int
value – int
- setUniformValue(location, value)
- 参数:
location – int
value – int
- setUniformValue(name, value)
- 参数:
name - str
value –
QMatrix2x3
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为2x3的矩阵value
。- setUniformValue(location, color)
- 参数:
location – int
颜色 –
QColor
将当前上下文中位于
location
的统一变量设置为color
的红色、绿色、蓝色和透明度部分。另请参阅
- setUniformValue(name, color)
- 参数:
name - str
颜色 –
QColor
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为color
的红色、绿色、蓝色和透明度部分。另请参阅
- setUniformValue(name, value)
- 参数:
name - str
value –
QMatrix2x2
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为一个 2x2 矩阵value
。另请参阅
- setUniformValue(name, value)
- 参数:
name - str
value –
QMatrix2x4
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为一个 2x4 矩阵value
。- setUniformValue(name, value)
- 参数:
name - str
value –
QMatrix3x2
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为一个 3x2 矩阵value
。- setUniformValue(name, value)
- 参数:
name - str
value –
QMatrix3x3
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为一个 3x3 矩阵value
。另请参阅
- setUniformValue(name, value)
- 参数:
name - str
value –
QMatrix3x4
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为一个 3x4 矩阵value
。- setUniformValue(name, value)
- 参数:
name - str
value –
QMatrix4x2
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为一个 4x2 矩阵value
。- setUniformValue(name, value)
- 参数:
name - str
value –
QMatrix4x3
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为一个 4x3 矩阵value
。- setUniformValue(name, value)
- 参数:
name - str
value –
QMatrix4x4
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为一个 4x4 矩阵value
。另请参阅
- setUniformValue(name, point)
- 参数:
name - str
point –
QPoint
这是一个重载函数。
将当前上下文中与
name
关联的统一变量设置为point
的 x 和 y 坐标。另请参阅
- setUniformValue(name, point)
- 参数:
name - str
point –
QPointF
这是一个重载函数。
将当前上下文中与
name
关联的统一变量设置为point
的 x 和 y 坐标。另请参阅
- setUniformValue(name, size)
- 参数:
name - str
size –
QSize
这是一个重载函数。
将当前上下文中与
name
关联的统一变量设置为给定size
的宽度和高度。另请参阅
- setUniformValue(name, value)
- 参数:
name - str
value –
QTransform
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为一个作为 QTransform 值指定的 3x3 变换矩阵value
。要在着色器中将 QTransform 值作为 4x4 矩阵设置,使用
setUniformValue(name, QMatrix4x4(value))
。- setUniformValue(name, value)
- 参数:
name - str
value –
QVector2D
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为value
。另请参阅
- setUniformValue(name, value)
- 参数:
name - str
value –
QVector3D
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为value
。另请参阅
- setUniformValue(name, value)
- 参数:
name - str
value -
QVector4D
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为value
。另请参阅
- setUniformValue(name, value)
- 参数:
name - str
value –
float[][]
- setUniformValue(name, value)
- 参数:
name - str
value –
float[][]
- setUniformValue(name, value)
- 参数:
name - str
value –
float[][]
- setUniformValue(name, x, y)
- 参数:
name - str
x - 浮点数
y - 浮点数
- setUniformValue(name, x, y, z)
- 参数:
name - str
x - 浮点数
y - 浮点数
z – 单精度浮点数
- setUniformValue(name, x, y, z, w)
- 参数:
name - str
x - 浮点数
y - 浮点数
z – 单精度浮点数
w – 单精度浮点数
- setUniformValue(location, value)
- 参数:
location – int
value –
QMatrix2x2
将当前上下文中位置为
location
的均匀变量设置为 2x2 矩阵value
.另请参阅
- setUniformValue(name, size)
- 参数:
name - str
size –
QSizeF
这是一个重载函数。
将当前上下文中与
name
关联的统一变量设置为给定size
的宽度和高度。另请参阅
- setUniformValue1f(arg__1, arg__2)#
- 参数:
arg__1 – 整数
arg__2 – 浮点数
- setUniformValue1f(arg__1, arg__2)
- 参数:
arg__1 – 字符串
arg__2 – 浮点数
- setUniformValue1i(arg__1, arg__2)#
- 参数:
arg__1 – 字符串
arg__2 – 整数
- setUniformValue1i(arg__1, arg__2)
- 参数:
arg__1 – 整数
arg__2 – 整数
- setUniformValueArray(name, values, count, tupleSize)#
- 参数:
name - str
values - 浮点数
count – int
tupleSize - 整数
- setUniformValueArray(name, values, count)
- 参数:
name - str
values – 整数
count – int
- setUniformValueArray(name, values, count)
- 参数:
name - str
values –
unsigned int
count – int
- setUniformValueArray(location, values, count, tupleSize)
- 参数:
location – int
values - 浮点数
count – int
tupleSize - 整数
- setUniformValueArray(location, values, count)
- 参数:
location – int
values – 整数
count – int
- setUniformValueArray(location, values, count)
- 参数:
location – int
values –
unsigned int
count – int
- shaders()#
- 返回类型:
一个 QOpenGLShader 的列表
通过
addShader()
方法添加到此着色器程序的所有着色器的列表。- uniformLocation(name)#
- 参数:
name -
QByteArray
- 返回类型:
int
这是一个重载函数。
返回此着色器程序参数列表中 uniform 变量
name
的位置。如果name
不是此着色器程序的有效 uniform 变量,则返回 -1。另请参阅
- uniformLocation(name)
- 参数:
name - str
- 返回类型:
int
这是一个重载函数。
返回此着色器程序参数列表中 uniform 变量
name
的位置。如果name
不是此着色器程序的有效 uniform 变量,则返回 -1。另请参阅
- uniformLocation(name)
- 参数:
name - str
- 返回类型:
int
返回此着色器程序参数列表中 uniform 变量
name
的位置。如果name
不是此着色器程序的有效 uniform 变量,则返回 -1。另请参阅