У меня есть приложение для Android, для которого мне нужно отобразить текущий FPS.
1 - Приложение отображается в OpenGL.
public void onDrawFrame(GL10 gl) {
synchronized(lock) {
NativeCalls.getFrame(); // Setup in JNI/NDK
NativeCalls.drawFrame(); // using openGL
}
}
}
2 - Вы видите, что вызов рендерингасделано из Java для вызова функций из JNI.
3 - мне нужно показать текущий FPS на этой поверхности OpenGL.
Я думаю, что это подводит итог тому, что я пытаюсь сделать, поэтому давайтеЯ объясню немного больше.Это живые обои, поэтому скорость очень важна, и мне нужен быстрый способ показать fps пользователям.
Я знаю, как рассчитать FPS, просто не отображать его.
Я ищу способы сделать это просто, но проблема в том, что рендеринг и настройка OpenGL выполняется через JNI.
Возможно ли сделать это со стороны Java и "наложить" текст на поверхность OpenGL, созданную из JNI?
Я рассмотрел рендеринг через сторону JNI, но отображалшрифты в OpenGL это боль.(Мой код - C, а не C ++ - это нельзя изменить из-за других вещей, которые потребуют серьезного перекодирования, чтобы стать совместимым с CPP со стороны NDK).
Любые предложения, примеры и т. Д. Были бы хорошими.Я знаю, что это можно сделать с помощью freetype2 через C, но простые библиотеки, кажется, все для CPP (пробовал некоторые, преобразование не вариант из-за C-> C ++ (структуры и т. Д.)).
Текст для отображения невелик, например: «FPS: 20».Ничего больше.