Использование QT5 с glLoadGen

Я пишу интерфейс для 3D-приложения с Qt5.4 на Windows 8.1 в C ++. Приложение использует glLoadGen для загрузки функций OpenGL.

Нет проблем в том, что и GlWidget, и glLoadGen хотят быть включенными до включения gl.h, но в то же время оба включают gl.h. Так что, по-видимому, невозможно скомпилировать файл, который использует оба в одной и той же точке.

С некоторыми обертками я мог бы обойти эту проблему, однако я бы предпочел не делать этого. Есть ли чистое решение этой проблемы?

0

Решение

Чистое решение состоит в том, чтобы отделить ваши проблемы. Есть один исходный файл, который взаимодействует с Qt, который использует материал Qt. Затем создайте другой исходный файл, который взаимодействует с OpenGL, используя материал glLoadGen.

Если у вас есть функция, которая концептуально нуждается в обеих функциях, пусть она вызывает функции во взаимодействующем коде OpenGL, когда ей нужно общаться с GL. Так что, если вы хотите изменить область просмотра при изменении размера окна, у вас есть код Qt, который определяет изменение размера и затем вызывает функцию, которая переходит к OpenGL-взаимодействующему коду для фактического вызова glViewport,

Таким образом, если вам когда-либо понадобится перейти с Qt, вам нужно только заменить код, взаимодействующий с Qt.


При этом glLoadGen на самом деле не является загрузочной библиотекой OpenGL. Это генератор для загрузки библиотек OpenGL. Это расширяемая платформа. Поэтому, если для вас действительно так важно вставлять код рендеринга в код UI (что, вообще говоря, является плохим тоном), вы можете написать стиль генератора, который на самом деле совместим с Qt.

Конечно, написание стиля glLoadGen не тривиально. Вы должны будете знать некоторые сценарии Lua, и вы должны прочитать о как на самом деле работает система генерации.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]