在Chrome和Android上呈现问题

时间:2012-03-18 02:24:48

标签: android google-chrome opengl-es webgl playn

我正在开发的游戏在Java后端和IE 10上完美呈现。但Chrome和Android上的渲染很奇怪。我认为这是因为WebGL&分别是OpenGL。 以下是它在IE上的外观。 IE

以下是它在Chrome上的外观,它在Android后端看起来也完全相同。 Chrome

背景没有渲染,只有第一个和最后一个文本元素被渲染

在Chrome和Android中运行时,对纹理大小等有任何限制,特别是我必须要处理的事情吗?我所有的纹理都具有2s的强度。我甚至尝试创建尺寸为2s的每个表面,但它似乎没有帮助。

更新:我修正了以下问题。这是由于我编写的UI工具包中的一个错误,每次设置小部件的文本时都会创建一个新的表面。

我不确定以下问题是否相关,但有时游戏在Android上崩溃,但有以下异常:

03-16 14:22:29.010 E/AndroidRuntime(16253): FATAL EXCEPTION: GLThread 10
03-16 14:22:29.010 E/AndroidRuntime(16253): java.lang.StackOverflowError
03-16 14:22:29.010 E/AndroidRuntime(16253):     at playn.android.AndroidPlatform.log(AndroidPlatform.java:28)
03-16 14:22:29.010 E/AndroidRuntime(16253):     at playn.core.PlayN.log(PlayN.java:120)
......
......
......
playn.core.gl.GLContext$Pender.process(GLContext.java:242)
03-16 14:22:29.010 E/AndroidRuntime(16253):     at playn.core.gl.GLContext$Pender.process(GLContext.java:242)
03-16 14:22:29.010 E/AndroidRuntime(16253):     at playn.core.gl.GLContext$Pender.process(GLContext.j

这是因为在http://code.google.com/p/playn/source/browse/core/src/playn/core/gl/GLContext.java处,GLContext $ Pender.process()似乎在永无止境的循环中被调用。但这并不是每次都会发生的。

1 个答案:

答案 0 :(得分:0)

当我想到我只能在paint()中绘制图像时,我正在查看TriplePlay库的源代码。我曾经将部分图像从spritesheet复制到不同的小部件。在小部件创建期间完成复制,其通常在响应于触摸事件时发生。当我将图像复制切换到paint()内部时,它开始完美地工作。