gpt4 book ai didi

android - 相机顶部 OpenGL View 的替代方法

转载 作者:太空狗 更新时间:2023-10-29 15:23:38 31 4
gpt4 key购买 nike

在前面使用 OpenGL 制作相机预览背景的传统方法是使用两个 SurfaceView(一个用于相机,另一个用于 OpenGL)并将它们堆叠在一起。问题是不鼓励堆叠 SurfaceViews:

http://groups.google.com/group/android-developers/browse_thread/thread/4850fe5c314a3dc6

那么有什么替代方案呢?我正在考虑以下内容:

  1. 继承GlSurfaceView,然后调用Camera.setPreviewDisplay(mHolder);
  2. 不要使用 GLSurfaceView,而是创建您自己的 SurfaceView 子类,在该子类中您可以在支架上显示相机预览并绘制您的 openGL。这需要在没有 GLSurfaceView 的情况下使用 OpenGL,以前有人这样做过吗?

我不确定这是否可行或有意义,因为它意味着将相机预览显示到表面的支架上,同时在同一表面上绘制 OpenGL。在不使用两个 SurfaceView 的情况下,是否有任何其他明智的替代方案来解决问题?

谢谢!

最佳答案

您可以将相机绘制到屏幕外的 Canvas 上,然后在 opengl 中将其渲染为纹理。我使用 Google map 执行此操作,不确定 Camera API 是否也可以执行此操作。

对于 Camera 来说可能不太合理,因为绑定(bind)纹理的开销很大,而且我很少这样做,每秒调用 bindtexture 20-30 次以使相机平滑使得堆叠表面 View 听起来非常好想法。

编辑:您可以在没有 GlSurfaceView 的情况下使用 GL,但您需要使用 EGL 并手动管理表面。

关于android - 相机顶部 OpenGL View 的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4598822/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com