Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QGLBuffer Class Reference
[QtOpenGL module]

该QGLBuffer类提供用于创建和管理GL缓冲区对象。More...

Types

Methods

Static Methods


Detailed Description

该QGLBuffer类提供用于创建和管理GL缓冲区对象。

缓冲对象在GL服务器创建,使客户端应用程序可避免上传顶点,索引,纹理图像数据等,他们需要每一次。

QGLBuffer对象可以被复制围绕作为参照相关GL缓冲对象:

 QGLBuffer buffer1(QGLBuffer.IndexBuffer);
 buffer1.create();

 QGLBuffer buffer2 = buffer1;

QGLBuffer进行浅拷贝时,对象被复制以这种方式,但没有实现副本上写的语义。原来的对象会受到影响每当副本被修改。


Type Documentation

QGLBuffer.Access

这个枚举变量定义的访问模式QGLBuffer.map( ) 。

Constant Value Description
QGLBuffer.ReadOnly 0x88B8 该缓冲区将被映射为只读。
QGLBuffer.WriteOnly 0x88B9 该缓冲区将被映射为只写。
QGLBuffer.ReadWrite 0x88BA 该缓冲区将被映射为阅读和写作。

QGLBuffer.Type

这个枚举变量定义GL缓冲对象的创建与类型QGLBuffer

Constant Value Description
QGLBuffer.VertexBuffer 0x8892 顶点缓冲对象指定顶点数组时使用。
QGLBuffer.IndexBuffer 0x8893 与使用索引缓冲区对象glDrawElements()
QGLBuffer.PixelPackBuffer 0x88EB 自GL服务器读取像素数据的像素组缓存对象(例如,与glReadPixels()) 。下的OpenGL / ES不支持。
QGLBuffer.PixelUnpackBuffer 0x88EC 为像素数据写入到GL服务器(例如,以像素解包缓冲区对象glTexImage2D()) 。下的OpenGL / ES不支持。

QGLBuffer.UsagePattern

这个枚举变量定义的使用模式QGLBuffer对象。

Constant Value Description
QGLBuffer.StreamDraw 0x88E0 这些数据将被设置一次,用过几次的绘图操作。下OpenGL / ES 1.1 ,这是相同的StaticDraw 。
QGLBuffer.StreamRead 0x88E1 这些数据将被设置一次,用过几次读回数据从GL服务器。下的OpenGL / ES不支持。
QGLBuffer.StreamCopy 0x88E2 这些数据将被设置一次,用过几次读取数据从GL服务器回在进一步的绘制操作使用。下的OpenGL / ES不支持。
QGLBuffer.StaticDraw 0x88E4 这些数据将被设置一次,多次使用的绘图操作。
QGLBuffer.StaticRead 0x88E5 这些数据将被设置一次,多次使用读回数据从GL服务器。下的OpenGL / ES不支持。
QGLBuffer.StaticCopy 0x88E6 这些数据将被设置一次,多次使用,用于读取数据从GL服务器回在进一步的绘制操作使用。下的OpenGL / ES不支持。
QGLBuffer.DynamicDraw 0x88E8 该数据将被反复修改和多次使用的绘图操作。
QGLBuffer.DynamicRead 0x88E9 该数据将被反复修改和多次使用读回数据从GL服务器。下的OpenGL / ES不支持。
QGLBuffer.DynamicCopy 0x88EA 该数据将被反复修改和多次使用,用于读取数据从GL服务器回在进一步的绘制操作使用。下的OpenGL / ES不支持。

Method Documentation

QGLBuffer.__init__ (self)

构造类型的一个新的缓冲区对象QGLBuffer.VertexBuffer

注:此构造函数只是创建QGLBuffer实例。在GL服务器的实际缓冲区对象不创建,直到create()被调用。

See also create( ) 。

QGLBuffer.__init__ (self, Type type)

构建了一个新的缓冲区对象type

注:此构造函数只是创建QGLBuffer实例。在GL服务器的实际缓冲区对象不创建,直到create()被调用。

See also create( ) 。

QGLBuffer.__init__ (self, QGLBuffer other)

构造的浅表副本other

注意:QGLBuffer没有实现副本上写的语义,所以other将受到影响每当副本被修改。

QGLBuffer.allocate (self, sip.voidptr data, int count)

中分配count的空间的缓冲区中的字节,并将其初始化内容data。任何以前的内容将被删除。

