CMGDK r49-rc2
公有成员 | 公有属性 | 保护成员 | 保护属性
hgl::DrawArray类参考

批量绘制处理类 更多...

#include <DrawArray.H>

所有成员的列表。

公有成员

 DrawArray ()
 DrawArray (DrawArrayDataState, GLenum, uint, uint)
 DrawArray (GLenum, uint, uint)
 ~DrawArray ()
void Map (uint=daaWrite)
 开始映射访问数据
void Map (int, int)
 写入映射
void Map (DrawArrayBufferInterface *, int=-1, int=-1)
 写入映射
bool Unmap ()
 解除映射
void Clear ()
 清除数据
uint GetPointDC ()
 取得点成份
void Load (DrawArrayDataState vt, Stream *in)
 从流中加载数据
int Save (Stream *out)
 保存数据到流
void Draw (int, int)
void Draw ()
void MultiDraw (int, int *, int *)

公有属性

GLenum DrawMode
 绘图模式
DrawArrayBufferInterfaceVertex
 顶点数据
DrawArrayBufferInterfaceTexCoord
 贴图坐标数据
DrawArrayBufferInterfaceColor
 颜色数据
DrawArrayBufferInterfaceNormal
 法线数据
DrawArrayBufferInterfaceSecondaryColor
 第二色彩
DrawArrayBufferInterfaceFogCoord
 雾坐标
DrawArrayBufferInterfaceIndex
 索引数据

保护成员

void Create (DrawArrayDataState, uint, bool=true)
void Use ()
void StartAccess ()
void StartAccess (int, int)
void EndAccess ()

保护属性

bool use_vbo
bool use_index
uint point_dc
int map
GLuint buffer
DrawArrayDataState type
int count
uint8data
uint buffer_size
List< DrawArrayBufferInterface * > BufferList

详细描述

批量绘制处理类

批量绘制处理类,用于批量绘制大批图形
自动检测并支持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点数据成份位组合
hgl::DrawArray::DrawArray ( GLenum  draw_mode,
uint  draw_count,
uint  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]
void hgl::DrawArray::Draw ( int  start,
int  number 
)

开始绘制数据,从第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)

开始映射访问数据

映射缓冲区进行访问

参数:
mode访问模式,对应DrawArrayDataAccess枚举
参见:
DrawArrayDataAccess
void hgl::DrawArray::Map ( int  start,
int  number 
)

写入映射

写入映射

参数:
start开始写入的数据编号
number数据个数
void hgl::DrawArray::MultiDraw ( int  count,
int start,
int number 
)

开始绘制数据,此函数相当于多次调用Draw的结果。

参数:
count绘制多少次
start开始绘制的数据编号的阵列
number绘制的数据数量阵列,不可为0
int hgl::DrawArray::Save ( Stream out)

保存数据到流

void hgl::DrawArray::StartAccess ( int  start,
int  number 
) [protected]
void hgl::DrawArray::StartAccess ( ) [protected]
bool hgl::DrawArray::Unmap ( )

解除映射

关闭映射

返回:
true 正确
false 数据被其它程序破坏,需要重新设置
void hgl::DrawArray::Use ( ) [protected]

成员数据文档

颜色数据

绘图模式

雾坐标

索引数据

int hgl::DrawArray::map [protected]

法线数据

第二色彩

贴图坐标数据

bool hgl::DrawArray::use_index [protected]
bool hgl::DrawArray::use_vbo [protected]

顶点数据


该类的文档由以下文件生成:
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义