gpt4 book ai didi

opengl - 分辨率不兼容时如何捕获 glTexImage2D 错误?

转载 作者:行者123 更新时间:2023-12-05 03:15:41 25 4
gpt4 key购买 nike

我正在 try catch 由不兼容的图像纹理分辨率引起的错误

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img->width, img->height, 0, GL_RGB, GL_UNSIGNED_BYTE, imgdata);


1. Compatible resolution, working fine = 1024x1024, 1920x1200, 1920x1080, 704x891
2. Incompatible resolutions, all giving error = 2058x1734, 1018x1280, 591x602, etc.

我不知道为什么 glTexImage2D 在 #1 分辨率下工作正常而在 #2 分辨率下出错。我无法提取它遵循的分辨率模式意味着某些分辨率工作正常,而另一些则不能。我不知道为什么。

现在的问题是,如果用户尝试创建分辨率不兼容的纹理,那么 OpenGL 应该捕获错误,如果未创建纹理但 glTexImage2D 未返回任何内容,我应该得到 0,因此我们无法为用户提供安全的东西好的。 “不支持该分辨率,请勿使用。”但问题是 OpenGL 没有捕捉到 glTexImage2D 错误。

在运行时执行期间

cout<<until here working fine..<<endl;

glTexImage2D(......) run-time execution stops here and windows gives not responding error.

cout<<"output of something that never executed"<<endl;
Here If I use glGetError() it never works. Because windows gives error in glTexImage2D.

那么,有人知道我怎样才能捕捉到 glTexImage2D 错误吗?如果出现错误,那么我会显示“确定”“不要使用此图像,请使用另一个图像。”并返回 0。

如何完成这个任务?我还考虑过将用户限制在某些分辨率下,但这不是解决方案。对吧?

最佳答案

在您的情况下不接受的那些图像格式不是 4 的倍数。这引出了我的问题:您是否设置了像素存储参数?设置所有 GL_UNPACK_... 参数以匹配您的图像数据 在调用 glTexImage 之前GL_UNPACK_ALIGNMENT 对您的问题特别感兴趣。

http://www.opengl.org/sdk/docs/man/xhtml/glPixelStore.xml

关于opengl - 分辨率不兼容时如何捕获 glTexImage2D 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com