OpenGL на внутреннем устройстве Windows - PullRequest
1 голос
/ 18 января 2012

Я создаю приложение OpenGL для Windows.Я не могу использовать GLUT, потому что я хотел бы сделать более одного окна.Я знаю, как сделать это с помощью wgl, но это очень грязно, и я хотел бы знать, что происходит под капотом.

Во-первых, мне нужно создать окно с желаемым форматом пикселей.Затем я подключаю это окно к OpenGL и все работает.Как водитель узнает, где визуализировать?Где хранятся данные окна?Я ищу какое-то объяснение, но не могу найти ничего хорошего.

1 Ответ

3 голосов
/ 18 января 2012

Я знаю, как это сделать с помощью wgl, но это очень грязно, и я хотел бы знать, что происходит под капотом.

WGL так же "под капотом", как и получает. Это интерфейс для создания контекста OpenGL из HWND. Вы не можете получить более низкий уровень.

Как водитель узнает, где рендерить? Где хранятся данные окна?

Контекст устройства, HDC, - это то, как выполняется рендеринг на HWND. Обратите внимание, что wglMakeCurrent принимает HDC, который не должен быть HDC, из которого был создан контекст (он просто должен использовать тот же формат пикселей). Таким образом, «где визуализировать» происходит от этой функции.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...