OpenGLでは、プログラムレンダリングフレームを維持するために、while
ループが必要です。ループ内に置かれるすべてのコードはすべてのループで実行されます。OpenGL ESのNDK、JNIを使用してAndroidネイティブアプリでレンダリング反復がどのように機能しますか?
while(!glfwWindowShouldClose(window))
{
// Check and call events
glfwPollEvents();
// Rendering commands here
...
// Swap the buffers
glfwSwapBuffers(window);
}
は、今私は、OpenGL ESに飛び込むと、この例から学ぶしようとしている:
https://github.com/googlesamples/android-ndk/tree/master/gles3jni
しかし、私はどのwhile
かfor
ループを見つけることができなかったループはこのようになりますコードで代わりに、GLSurfaceView
を拡張してGLSurfaceView.Renderer
を実装することが好きなことがあります。私は実際にそれがどのように機能するかは分かりません。
したがって、フレームをレンダリングするたびに反復がどのように進むのだろうか? .cppファイルに書き込まれたものはすべてループごとに実行されるのか、それともJNIによって呼び出される機能だけなのでしょうか?最初のフレームのレンダリングが終了すると、2番目のループの開始位置はどこから始まりますか?あなたの注意と助けは非常に感謝しています。
だから、フレームごとに変更する必要がある変数 '' x''がある場合は、JNIを介して呼び出されるメソッド( '' step() ''メソッド) '' onDrawFrame''から、それは正しいですか? –
はい、あなたはそれを持っています。この変数がcppならば、Javaであれば 'step'で更新し、 'onDrawFrame'で更新してください。 – yakobom
大変お世話になりました。私の多くの時間を節約できます:) –