使用 OpenGL 自定义 C Builder 表单时,直接从在线资源复制 OpenGL 启动代码时经常会遇到问题。对于使用 C Builder 的用户,这里有一个在表单中渲染 OpenGL 帧的详细指南:
初始化
<code class="cpp">int xs, ys; HDC hdc; // device context HGLRC hrc; // rendering context int ogl_inicialized; int ogl_init(); void ogl_exit(); void ogl_draw(); void ogl_resize();</code>
<code class="cpp">void __fastcall TForm1::FormResize(TObject* Sender) { ogl_resize(); } void __fastcall TForm1::FormPaint(TObject* Sender) { ogl_draw(); } void __fastcall TForm1::Timer1Timer(TObject* Sender) { ogl_draw(); }</code>
OpenGL 初始化
<code class="cpp">hdc = GetDC(Form1->Handle); // get device context PIXELFORMATDESCRIPTOR pfd; ZeroMemory(&pfd, sizeof(pfd)); // set the pixel format for the DC ... if(wglMakeCurrent(hdc, hrc) == false) { ShowMessage("Could not make current OpenGL Rendering context !!!"); wglDeleteContext(hrc); // destroy rendering context ogl_inicialized=0; return 0; } ...</code>
OpenGL 渲染
<code class="cpp">glBegin(GL_QUADS); ... glEnd();</code>
附加说明
以上是如何在 C Builder 窗体中渲染 OpenGL 帧?的详细内容。更多信息请关注PHP中文网其他相关文章!