OpenGL ES 3.0遮挡查询:glGenQueries始终因INVALID_OPERATION而失败

时间:2016-04-02 22:17:04

标签: android opengl-es opengl-es-3.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);

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

此致

马特

0 个答案:

没有答案