Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah permulaan OpenGL semasa dan kod keluar sesuai untuk Intel HD 3000, dan adakah terdapat cara yang lebih baik untuk mengurus berbilang konteks OpenGL?

Adakah permulaan OpenGL semasa dan kod keluar sesuai untuk Intel HD 3000, dan adakah terdapat cara yang lebih baik untuk mengurus berbilang konteks OpenGL?

DDD
DDDasal
2024-10-28 10:11:02445semak imbas

 Is the current OpenGL initialization and exit code suitable for Intel HD 3000, and are there better ways to manage multiple OpenGL contexts?

Apakah permulaan OpenGL yang betul pada Intel HD 3000?

Masalah:

Pada kad grafik Intel HD 3000 , mencipta berbilang konteks OpenGL dalam satu aplikasi membawa kepada tingkah laku yang tidak dapat diramalkan:

  1. Versi lama apl gagal mencipta konteks pemaparan kedua.
  2. Selepas perubahan pada perisian berasaskan OpenGL , konteks pemaparan kedua boleh dibuat tetapi menjadi tidak sah selepas dikeluarkan.

Kod Permulaan dan Keluar Semasa:

<code class="c++">// Initialization code
int OpenGLscreen::init(void *f, int textures)
{
    // ...
    hrc = wglCreateContext(hdc);
    // ...
    if(wglMakeCurrent(hdc, hrc) == false)
        {
        // ...
        }
    // ...
}

// Exit code
void OpenGLscreen::exit()
{
    if (!_init) return;
    wglMakeCurrent(hdc,hrc);        // use this context if multiple OpenGLs are used
    // ...
    wglMakeCurrent(NULL, NULL);     // release current rendering context
    wglDeleteContext(hrc);          // destroy rendering context
    hrc=NULL;
    _init=0;
}</code>

Soalan:

  1. Adakah kod permulaan/keluar OpenGL semasa tidak betul?
  2. Adakah terdapat cara yang lebih baik untuk memulakan dan keluar dari OpenGL?
  3. Bagaimana cara menukar antara yang berbeza dengan betul memaparkan konteks?

Jawapan:

  1. Kod permulaan dan keluar OpenGL semasa kelihatan betul, tetapi menggunakan perpustakaan pemuat seperti GLEW adalah disyorkan.
  2. Gunakan perpustakaan pemuat seperti GLEW atau glfw. Pustaka ini memudahkan penciptaan konteks OpenGL dan pemuatan fungsi.
  3. Penggunaan wglMakeCurrent anda kelihatan betul, tetapi anda mungkin perlu menyiasat kebiasaan khusus Intel untuk penukaran konteks.

Atas ialah kandungan terperinci Adakah permulaan OpenGL semasa dan kod keluar sesuai untuk Intel HD 3000, dan adakah terdapat cara yang lebih baik untuk mengurus berbilang konteks OpenGL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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