glVertexPointer получить ошибку с GL_INVALID_ENUM - PullRequest
1 голос
/ 04 декабря 2011

Я новичок для OPENGLES. У меня проблема, что скучно весь день. Я просто хочу нарисовать треугольник на экране, но мне это не удалось. Я всегда получаю сообщение об ошибке при использовании

GLfloat vertices[] = 
{
    0, 0,0, 
    100,0,0,
     0,100,0
}; 
glVertexPointer(3, GL_FLOAT, 0, vertices);//always get GL_INVALID_ENUM error

Я проверил документ, и он сказал, что GL_INVALID_ENUM генерируется, если тип не является допустимым значением. Но я установил тип как GL_FLOAT, Почему он не поддерживается? : 0xC0000005: расположение чтения нарушения доступа 0x00000000. " в методе glDrawArrays Если программа продолжает работать с GL_INVALID_ENUM. более того, когда я изменил тип вершин на GLfixed и использовал

glVertexPointer(3, GL_FIXED, 0, vertices);

Ошибка не возникает, но на экране ничего не отображается, треугольник не появится на экране. Кто-нибудь может помочь мне решить эту проблему? Эта проблема связана с платформой? Я использую Windows XP, а процессор - двухъядерный процессор AMD Athlon (tm) 64 X2 5600+.

1 Ответ

0 голосов
/ 28 января 2013

Это потому, что вы вводите неправильное количество параметров для glVertexAttribPointer. Требуется шесть параметров. Ваш вызов метода только проходит четыре.

Если вы посмотрите документы OpenGL-ES на glVertexAttribPointer , вы можете найти спецификацию API:

void glVertexAttribPointer( GLuint index,
                            GLint size,
                            GLenum type,
                            GLboolean normalized,
                            GLsizei stride,
                            const GLvoid * pointer);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...