2013-04-05 56 views
2

我們端口,其使用FBO延伸(GL_OES_framebuffer_object)到Android,並得到了問題基於Tegra的裝置的一些的OpenGL ES 1.x的代碼(Tegra 2的,Tegra 3的)。問題是,儘管設備在受支持的擴展列表中報告了GL_OES_framebuffer_object擴展,但功能部分似乎被破壞,特別是,glGetIntegerv()函數不接受任何與擴展相關的常量(例如GL_FRAMEBUFFER_BINDING_OES)報告GL_INVALID_ENUM錯誤。與此同時,其他與擴展相關的功能也可以正常工作。基於Tegra的設備上的OES_framebuffer_object擴展是否被破壞?

  • 這是一個已知的問題嗎?
  • 是否有衆所周知的解決方法?
  • 有人也會遇到這個問題嗎?

我們測試的設備是Nexus7和Acer A500。

+0

我可以證實,一個遊戲,用MonoGame建造,運行在Nexus 4和Galaxy Tab的2罰款,但創建幀緩衝和渲染目標時,也沒有在Nexus 7和宏碁A500。我還沒有設法找到解決方法。所以我認爲這是Tegra芯片組的一個問題:(我注意到Adreno 320和PowerVR支持GL_OES_depth24,而Tegra沒有。因此,我想在Tegra設備上將深度設置爲16,看看它是否有效。 – Dominique 2013-04-30 11:52:24

+0

@Dominique:Tegra只支持16位深度緩衝區 – kusma 2013-05-22 11:46:51

+0

@kusma將深度設置爲16似乎可以解決Tegra設備上的問題。 – Dominique 2013-05-23 17:02:36

回答

3

看來,在Tegra設備上,您需要將位深度設置爲16,才能正常工作。一旦我們在MonoGame中完成,遊戲在Nexus 7和Acer500上正常運行。

D.