Включение OpenGL в wxWidgets
Вопрос
Я установил исходный код wxWidgets, скомпилировал его и связываю полученные таким образом библиотеки с кодом моего приложения.Теперь мне нужно использовать OpenGL в моем приложении wxWidgets.Как мне включить это?
Решение
Для сборки в Windows с файлами проекта:
Предположим, что $(WXWIDGETSROOT) - это корневой каталог вашей установки wxWidgets.
- Откройте файл $(WXWIDGETSROOT)\include\wx\msw\setup.h
- Поиск по
#define
дляwxUSE_GLCANVAS
. - Измените его значение с 0 на 1.
- Перекомпилируйте библиотеку.
Для сборки на Linux и других ./configure
основанные платформы:
Просто используй ./configure --with-opengl
(Сводный ответ из двух частичных ответов, данных другими)
Другие советы
Если вы используете configure
чтобы создать wxWidgets, вам просто нужно добавить --with-opengl
в вашу командную строку.
Просто чтобы добавить немного...Если вы используете Linux, вам нужно просмотреть журналы при запуске configure.Если он не сможет найти пакеты opengl dev, то он отключит opengl с одной строкой предупреждения, которую легко пропустить.
запустите его следующим образом, чтобы было более очевидно, каких библиотек разработки вам на самом деле не хватает (похоже, что параметр --with-opengl включен по умолчанию в 3.0.0 и, возможно, более ранних версиях wxwidgets, но, как я подозреваю, включить его не помешает).
./configure --with-opengl > configure.log
Как только вы сможете найти все библиотеки разработчиков, которые, по вашему мнению, собираетесь использовать, вам нужно перестроить wxwidgets:
make
sudo make install
Мне пришлось установить их в linux mint, чтобы сделать настройку wxwidget удобной для opengl (и также должна работать для ubuntu), чтобы получить необходимые мне библиотеки разработчиков.
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
(Предположим, что $(WX_WIDGETS_ROOT) - это корневой каталог вашей установки wxWidgets.)
- Откройте файл $(WX_WIDGETS_ROOT)\include\wx\msw\setup.h
- Выполните поиск и найдите опцию wxUSE_GLCANVAS.Измените его значение с 0 на 1.
- Перекомпилируйте библиотеку.