2017-02-06 9 views
0

私はJNI(Java Native Interface)でOpenGL ESを使用して学習しています。私は現在、NDKをAndroidスタジオにインストールしたシンプルなTriangleをこの例で描画しようとしています:https://github.com/googlesamples/android-ndk/tree/master/hello-gl2C++コードとJNIのみを使用してAndroidスタジオでOpenGLESを使用したシンプルなトライアングルを描画

私は以前にJavaを学んでいないので、すべてのコードをC++で記述し、JNIを通して呼び出す必要があります。しかし、この例のGL2JNIView.javaにはまだいくつかのJavaコードがあります。混乱させてしまいます。誰かがC++コードだけでこのTriangleを描画する方法を教えてもらえますか?JNIを通してこれらの関数を呼び出してください。

答えて

3

サンプルhello-gl2では、Javaコードでは三角形を描画しません。サンプルプロジェクトはまさにあなたが探しているものです。このサンプルでは、​​JavaはJNIを通じてC++コード(実際には三角形を描く)のみを呼び出します。

あなたが本当にすべてでのJavaを使用することを好まない場合は、native-activityを使用することができるオプションがあります。しかし、Android & C++を混在させることをお勧めします。なぜなら、アンドロイドのネイティブ環境は、必要なすべてのアンドロイド機能を使用することに限られているからです。私は、例えば、C++をアンドロイドの開発ではほとんど使っていますが、私はJAVAでのみサポートされているアンドロイドのAPIを使う必要があります。

私はネイティブ・アクティビティを使用した場合は、それらを使用するオプションがないではないだろう、私は

+0

を必要とあなたの答えをありがとうございました。 hello-gl2サンプルについては、Javaコードを使用してEGLコンテキスト、Surfaceなどを作成します。しかし、私はあなたの推薦のおかげでJavaに見てみることにしました。 Btw、ネイティブアクティビティは最初から欲しいものですが、まだそのプロジェクトにはもう1つ欠けています。ネイティブアクティビティプロジェクトにはJNIがありません。そのため、ネイティブコードの呼び出し方法はまだ分かりませんでしたJNIから、plsを助けてくれますか? –

+0

@ ToanTranネイティブアクティビティの目的は、JNIを使​​用することではありません。 EGLコンテキストは、あなたが気にする必要があるものではありません。彼らが作成したEGLコンテキストを使用するか、必要に応じて小さなコードを変更してください。ネイティブアクティビティAFAIKを使用する場合、JNIを使​​用できないというJAVAメソッドを呼び出すことはできません。 – Sung

+0

お返事ありがとうございます。ところで、私はまだ質問があります。ネイティブアクティビティの目的がJNIを使​​用しない場合、Androidスタジオで三角形を画面に表示する方法は?ネイティブ・アクティビティにはそれを行う方法が示されていません。私がアプリケーションを実行すると、ダーク・スクリーンが空白になります。 –

関連する問題