我想在 C Builder 中的窗体内渲染 OpenGL 帧,但我遵循提供的 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