使用FBO进行屏幕外渲染不是一个选择,因为在我的硬件(HTC Desire,Adreno 200)上,仅仅切换渲染目标就会完全杀死帧率。这是所有Adrenos的问题(例如:Framebuffer FBO render to texture is very slow, using OpenGL ES 2.0 on Android, why?)。
那么,有没有可能让Android创建一个比屏幕更小的后台缓冲区,由硬件自动放大到目前的全屏尺寸?这类似于DirectX中的工作方式吗?
我使用的是OpenGL ES 2.0。
发布于 2012-09-05 01:08:22
我相信通过使用surfaceHolder.setFixedSize()可以达到您想要的效果。这将使用SurfaceFlinger将窗口表面缩放到全屏大小。在一些Android设备上,这种缩放将由硬件合成器完成,所以我建议保持绘制窗口大小和缩放大小之间的比例合理,以避免出现伪影。
https://stackoverflow.com/questions/12007634
复制