Text和VertexDisplacement能在Android上运行了

转载请注明出处为KlayGE游戏引擎

 

KlayGE的空框架跑起来之后,经过几天艰苦的debug,修正了多个KlayGE的bug,绕开更多Android的bug。现在,Text和Vertex displacement两个例子已经能在Android上顺利执行了。

KlayGE Text on Android x86
Text例子。乱码不是bug,只因为系统区域没设置成中文。

 

KlayGE Vertex Displacement on Android x86

Vertex displacement例子。

在移植的过程中,遇到的一个麻烦是NDK的ANativeWindow_getWidth和ANativeWindow_getHeight总是返 回1,无法得到正确的窗口大小。结果viewport被错误地设置成1×1,使得渲出的东西都只有1个pixel。在修改了 native_app_glue,获取resize的消息后,viewport大小终于得到了正确的设置。那两个例子才因此能正常执行。从这里也可以看 出,Android的NDK千疮百孔,开发的时候要异常小心。

另一个事情是,Android x86在EeePC 701的i915上是用Mesa软件执行OpenGL ES 2的(至少,我还没找到让它不fallback的方法),所以帧速率非常低。

至此,KlayGE for Android的第一阶段已经完成,即引擎核心已经完成移植。下个阶段会让更多的例子能在Android上执行。

posted on 2011-12-25 14:03  龚敏敏  阅读(1329)  评论(1编辑  收藏  举报