1

使用 FBO 在屏幕外渲染不是一种选择,因为在我的硬件(HTC Desire、Adreno 200)上,仅仅切换渲染目标就会完全破坏帧率。这是所有 Adreno 的问题(如在这里看到的:Framebuffer FBO 渲染到纹理非常慢,在 Android 上使用 OpenGL ES 2.0,为什么?)。

那么有没有可能让Android创建一个小于屏幕的后备缓冲区,由硬件自动放大到Present的全屏尺寸?类似于它在 DirectX 中的工作方式?

我正在使用 OpenGL ES 2.0。

4

1 回答 1

1

相信使用surfaceHolder.setFixedSize()会达到你想要的效果。这使用 SurfaceFlinger 将 Window 的表面缩放到全屏大小。在某些 Android 设备上,此缩放将由硬件合成器完成,因此我建议保持绘制的窗口大小和缩放大小之间的比率合理,以避免出现伪影。

于 2012-09-05T01:08:22.227 回答