0

我在 android 2.4 OS 和 EGL 上使用 VAO 使 VAO 扩展成功,所有 VAO 的函数都正确返回。

但是当我调用glGenVertexArray( )生成 VAO 资源时,我总是得到具有 '0' ID 的资源(它可以正确渲染,但我希望使用具有不同 VAO 资源 ID 的多个顶点类型,而不仅仅是返回 0 资源 ID 给我)。

在 IOS 或 windows 操作系统上,VAO 资源 ID 增加 unsigned int 类型(glGenVertexArray()将返回 0、1、2、3 ... 等 ID。

我该如何解决这个问题?也许我忘记调用任何启用 GL 状态函数或其他东西?

4

2 回答 2

0

for ( _dword i = 0; i < 3; i ++ )
{
  GLuint res[4] = {0};
  GL_CHECK_ERROR( glGenVertexArrays( 4, res ) );
  WLOG_TRACE_4( L"Create VAO(%d, %d, %d, %d)", res[0], res[1], res[2], res[3] );
}

所有 res 数组在调用 glGenVertexArrays( ) 后接收 (0, 0, 0, 0)。

于 2012-12-04T02:09:11.147 回答
0

您是否确保您的上下文设置正确?

我在 iOS 上遇到了非常相似的问题;如果没有设置上下文(即它为空),那么当您调用 OpenGL 函数时,它基本上会说“if(context == null) return;”。

所以,调用“有​​效”,它不会崩溃......但它什么也没做。我通过将 VAO 变量初始化为非零值来确定这一点,并观察到 ​​GL 根本没有写入它。

正确设置上下文修复了它。

于 2013-03-14T20:08:39.887 回答