현재 Android 플랫폼에서 내 게임에서 필요한 모든 기능을 테스트하고 있습니다. hello-gl2 샘플 코드 만 수정하고 두 번의 렌더링 패스에서 일부 텍스처, VBO, FBO 및 간단한 쉐이더를 추가했습니다.Android, OpenGL이 화면을 터치 할 때 jni에서 지연됩니다.
내가 앱을 화면을 터치하지 않고 실행하게하면, 약 35-45fps가됩니다. 그러나 화면을 계속 만지기 시작하면 렌더링이 지연되기 시작합니다. 입력과 렌더링이 같은 스레드에 있다고 생각하면 문제가되는 것입니까? (생각한대로?) 수정이 가능합니까? 저 지연을 고칠 수 없다면, 내 게임은 벌을 먹을만큼 잘 뛰지 못할 것입니다. (무언가 무거운 렌더링 물건이 있습니다)
// 미리 감사드립니다!
아, 나는 당신이 Jni를 언급 한 것을 본다. 죄송합니다.이 대답은 Java 코드만을 나타냅니다. 나는 Jni를 사용하여 전체 게임 루프를 아직 시도하지 않았다. – Luther
글쎄, 당신이 안드로이드 2.3을 사용하지 않는 한, 내가 읽고있는 것, 당신은 jni에서 전체 게임 루프를 할 수 없다. 2.0을 사용하고 있지만, 전체 게임을 C에서하려고하지 않는다. 게임을 시뮬레이트하고 C 코드의 모든 것을 렌더링하는 jni 함수 만 호출합니다. 그럼 정상적인 안드로이드 자바 코드로 돌아갑니다. 나는 자바에서 입력을 가져 와서 jni 호출로 보내고 jni에서 내 게임 전체를 할 계획이다. 그래서 기본적으로 알아야 할 것은 공연을 통해이 문제에 접근하는 것입니다. – Mockarutan
당신의 접근 방식은 광산과 비슷하게 들립니다. 버퍼 처리 루틴에 대한 몇 가지 jni 코드가 있지만 나머지는 현재 Java에 있습니다. 거기에 약간의 지연을 가해 보셨습니까? 그것은 당신의 게임이 터치 메시지에 압도당하는 것을 막을 것입니다. – Luther