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 Initialization
<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 中国語 Web サイトの他の関連記事を参照してください。