PySide6.QtOpenGL.QOpenGLShaderProgram¶
- class QOpenGLShaderProgram¶
QOpenGLShaderProgram
类允许链接和使用 OpenGL 着色器程序。更多…概要¶
方法¶
def
__init__()
def
addShader()
def
bind()
def
create()
def
isLinked()
def
log()
def
programId()
def
release()
def
removeShader()
def
shaders()
虚拟方法¶
def
link()
静态函数¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
介绍¶
该类支持使用OpenGL着色语言(GLSL)和OpenGL/ES着色语言(GLSL/ES)编写的着色器程序。
QOpenGLShader
和QOpenGLShaderProgram
使程序员无需了解编译和链接顶点和片段着色器的细节。以下示例使用提供的源代码创建了一个顶点着色器程序。一旦编译并链接完成,通过调用
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()
的返回值上指定二进制着色器。然后可以将包含二进制的QOpenGLShader
实例通过addShader()
添加到着色器程序中,并使用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)¶
- Parameters:
type –
ShaderTypeBit
的组合source –
QByteArray
- Return type:
布尔
这是一个重载函数。
将指定的
type
和source
的着色器注册到此程序中。与addShaderFromSourceCode()
不同,此函数不执行编译。编译被推迟到link()
,并且可能根本不会发生,因为link()
可能会使用来自Qt的着色器磁盘缓存的程序二进制文件。这通常会显著提高性能。如果着色器已注册或在非缓存情况下成功编译,则返回 true;如果出现错误,则返回 false。可以通过
log()
检索编译错误消息。当磁盘缓存被禁用时,例如通过Qt::AA_DisableShaderDiskCache,或者OpenGL上下文不支持上下文二进制文件,调用此函数等同于
addShaderFromSourceCode()
。- addCacheableShaderFromSourceCode(type, source)
- Parameters:
type –
ShaderTypeBit
的组合source – str
- Return type:
布尔
这是一个重载函数。
将指定的
type
和source
的着色器注册到此程序中。与addShaderFromSourceCode()
不同,此函数不执行编译。编译被推迟到link()
,并且可能根本不会发生,因为link()
可能会使用来自Qt着色器磁盘缓存的程序二进制文件。这通常会显著提高性能。当磁盘缓存被禁用时,例如通过Qt::AA_DisableShaderDiskCache,或者OpenGL上下文不支持上下文二进制文件,调用此函数等同于
addShaderFromSourceCode()
。- addCacheableShaderFromSourceCode(type, source)
- Parameters:
type –
ShaderTypeBit
的组合source – str
- Return type:
布尔
将指定的
type
和source
的着色器注册到此程序中。与addShaderFromSourceCode()
不同,此函数不执行编译。编译被推迟到link()
,并且可能根本不会发生,因为link()
可能会使用来自Qt的着色器磁盘缓存的程序二进制文件。这通常会显著提高性能。如果着色器已注册或在非缓存情况下成功编译,则返回 true;如果出现错误,则返回 false。可以通过
log()
检索编译错误消息。当磁盘缓存被禁用时,例如通过Qt::AA_DisableShaderDiskCache,或者OpenGL上下文不支持上下文二进制文件,调用此函数等同于
addShaderFromSourceCode()
。- addCacheableShaderFromSourceFile(type, fileName)¶
- Parameters:
type –
ShaderTypeBit
的组合fileName – str
- Return type:
布尔
将指定的
type
和fileName
的着色器注册到此程序中。与addShaderFromSourceFile()
不同,此函数不执行编译。编译被推迟到link()
,并且可能根本不会发生,因为link()
可能会使用来自Qt着色器磁盘缓存的程序二进制文件。这通常会显著提高性能。如果文件已成功读取,则返回 true;如果文件无法打开或着色器的正常非缓存编译失败,则返回 false。编译错误消息可以通过
log()
获取。当磁盘缓存被禁用时,例如通过Qt::AA_DisableShaderDiskCache,或者OpenGL上下文不支持上下文二进制文件,调用此函数等同于
addShaderFromSourceFile()
。- addShader(shader)¶
- Parameters:
着色器 –
QOpenGLShader
- Return type:
布尔
将一个编译好的
shader
添加到此着色器程序中。如果着色器可以添加,则返回true
,否则返回false。shader
对象的所有权仍归调用者所有。当此QOpenGLShaderProgram
实例被删除时,它不会被删除。这允许调用者将相同的着色器添加到多个着色器程序中。- addShaderFromSourceCode(type, source)¶
- Parameters:
type –
ShaderTypeBit
的组合source –
QByteArray
- Return type:
布尔
这是一个重载函数。
将
source
编译为指定type
的着色器,并将其添加到此着色器程序中。如果编译成功,则返回true
,否则返回false。编译错误和警告将通过log()
提供。此函数旨在为快速向着色器程序添加顶点和片段着色器提供快捷方式,而无需首先创建
QOpenGLShader
的实例。- addShaderFromSourceCode(type, source)
- Parameters:
type –
ShaderTypeBit
的组合source – str
- Return type:
布尔
这是一个重载函数。
将
source
编译为指定type
的着色器,并将其添加到此着色器程序中。如果编译成功,则返回true
,否则返回false。编译错误和警告将通过log()
提供。此函数旨在为快速向着色器程序添加顶点和片段着色器提供快捷方式,而无需首先创建
QOpenGLShader
的实例。- addShaderFromSourceCode(type, source)
- Parameters:
type –
ShaderTypeBit
的组合source – str
- Return type:
布尔
将
source
编译为指定type
的着色器,并将其添加到此着色器程序中。如果编译成功,则返回true
,否则返回false。编译错误和警告将通过log()
提供。此函数旨在为快速向着色器程序添加顶点和片段着色器提供快捷方式,而无需首先创建
QOpenGLShader
的实例。- addShaderFromSourceFile(type, fileName)¶
- Parameters:
type –
ShaderTypeBit
的组合fileName – str
- Return type:
布尔
将
fileName
的内容编译为指定type
的着色器,并将其添加到此着色器程序中。如果编译成功,则返回true
,否则返回false。编译错误和警告将通过log()
提供。此函数旨在为快速向着色器程序添加顶点和片段着色器提供快捷方式,而无需首先创建
QOpenGLShader
的实例。- attributeLocation(name)¶
- Parameters:
名称 –
QByteArray
- Return type:
整数
这是一个重载函数。
返回此着色器程序参数列表中属性
name
的位置。如果name
不是此着色器程序的有效属性,则返回-1。- attributeLocation(name)
- Parameters:
name – str
- Return type:
整数
这是一个重载函数。
返回属性
name
在此着色器程序的参数列表中的位置。如果name
不是此着色器程序的有效属性,则返回-1。- attributeLocation(name)
- Parameters:
name – str
- Return type:
整数
返回此着色器程序参数列表中属性
name
的位置。如果name
不是此着色器程序的有效属性,则返回-1。- bind()¶
- Return type:
布尔
将此着色器程序绑定到活动的QOpenGLContext并使其成为当前的着色器程序。任何先前绑定的着色器程序都会被释放。这相当于在
programId()
上调用glUseProgram()
。如果程序成功绑定,则返回true
;否则返回false。如果着色器程序尚未链接,或者需要重新链接,此函数将调用link()
。- bindAttributeLocation(name, location)¶
- Parameters:
name –
QByteArray
location – int
这是一个重载函数。
将属性
name
绑定到指定的location
。此函数可以在程序链接之前或之后调用。任何在程序链接时未显式绑定的属性将自动分配位置。当程序链接后调用此函数时,程序需要重新链接以使更改生效。
另请参阅
- bindAttributeLocation(name, location)
- Parameters:
name – str
location – int
这是一个重载函数。
将属性
name
绑定到指定的location
。此函数可以在程序链接之前或之后调用。任何在程序链接时未显式绑定的属性将自动分配位置。当程序链接后调用此函数时,程序需要重新链接以使更改生效。
另请参阅
- bindAttributeLocation(name, location)
- Parameters:
name – str
location – int
将属性
name
绑定到指定的location
。此函数可以在程序链接之前或之后调用。任何在程序链接时未显式绑定的属性将自动分配位置。当程序链接后调用此函数时,程序需要重新链接以使更改生效。
另请参阅
- create()¶
- Return type:
布尔
请求立即创建着色器程序的ID。如果成功,返回
true
;否则返回false
。此函数在将
QOpenGLShaderProgram
与其他直接操作着色器程序ID的OpenGL函数(如GL_OES_get_program_binary
)结合使用时非常有用。当正常使用着色器程序时,着色器程序的id将按需创建。
另请参阅
- defaultInnerTessellationLevels()¶
- Return type:
浮点数列表
返回默认的内部细分级别,这些级别在细分控制着色器未输出时由细分图元生成器使用。有关OpenGL和细分着色器的更多详细信息,请参阅OpenGL细分着色器。
返回一个描述内部细分级别的浮点数QList。该向量将始终包含两个元素,但并非所有元素对每种细分模式都有意义。
注意
这将返回全局的OpenGL状态值。它并不特定于这个
QOpenGLShaderProgram
实例。注意
此功能仅在OpenGL >= 4.0时受支持,并且在OpenGL ES 3.2中不会返回有效结果。
- defaultOuterTessellationLevels()¶
- Return type:
浮点数列表
返回默认的外部细分级别,这些级别将在细分控制着色器未输出它们时由细分图元生成器使用。有关OpenGL和细分着色器的更多详细信息,请参阅OpenGL细分着色器。
返回一个描述外部细分级别的浮点数QList。该向量将始终包含四个元素,但并非所有元素对每种细分模式都有意义。
注意
这将返回全局的OpenGL状态值。它并不特定于这个
QOpenGLShaderProgram
实例。注意
此功能仅在OpenGL >= 4.0中受支持,并且在OpenGL ES 3.2中不会返回有效结果。
- disableAttributeArray(name)¶
- Parameters:
name – str
这是一个重载函数。
禁用此着色器程序中名为
name
的顶点数组,该数组之前通过调用enableAttributeArray()
启用。- disableAttributeArray(location)
- Parameters:
位置 – int
禁用此着色器程序中由先前调用
enableAttributeArray()
启用的顶点数组,位于location
。- enableAttributeArray(name)¶
- Parameters:
name – str
这是一个重载函数。
在此着色器程序中启用名为
name
的顶点数组,以便着色器程序将使用由setAttributeArray()
在name
上设置的值。- enableAttributeArray(location)
- Parameters:
位置 – int
在此着色器程序中启用
location
处的顶点数组,以便着色器程序将使用setAttributeArray()
在location
上设置的值。- static hasOpenGLShaderPrograms([context=None])¶
- Parameters:
上下文 –
QOpenGLContext
- Return type:
布尔
如果此系统支持用OpenGL着色语言(GLSL)编写的着色器程序,则返回
true
;否则返回false。context
用于解析 GLSL 扩展。如果context
是None
,则使用 QOpenGLContext::currentContext()。- isLinked()¶
- Return type:
布尔
如果此着色器程序已链接,则返回
true
;否则返回 false。另请参阅
- link()¶
- Return type:
布尔
将使用
addShader()
添加到此程序的着色器链接在一起。如果链接成功,则返回true
,否则返回false。如果链接失败,可以使用log()
检索错误消息。子类可以重写此函数以初始化属性和统一变量,以便在特定的着色器程序中使用。
如果着色器程序已经链接,再次调用此函数将强制其重新链接。
当通过
addCacheableShaderFromSourceCode()
或addCacheableShaderFromSourceFile()
将着色器添加到该程序时,如果支持程序二进制文件,并且磁盘上有缓存的二进制文件,则跳过实际的编译和链接。相反,link()将通过glProgramBinary()使用二进制数据初始化程序。如果没有程序的缓存版本或它是用不同的驱动程序版本生成的,则将从源代码编译着色器并正常链接程序。这使得图形驱动程序的升级变得无缝,而无需担心可能不兼容的二进制格式。另请参阅
- log()¶
- Return type:
字符串
返回在上次使用明确指定源代码的
link()
或addShader()
期间发生的错误和警告。另请参阅
- maxGeometryOutputVertices()¶
- Return type:
整数
返回几何着色器可以输出的顶点数量的硬件限制。
- patchVertexCount()¶
- Return type:
整数
返回渲染时每个补丁使用的顶点数量。
- programId()¶
- Return type:
整数
返回与此着色器程序关联的OpenGL标识符。
另请参阅
- release()¶
从当前的QOpenGLContext中释放活动的着色器程序。这相当于调用
glUseProgram(0)
。另请参阅
- removeAllShaders()¶
移除之前添加到该程序中的所有着色器。如果
QOpenGLShader
对象是在外部构建的,则这些着色器对象不会被删除。由QOpenGLShaderProgram
内部构建的QOpenGLShader
对象将被删除。- removeShader(shader)¶
- Parameters:
着色器 –
QOpenGLShader
从此着色器程序中移除
shader
。该对象不会被删除。着色器程序在当前QOpenGLContext中必须有效。
- setAttributeArray(name, values, tupleSize[, stride=0])¶
- Parameters:
name – str
values – 浮点数
tupleSize – 整数
stride – 整数
- setAttributeArray(location, values, tupleSize[, stride=0])
- Parameters:
location – int
values – 浮点数
tupleSize – int
stride – 整数
- setAttributeArray(name, type, values, tupleSize[, stride=0])
- Parameters:
name – str
type – int
values –
void
tupleSize – int
stride – 整数
- setAttributeArray(location, type, values, tupleSize[, stride=0])
- Parameters:
location – int
type – int
values –
void
tupleSize – int
stride – 整数
- setAttributeBuffer(name, type, offset, tupleSize[, stride=0])¶
- Parameters:
name – str
type – int
offset – int
tupleSize – int
stride – 整数
- setAttributeBuffer(location, type, offset, tupleSize[, stride=0])
- Parameters:
location – int
type – int
offset – int
tupleSize – int
stride – 整数
这是一个重载函数。
在当前上下文中将名为
name
的属性设置为value
。另请参阅
- setAttributeValue(name, value)
- Parameters:
name – str
value –
QVector2D
这是一个重载函数。
在当前上下文中将名为
name
的属性设置为value
。另请参阅
- setAttributeValue(name, value)
- Parameters:
name – str
value –
QVector3D
这是一个重载函数。
在当前上下文中将名为
name
的属性设置为value
。另请参阅
- setAttributeValue(name, value)
- Parameters:
name – str
value –
QVector4D
这是一个重载函数。
在当前上下文中将名为
name
的属性设置为value
。另请参阅
- setAttributeValue(name, value)
- Parameters:
name – str
value – 浮点数
- setAttributeValue(location, value)
- Parameters:
location – int
value –
QColor
将当前上下文中
location
处的属性设置为value
。另请参阅
- setAttributeValue(location, value)
- Parameters:
location – int
value –
QVector2D
将当前上下文中
location
处的属性设置为value
。另请参阅
- setAttributeValue(location, value)
- Parameters:
location – int
value –
QVector3D
将当前上下文中
location
处的属性设置为value
。另请参阅
- setAttributeValue(location, value)
- Parameters:
location – int
value –
QVector4D
将当前上下文中
location
处的属性设置为value
。另请参阅
- setAttributeValue(location, value)
- Parameters:
location – int
value – 浮点数
- setAttributeValue(name, x, y)
- Parameters:
name – str
x – 浮点数
y – 浮点数
- setAttributeValue(location, x, y)
- Parameters:
location – int
x – 浮点数
y – 浮点数
- setAttributeValue(name, values, columns, rows)
- Parameters:
name – str
values – 浮点数
columns – 整数
rows – int
- setAttributeValue(name, x, y, z)
- Parameters:
name – str
x – 浮点数
y – 浮点数
z – 浮点数
- setAttributeValue(location, values, columns, rows)
- Parameters:
location – int
values – 浮点数
columns – 整数
rows – int
- setAttributeValue(location, x, y, z)
- Parameters:
location – int
x – 浮点数
y – 浮点数
z – 浮点数
- setAttributeValue(name, x, y, z, w)
- Parameters:
name – str
x – 浮点数
y – 浮点数
z – 浮点数
w – 浮点数
- setAttributeValue(location, x, y, z, w)
- Parameters:
location – int
x – 浮点数
y – 浮点数
z – 浮点数
w – 浮点数
- setDefaultInnerTessellationLevels(levels)¶
- Parameters:
levels – .浮点数列表
设置默认的外部细分级别,以便在细分控制着色器未将其输出到
levels
时,由细分图元生成器使用。有关OpenGL和细分着色器的更多详细信息,请参阅OpenGL细分着色器。levels
参数应该是一个由2个浮点数组成的QList。并非所有值对所有细分模式都有意义。如果指定的向量少于2个元素,剩余元素将被赋予默认值1。注意
这会修改全局的OpenGL状态,并不特定于这个
QOpenGLShaderProgram
实例。你应该在需要时在你的渲染函数中调用它,因为QOpenGLShaderProgram
不会为你应用这个。这纯粹是一个方便的函数。注意
此功能仅在 OpenGL >= 4.0 中可用,且不支持 OpenGL ES 3.2。
- setDefaultOuterTessellationLevels(levels)¶
- Parameters:
levels – .浮点数列表
设置默认的外部细分级别,以便在细分控制着色器未将其输出到
levels
时,由细分图元生成器使用。有关OpenGL和细分着色器的更多详细信息,请参阅OpenGL细分着色器。levels
参数应该是一个由4个浮点数组成的QList。并非所有值对所有细分模式都有意义。如果指定的向量少于4个元素,剩余元素将被赋予默认值1。注意
这会修改全局的OpenGL状态,并不特定于这个
QOpenGLShaderProgram
实例。你应该在需要时在你的渲染函数中调用它,因为QOpenGLShaderProgram
不会为你应用这个。这纯粹是一个方便的函数。注意
此功能仅在 OpenGL >= 4.0 中可用,且不支持 OpenGL ES 3.2。
- setPatchVertexCount(count)¶
- Parameters:
count – int
使用此函数向OpenGL指定补丁中的顶点数量为
count
。补丁是一种自定义的OpenGL图元,其解释完全由细分着色器阶段定义。因此,只有在使用包含细分阶段着色器的QOpenGLShaderProgram
时,调用此函数才有意义。在使用OpenGL细分时,唯一可以使用glDraw*()
函数渲染的图元是GL_PATCHES
。这相当于调用 glPatchParameteri(GL_PATCH_VERTICES, count)。
注意
这会修改全局的OpenGL状态,并不特定于这个
QOpenGLShaderProgram
实例。你应该在需要时在你的渲染函数中调用它,因为QOpenGLShaderProgram
不会为你应用这个。这纯粹是一个方便的函数。另请参阅
这是一个重载函数。
将当前上下文中名为
name
的统一变量设置为color
的红、绿、蓝和透明度分量。另请参阅
- setUniformValue(name, value)
- Parameters:
name – str
value –
QMatrix2x2
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为一个2x2矩阵value
。另请参阅
- setUniformValue(name, value)
- Parameters:
name – str
value –
QMatrix2x3
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为一个2x3矩阵value
。- setUniformValue(name, value)
- Parameters:
name – str
value –
QMatrix2x4
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为一个2x4矩阵value
。- setUniformValue(name, value)
- Parameters:
name – str
value –
QMatrix3x2
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为一个3x2矩阵value
。- setUniformValue(name, value)
- Parameters:
name – str
value –
QMatrix3x3
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为一个3x3矩阵value
。另请参阅
- setUniformValue(name, value)
- Parameters:
name – str
value –
QMatrix3x4
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为一个3x4矩阵value
。- setUniformValue(name, value)
- Parameters:
name – str
值 –
QMatrix4x2
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为4x2矩阵value
。- setUniformValue(name, value)
- Parameters:
name – str
value –
QMatrix4x3
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为一个4x3矩阵value
。- setUniformValue(name, value)
- Parameters:
name – str
value –
QMatrix4x4
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为一个4x4矩阵value
。另请参阅
- setUniformValue(name, point)
- Parameters:
name – str
点 –
QPoint
这是一个重载函数。
将当前上下文中与
name
关联的统一变量设置为point
的x和y坐标。另请参阅
- setUniformValue(name, point)
- Parameters:
name – str
点 –
QPointF
这是一个重载函数。
将当前上下文中与
name
关联的统一变量设置为point
的x和y坐标。另请参阅
- setUniformValue(name, size)
- Parameters:
name – str
size –
QSize
这是一个重载函数。
将当前上下文中与
name
关联的uniform变量设置为给定size
的宽度和高度。另请参阅
- setUniformValue(name, size)
- Parameters:
name – str
size –
QSizeF
这是一个重载函数。
将当前上下文中与
name
关联的uniform变量设置为给定size
的宽度和高度。另请参阅
- setUniformValue(name, value)
- Parameters:
name – str
value –
QTransform
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为一个3x3变换矩阵value
,该矩阵指定为QTransform值。要在着色器中将QTransform值设置为4x4矩阵,请使用
setUniformValue(name, QMatrix4x4(value))
。- setUniformValue(name, value)
- Parameters:
name – str
value –
QVector2D
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为value
。另请参阅
- setUniformValue(name, value)
- Parameters:
name – str
value –
QVector3D
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为value
。另请参阅
- setUniformValue(name, value)
- Parameters:
name – str
value –
QVector4D
这是一个重载函数。
将当前上下文中名为
name
的uniform变量设置为value
。另请参阅
- setUniformValue(name, value)
- Parameters:
name – str
value –
float[][]
- setUniformValue(name, value)
- Parameters:
name – str
value –
float[][]
- setUniformValue(name, value)
- Parameters:
name – str
value –
float[][]
- setUniformValue(location, color)
- Parameters:
location – int
颜色 –
QColor
将当前上下文中
location
处的统一变量设置为color
的红色、绿色、蓝色和透明度分量。另请参阅
- setUniformValue(location, value)
- Parameters:
location – int
value –
QMatrix2x2
将当前上下文中
location
处的统一变量设置为2x2矩阵value
。另请参阅
- setUniformValue(location, value)
- Parameters:
location – int
value –
QMatrix2x3
将当前上下文中
location
处的统一变量设置为2x3矩阵value
。- setUniformValue(location, value)
- Parameters:
location – int
value –
QMatrix2x4
将当前上下文中
location
处的统一变量设置为2x4矩阵value
。- setUniformValue(location, value)
- Parameters:
location – int
value –
QMatrix3x2
将当前上下文中
location
处的统一变量设置为3x2矩阵value
。- setUniformValue(location, value)
- Parameters:
location – int
value –
QMatrix3x3
将当前上下文中
location
处的统一变量设置为3x3矩阵value
。另请参阅
- setUniformValue(location, value)
- Parameters:
location – int
value –
QMatrix3x4
将当前上下文中
location
处的统一变量设置为3x4矩阵value
。- setUniformValue(location, value)
- Parameters:
location – int
值 –
QMatrix4x2
将当前上下文中
location
处的统一变量设置为4x2矩阵value
。- setUniformValue(location, value)
- Parameters:
location – int
value –
QMatrix4x3
将当前上下文中
location
处的统一变量设置为4x3矩阵value
。- setUniformValue(location, value)
- Parameters:
location – int
value –
QMatrix4x4
将当前上下文中
location
处的统一变量设置为4x4矩阵value
。另请参阅
- setUniformValue(location, point)
- Parameters:
location – int
点 –
QPoint
将当前上下文中
location
处的统一变量设置为point
的x和y坐标。另请参阅
- setUniformValue(location, point)
- Parameters:
location – int
点 –
QPointF
将当前上下文中
location
处的统一变量设置为point
的x和y坐标。另请参阅
- setUniformValue(location, size)
- Parameters:
location – int
size –
QSize
将当前上下文中
location
处的统一变量设置为给定size
的宽度和高度。另请参阅
- setUniformValue(location, size)
- Parameters:
location – int
size –
QSizeF
将当前上下文中
location
处的统一变量设置为给定size
的宽度和高度。另请参阅
- setUniformValue(location, value)
- Parameters:
location – int
value –
QTransform
将当前上下文中
location
处的统一变量设置为一个3x3变换矩阵value
,该矩阵指定为QTransform值。要在着色器中将QTransform值设置为4x4矩阵,请使用
setUniformValue(location, QMatrix4x4(value))
。- setUniformValue(location, value)
- Parameters:
location – int
value –
QVector2D
将当前上下文中
location
处的统一变量设置为value
。另请参阅
- setUniformValue(location, value)
- Parameters:
location – int
value –
QVector3D
将当前上下文中
location
处的统一变量设置为value
。另请参阅
- setUniformValue(location, value)
- Parameters:
location – int
value –
QVector4D
将当前上下文中
location
处的统一变量设置为value
。另请参阅
- setUniformValue(location, value)
- Parameters:
location – int
value –
float[][]
- setUniformValue(location, value)
- Parameters:
location – int
value –
float[][]
- setUniformValue(location, value)
- Parameters:
location – int
value –
float[][]
- setUniformValue(location, value)
- Parameters:
location – int
value – 浮点数
- setUniformValue(location, value)
- Parameters:
location – int
value – int
- setUniformValue(location, value)
- Parameters:
location – int
value – int
- setUniformValue(name, x, y)
- Parameters:
name – str
x – 浮点数
y – 浮点数
- setUniformValue(location, x, y)
- Parameters:
location – int
x – 浮点数
y – 浮点数
- setUniformValue(name, x, y, z)
- Parameters:
name – str
x – 浮点数
y – 浮点数
z – 浮点数
- setUniformValue(location, x, y, z)
- Parameters:
location – int
x – 浮点数
y – 浮点数
z – 浮点数
- setUniformValue(name, x, y, z, w)
- Parameters:
name – str
x – 浮点数
y – 浮点数
z – 浮点数
w – 浮点数
- setUniformValue(location, x, y, z, w)
- Parameters:
location – int
x – 浮点数
y – 浮点数
z – 浮点数
w – 浮点数
- setUniformValue1f(arg__1, arg__2)¶
- Parameters:
arg__1 – str
arg__2 – 浮点数
- setUniformValue1f(arg__1, arg__2)
- Parameters:
arg__1 – 整数
arg__2 – 浮点数
- setUniformValue1i(arg__1, arg__2)¶
- Parameters:
arg__1 – str
arg__2 – 整数
- setUniformValue1i(arg__1, arg__2)
- Parameters:
arg__1 – 整数
arg__2 – 整数
- setUniformValueArray(name, values, count)¶
- Parameters:
name – str
values – int
count – int
- setUniformValueArray(name, values, count)
- Parameters:
name – str
values –
unsigned int
count – int
- setUniformValueArray(location, values, count)
- Parameters:
location – int
values – 整数
count – int
- setUniformValueArray(location, values, count)
- Parameters:
location – int
values –
unsigned int
count – int
- setUniformValueArray(name, values, count, tupleSize)
- Parameters:
name – str
values – 浮点数
count – int
tupleSize – int
- setUniformValueArray(location, values, count, tupleSize)
- Parameters:
location – int
values – 浮点数
count – int
tupleSize – int
- shaders()¶
- Return type:
返回使用
addShader()
添加到此着色器程序中的所有着色器的列表。- uniformLocation(name)¶
- Parameters:
名称 –
QByteArray
- Return type:
整数
这是一个重载函数。
返回此着色器程序参数列表中统一变量
name
的位置。如果name
不是此着色器程序的有效统一变量,则返回-1。另请参阅
- uniformLocation(name)
- Parameters:
name – str
- Return type:
整数
这是一个重载函数。
返回此着色器程序参数列表中统一变量
name
的位置。如果name
不是此着色器程序的有效统一变量,则返回-1。另请参阅
- uniformLocation(name)
- Parameters:
name – str
- Return type:
整数
返回此着色器程序参数列表中统一变量
name
的位置。如果name
不是此着色器程序的有效统一变量,则返回-1。另请参阅