您的位置:首页 > 运维架构

《高效学习OpenGL》之混合数组 glInterleavedArrays()

2014-02-17 09:17 501 查看
glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer);
//format:图片



//stride:连续顶点之间的字节偏移量
//pointer:数组第一个顶点的第一个坐标的内存地址

此函数的效果相当于

int str;
str = stride;
if (str == 0)
{
str = s; //s为一个顶点到另一个顶点的跨距值
}

glDisable(GL_EDGE_FLAG_ARRAY);
glDisable(GL_INDEX_ARRAY);
glDisable(GL_SECONDARY_COLOR_ARRAY);
glDisable(GL_FOG_COORD_ARRAY);

if (et)
{
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexCoordPointer(st, GL_FLOAT, str, pointer);
}
else
{
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
if (ec)
{
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer(sc, tc, str, pointer+pc);
}
else
{
glDisableClientState(GL_COLOR_ARRAY);
}
if (en)
{
glEnableClientState(GL_NORMAL_ARRAY);
glNormalPointer(GL_FLOAT, str, pointer+pn);
}
else
{
glDisableClientState(GL_NORMAL_ARRAY);
}

glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(sv,GL_FLOAT, str, pointer+pv);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息