![]() |
CMGDK r49-rc2
|
批量绘制处理类 更多...
#include <DrawArray.H>
批量绘制处理类
批量绘制处理类,用于批量绘制大批图形
自动检测并支持VBO处理,在不支持VBO的显卡或驱动下自动使用传统处理方式
hgl::DrawArray::DrawArray | ( | ) |
hgl::DrawArray::DrawArray | ( | DrawArrayDataState | vt, |
GLenum | draw_mode, | ||
uint | draw_count, | ||
uint | dc | ||
) |
本类构造函数(单一贴图模式)
vt | 数据状态 |
draw_mode | 绘制模式,如GL_POINTS,GL_LINES等 |
draw_count | 数据个数 |
dc | 点数据成份位组合 |
本类构造函数,顶点状态为静态模式(单一贴图模式)
draw_mode | 绘制模式,如GL_POINTS,GL_LINES等 |
draw_count | 数据个数 |
dc | 点数据成份位组合 |
hgl::DrawArray::~DrawArray | ( | ) |
void hgl::DrawArray::Clear | ( | ) |
清除数据
清空数据,一般用于被全部修改的缓冲区
在使用VBO的情况下,为了使数据能够修改,映射的过程是将数据从显存复制到内存,修改好了再写回去。
如果清空了数据再进行映射,硬件将会放弃原有的数据,不再有这个步骤,这样有利于提高性能.
void hgl::DrawArray::Create | ( | DrawArrayDataState | vt, |
uint | dc, | ||
bool | create = true |
||
) | [protected] |
开始绘制数据,从第start开始,绘制number个
start | 开始绘制的数据编号 |
number | 绘制的数据数量,0表示全部绘制 |
void hgl::DrawArray::Draw | ( | ) |
void hgl::DrawArray::EndAccess | ( | ) | [protected] |
uint hgl::DrawArray::GetPointDC | ( | ) | [inline] |
取得点成份
void hgl::DrawArray::Load | ( | DrawArrayDataState | vt, |
Stream * | in | ||
) |
从流中加载数据
void hgl::DrawArray::Map | ( | DrawArrayBufferInterface * | buf, |
int | start = -1 , |
||
int | number = -1 |
||
) |
写入映射
写入映射,可在Unmap前多次映射多个不同的缓冲区
buf | 要映射写入的绘冲区 |
start | 开始写入的数据编号 |
number | 数据个数 |
void hgl::DrawArray::Map | ( | uint | mode = daaWrite | ) |
开始绘制数据,此函数相当于多次调用Draw的结果。
count | 绘制多少次 |
start | 开始绘制的数据编号的阵列 |
number | 绘制的数据数量阵列,不可为0 |
void hgl::DrawArray::StartAccess | ( | ) | [protected] |
bool hgl::DrawArray::Unmap | ( | ) |
解除映射
关闭映射
void hgl::DrawArray::Use | ( | ) | [protected] |
GLuint hgl::DrawArray::buffer [protected] |
uint hgl::DrawArray::buffer_size [protected] |
List<DrawArrayBufferInterface *> hgl::DrawArray::BufferList [protected] |
int hgl::DrawArray::count [protected] |
uint8* hgl::DrawArray::data [protected] |
int hgl::DrawArray::map [protected] |
uint hgl::DrawArray::point_dc [protected] |
DrawArrayDataState hgl::DrawArray::type [protected] |
bool hgl::DrawArray::use_index [protected] |
bool hgl::DrawArray::use_vbo [protected] |