2017-05-10 11 views
0

PythonバインディングからQtWebEngineを使ってクライアントをビルドします。残念ながら、このクライアントは、OpenGL 2.0のネイティブサポートがないWindowsシステムではクラッシュします(以下のデバッグを参照してください)。 私はopengl = angleのウィンドウでqtをコンパイルすることができますか、これは死んだ道でしょうか?QtはOpenGL 2.0でサポートされていないWindowsクライアント向けにopengl = angle fixをサポートしていますか?

私はすでに

... msys2 /にMinGW64を使用してWindowsにソースからcompling QTを試しに一日を過ごしたが、成功せずに別のものに1つのトラップから落ちると努力が成功のにもチャンスがあることを確認したいです

ありがとう!私もQt forum

qt.qpa.gl: Basic wglCreateContext gives version 1.1 
qt.qpa.gl: OpenGL version too low 
qt.qpa.gl: OpenGL 2.0 entry points not found 
qt.qpa.gl: GPU features: QSet("disable_d3d11", "disable_d3d9", "disable_desktopgl") 
qt.qpa.gl: Disabling Desktop GL: GpuDescription(vendorId=0x0, deviceId=0x0, subSysId=0x0, revision=0, driver: "vm3dum64.dll", version=7.14.1.1233, "R 
DPDD Chained DD") 
qt.qpa.gl: Disabling D3D11: GpuDescription(vendorId=0x0, deviceId=0x0, subSysId=0x0, revision=0, driver: "vm3dum64.dll", version=7.14.1.1233, "RDPDD 
Chained DD") 
qt.qpa.gl: Disabling D3D9: GpuDescription(vendorId=0x0, deviceId=0x0, subSysId=0x0, revision=0, driver: "vm3dum64.dll", version=7.14.1.1233, "RDPDD C 
hained DD") 
qt.qpa.gl: QWindowsOpenGLTester::supportedRenderers GpuDescription(vendorId=0x0, deviceId=0x0, subSysId=0x0, revision=0, driver: "vm3dum64.dll", versi 
on=7.14.1.1233, "RDPDD Chained DD") renderer: QFlags(0x8|0x20) 
qt.qpa.gl: Qt: Using EGL from libEGL 
qt.qpa.gl: Qt: Using OpenGL ES 2.0 from libGLESv2 
qt.qpa.gl: QWindowsEGLStaticContext::create Created EGL display 0x3d409b0 v 1 . 4 
qt.qpa.gl: QWindowsIntegration::createPlatformOpenGLContext QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSiz 
e 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::SwapBe 
havior(DefaultSwapBehavior), swapInterval 1, profile QSurfaceFormat::OpenGLContextProfile(NoProfile)) 
qt.qpa.gl: QWindowsIntegration::createPlatformOpenGLContext QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSiz 
e -1, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::Swap 
Behavior(DefaultSwapBehavior), swapInterval 1, profile QSurfaceFormat::OpenGLContextProfile(NoProfile)) 
qt.qpa.gl: QWindowsIntegration::createPlatformOpenGLContext QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSiz 
e 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::SwapBe 
havior(DefaultSwapBehavior), swapInterval 1, profile QSurfaceFormat::OpenGLContextProfile(NoProfile)) 
qt.qpa.gl: QWindowsIntegration::createPlatformOpenGLContext QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSiz 
e 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::SwapBe 
havior(DefaultSwapBehavior), swapInterval 1, profile QSurfaceFormat::OpenGLContextProfile(NoProfile)) 
qt.qpa.gl: QWindowsIntegration::createPlatformOpenGLContext QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSiz 
e 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::SwapBe 
havior(DefaultSwapBehavior), swapInterval 1, profile QSurfaceFormat::OpenGLContextProfile(NoProfile)) 
QOpenGLShader::link: Failed to create D3D shaders. 

Could not link shader program: 
"Failed to create D3D shaders.\n" 
QOpenGLShader::link: Failed to create D3D shaders. 
Failed to create D3D shaders. 

答えて

0

talamakiさんのコメントは正しい方向に私を置く:

  • PyQt5はすでに最初のネイティブのOpenGLのサポートのために、WindowsではバックANGLEエミュレーションに落ちるよりも、チェックすることにより、QT 5.8.x mimikをサポートしています。
  • 不幸にも、errorstackは、失敗したシステムに何が欠けているかのヒントを与えません。長く、長い研究をした後、私は、動作していないすべてのWindowsシステムのソリューションを見つけました。(再)DirectX End-User Runtimes (June 2010)をインストールしてください。 QTが期待しているように、Windows 7にはANGLEで動作するDLLがいくつかあります。
1

に掲載

P.Sは:いいえ、私はあなたの場合に役立ちますANGLEサポートしてソースからのQtをコンパイルするとは思いません。

Qt: Using OpenGL ES 2.0 from libGLESv2 

このlinkはあなたがQtの5.5またはそれ以降の事前に構築されたバイナリパッケージを実行していると仮定して、それを確認:デバッグ出力では、それはQtは、すでにバックANGLE(libGLESv2)にフォール見えるのです-opengl dynamicで設定した場合、Qtもqmakeを使って構築されたアプリケーション もOpenGL32(標準デスクトップOpenGL) またはlibGLESv2(ANGLE)ライブラリにリンクしません。代わりに、適切なライブラリは実行時に が選択されます。デフォルトでは、Qtはシステムの opengl32.dllがOpenGL 2の機能を提供するかどうかを決定します。これらが存在する場合は、 opengl32.dllが使用されます。そうでない場合は、ANGLEライブラリが使用されます。

クラッシュする理由は、エミュレートされたOpenGLコード(ANGLE/Direct3D)で起こっているシェーダのリンクエラーです。

QOpenGLShader::link: Failed to create D3D shaders. 

これは別の話です。まず、DirectXを最新バージョンにアップデートします。

+0

ありがとうございました。 「DirectXエンドユーザランタイム(2010年6月)」をインストールすると、すべての問題が修正されました! –

関連する問題