Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 基于状态的GL_INVALID_操作如何导致glTexImage2d失败?_Opengl - Fatal编程技术网

Opengl 基于状态的GL_INVALID_操作如何导致glTexImage2d失败?

Opengl 基于状态的GL_INVALID_操作如何导致glTexImage2d失败?,opengl,Opengl,我有截取OpenGL应用程序调用的软件(在某些情况下执行其他任务)。出于某种原因,当我截获特定应用程序时,此调用: glTexImage2D(target= GL_TEXTURE_2D, level= 0, internalformat= 4, width= 256, height= 2, border= 0, format= GL_RGBA, type= GL_UNSIGNED_BYTE, pixels= 0) 导致GL\U操作无效。然而,当我运行它时没有拦截,只是调试日志记录,它不会导致错

我有截取OpenGL应用程序调用的软件(在某些情况下执行其他任务)。出于某种原因,当我截获特定应用程序时,此调用:

glTexImage2D(target= GL_TEXTURE_2D, level= 0, internalformat= 4, width= 256, height= 2, border= 0, format= GL_RGBA, type= GL_UNSIGNED_BYTE, pixels= 0)
导致GL\U操作无效。然而,当我运行它时没有拦截,只是调试日志记录,它不会导致错误。我已经阅读了这个函数的说明,它似乎不仅表明在给定这个输入的情况下,这个特定的错误是不可能的,而且它只能由参数本身引起,而不是基于状态的问题

另外,请注意,我已经确认,该错误实际上仅在调用glTexImage2d()之后发生


这是怎么回事

这可能有助于更好地描述你实际上在做什么。听起来你好像在调用glTexImage2D,这是一个用户定义的函数,然后在openGL中调用glTexImage2D?我们有一个“假的”openGL库,所有主机调用都会被重新路由到该库。然后,在伪opengl函数中,我们要么将调用传递给真实函数,要么执行其他操作。其目的是为光线跟踪收集信息。您确定您使用的openGL具有该功能的实现吗?此外,您是否在“伪”openGL层中正确设置了openGL环境?@user2345397:这些参考页非常不完整,尤其是错误部分。您最好在实际规范中查找这些内容。
GL\u INVALID\u操作
可能有一些原因,例如“像素解包缓冲区对象已绑定,存储纹理数据将访问像素解包缓冲区末尾以外的内存。”