pyglet.graphics.shader

exception ShaderException
class Attribute(name, location, count, gl_type, normalize)

映射缓冲区中属性的抽象访问器。

enable()

启用该属性。

get_region(buffer, start, count)

使用此属性作为访问器映射缓冲区。

返回的区域由组件数据元素的连续数组组成。例如,如果此属性对每个顶点使用3个浮点数,而 count 参数为4,则映射的浮点数将为 3 * 4 = 12

参数:
bufferAttributeBufferObject

要映射的缓冲区。

start集成

要映射的第一个顶点的偏移。

count集成

要映射的顶点数

set_pointer(ptr)

将此属性设置为指向给定偏移量处的当前绑定缓冲区。

offset 应基于当前绑定的缓冲区的 ptr 成员。

参数:
offset集成

指向此属性的当前绑定缓冲区的指针偏移量。

set_region(buffer, start, count, data)

将数据设置在缓冲区的一个区域上。

参数:
buffer摘要可映射`

要修改的缓冲区。

start集成

要设置的第一个顶点的偏移量。

count集成

要设置的顶点数。

data序列号

数据组件的序列。

class ComputeShaderProgram(source: str)

OpenGL计算着色器程序

bind() None
delete()
static dispatch(x: int = 1, y: int = 1, z: int = 1, barrier: int = 4294967295) None

启动一个或多个计算工作组。

在调用此方法之前,ComputeShaderProgram应处于活动(绑定)状态。X、y和z参数指定将在X、Y和Z维度上调度的本地工作组的数量。

static stop()
static unbind()
use() None
property id: int
property uniform_blocks: dict
property uniforms
class Shader(source_string: str, shader_type: str)

OpenGL着色器。

着色器对象在实例化时编译。可以在多个ShaderProgram中重复使用一个Shader对象。

shader_type 是其中之一 'compute''fragment''geometry''tesscontrol''tessevaluation' ,或 'vertex'

delete()
property id
class ShaderProgram(*shaders: Shader)

OpenGL着色器程序。

bind()
delete()
static stop()
static unbind()
use()
vertex_list(count, mode, batch=None, group=None, **data)

创建顶点列表。

参数:
count集成

列表中的顶点数。

mode集成

OpenGL绘图模式枚举;例如, GL_POINTSGL_LINESGL_TRIANGLES 等等。这决定了如何在给定批次中绘制列表。

batch~pyglet.graphics.Batch

要将顶点列表添加到的批处理,或 None 如果将不使用批次。强烈建议使用批处理。

group~pyglet.graphics.Group

要将顶点列表添加到的组,或 None 如果不需要任何组,则。

**data字符串或元组

顶点列表的属性格式和初始数据。

返回类型:

VertexList

vertex_list_indexed(count, mode, indices, batch=None, group=None, **data)

创建IndexedVertex List。

参数:
count集成

列表中的顶点数。

mode集成

OpenGL绘图模式枚举;例如, GL_POINTSGL_LINESGL_TRIANGLES 等等。这决定了如何在给定批次中绘制列表。

indices整型序列

给出顶点列表索引的整数序列。

batch~pyglet.graphics.Batch

要将顶点列表添加到的批处理,或 None 如果将不使用批次。强烈建议使用批处理。

group~pyglet.graphics.Group

要将顶点列表添加到的组,或 None 如果不需要任何组,则。

**data字符串或元组

顶点列表的属性格式和初始数据。

返回类型:

IndexedVertexList

property attributes: dict

属性元数据词典

此属性返回一个字典,其中包含在此ShaderProgram中自省的所有属性的元数据。修改此词典不起作用。

property id
property uniform_blocks: dict

一本自省的统一块词典

此属性返回 UniformBlock 实例。可以通过名称访问它们。例如::

block = my_shader_program.uniform_blocks['WindowBlock']
ubo = block.create_ubo()
property uniforms: dict

统一元数据词典

此属性返回一个字典,其中包含在此ShaderProgram中内省的所有制服的元数据。修改此词典不起作用。若要设置或获取统一名称,统一名称将用作ShaderProgram实例上的键。例如::

my_shader_program[uniform_name] = 123
value = my_shader_program[uniform_name]
class ShaderSource(source: str, source_type: c_uint)

用于简化源代码解析的GLSL源代码容器。

我们支持定位属性和应用#Defines值。

注意:我们确实假设源代码足够整洁,可以用这种方式进行解析,并且不会在一行中包含多个语句。

validate() str

返回经过验证的着色器源。

class UniformBlock(program, name, index, size, uniforms)
create_ubo(index=0)

从此Uniform块创建新的UniformBufferObject。

参数:
index集成

返回的UBO将其自身绑定到的统一缓冲区索引。默认情况下,此值为0。

返回类型:

UniformBufferObject

index
name
program
size
uniforms
view_cls
class UniformBufferObject(view_class, buffer_size, index)
bind(index=None)
read()

读取缓冲区的字节内容

buffer
property id
index
view