Ich möchte einen OpenGL-Frame innerhalb eines Formulars in C Builder rendern, aber das tue ich Beim Befolgen des bereitgestellten OpenGL-Startcodes treten Probleme auf. Wie kann ich das lösen?
TForm::Handle als Fensterhandle verwenden
Die Lösung liegt in der Verwendung von TForm::Handle als Fensterhandle.
Beispielimplementierung
Hier ist ein Beispiel, das aus einer älteren Version von C Builder übernommen wurde:
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;
}
Zusätzliche Hinweise
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3