0

我正在将一个在不同平台(Windows、iOS、Playbook、BB10、Android)上完美运行的游戏引擎移植到 NaCl

2d 渲染正确,但某些 3d 对象不显示或渲染非常奇怪,我得到以下问题

[.PPAPIContext]GL ERROR :GL_INVALID_FRAMEBUFFER_OPERATION : BackTexture::AllocateStorage: <- error from previous GL command (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: offset not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glDrawElements: attempt to access out of range vertices in attribute 0 (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: offset not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: offset not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type 

而且它会无限重复。

同样,相同的渲染代码用于不同的平台,它工作得很好。移植到 NaCl 时是否需要特别考虑?关于我应该关注什么以尝试找到问题的任何想法?据我所知,着色器 0(顶点着色器)存在问题,并且某些对象的顶点确实到处都是。

谢谢!:)

4

1 回答 1

2

出于安全原因,Chrome 会验证其他驱动程序可能无法验证的许多 GL 操作。这有点工作,但您可以尝试使用http://cs.chromium.org搜索 Chromium 代码库以查找错误消息。

这是我发现的:

为了调试这个,我会缩小调用的范围glDrawElementsglVertexAttribPointer并尝试找出哪个失败了,然后我会添加一些printf调用来查看正在传递的值。

祝你好运!

于 2013-11-02T16:31:36.907 回答