使用2 SurfaceView滞后

时间:2014-05-07 07:47:28

标签: java android glsurfaceview jpct

我想用jPCT显示3D对象,所以我使用custum GLSurfaceView.Renderer来显示我想要的内容。在下面,我需要显示相机预览。

它的工作正常但我的问题是当我显示2个SurfaceView(对象为1,相机预览为1)时,我的软件滞后了。我测试它,因为我同时使用2个SurfaceView。

我该如何解决?我尝试在扩展GLSurfaceView的相机预览中显示我的3D对象:

public class CameraView extends GLSurfaceView implements SurfaceHolder.Callback

但是对象永远不会显示,有些功能不起作用(就像在2D视图中搜索3D对象一样......)

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

有几种可能性。一个是渲染器线程之间存在一些导致延迟的交互。另一个原因是添加一个额外的层导致系统执行额外的GLES组合,这会减慢你的速度。 (有关背景,请参阅this doc。)

“永远不会显示对象”声明让我对实际问题有点不确定。

无论哪种方式,一种解决方法是消除相机SurfaceView。您可以将相机预览发送到SurfaceTexture(API 11+),然后将主GLSurfaceView上的内容渲染为纹理四边形。可以在Grafika中的“相机纹理”活动中找到此示例。