2016-10-23 24 views
0

私は現在コンパイルしようとしていますAndroid SDKツール25.2.2 Qt 5.6の標準的な例 - 「Cube OpenGL ES 2.0の例」では、Win/Linuxでは正常ですが、Android 7.0 - API 24では黒い画面で動作します。AndroidでQOpenGLWidgetを使用するにはどうすればよいですか?

私はメインウィンドウにQOpenGLWidgetのオブジェクトを置くときと同じ動作が発生 - アンドロイド7.0に黒画面を - 両方のケースでAPI 24.

アプリケーション出力:

W libQtGUI.so: (null):0 ((null)): QOpenGLShader::compile(Vertex): ERROR: Valid GLSL but not GLSL ES 
W libQtGUI.so: (null):0 ((null)): *** Problematic Vertex shader source code *** 
W libQtGUI.so: (null):0 ((null)): #define lowp 
W libQtGUI.so: #define mediump 
W libQtGUI.so: #define highp 
W libQtGUI.so: #line 1 
W libQtGUI.so: attribute highp vec3 vertexCoord;attribute highp vec2 textureCoord;varying highp vec2 uv;uniform highp mat4 vertexTransform;uniform highp mat3 textureTransform;void main() { uv = (textureTransform * vec3(textureCoord,1.0)).xy; gl_Position = vertexTransform * vec4(vertexCoord,1.0);} 
W libQtGUI.so: (null):0 ((null)): *** 
W libQtGUI.so: (null):0 ((null)): QOpenGLShader::compile(Fragment): ERROR: Valid GLSL but not GLSL ES 
W libQtGUI.so: (null):0 ((null)): *** Problematic Fragment shader source code *** 

をしかし、私はのAndroidにダウングレードSDKツール25.1.7からhttps://dl.google.com/android/repository/tools_r25.1.7-windows.zip QOpenGLWidgetはMainWindow上でのみAndroid上で正常に動作しますが、QOpenGLWidgetが含まれている場合は他のQDialogは表示されません。

AndroidでQOpenGLWidgetを使用することは可能ですか?

答えて

3

エラーは、デスクトップGLを使用するようにコンパイルされたコードとよく似ています。私はGLWidgetのコードがまったくわからないのですが、Qtビルドシステムでは、ライブラリのビルド中にOpenGLバージョン/フレーバーセレクトがあります。あなたのQtはデスクトップのOpenGLでビルドされていたが、アンドロイドはOpenGL ESしか提供していないようだ。デスクトップ側では、どのOpenGLフレーバーが実際に使用されているかを確認することができます。両方のOpenGLフレーバにライブラリを提供するので、linux/windowsでのみ動作するかもしれません。

関連する問題