使用 FBO 渲染屏幕外不是一种选择,因为在我的硬件(HTC Desire、Adreno 200)上,只需切换渲染目标就会完全破坏帧率。这是所有 Adrenos 的问题(如此处所示:Framebuffer FBO render to texture is very slow, using OpenGL ES 2.0 on Android, why?)。
那么是否有可能让 Android 创建一个小于屏幕的后备缓冲区,由硬件自动放大到 Present 上的全屏大小?类似于这在 DirectX 中的工作方式?
我正在使用 OpenGL ES 2.0。
最佳答案
相信使用surfaceHolder.setFixedSize()就能达到你想要的效果。这使用 SurfaceFlinger 将窗口的表面缩放到全屏大小。在某些 Android 设备上,这种缩放将由硬件合成器完成,因此我建议保持绘制窗口大小和缩放后大小之间的比率合理,以尽量避免伪影。
关于android - 在 Android 上创建比屏幕尺寸更小的后备缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12007634/