2016-04-29 5 views
0

私たちはQTバージョン5.6を使用しています QtウィジェットにはC++アプリケーションがあります。ソース代わりに黒い矩形QQuickWidget(特定の用途)。 OpenGLの問題

quickWidget->setSource(QUrl(QStringLiteral("qrc:/Resources/WebResources/main.qml"))); 
我々はQQuickWidgetが

QQuickWidget* quickWidget = new QQuickWidget(this); 

はコンテキスト

QQmlContext* ctxt = quickWidget->rootContext(); 

でいくつかの操作を行い作成し、いくつかのウィジェットに と設定:いくつかのプラグインでは、我々はQMLを使用して、このアプリケーションの(Q_PLUGIN_METADATAとQ_INTERFACESで作成)

このウィジェットに問題が発生することがあります - 黒い四角形が表示されます。

我々はlibEGL.dll、libGLESv2.dll、d3dcompiler_47.dllとopengl32sw.dllを追加しました。

また、我々は(はQApplication工事前)メインはQApplicationのためのQt :: AA_UseSoftwareOpenGLフラグを設定しようとしたが、この操作は、結果を与えるものではありません。

私たちはWin7でバーチャルマシーンで再現しています。仮想mashine上

QQuickWidgetは、RemoteFXの3Dビデオアダプターを追加した後の良好な表示されます。しかし、私たちはRemoteFX 3Dビデオアダプタと一緒にQQuickWidgetを表示できますか? QQuickWidgetたちはWinDBGの

問題がある
ModLoad: 6ee10000 6ee18000 C:\Users\admin\Desktop\Release\Win32\QtQuick.2\qtquick2plugin.dll 
ModLoad: 66c50000 66cfd000 C:\Users\admin\Desktop\Release\Win32\QtQuick\Controls\qtquickcontrolsplugin.dll 
ModLoad: 6ee00000 6ee08000 C:\Users\admin\Desktop\Release\Win32\QtQuick\Window.2\windowplugin.dll 
ModLoad: 656a0000 65863000 C:\Windows\system32\d3d9.dll 
ModLoad: 749b0000 749b9000 C:\Windows\system32\VERSION.dll 
ModLoad: 6edf0000 6edf6000 C:\Windows\system32\d3d8thk.dll 
ModLoad: 662f0000 663b8000 C:\Windows\system32\opengl32.dll 
ModLoad: 6dc80000 6dca2000 C:\Windows\system32\GLU32.dll 
ModLoad: 655b0000 65697000 C:\Windows\system32\DDRAW.dll 
ModLoad: 6edd0000 6edd6000 C:\Windows\system32\DCIMAN32.dll 
ModLoad: 6d7f0000 6d7f7000 C:\Users\admin\Desktop\Release\Win32\libEGL.DLL 
ModLoad: 65420000 655ac000 C:\Users\admin\Desktop\Release\Win32\libGLESv2.dll 
ModLoad: 650c0000 65416000 C:\Users\admin\Desktop\Release\Win32\d3dcompiler_47.dll 
ModLoad: 74550000 745d3000 C:\Windows\system32\dxgi.dll 
ModLoad: 66bc0000 66c43000 C:\Windows\system32\d3d11.dll 
ModLoad: 75730000 7575d000 C:\Windows\system32\WINTRUST.dll 
ModLoad: 64d60000 650b6000 C:\Users\admin\Desktop\Release\Win32\d3dcompiler_47.dll 
ModLoad: 74550000 745d3000 C:\Windows\system32\dxgi.dll 
ModLoad: 66260000 662e3000 C:\Windows\system32\d3d11.dll 
ModLoad: 650c0000 65416000 C:\Users\admin\Desktop\Release\Win32\d3dcompiler_47.dll 
QWindowsEGLStaticContext::create: Could not initialize EGL display: error 0x3001 
QWindowsEGLStaticContext::create: When using ANGLE, check if d3dcompiler_4x.dll is available 
ModLoad: 64530000 65411000 C:\Users\admin\Desktop\Release\Win32\opengl32sw.dll 
ModLoad: 75a80000 75aaa000 C:\Windows\system32\imagehlp.dll 
ModLoad: 6da80000 6db6b000 C:\Windows\system32\dbghelp.dll 

に持って作成した後

enter image description here

+2

。 [mcve](http://stackoverflow.com/help/mcve) – ckruczek

+0

かもしれません。https://bugreports.qt.io/browse/QTBUG-47435 – Velkan

答えて

0

私はQQuickWidgetと同じ問題があります:私はQtCreatorでコンパイルするとき

QQuickWidget * w = new QQuickWidget(this); 
w->setSource(QUrl("qrc:///main.qml")); 
w->show(); 

すべてがOKだったが、私は別のPCの(インテルビデオカード付き)に実行可能ファイルを実行すると、いくつかのアプリがクラッシュした上で、しかしをもう一つは「黒いスクリーン」だった。

それは、例えば、第2のPCは、グラフィックスカードを持っているのためのIntel 945は問題がOpenGLでした。

Qt Quickには、OpenGL 2.0以上が必要です。しかし、Intelの945は唯一のOpenGL 1.4

までサポートしますので...私はあなたの質問は非常に広いですQQuickViewを使い始めるの代わりQQuickWidget

+0

おそらくCommodore C64では動作しません。 ... – Algoman

+1

Btw。インテル945はクロムGPUブラックリストにあります - https://cs.chromium.org/chromium/src/gpu/config/software_rendering_list.jsの36行目を参照してください。これは、問題がGPUであることを強く示しています( GPUは12歳です...) – Algoman

関連する問題