假定create( )被调用这个缓冲区,它已经绑定到当前的上下文。

See also create( )read()和write( ) 。

QGLBuffer.allocate (self, int count)

这是一个重载函数。

中分配count的空间字节的缓冲区。任何以前的内容将被删除。

假定create( )被调用这个缓冲区,它已经绑定到当前的上下文。

See also create()和write( ) 。

bool QGLBuffer.bind (self)

结合与此对象到当前的GL上下文相关联的缓冲区。如果结合是不可能的,通常是因为返回Falsetype( )不支持此GL实现。

该缓冲区必须被绑定到同一个QGLContext当电流create( )被调用,或到另一个QGLContext这是分享它。否则为False将被从这个函数返回。

See also release()和create( ) 。

int QGLBuffer.bufferId (self)

返回与该缓冲区关联的GL标识符;如果缓冲区尚未创建为零。

See also isCreated( ) 。

bool QGLBuffer.create (self)

在创建GL服务器的缓冲区对象。如果在创建对象,则返回True ,否则返回False 。

此函数必须调用当前QGLContext。该缓冲区将被绑定到,可以在这方面(或与它共享的任何其他情况下)才能使用。

这个函数将返回False ,如果GL实现不支持的缓冲区,或者是没有电流QGLContext

See also isCreated( )allocate( )write()和destroy( ) 。

QGLBuffer.destroy (self)

摧毁这个缓冲区对象,包括GL服务器所使用的存储。到缓冲区中的所有引用都将变成无效。

bool QGLBuffer.isCreated (self)

如果这个缓冲区已经建立,则返回True ,否则返回False 。

See also create()和destroy( ) 。

sip.voidptr QGLBuffer.map (self, Access access)

这个映射缓冲区的内容到应用程序的内存空间,并返回一个指向它的指针。返回null ,如果内存映射是不可能的。该access参数表示将要执行的访问类型。

假定create( )被调用这个缓冲区,它已经绑定到当前的上下文。

此功能仅是下的OpenGL / ES的支持,如果GL_OES_mapbuffer扩展出现。

See also unmap( )create()和bind( ) 。

bool QGLBuffer.read (self, int offset, sip.voidptr data, int count)

读取count在这个缓冲区起始字节offsetdata。如果不支持从缓冲区读取错误;在成功时返回真。下的OpenGL / ES不支持的缓冲区读取。

据推测,此缓冲区已被绑定到当前上下文。

See also write()和bind( ) 。

QGLBuffer.release (self)

释放与从目前的GL上下文此对象关联的缓冲区。

这个函数必须被调用,使用相同的QGLContext电流时bind( )被调用的缓冲区。

See also bind( ) 。

QGLBuffer.release (Type type)

释放与相关联的缓冲type在当前的QGLContext

此功能是直接调用glBindBuffer(type, 0)使用时,调用者不知道哪些QGLBuffer已经被绑定到上下文,但要确保它被释放。

 QGLBuffer.release(QGLBuffer.VertexBuffer);

QGLBuffer.setUsagePattern (self, UsagePattern value)

设置此缓冲区对象的使用模式value。这个函数必须在被调用allocate()或write( ) 。

See also usagePattern( )allocate()和write( ) 。

int QGLBuffer.size (self)

返回数据的大小在此缓冲液中,用于读取操作。返回-1,如果读取缓冲区的大小是不支持,或者缓冲尚未建立。

据推测,此缓冲区已被绑定到当前上下文。

See also isCreated()和bind( ) 。

Type QGLBuffer.type (self)

返回缓冲区的当前对象表示的类型。

bool QGLBuffer.unmap (self)

取消映射缓冲区它被映射到应用程序的内存空间与以前调用后map( ) 。返回True如果取消映射成功,否则返回False 。

据推测,此缓冲区已被绑定到当前上下文,它先前被映射到map( ) 。

此功能仅是下的OpenGL / ES的支持,如果GL_OES_mapbuffer扩展出现。

See also map( ) 。

UsagePattern QGLBuffer.usagePattern (self)

返回此缓冲区对象的使用模式。缺省值是StaticDraw

See also setUsagePattern( ) 。

QGLBuffer.write (self, int offset, sip.voidptr data, int count)

替换count这个缓冲区的字节开始offset同的内容data。在缓冲区内的任何其他字节将保持不变。

假定create( )被调用这个缓冲区,它已经绑定到当前的上下文。

See also create( )read()和allocate( ) 。




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5