[OpenGL ES 1.0 API] glVertexPointer

来源:互联网 发布:电子商务专业erp软件 编辑:程序博客网 时间:2024/06/05 16:11

转载地址:http://baike.baidu.com/view/8692960.htm


glVertexPointer

  void glVertexPointer(GLint size,
  GLenum type,
  GLsizei stride,
  const GLvoid * pointer)
  参数:
  size:指定了每个顶点对应的坐标个数,只能是2,3,4中的一个,默认值是4
  type:指定了数组中每个顶点坐标的数据类型,可取常量:GL_BYTE, GL_SHORT,GL_FIXED,GL_FLOAT;
  stride:指定了连续顶点间的字节排列方式,如果为0,数组中的顶点就会被认为是按照紧凑方式排列的,默认值为0
  pointer:制订了数组中第一个顶点的首地址,默认值为0,对于我们的android,大家可以不用去管什么地址的,一般给一个IntBuffer就可以了。
  描述:
  当开始render的时候,glVertexPointer 用一个数组指定了每个顶点的坐标,
  size指定了每个顶点的坐标个数
  type指定了每个坐标的数据类型,(和尚注:注意,这里不同的数据类型含义不同,如果选择GL_FIXED,那么0x10000表示单位长度,如果选择GL_FLOAT那么10f表示单位度。)
  stride指定了一个顶点和下一个顶点间数据的排列方式,是"单一数组"还是"分散数组",单一数组的存储方式通常是更具效率的。当一个顶点数组被指定以后,size,type,stride,pointer被存储成client-side
  当glDrawArrays或者glDrawElements被调用的时候,如果顶点数组处于可用状态,就会被使用;可以使用glEnableClientState或者glDisableClientState来激活或者禁用一个顶点数组,顶点数组默认是不可用并且是不可被glDrawArrays、glDrawElements两个函数使用的。
  使用glDrawArrays函数可以根据顶点数组构建一个原始构图序列
  使用glDrawElements可以根据序列化的顶点集合来创建相同的序列
  Notes
  glVertexPointer is typically implemented on the client side
  Errors
  GL_INVALID_VALUE is generated if size is not 2, 3, or 4
  GL_INVALID_ENUM is generated if type is is not an accepted value
  GL_INVALID_VALUE is generated if stride is negative
  错误:
  GL_INVALID_VALUE size 不是 2, 3, 4中的一个的时候
  GL_INVALID_ENUM type 不是一个允许的值
  GL_INVALID_VALUE stride是错误的

原创粉丝点击