„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie rendere ich einen OpenGL-Frame in einem C++ Builder-Formular mit TForm::Handle?

Wie rendere ich einen OpenGL-Frame in einem C++ Builder-Formular mit TForm::Handle?

Veröffentlicht am 07.11.2024
Durchsuche:128

How to Render an OpenGL Frame in a C   Builder Form Using TForm::Handle?

Rendern eines OpenGL-Frames in C Builder

Frage

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?

Antworten

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

  • Fügen Sie die erforderlichen Überschriften ein: und
  • Erstellen Sie einen Timer, um das Rendern auszulösen.
  • Ereignisse für Formulargrößenänderung, Neulackierung und Mausradeingabe verarbeiten.
  • Stellen Sie sicher, dass gl.h im Projekt enthalten ist.
  • Konsultieren Sie die stellte Links für fortgeschrittenere OpenGL-Techniken bereit.
Neuestes Tutorial Mehr>

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