Lors de la personnalisation d'un formulaire C Builder avec OpenGL, il est courant de rencontrer des problèmes lors de la copie directe du code de démarrage OpenGL à partir de ressources en ligne. Pour ceux qui utilisent C Builder, voici un guide détaillé pour restituer un cadre OpenGL dans un formulaire :
Initialisation
<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>
Initialisation 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>
Rendu OpenGL
<code class="cpp">glBegin(GL_QUADS); ... glEnd();</code>
Notes supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!