Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Membuat Bingkai OpenGL dalam Borang C Builder Menggunakan TForm:: Handle?

Bagaimana untuk Membuat Bingkai OpenGL dalam Borang C Builder Menggunakan TForm:: Handle?

Patricia Arquette
Lepaskan: 2024-10-25 04:38:29
asal
633 orang telah melayarinya

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

Memberikan Bingkai OpenGL dalam C Builder

Soalan

Saya mahu memaparkan bingkai OpenGL dalam bentuk dalam C Builder, tetapi saya menghadapi masalah apabila mengikuti kod permulaan OpenGL yang disediakan. Bagaimanakah saya boleh menyelesaikan masalah ini?

Jawapan

Menggunakan TForm::Handle sebagai Window Handle

Penyelesaian terletak pada penggunaan TForm::Handle sebagai pemegang tingkap.

Sampel Pelaksanaan

Berikut ialah contoh yang disesuaikan daripada versi lama C Builder:

<code class="cpp">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;
}</code>
Salin selepas log masuk

Nota Tambahan

  • Sertakan pengepala yang diperlukan: dan
  • Buat pemasa untuk mencetuskan pemaparan.
  • Kendalikan acara untuk mengubah saiz borang, mengecat semula dan input roda tetikus.
  • Pastikan gl. h disertakan dalam projek.
  • Rujuk pautan yang disediakan untuk teknik OpenGL yang lebih maju.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Bingkai OpenGL dalam Borang C Builder Menggunakan TForm:: Handle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan