创建 OpenGL 对象期间出错



官方文档中的"错误"部分显示"<...>如果发生错误"某些函数,例如glCreateShaderglCreateProgram。这是否意味着仅列出可能的错误,或者是否还包括任何未列出的内部错误?我猜是后者,因为文档说"如果创建程序对象时发生错误,此函数返回 0"glCreateProgram,但没有列出实际可能的错误。如果这是真的,有没有办法让我知道万一发生潜在错误的任何信息?

每个 OpenGL 函数都可能发出某些错误,即使该特定函数如何发出该特定错误似乎没有意义。这些错误通常不代表直接滥用 API,而是报告一种情况,虽然可能是你造成的,但不一定是由该特定函数引起的。

例如,GL_OUT_OF_MEMORY可以由任何函数发出。即使未在逻辑上分配内存的函数也可能发出此错误,因为内存不足可能会异步发生。因此,驱动程序只会在发现内存不足后发生的任何 OpenGL 调用期间报告 OOM 情况。

由于所有 OpenGL 函数都可能发出这些错误,因此它们不会打印在每个函数的错误部分以减少冗余。但是仍然需要指定函数在发生错误时的行为。

相关内容

最新更新