Рендеринг с OpenGL в часть окна Win32 - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть обычное окно Win32, я хочу рендерить, используя OpenGL только для части этого окна, я нашел этот вопрос:

Использование OpenGL в обычном окне (Win32)

Но я действительно не знаю, как они создали панель внутри окна и получили DC для этого ..

В основном я хочу окно, которое будет рисовать кнопки, списки и многое другое, используя win32 ив том же окне, в некотором указанном разделе, визуализируем материал opengl.

Я попытался использовать glScissor и очистить буферы, но он просто заполняет весь экран черным, а часть, которую я указал чистым цветом ..

Я также пытался использовать glViewport, но ничего не сделал.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Я закончил тем, что создал новый виджет следующим образом:

HWND OpenglHWND = CreateWindowW(L"Static", L"",
                  WS_CHILD | WS_VISIBLE | WS_BORDER,
                  200, 10, 300, 300, ParentWindowHandle, 0, 0, NULL);

После этого вы получили HWND панели, которую вы создали, отсюда просто инициализируйте OpenGL, как вы всегда делаете, НО, когдасоздавая контекст, используйте DC HWND, который мы получили раньше!(в основном используется GetDC (OpenGLHWND) для контекста OpenGL)

0 голосов
/ 21 февраля 2019

Вам нужно создать элемент управления WinForms Panel (если вы используете WinForms?), А затем вызвать GetDC (panel.Handle), передав свойство Handle панели в качестве параметра.Это даст вам DC для создания контекста OpenGL.

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