OpenGL中glVertexPointer, glEnableClientState, glDisableClientState

https://baike.baidu.com/item/glVertexPointer

 

个人理解:这三个方法的使用规则是,定义一个数组后,用glVertexPointer来描述这个数组,用enable和disable来激活和关闭。

glVertexPointer

 编辑

本词条缺少信息栏概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

glVertexPointer,是计算机用语。

目录

  1. 表现
  2. 参数
  3. 描述

表现

编辑

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是错误的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值