我尝试在三星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);
任何帮助表示赞赏,我已经在谷歌中使用了很长时间。
此致
马特