pyglet.graphics.vertexbuffer
OpenGL缓冲区对象的字节抽象。
使用 create_buffer 若要创建缓冲区对象,请执行以下操作。
可以选择将缓冲区创建为“可映射的”(合并 AbstractMappable 混合)。在这种情况下,缓冲区提供一个 get_region
方法,该方法为更新缓冲区内的部分数据提供了最有效的路径。
- class AbstractBuffer
字节数据的抽象缓冲区。
- 类变量:
- abstract map() CTypesPointer[ctypes.c_ubyte]
将整个缓冲区映射到系统内存。
随后必须使用取消映射区域 unmap 在对缓冲区执行任何其他操作之前。
- 返回:
指向内存中的映射块的指针
- class AttributeBufferObject
具有系统内存备份存储的缓冲区。
通过以下方式更新数据 set_data 和 set_data_region 将保存在本地内存中,直到 buffer_data 被称为。这样做的优点是需要更少的OpenGL调用,这可以以牺牲系统内存为代价来提高性能。
- class BufferObject
OpenGL缓冲区对象的轻量级表示形式。
缓冲区中的数据不会复制到任何系统内存中(除非它是由视频驱动程序复制的)。虽然这可以提高内存使用率并可能提高性能,但对缓冲区的更新相对较慢。缓冲区的目标是
GL_ARRAY_BUFFER
在内部,以避免在更改缓冲区内容时意外覆盖其他状态。可以在绑定缓冲区时设置预期的目标。- map() CTypesPointer[ctypes.c_byte]
将整个缓冲区映射到系统内存。
随后必须使用取消映射区域 unmap 在对缓冲区执行任何其他操作之前。
- 返回:
指向内存中的映射块的指针