弹出与从libgdx当前屏幕的alpha背景

时间:2014-02-23 14:47:09

标签: android performance libgdx

我想用一些按钮做一个弹出屏幕,与调用此弹出窗口的屏幕相比,这个屏幕很小。

所以,为了让它更好看,我认为使用当前屏幕的alpha版本作为弹出窗口的背景。

我做了一些“好”的逻辑,如:

...
TextureRegion screenShot = new TextureRegion(ScreenUtils.getFrameBufferTexture());
setScreen(new PopupScreen(this, screenShot));
...

在PopupScreen的render()上,我只渲染了screenShot参数。

这就像桌面版上的魅力,超级快。

但是当我在Android上运行它时,命令ScreenUtils.getFrameBufferTexture非常慢:? (在GS4上测试)。

所以问题是:我做错了什么或者还有其他办法来实现这个目标吗?

全部

1 个答案:

答案 0 :(得分:0)

由于几个原因,

getFrameBufferTexture速度很慢。首先从GPU读取(通常比写入GPU的效率低得多),再加上它创建新的PixmapTexture对象。如果你看the source非常简单,你可以编写一个重用PixmapTexture的版本。但这可能无助于产生重大影响。

我认为你可能会有更好的运气使你的弹出窗口“全屏”,但大部分透明,实际内容居中于中间。渲染全屏半透明图像可能会有点慢,但由于您的游戏(可能)在菜单启动时暂停,因此它的速度无关紧要。 (我也假设现有方法的问题是开始很慢。)