У меня возникла проблема с обновлением заголовков GL. В основном я хочу получить доступ к функции glCompressedTexImage2D
, но мои заголовки gl действительно старые, и я не считаю, что функция существует в этих заголовках. Поэтому я попытался обновить файл gl.h
, но я получаю множество ошибок. Я пробовал обновлять программное обеспечение для графических карт, среди прочего. Может ли кто-нибудь помочь?opengl, как лучше всего обновлять заголовки с визуальной студией?
ответ
Видимо, Windows застряла на старой версии OpenGL (1.2?). Попробуйте использовать GLEW или Glee для загрузки необходимого расширения (GL_ARB_TEXTURE_COMPRESSION в случае glCompressedTexImage2D
). Эти библиотеки загружают доступные расширения и позволяют вам проверять свой код, если загружается конкретное расширение или нет.
Пример с ликованием:
#include <gl/GLee.h>
if (GLEE_ARB_TEXTURE_COMPRESSION)
{
glCompressedTexImage2D(...);
}
else
{
// the extension is not available, use a different method
}
Обратите внимание, что GLEE не требует, чтобы вы явно инициализировать его (в отличие от GLEW). Я настоятельно рекомендую этот метод для ручной загрузки указателя функции. Не потому, что это мой ответ :), а потому, что это также позаботится о том, будет ли аппаратное обеспечение и его драйвер поддерживать расширение (которое может быть очень грязным), и оно не зависит от платформы.
Вы должны выяснить, если текущее устройство поддерживает эту функцию, а затем получить адрес функции, прежде чем вы можете назвать это:
PFNGLCOMPRESSEDTEXIMAGE2DPROC p = NULL;
const char* string = glGetString(GL_EXTENSIONS);
if (strstr(string, "GL_ARB_texture_compression") != NULL)
p = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)wglGetProcAddress("glCompressedTexImage2D");
Я имею то вроде обновления вопроса мои заголовки GL.
Это потому, что вы не должны это делать. В Windows все, что находится за OpenGL-1.1, собирается через механизм расширения. Самый простой способ получить доступ к этому - через GLEW. Установите это и используйте GL/glew.h
вместо обычного GL/gl.h
. Затем после создания контекста OpenGL первое, что нужно назвать, - glewInit()
.
Перейти к: http://www.opengl.org/registry/ и скачать последнюю версию glext.h и wglext.h
Теперь вы сможете вручную получить указатель на функцию, функции, которые вы хотите. Под Windows есть только OpenGL 1.1.
Для новичка я предлагаю использовать GLEW (GLEE также большой, но не был обновлен в течение довольно долгого времени ...)
- 1. OpenGl SOIL, связанная с визуальной студией
- 2. Отключить биткод с визуальной студией
- 3. Динамическая отладка с визуальной студией
- 4. Разработка SharePoint с визуальной студией
- 5. Использование angular2 с визуальной студией
- 6. Строительные отчеты с визуальной студией
- 7. SqlServerUnitTest с визуальной студией 2010
- 8. Файлы объектов с визуальной студией
- 9. меню с визуальной студией 2012
- 10. Использование PCL с визуальной студией
- 11. livereload с визуальной студией cordova
- 12. обратная совместимость с визуальной студией
- 13. Почему мы интегрируем Qt с визуальной студией
- 14. Как подключить xamarin с визуальной студией?
- 15. Как построить o2scl с визуальной студией?
- 16. с использованием ELMAH с визуальной студией 2003
- 17. stdcall over-ride визуальной студией?
- 18. Создание эффекта с буквой с визуальной студией
- 19. Настройка проекта Webdriver с визуальной студией C#
- 20. Решение Unity несовместимо с визуальной студией
- 21. Разработка nodejs с визуальной студией 2010
- 22. wx Виджеты с визуальной студией 2015
- 23. окно пакета телефона приложение с визуальной студией
- 24. Использование VS-кода с визуальной студией
- 25. Универсальное приложение с визуальной студией онлайн
- 26. Общая библиотека в репозитории с визуальной студией
- 27. Создание определения построения с визуальной студией
- 28. CUDA с визуальной студией и cmake
- 29. Внедрить структуру автоматического кода с визуальной студией
- 30. Как увеличить размер памяти, используемой визуальной студией?
Обратите внимание, что GLEE является несуществующей и больше не обновляется. Он остановился на GL 3.3; с тех пор было выпущено 6 версий OpenGL. Поэтому, насколько бы вам ни нравился этот стиль, вы не должны его использовать. Существует несколько альтернатив для загрузки функций OpenGL (http://www.opengl.org/wiki/OpenGL_Loading_Library). –
Спасибо за хед-ап. –