Mesa GLES или GL + glext, какие заголовки / библиотеки использовать (GLUT, GLEW, GLX)

Я пытаюсь использовать OpenGL в Linux с библиотеками Mesa, но я не совсем понимаю, какую комбинацию заголовков и библиотек мне следует использовать.

GL/gl.h Файл не включает ни одну из функций OpenGL 3.0+, например glCreateProgram, Это, однако, в GL/glext.h файл, но только если GL_GLEXT_PROTOTYPES определено. Это будет связано с GL библиотека.

GLES2/gl2.h включает в себя все определения, которые мне нужны, а также имеет другую библиотеку GLESv2,

Какая правильная комбинация заголовков и библиотек для рабочего стола Linux?

Я также могу добавить в этот список, должен ли я использовать GLUT, GLEW или GLEX или EGL? Все они являются частью MESA, и выборки, похоже, выбираются случайным образом.

1 ответ

Решение

ИМО полностью зависит от того, что вам нужно, что вы хотите кодировать самостоятельно (особенно в случае GLUT) и какие у вас целевые платформы:

  • Если вы хотите использовать и мобильные платформы, лучше использовать GLES (так как они обычно не поддерживают OpenGL, но OpenGL ES).

  • Если вы также хотите ориентироваться на Windows, вам придется перейти на OpenGL, так как OpenGL ES не поддерживается (если вы не используете какой-либо дополнительный слой, например библиотеку Angle).

Что касается упомянутых дополнительных библиотек - вам не нужна ни одна минимальная программа, но они могут сэкономить ваше время:

  • GLUT - это набор полезных фрагментов / функций, которые обычно "приятно иметь", например, быстрый способ создать окно или выполнить базовую загрузку текстуры.

  • GLEW - подобный набор, облегчающий использование расширения, не входящего в базовый OpenGL (например, упомянутый glCreateProgram,

Другие вопросы по тегам