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
,