pyglet.graphics.vertexbuffer
OpenGL缓冲区对象的字节抽象。
使用 create_buffer 若要创建缓冲区对象,请执行以下操作。
可以选择将缓冲区创建为“可映射的”(合并 AbstractMappable 混合)。在这种情况下,缓冲区提供一个 get_region
方法,该方法为更新缓冲区内的部分数据提供了最有效的路径。
- class AbstractBuffer
字节数据的抽象缓冲区。
- 变量:
- size集成
缓冲区大小,以字节为单位
- ptr集成
缓冲区的内存偏移量,由
glVertexPointer
函数族- usage集成
OpenGL缓冲区使用情况,例如
GL_DYNAMIC_DRAW
- bind(target=34962)
将此缓冲区绑定到OpenGL目标。
- delete()
删除此缓冲区,从而减少系统资源使用。
- map()
将整个缓冲区映射到系统内存。
随后必须使用取消映射区域 unmap 在对缓冲区执行任何其他操作之前。
- 参数:
- invalidate布尔尔
如果为True,则映射块的初始内容不必反映缓冲区的实际内容。
- 返回类型:
POINTER(ctypes.c_ubyte)
- 返回:
指向内存中的映射块的指针
- resize(size)
将缓冲区大小调整为新大小。
- 参数:
- size集成
缓冲区的新大小,以字节为单位
- set_data(data)
设置缓冲区的全部内容。
- 参数:
- dataInt或ctype指针序列
要设置的字节数组。
- set_data_region(data, start, length)
设置部分缓冲区内容。
- 参数:
- dataInt或ctype指针序列
要设置的数据的字节数组
- start集成
开始替换数据的偏移量
- length集成
要替换的区域长度
- unbind()
重置缓冲区的OpenGL目标。
- unmap()
取消映射以前映射的内存块。
- ptr = 0
- size = 0
- class AttributeBufferObject(size, attribute, usage=35048)
具有系统内存备份存储的缓冲区。
通过以下方式更新数据 set_data 和 set_data_region 将保存在本地内存中,直到 buffer_data 被称为。这样做的优点是需要更少的OpenGL调用,这可以以牺牲系统内存为代价来提高性能。
- get_region(start, count)
- invalidate()
- invalidate_region(start, count)
- resize(size)
将缓冲区大小调整为新大小。
- 参数:
- size集成
缓冲区的新大小,以字节为单位
- set_region(start, count, data)
- sub_data()
如果任何数据已更改或无效,则更新缓冲区。允许一次提交多个更改,而不必为每个更改调用glBufferSubData。
- class BufferObject(size, usage=35048)
OpenGL缓冲区对象的轻量级表示形式。
缓冲区中的数据不会复制到任何系统内存中(除非它是由视频驱动程序复制的)。虽然这可以提高内存使用率并可能提高性能,但对缓冲区的更新相对较慢。缓冲区的目标是
GL_ARRAY_BUFFER
在内部,以避免在更改缓冲区内容时意外覆盖其他状态。可以在绑定缓冲区时设置预期的目标。此类不实现
AbstractMappable
,因此没有get_region()
方法。看见MappableVertexBufferObject
对于确实实现了get_region()
。- bind(target=34962)
将此缓冲区绑定到OpenGL目标。
- bind_to_index_buffer()
将此缓冲区绑定为活动顶点数组上的索引缓冲区。
- delete()
删除此缓冲区,从而减少系统资源使用。
- invalidate()
- map()
将整个缓冲区映射到系统内存。
随后必须使用取消映射区域 unmap 在对缓冲区执行任何其他操作之前。
- 参数:
- invalidate布尔尔
如果为True,则映射块的初始内容不必反映缓冲区的实际内容。
- 返回类型:
POINTER(ctypes.c_ubyte)
- 返回:
指向内存中的映射块的指针
- map_range(start, size, ptr_type)
- resize(size)
将缓冲区大小调整为新大小。
- 参数:
- size集成
缓冲区的新大小,以字节为单位
- set_data(data)
设置缓冲区的全部内容。
- 参数:
- dataInt或ctype指针序列
要设置的字节数组。
- set_data_region(data, start, length)
设置部分缓冲区内容。
- 参数:
- dataInt或ctype指针序列
要设置的数据的字节数组
- start集成
开始替换数据的偏移量
- length集成
要替换的区域长度
- unbind()
重置缓冲区的OpenGL目标。
- unmap()
取消映射以前映射的内存块。