OpenGL GL_LINE_STRIP выдает ошибку 1281 (неверное значение) после glEnd - PullRequest
1 голос
/ 28 мая 2010

Понятия не имею, что не так с простым кодом. Функция предназначена для использования с 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 << glGetError (); выдает 1281 каждый раз. </p>

Thankyou.

Ответы [ 2 ]

4 голосов
/ 28 мая 2010

glGetError() залипает: как только ошибка установлена ​​какой-либо функцией, она будет оставаться на этом значении ошибки, пока вы не вызовете glGetError(). Таким образом, ошибка, вероятно, вызвана в другом месте. Проверьте значение glGetError() при вводе функции, а затем после каждого вызова функции выясните, где оно устанавливается.

0 голосов
/ 28 мая 2010

Вы уверены, что ошибка не сработала до glEnd? glGetError сообщит о последней ошибке GL, которая могла быть вызвана ранее при выполнении программы.

...