Jus*_*tin 2 android opengl-es surfaceview glsurfaceview textureview
我正在尝试将实时效果应用于相机预览并在多个视图中显示,我该怎么办?
(就像相机2)(快照)
如果左侧没有ScrollView,我知道有两种方法可以显示相机预设的实时效果.
但是,我不知道如何使ScrollView与实时效果项叠加GLES组合.
在谷歌搜索和阅读漂亮的图形架构文章和Grafika项目后,我仍然不知道......
也许我想念一些重要的事情,有人指出我了吗?提前致谢.
SurfaceView和滚动不能很好地结合在一起,因为SurfaceView有两个部分 - Surface和View - 一个的运动往往落后于另一个的运动.视图由应用程序渲染,但Surface由SurfaceFlinger合成,因此窗口移动必须通过窗口管理器传递.TextureView没有这个问题,但确实引入了一些额外的开销.
如果你想让它在滚动时看起来很好,你可能需要一个TextureView.
多个EGL上下文可以共享数据,并且可以使用单个EGL上下文来呈现多个表面. Grafika有两个例子("show + capture camera"使用GLSurfaceView和共享的EGL上下文,"连续捕获"使用SurfaceView和单个EGL上下文;两个活动都呈现给屏幕表面和屏幕外表面).
所有硬件加速的视图都可以进行自己的EGL上下文管理,如果你要渲染到SurfaceView或TextureView上,没有理由搞乱它.
如果您计划实时绘制实时摄像机预览的多个版本,则可以通过在单个场景中自行渲染它们来获得最佳性能.渲染多个TextureView的效率会降低.根据您的UI选择,这可能意味着处理项目绘制和自己滚动而不是将其交给ListView.(至少,您需要确保您只是实时更新屏幕上实际显示的缩略图.)
| 归档时间: |
|
| 查看次数: |
2809 次 |
| 最近记录: |