gpt4 book ai didi

c++ - 带有 OpenGL 的 C++ 中的原始重启索引错误

转载 作者:行者123 更新时间:2023-11-30 02:08:28 25 4
gpt4 key购买 nike

我刚刚学习 OpenGl 并尝试对原始重启索引的工作原理进行简单测试。无论我尝试什么,g++ 都会给我错误“对 `__glewPrimitiveRestartIndex' 的 undefined reference 。”

这是有问题的代码:

#include <GL/glew.h>
#include <GL/freeglut.h>

static GLfloat vertices[] = {0.0, 0.0, 0.0, 5.0, -5.0, 0.0,
0xffff, 0.0, -10.0, 5.0, -15.0, 6.0, -8.0};

void init(void)
{
glEnable(GL_PRIMITIVE_RESTART);
glPrimitiveRestartIndex(0xffff);

glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, vertices);
}

我承认我对g++有点陌生,对它的switch和include机制不是很了解。我用来编译它的 g++ 命令如下: g++ -o 测试 test.cpp -lGL -lglut

在将“-lGLEW”附加到命令后,程序编译但给我一个段错误。删除行“glPrimitiveRestartIndex(0xffff);”当 -lGLEW 附加到编译命令时,代码使它编译和运行没有错误(当然,没有原始重启索引工作),但在没有尝试时会出现相同的错误。

这让我相信最初的问题是由于没有包含 -lGLEW - 所以唯一剩下的问题是弄清楚为什么我会收到段错误。我已尝试使用 0xffff 以外的其他值,但问题仍然存在。

最佳答案

在实际加载 OpenGL 函数之前,您不应该调用它们。由于您使用的是 GLEW,因此您应该在调用 GL 函数之前使用 GLEW 的初始化例程。有关详细信息,请参阅 GLEW 的文档。


哦,这不是原始重启的工作方式。重新启动索引是一个索引,而不是顶点位置。它应该在你的索引列表中,你给 glDrawElements 的东西。如果您没有索引列表并且正在使用 glDrawArrays 进行绘图,则不能使用原语重启。

关于c++ - 带有 OpenGL 的 C++ 中的原始重启索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803295/

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