pygame.BufferProxy
对象,通过数组协议导出表面缓冲区
BufferProxy() -> BufferProxy
pygame.BufferProxy.parent
返回包装好的导出对象。
pygame.BufferProxy.length
输出缓冲区的大小(以字节为单位)。
pygame.BufferProxy.raw
作为单个字节块的输出缓冲区的副本。
pygame.BufferProxy.write
将原始字节写入对象缓冲区。
BufferProxy是一种pygame支持类型,设计为Surface.get_buffer()和Surface.get_view()方法的返回值。
对于所有的Python版本,BufferProxy对象代表其父对象的缓冲区导出一个C结构体和Python级别的数组接口。
对于CPython 2.6及以后版本,还导出了一个新的缓冲区接口。
在pygame中,BufferProxy是实现pygame的关键。
Surfarraypygame模块使用阵列接口模块访问表面像素数据。
BufferProxy实例可以直接从Python代码创建,可以为导出接口的父类创建,也可以从描述对象缓冲区布局的Python字典创建。
字典项基于Python级数组接口映射。
可以识别下列键:
“shape” : tuple
每个数组维的长度为整数元组。元组的长度是数组中的维数。
“typestr” : string
数组元素类型为长度为3的字符串。第一个字符给出字节顺序,’<‘表示小端序,’>‘表示大端序,’|'表示不适用。第二个字符是元素类型,'i’表示有符号整数,'u’表示无符号整数,'f’表示浮点数,'V’表示字节块。第三个字符给出了元素的字节大小,从’1’到’9’字节。因此,例如,“<u4”是一个无符号的4字节小端整数,例如PC上的一个32位像素,而“|V3”将表示一个24位像素,它没有等效的整数。
“data” : tuple
物理缓冲区起始地址和一个作为长度2元组的只读标志。地址是一个整数值,而只读标志是一个布尔- false表示可写,True表示只读。
“strides” : tuple : (optional)
数组以整数元组的形式跨越信息。只有非c连续数组才需要它。元组长度必须与“shape”匹配。
“parent” : object : (optional)
出口对象。当父对象的缓冲区可见时,它可以用来保持父对象的活动状态。
“before” : callable : (optional)
在BufferProxy实例导出缓冲区时调用的回调。回调函数有一个参数,如果有则是“父”对象,否则为None。回调对于设置父对象上的锁很有用。
“after” : callable : (optional)
释放导出缓冲区时调用的回调函数。回调函数通过参数传递,如果给定则是“父”对象,否则为None。回调对于释放父类上的锁很有用。
BufferProxy类支持子类化、实例变量和弱引用。