gpt4 book ai didi

opengl - 如何将 int 转换为 const GLvoid*?

转载 作者:行者123 更新时间:2023-12-04 17:48:51 25 4
gpt4 key购买 nike

在我的跨平台 OpenGL 应用程序中,我想使用顶点缓冲区对象进行绘制。但是我在调​​用 glDrawRangeElements 时遇到了问题。

glDrawRangeElements(GL_TRIANGLES, start, start + count, count, 
GL_UNSIGNED_INT, static_cast<GLvoid *> (start * sizeof(unsigned int)));

编译器(Mac OS X 上的 CLang)不喜欢最后一个参数“错误:无法从类型 'unsigned long' 转换为指针类型 'GLvoid *'(又名 'void *')”。
OpenGL API 将最后一个参数的类型定义为 const GLvoid * 并在此 api 与顶点数组一起使用时需要一个指针。但是我知道当使用顶点缓冲区对象而不是指针时,期望将表示偏移量的整数值传递到缓冲区数据中。这就是我想要做的,因此我必须投。如何通过编译器进行严格检查来协调 api 要求?

最佳答案

像这样:
reinterpret_cast <GLvoid *> (start * sizeof(unsigned int));

关于opengl - 如何将 int 转换为 const GLvoid*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23177229/

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