0

我正在尝试对在三星 Galaxy S6 Edge+ 上绘制为纹理四边形的 2D 精灵进行每像素碰撞检测。使用 C# 和 OpenTK。

glGenQueries 始终不返回任何查询名称(数组“查询”未更改),并且查看是否进行查询的测试总是失败并且我的异常命中。

返回的 OpenGL 错误为 1282 (INVALID_OPERATION)。规范说这发生在我什至没有使用的 glBegin 和 glEnd 之间(ES 不支持它们)。

我不认为我在这段代码中做错了什么,但问题在于设备功能或帧缓冲区/图形模式的设置。

uint error = 0;
int[] queries = new int[1];
ES30.GL.GenQueries(1, queries);

if (!ES30.GL.IsQuery(queries[0]))
{
    error = (uint)GL.GetError();
    throw new Exception("ES30.GL.GenQueries returned no query name");
}

我的帧缓冲区是这样设置的(8 个模板位,我试过 1. 没有深度(2d 游戏))

ColorFormat f = new ColorFormat(32);
GraphicsMode = new AndroidGraphicsMode(f, 0, 8, 4, 0, false);

任何帮助表示赞赏,我已经在谷歌中使用了很多年。

问候

马特

4

0 回答 0