1

iPhone / iPod / iPad / MacOSX/WindowsでDirectX8保持モードのレンダラーとローダーを作成しました。DirectX8保持モード形式はシーングラフスタイルであり、階層が非常に深くなっています。そのため、Android NDK OpenGLESのみが発生しました。GLエラーコード0x503,0x0504(コマンドスタックのオーバーフローまたはアンダーフロー)。

アンドロイドのスタック容量は少しですか?各デバイスの容量を確認しようとしたのは誰ですか?(NexusOne、HTC03A、Droid、Xpediaなど。)

4

1 に答える 1

1

最大スタックサイズを照会するには、GL_MAX_MODELVIEW_STACK_DEPTHおよびGL_MAX_PROJECTION_STACK_DEPTHとともにglGetIntegervを使用します。あまりにも多くの行列をプッシュすると、これはオーバーフローします。

スタックをアンダーフローしています。これはコードのバグです。スタックに何もないときにポップしないでください。

スタックスペースが少なすぎる場合は、ソフトウェアで独自のマトリックススタックを作成できます。これには、GLES実装の制限はありません。

于 2010-06-21T20:38:29.053 に答える