Я работаю с OpenGL, используя Win32 API. Поэтому я использую wgl (Wiggle). Все отлично. За исключением случаев, когда я хочу использовать некоторые фигуры из библиотеки FREEGLUT. Например, чайник. Я смотрел на исходный код freeglut, и кажется, что когда я выпускаю
glutSolidTeaPot (1,0); , существует программа из-за макроса: FREEGLUT_EXIT_IF_NOT_INITIALISED («glutSolidSphere»); который вызывает fgerror, который имеет выход (1).
Поэтому симптом, который я получаю, очевиден. Когда я запускал программу OPENGL без каких-либо команд GLUT (например, чайника), она прекрасно работала. Если я использую чайник, он выходит.
Мне понятно, что мне не хватает инициализации. Вопрос в том, могу ли я инициализировать (и как) перенасыщение, которое будет использоваться для фигур в моем контексте wgl … Если это невозможно, я думаю, я мог бы создать фигуры самостоятельно. Это просто быстрее, если возможно.
Все примеры, которые я нашел до сих пор, указывают на то, как инициализировать перенасыщение, когда вы работаете только с переизбытком.
Я использую Windows 7 64, Visual Studio 2012, NVIDIA 330m, FreeGlut
FreeGLUT не предназначен для частичного использования. Это система для создания и управления контекстом рендеринга OpenGL. У него есть функции утилит, но его основная цель — создать окно и управлять им. Поэтому, если вы не используете FreeGLUT для создания и управления OpenGL, вы не сможете использовать его и для других целей.
Хотя кажется, что объединение GLUT и WGL (Wiggle) невозможно (и это правильно), я посмотрел на код, и кажется, что это можно изменить, чтобы заставить его работать. Конечно, почему это работает? Из-за дополнительных утилит, которые GLUT (FreeGlut) имеет … как создание сферы …
Лучше всего создать современную библиотеку для всего этого … Конечно, у вас есть некоторые библиотеки геометрии, но я их не проверял.
Я говорю о чем-то более похожем на библиотеку AUX, но в курсе.