Rumah > pembangunan bahagian belakang > C++ > 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
Lepaskan: 2024-10-28 10:11:02
asal
509 orang telah melayarinya

 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>
Salin selepas log masuk

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan