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

时间:2014-02-18 02:58:32   收藏:0   阅读:499
glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer);

//format:图片

bubuko.com,布布扣

//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);



原文:http://blog.csdn.net/biggbang/article/details/19325205

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!