Qt5は、ANGLEを使用してOpenGLドライバーまたはDirectXドライバーを使用できます。インストールされているOpenGLドライバーに依存することはできないため、ANGLEバックエンドを使用する必要があります。残念ながら、これは、特にハードウェアアクセラレーションのないWindows仮想マシンでの展開の問題をすべて解決するわけではありません。これらのシステムでは、OpenGLコンテキストの作成に失敗したというエラーメッセージが表示されます。
スクリーンショット:QSurfaceFormat形式のOpenGLコンテキストの作成に失敗しました
必要なすべてのライブラリ(libEGL.dll libGLESv2.dll libeay32.dll msvcp110.dll msvcr110.dll d3dcompiler_46.dll)を展開していますが、このエラーメッセージは引き続き表示されます。
OpenGLドライバーのないエンドユーザーマシンとDirect3Dアクセラレーションのない(仮想)マシンで実行する必要があるQMLアプリケーションをどのようにデプロイしますか?
Qt wikiにページがあります この問題について言及しています ですが、それはそれを解決するのにあまり役に立ちません。
これまでの私の調査結果は次のとおりです。
Mesaは部分的なソリューションのようですが、Qt 5.4.0では設定が非常にクラッシュすることがよくあります。
別のフォールバックはQt Quick 2Dレンダラーである可能性がありますが、残念ながらこれもクラッシュします。
結論:これらのシステムの実際の解決策はまだありません
Anno 2015:壊れたグラフィックドライブはまだ壊れています。
当面の結論は次のとおりです。
QT 5には、一部のハードウェア構成でのopenglとの大きな互換性の問題があります。IntelHD3000ドライバーとNvidia/ATIカードの組み合わせは、Windows 10では機能しません https://bugreports.qt.io/browse/QTBUG-4224
Intelはこのカードのサポートを打ち切りましたが、それらのドライバーにはクラッシュにつながるバグがあります。
HD3000で顧客をサポートしたい場合、ハードウェアopenglに依存することはできません。
Windowsでは、opengl32.dllがデフォルトのOpenGLドライバです。 OpenGL 1.1(本当に古いバージョン)を実装しています。 ANGLEにはOpenGL ES 2.0のベースラインがあり、呼び出しをマッピングするためにDirectX 9/11をインストールする必要があります。
そのため、OpenGLドライバーがインストールされていないビデオカード、OpenGLドライバーが2.0未満、またはDirectX 9/11がインストールされていない場合、アプリは機能しません。
仮想化と3Dアクセラレーションに関しては、これらは一見の価値があります。
また、VirtualBoxでマルチモニターWindows環境を実行すると、3Dアクセラレーションが無効になります。
これを再度チェックして、これらの問題がQT 5.12.2の最新リリースで修正されているかどうかを確認しましたが、まだ修正されていません。参照されているQT wikiエントリOPで説明されている関数 https://wiki.qt.io/Qt_5_on_Windows_ANGLE_and_OpenGL は良さそうですが、実際には機能しません。
私は、あらゆる形式のQTでOpenGLを回避すると結論付けています。それはあまりにも信頼できません。