gpt4 book ai didi

opengl - 在 OpenGL 中,为什么 glVertexAttribPointer 需要将 "pointer"参数作为 void* 传入?

转载 作者:行者123 更新时间:2023-12-04 16:59:59 27 4
gpt4 key购买 nike

glVertexAttribPointer的规范如下:

void glVertexAttribPointer( GLuint index,
GLint size,
GLenum type,
GLboolean normalized,
GLsizei stride,
const GLvoid * pointer);

鉴于最后一个参数只是一个 4 字节的整数偏移量,为什么 OpenGL 期望它作为空指针传入?

最佳答案

遗产。

该参数在 VBO 之前具有不同的含义:您将顶点数据保存在客户端内存中并传递数组的地址(参见 glEnableClientState 等)。

现在最后一个参数可以有两种含义(缓冲区对象的偏移量,客户端状态数组的地址)。 Khronos 没有为 gl*Pointer 提供单独的版本缓冲区对象的函数,所以你需要做这个笨拙的转换。

关于opengl - 在 OpenGL 中,为什么 glVertexAttribPointer 需要将 "pointer"参数作为 void* 传入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28063307/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com