現在の OpenGL の初期化コードと終了コードは Intel HD 3000 に適していますか?また、複数の OpenGL コンテキストを管理するより良い方法はありますか?

DDD
リリース: 2024-10-28 10:11:02
オリジナル
444 人が閲覧しました

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

Intel HD 3000 での適切な OpenGL 初期化とは何ですか?

問題:

Intel HD 3000 グラフィックス カード上、単一のアプリケーションで複数の OpenGL コンテキストを作成すると、予期しない動作が発生します:

  1. アプリの古いバージョンでは 2 番目のレンダリング コンテキストの作成に失敗します。
  2. OpenGL ベースのソフトウェアへの変更後、2 番目のレンダリング コンテキストは作成できますが、リリース後は無効になります。

現在の初期化コードと終了コード:

<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>
ログイン後にコピー

質問:

  1. 現在の OpenGL 初期化/終了コードは間違っていますか?
  2. OpenGL を初期化して終了するより良い方法はありますか?
  3. 異なるものを適切に切り替える方法レンダリング コンテキスト?

回答:

  1. 現在の OpenGL 初期化コードと終了コードは正しいように見えますが、GLEW などのローダー ライブラリを使用することをお勧めします。
  2. GLEW や glfw などのローダー ライブラリを使用します。これらのライブラリにより、OpenGL コンテキストの作成と関数の読み込みが簡素化されます。
  3. wglMakeCurrent の使用は正しいように見えますが、コンテキストの切り替えに関する Intel 固有の癖を調査する必要がある場合があります。

以上が現在の OpenGL の初期化コードと終了コードは Intel HD 3000 に適していますか?また、複数の OpenGL コンテキストを管理するより良い方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!