2016-04-08 2 views
1

Работает glewinfo имеет много информации, но некоторые из них более запутанны, чем полезны.Как я должен интерпретировать вывод glewinfo?

Вот мой glewinfo от ноутбука у меня есть http://pastebin.com/K5p37w8a

Это говорит мне, что мой OpenGL версия 2.1, но когда я продолжаю чтение, есть записи в GL_VERSION_3_0 до GL_VERSION_4_0, и все они говорят OK. Но я не могу назвать какие-либо функции, перечисленные там.

Другие метки с OK [MISSING] это наиболее запутанное из всех, потому что либо оно есть, либо оно отсутствует, но оно не может быть одновременно.

ответ

1

Программа glewinfo показывает все входящие точки (функции), которые присутствуют, она не говорит вам, можете ли вы использовать функции или работают ли эти точки входа. Функция может сообщать как ОК, но ваша программа все равно может быть повреждена, если вы ее назовете! Чтобы выяснить, какие функции доступны, вам нужно будет посмотреть строки расширения и номер версии. Вы можете получить эту информацию от glxinfo, вам не нужен GLEW.

В этом случае вы используете Mesa (реализация OpenGL) с профилем совместимости (который является профилем по умолчанию). В режиме совместимости Mesa ограничивается OpenGL 2.1. Однако, если вы запросите основной профиль, Mesa предоставит новые функции и поддержит более новую версию OpenGL. Та же самая библиотека Mesa по-прежнему используется, поэтому все точки входа OpenGL 4.0 доступны.

Однако, когда вы используете его с профилем сердечника, GLEW несколько сломан. glewExperimental «Исправить» - это бедная ленточная помощь при ошибочной реализации. По этой причине я не рекомендую GLEW. glLoadGen - хорошая альтернатива.

+0

Я только что написал небольшую тестовую программу, и я не могу создать контекст opengl 3 вообще. glxinfo также имеет следующую информацию: 'Max core profile version: 0.0' и' Max compat profile version: 2.1'. Поэтому я до сих пор не знаю, что подразумевает эта запись 'GL_VERSION_3_0', когда я не могу вызывать из нее какую-либо функцию. – Arne

+0

Как я уже говорил, 'GL_VERSION_3_0' сообщает только, существуют ли функции * *, они не говорят вам, работают ли функции *. Вы можете в принципе игнорировать 'glewinfo', потому что он не говорит вам, что вы хотите знать, вместо этого используйте' glxinfo'. Я считаю, что ваше оборудование - это оборудование класса OpenGL 2.x. –