pygame.BufferProxy
pygame object to export a surface buffer through an array protocol
BufferProxy(<parent>) -> BufferProxy
Return wrapped exporting object.
The size, in bytes, of the exported buffer.
A copy of the exported buffer as a single block of bytes.
Write raw bytes to object buffer.

BufferProxy 是一种pyGame支持类型,设计为 Surface.get_buffer()Surface.get_view() 方法:研究方法。对于所有的Python版本 BufferProxy 对象代表其父对象的缓冲区导出C结构和Python级别的数组接口。还会导出一个新的缓冲区接口。在电子游戏中, BufferProxy 是实现 pygame.surfarraypygame module for accessing surface pixel data using array interfaces 模块。

BufferProxy 可以直接从Python代码创建实例,既可以为导出接口的父级创建实例,也可以从Python代码创建实例 dict 描述对象的缓冲区布局。DICT条目基于Python级别数组接口映射。以下密钥是可识别的:

"shape"元组

以整数元组形式表示的每个数组维度的长度。元组的长度是数组中的维数。

"typestr"字符串

数组元素类型为长度为3的字符串。第一个字符表示字节顺序,‘<’表示小端,‘>’表示大端,‘|’表示不适用。第二个字符是元素类型,‘i’表示有符号整数,‘u’表示无符号整数,‘f’表示浮点数,‘V’表示字节块。第三个字符给出元素的字节大小,从‘1’到‘9’字节。因此,例如,“<u4”是一个无符号的4字节小端整数,例如PC上的32位像素,而“V3”表示一个24位像素,它没有整数等效项。

"data"元组

物理缓冲器起始地址和作为长度为2的元组的只读标志。地址是整数值,而只读标志是bool-False``表示可写, ``True 只读。

"strides"元组(可选)

整数元组形式的数组步距信息。它只对非C连续数组是必需的。元组长度必须与的匹配 "shape"

"parent"对象(可选)

导出对象。它可用于在父对象的缓冲区可见时保持父对象处于活动状态。

"before"可调用(可选)

时调用的回调 BufferProxy 实例导出缓冲区。回调被赋予一个参数,即 "parent" 对象,如果给定,则为 None 。回调对于在父级上设置锁很有用。

"after"可调用(可选)

释放导出的缓冲区时调用的回调。回调是通过参数传递的, "parent" 对象,否则为None。回调对于释放父级上的锁很有用。

BufferProxy类支持子类化、实例变量和弱引用。

New in pygame 1.8.0.

Extended in pygame 1.9.2.

parent
Return wrapped exporting object.
parent -> Surface
parent -> <parent>

这个 Surface 它返回了 BufferProxy 对象或传递给 BufferProxy 打电话。

length
The size, in bytes, of the exported buffer.
length -> int

导出的有效数据字节数。对于不连续的数据,即不是单个存储器块的数据,间隙内的字节被排除在计数之外。此属性等效于 Py_buffer C结构 len 田野。

raw
A copy of the exported buffer as a single block of bytes.
raw -> bytes

将缓冲区数据作为 str/bytes 对象。将删除导出数据中的所有间隙。

write()
Write raw bytes to object buffer.
write(buffer, offset=0)

覆盖父对象数据中的字节。数据必须是C或F连续的,否则将引发ValueError。论据 buffer 是一种 str/bytes 对象。可选的偏移量提供缓冲区内开始覆盖的开始位置(以字节为单位)。如果偏移量为负或大于或等于缓冲区代理的 length 价值,一个 IndexException 都被养大了。如果 len(buffer) > proxy.length + offset ,a ValueError 都被养大了。




Edit on GitHub