我不知道简单代码有什么问题。该函数用于python和ctypes。
extern "C" void add_lines(bool antialias,GLdouble coordinates[][2],int array_size,GLdouble w,GLdouble r,GLdouble g, GLdouble b,GLdouble a){
glDisable(GL_TEXTURE_2D);
if (antialias){
glEnable(GL_LINE_SMOOTH); //Enable line smoothing.
}
glColor4d(r,g,b,a);
glLineWidth(w);
glBegin(GL_LINE_STRIP);
for (int x = 0; x < array_size; x++) {
glVertex2d(coordinates[x][0],coordinates[x][1]);
}
glEnd();
std::cout << glGetError();
if (antialias){
glDisable(GL_LINE_SMOOTH); //Disable line smoothing.
}
glEnable(GL_TEXTURE_2D);
}
std :: cout&lt;&lt; glGetError();每次都给出1281个。
三江源。
答案 0 :(得分:4)
glGetError()
很粘:一旦某个函数设置了错误,它将保持该错误值,直到您调用glGetError()
。因此,错误很可能是在其他地方造成的。检查函数入口上的glGetError()
的值,然后在每次函数调用之后找出它的设置位置。
答案 1 :(得分:0)
你确定在glEnd之前没有触发错误吗? glGetError将报告最后一次GL错误,这可能是程序执行早期引起的。