Я хочу визуализировать фрейм OpenGL в форме в C Builder, но я возникли проблемы при использовании предоставленного кода запуска OpenGL. Как я могу решить эту проблему?
Использование TForm::Handle в качестве дескриптора окна
Решение заключается в использовании TForm::Handle в качестве дескриптор окна.
Пример реализации
Вот пример, адаптированный из старой версии C Builder:
int TForm1::ogl_init()
{
if (ogl_inicialized)
return 1;
hdc = GetDC(Form1->Handle); // Get device context
PIXELFORMATDESCRIPTOR pfd;
// Set pixel format for the DC
...
// Create current rendering context
hrc = wglCreateContext(hdc);
if (hrc == NULL)
{
ShowMessage("Could not initialize OpenGL Rendering context !!!");
ogl_inicialized = 0;
return 0;
}
if (!wglMakeCurrent(hdc, hrc))
{
wglDeleteContext(hrc); // Destroy rendering context
ogl_inicialized = 0;
return 0;
}
// ...
ogl_inicialized = 1;
return 1;
}
Дополнительные примечания
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3