2011-01-10 2 views
2

Есть ли способ создать/указать пользовательское окно для GLUT вместо использования метода glutCreateWindow? Я хотел бы изменить некоторые элементы окна, такие как удаление границы, возможно округление углов и т. Д.Создание пользовательского окна для GLUT?

Не существует встроенных функций для установки определенного дескриптора HWND в качестве целевого Окно GLUT (в Windows).

Любые идеи?
Jengerer

ответ

2

Глушитель и OpenGL, на которых построен Glut, предназначены для кроссплатформенности. На каждой платформе есть свои идеи о том, что делает окно. Чтобы обойти этот OpenGL, есть своя концепция окон или контекстов рендеринга. Контекст рендеринга представляет собой кусок памяти, в котором визуализируется DIB (независимый от устройства битмап), который обычно не включает в себя декорации окон (границы, значок X, значок окна и т. Д.). Если не существует расширения для конкретной платформы, о котором я не знаю, нет способа передать Glut HWND, который специфичен для окон.

Возможно, вы сможете создать контекст рендеринга в другом месте, например, в своем собственном коде или в другой библиотеке. После создания может быть способ передать этот контекст или указатель на контекст в Glut. OpenGL это поддерживает, и поэтому многие библиотеки построены поверх него.

Я не уверен, почему вы хотите изменить декорации окон, если ситуация позволяет проще использовать библиотеку, которая поддерживает это, а не фальсификацию Glut в решении. Я знаю SDL, Ogre3d имеет ограниченные возможности для управления декорами окон (я не думаю, что они могут обойти углы), и если вы действительно хотите работать с Glut, можно получить любую из этих библиотек, чтобы дать вам указатель к контексту рендеринга OpenGL, который они используют. Я не использовал QT, но я знаю, что он обеспечивает более легкий доступ к требуемому элементу управления и сможет создать для вас контекст OpenGL.

Однако, посмотрев документацию на Glut на http://www.opengl.org/documentation/specs/glut/spec3/spec3.html, он не использует слово «контекст». Это может означать, что если вы используете Glut, вы ограничены инструментами оформления окон, которые он предоставляет. Это может означать, что вам либо приходится перегружаться, либо использовать библиотеку, которая делает больше, или соглашаться на декорации окон, предоставляемые ОС.

Смежные вопросы