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是錯誤的