我目前正在 Android 平台上测试我的游戏所需的所有功能。我只修改了 hello-gl2 示例代码,并在两个渲染通道中添加了一些纹理、VBO、FBO 和简单着色器。
问题是,当我让应用程序在不触摸屏幕的情况下运行时,我有大约 35-45 fps。但是如果我开始连续触摸屏幕,渲染就会开始滞后!那么这是一个问题,因为输入和渲染在同一个线程中(正如 a 认为的那样?),甚至可以修复吗?如果我不能解决这个延迟问题,我的游戏可能无法运行得足够好,无法正常玩。(有一些重渲染的东西)
//提前致谢!
我目前正在 Android 平台上测试我的游戏所需的所有功能。我只修改了 hello-gl2 示例代码,并在两个渲染通道中添加了一些纹理、VBO、FBO 和简单着色器。
问题是,当我让应用程序在不触摸屏幕的情况下运行时,我有大约 35-45 fps。但是如果我开始连续触摸屏幕,渲染就会开始滞后!那么这是一个问题,因为输入和渲染在同一个线程中(正如 a 认为的那样?),甚至可以修复吗?如果我不能解决这个延迟问题,我的游戏可能无法运行得足够好,无法正常玩。(有一些重渲染的东西)
//提前致谢!
我对 android 开发相当陌生,但发现触摸处理程序也非常滞后。默认示例是新建一个对象并经常这样做——这势必会让垃圾收集器生气。通过调用'Thread.sleep(10);',我设法让它以一种不那么滞后的方式执行。在运行函数内部。
我想用对象的循环缓冲区替换“new Runnable”会提高性能,但我还没有对此进行调查。我的触摸事件似乎发生在单独的线程上,这可能会导致并发症。
Override public boolean onTouchEvent(final MotionEvent event)
{
queueEvent(
new Runnable()
{
public void run()
{
int action = event.getAction();
//do your handling here
try
{
Thread.sleep(10);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
});
return true;
}