nul*_*ace 2 android opengl-es android-ndk opengl-es-2.0
我正在用C++编写Android和iOS引擎,目前专注于使用NDK的Android.
我想渲染一个较小尺寸的视口(例如600x360)并自动将其放大到原始rez(比如800x480).目前,较小的视口显示在我的屏幕的下角,带有黑色区域.
我的问题是我不知道使用NDK 透明地执行此操作的简单方法.GLSurfaceview.setScaleXAPI级别11中有一个(和Y)函数,这将是完美的,但在我目标的API级别9中不存在.另一个糟糕的解决方案是渲染到FBO并将其作为最后一步进入屏幕.
我正在考虑简单地讲述一个缩放矩阵,并询问引擎的用户(现在只是我)在绘制到屏幕时总是乘以顶点.这与使用类似glPushMatrix.
我搜索了一会儿,找不到一个好的解决方案.有谁知道如何帮助?
小智 5
你可以做的就是让SurfaceHolder从GLSurfaceView,GLSurfaceView.getHolder() ,然后设置您可以通过调用希望的分辨率SurfaceHolder.setFixedSize(宽,高).
在我的情况下,GLSurfaceView有一个FrameLayout根填充屏幕,我不确定是否需要 - 我有它,因为我在顶部添加其他元素 - 但如果你设置大小,它没有填满屏幕,那么你知道缺少什么!
使用FrameBuffer也是一种有效的方法,你也可以使用它绘制一些很酷的效果,当你想要做的唯一事情是缩小渲染时(或者可能上升?我还没试过),上面的方法会更快.
| 归档时间: |
|
| 查看次数: |
5388 次 |
| 最近记录: |