1

実行中のコンピューターで opengl 4 がサポートされているかどうかを C++ プログラム内で検出したいと考えています。

間違った/悪い用語でGoogleとstackoverflowを検索したかどうかはわかりませんが(私の英語のスキル...)、驚くべきことに、例が見つかりませんでした...この質問が重複...

実行中のコンピューターでビデオカードとそれが使用するドライバーからより有用なデータを取得する方法を知ることは、最終的には役に立ちます。その方法を知るのに時間はかかりませんでしたが、便利なリンクがあれば、遠慮なく私と共有してください。

4

1 に答える 1

1
  • ステップ 1: OpenGL コンテキストを作成します。最初に、必要な OpenGL の最小バージョンを要求する「attrib」メソッドを試してください。それが成功すれば完了です。

  • ステップ 2: それが機能せず、正常にダウングレードできる場合は、飾り気のないコンテキストを作成し、glGetString(GL_VERSION)サポートされている実際のコンテキスト バージョンを取得するために呼び出します。MacOS X では、これにより 2.1 以前に制限されることに注意してください。

  • ステップ 3: 2.1 と最適なバージョンの間で移植可能で確実なコンテキストが必要な場合は、ループ内で attribs メソッドを試し、成功するまでニーズを減らします。

OpenGL でサポートされているバージョンを事前に確認する方法はないことに注意してください。これの主な理由は、オペレーティング システムとグラフィックス レイヤーが、要求とその時点で利用可能なリソースに応じて、使用するローカルで利用可能な OpenGL バージョンをオンデマンドで決定する可能性があるためです (理論上、グラフィックス カードはホットプラグ可能です)。

于 2014-09-01T17:56:38.333 に答える