2017-01-11 19 views
0

NDKコード(C/C++)にglGetString(GL_EXTENSIONS)を実行すると、38個のサポートされている拡張機能のリストが表示されます。しかし、JavaでOpenGL ES 3.2にアクセスしてGLES32.glGetString(GLES32.GL_EXTENSIONS)を実行すると、サポートされている拡張機能の一覧が表示されます。Android NDKでOpenGL ES拡張にアクセスする

私の問題は、私のNDKアプリケーションがOpenGL ES 3.0以降の機能を提供していないlibGLESv3.soライブラリにリンクしていることです。 libGLESv32.soライブラリがあればいいですが、見つけられません。

NDKアプリケーションで追加の拡張機能にアクセスする方法はありますか?

答えて

0

GLESv32.soライブラリのようなものはありません(原則としてGLESv3.soは存在してはいけません)。 OpenGLES 3.xはOpenGL ES 2.xと下位互換性があるように設計されているため、すべてのアプリケーションはGLESv2.soとGLESv3機能でもリンクする必要があります。

+0

libGLESv2.soにリンクしようとしましたが、いくつかの未定義の参照(glMapBufferRange、glBindVertexArrayなど)があります。 libGLESv3.soファイルはlibGLESv2.soファイルの2倍の大きさなので、libGLESv2.soがlibGLESv3.soのすべての機能を提供する可能性は低いです。 – user934904

+0

OK - Androidのような音がここで「特別な」ものをやっています。 – solidpixel

0

glGetString(GL_EXTENSIONS)のように見えますが、拡張子の完全なリストは返されません。

glGetIntegervGL_NUM_EXTENSIONSと呼び出す必要があります。その後、GL_EXTENSIONSglGetStringiを呼び出して、拡張機能を繰り返し処理できます。

+0

実際、これはまったく問題ではありませんでした。問題は '__android_log_print'がコンテンツを1行に1KBに切り詰めることでした。 'glGetString(GL_EXTENSIONS)'は拡張機能の完全なリストを返します。 – mstorsjo

関連する問題