我有一个Android应用程序,我需要显示当前的FPS。
1 - App在OpenGL中呈现。
public void onDrawFrame(GL10 gl) {
synchronized(lock) {
NativeCalls.getFrame(); // Setup in JNI/NDK
NativeCalls.drawFrame(); // using openGL
}
}
}
2 - 您可以看到渲染调用是从Java完成的,以便从JNI调用函数。
3 - 我需要在OpenGL表面上显示当前的FPS。
我认为这总结了我想要做的事情,所以让我解释一下。这是一个动态壁纸,因此速度至关重要,我需要一种快速的方式向用户显示fps。
我知道如何计算FPS,只是不显示它。
我正在寻找简单的方法,但问题是OpenGL渲染和设置是通过JNI完成的。
是否可以从Java端渲染这个并在JNI创建的OpenGL表面上“覆盖”文本?
我已经考虑过通过JNI端渲染这个,但在OpenGL中显示字体是一件痛苦的事。 (我的代码是C,而不是C ++ - 由于需要主要重新编码才能从NDK方面获得CPP兼容的其他内容,因此无法更改。)
任何建议,例子等都会很棒。我知道这可以通过C使用freetype2来完成,但是那里的简单库似乎是CPP的全部(尝试了一些,转换不是一个选项,因为C-> C ++(结构等))。
显示的文字不多,例如:“FPS:20”。没什么。
答案 0 :(得分:2)