Почему расширение OpenGL GLX не поддерживается дисплеем :?

Я пытаюсь использовать cygwin для анализа больших объемов данных. Я установил все пакеты gl, openGL, freeglut, но продолжаю получать это сообщение об ошибке при запуске программы, отображающей ввод данных в виде графика: freeglut (./graph): расширение OpenGL GLX не поддерживается отображением ':0.0'

Все остальное в программе работает исправно, только расширение видимо не работает.


person dl96    schedule 06.08.2013    source источник
comment
Скорее всего, вам не хватает драйвера для вашей видеокарты. Под Cygwin вы подразумеваете, что пытаетесь запустить это в Windows?   -  person Ben Fulton    schedule 06.08.2013


Ответы (2)


GLX — это транспортный протокол для OpenGL поверх X11, т. е. с использованием OpenGL в сочетании с сервером X11. Windows изначально не поддерживает протокол X11, поэтому Cygwin поставляется с сервером X11, который находится поверх Windows GDI; но сервер Cygwin X11 не поддерживает OpenGL.

Технически реализовать это вполне возможно, т. е. предоставить libGL.so, который находится поверх %SYSDIR%/opengl32.dll для Direct Rendering, а Cygwin-Server создает контексты OpenGL и все такое. Но пока этого никто не сделал.

Итак, что вы должны сделать (к сожалению), так это использовать собственные методы создания контекста Windows OpenGL.

person datenwolf    schedule 06.08.2013
comment
Есть много X-серверов, которые поддерживают GLX в Windows, некоторые бесплатные, некоторые за $, но я определенно рекомендую этот маршрут перед переносом кода в Windows. - person Nathan Kidd; 31.08.2013
comment
@NathanKidd: Вот почему я прямо написал о сервере Cygwin X. AFAIK Xming поддерживает OpenGL. Но есть одна загвоздка. Обычно все это будет косвенным рендерингом. Это само по себе не было такой уж большой проблемой, учитывая, что современные графические процессоры обслуживают это. Проблема в том, что протокол непрямого рендеринга не поддерживался, чтобы не отставать от остальной части OpenGL. По сути, это означает, что вы в значительной степени застряли с OpenGL-1.x + несколько расширений… для которых вам нужна поддержка в клиентской библиотеке GLX. - person datenwolf; 31.08.2013
comment
@NathanKidd: Технически GLX-3 вполне осуществим (на самом деле это проще сделать, чем GLX-2), но кто-то должен это сделать. - person datenwolf; 31.08.2013

Это не касается вашего вопроса, но если по какой-либо причине Cygwin X не поддерживает GLX, вам следует рассмотреть возможность использования Xming что делает.

person Nathan Kidd    schedule 30.08.2013