pyglet.graphics.vertexdomain
管理单个顶点域中的相关顶点属性。
顶点“域”由一组属性描述组成,这些属性描述一起描述一个或多个顶点缓冲区的布局,这些缓冲区一起用于指定基元中的顶点。此外,域管理用于存储数据的缓冲区,并根据需要调整缓冲区大小以容纳新顶点。
可以选择性地对域进行索引,在这种情况下,它们还可以管理包含顶点索引的缓冲区。该缓冲区是单独增长的,与属性缓冲区没有大小关系。
应用程序可以在域中创建顶点(以及可选的索引 VertexDomain.create()
方法。这将返回一个 VertexList
表示创建的顶点列表。可以修改组内的顶点属性数据,并自动对底层缓冲区进行更改。
可以在一个步骤中高效地绘制整个域 VertexDomain.draw()
方法,假定所有顶点都包含相同OpenGL基元模式的基元。
- class IndexedVertexDomain
管理一组索引顶点列表。
索引顶点域的构造通常使用
create_domain()
功能。- create( ) IndexedVertexList
创建一个
IndexedVertexList
在这个领域。- 参数:
- 返回类型:
- draw_subset(
- mode: int,
- vertex_list: IndexedVertexList,
在域中绘制特定的IndexedVertex List。
这个 vertex_list 参数指定一个
IndexedVertexList
去画画。将只绘制该列表中的基元。- 参数:
mode (
int
) -- OpenGL绘图模式,例如GL_POINTS
,GL_LINES
等vertex_list (
IndexedVertexList
) -- 要绘制的顶点列表。
- 返回类型:
-
index_buffer:
BufferObject
- class IndexedVertexList
中的顶点列表。
IndexedVertexDomain
这些都被索引了。使用
IndexedVertexDomain.create()
来构建这份名单。- __init__(
- domain: IndexedVertexDomain,
- start: int,
- count: int,
- index_start: int,
- index_count: int,
- migrate(
- domain: IndexedVertexDomain | InstancedIndexedVertexDomain,
将该组从其当前索引域中移动并添加到指定的域中。
域上的属性必须匹配。 (In实践,用于改变某些点的父状态)。
- 参数:
domain (
IndexedVertexDomain
|InstancedIndexedVertexDomain
) -- 要将此顶点列表迁移到的索引域。- 返回类型:
- set_instance_source(
- domain: IndexedVertexDomain | InstancedIndexedVertexDomain,
- instance_attributes: Sequence[str],
- 返回类型:
- property indices
索引数据数组。
- class InstancedIndexedVertexDomain
管理一组索引顶点列表。
索引顶点域的构造通常使用
create_domain()
功能。- create( ) IndexedVertexList
创建一个
IndexedVertexList
在这个领域。- 参数:
- 返回类型:
- draw_subset(
- mode: int,
- vertex_list: IndexedVertexList,
在域中绘制特定的IndexedVertex List。
这个
vertex_list
参数指定一个IndexedVertexList
去画画。将只绘制该列表中的基元。- 参数:
mode (
int
) -- OpenGL绘图模式,例如GL_POINTS
,GL_LINES
等vertex_list (
IndexedVertexList
) -- 要绘制的顶点列表。
- 返回类型:
- class InstancedVertexDomain
-
- draw_subset(
- mode: int,
- vertex_list: VertexList,
在域中绘制特定的顶点列表。
这个 vertex_list 参数指定一个
VertexList
去画画。将只绘制该列表中的基元。- 参数:
mode (
int
) -- OpenGL绘图模式,例如GL_POINTS
,GL_LINES
等vertex_list (
VertexList
) -- 要绘制的顶点列表。
- 返回类型:
- class VertexDomain
管理一组顶点列表。
顶点域的构造通常使用
create_domain()
功能。- create( ) VertexList
创建
VertexList
在这个领域。- 参数:
- 返回类型:
- draw_subset(
- mode: int,
- vertex_list: VertexList,
在域中绘制特定的顶点列表。
这个 vertex_list 参数指定一个
VertexList
去画画。将只绘制该列表中的基元。- 参数:
mode (
int
) -- OpenGL绘图模式,例如GL_POINTS
,GL_LINES
等vertex_list (
VertexList
) -- 要绘制的顶点列表。
- 返回类型:
-
program:
ShaderProgram
-
vao:
VertexArray
- class VertexInstance
- __init__(
- vertex_list: VertexList | IndexedVertexList,
- instance_id: int,
- start: int,
- property domain: InstancedVertexDomain | InstancedIndexedVertexDomain
- class VertexList
中的顶点列表。
VertexDomain
。使用
VertexDomain.create()
来构建这份名单。- __init__(
- domain: VertexDomain,
- start: int,
- count: int,
- add_instance(
- **kwargs: Any,
- 返回类型:
- delete_instance(
- instance: VertexInstance,
- 返回类型:
- migrate(
- domain: VertexDomain | InstancedVertexDomain,
将此组从当前域中移动并添加到指定的域中。
域上的属性必须匹配。(In实践,用于改变某些点的父状态)。
- 参数:
domain (
VertexDomain
|InstancedVertexDomain
) -- 要将此顶点列表迁移到的域。- 返回类型:
- set_instance_source(
- domain: InstancedVertexDomain,
- instance_attributes: Sequence[str],
- 返回类型:
-
domain:
VertexDomain
|InstancedVertexDomain