Моя версия OpenGL не поддерживает привязку буфера - PullRequest
1 голос
/ 21 февраля 2012

Почему это? Я хотел бы знать, потому что в большом количестве статей и различных учебных пособий, которые я вижу в Интернете, трудно НЕ увидеть то, что не связано с привязкой буфера. Единственная связывающая функция, которую я имею, это glBindTexture. Значит ли это, что мои драйверы значительно устарели?

Редактировать

Извините за отсутствие информации. Моя версия OpenGL 3.1 от встроенного графического процессора Intel. Кроме того, причина, по которой я подумал, что мне не хватает таких функций, как glBindBuffer, заключается главным образом в том, что он не будет отображаться в Qt как функция, которую я мог бы использовать в своем автозаполнении.

1 Ответ

2 голосов
/ 21 февраля 2012

Единственная функция связывания, которую я имею, это glBindTexture

Скорее всего, вы одурачены тем, как реализации OpenGL экспортируют свою функциональность.opengl32.dll в Windows будет и libGL.so, скорее всего, предоставит вам только функциональность OpenGL-1.1 (Windows Vista и / или вообще-то предоставляют OpenGL-1.4, а большинство драйверов для Linux / BSD предоставляют OpenGL-2.1).Все, что находится за пределами (и объекты буфера выходят за пределы), должно быть загружено через так называемую систему расширений .

Самый простой и надежный способ сделать это:

  1. Gohttp://glew.sf.net получить версию, соответствующую вашей среде разработки
  2. Установить GLEW в среде разработки
  3. Заменить все вхождения #include <GL/gl.h> на #include <GL/glew.h>
  4. Вызов glewInit() в вашем коде после того, как контекст OpenGL стал текущим.
...