opengl – 调用glGetTexImage时出错(atioglxx.dll)
我在某些ATI卡(Radeon X1650,X1550和其他卡)上遇到了一个棘手的问题.
消息是:“模块’atioglxx.dll’中地址6959DD46处的访问冲突’.读取地址00000000” 它出现在这一行: glGetTexImage(GL_TEXTURE_2D,GL_RGBA,GL_FLOAT,P); 注意: >安装了最新的图形驱动程序. 这是我到目前为止尝试过的(在代码中使用断言): >指针P有效并分配足够的内存来保存图像 它通过所有那些测试,然后仍然失败的消息. 我觉得我已经尝试了一切,没有更多的想法.我真的希望这里的GL-guru可以提供帮助! 编辑: 结束后它可能是我在这里发布的驱动程序错误:http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=295137#Post295137 我也尝试了GL_PACK_ALIGNMENT,它没有帮助. 通过一些更多的调查,我发现它只发生在我之前使用glCopyTexSubImage2D调用像素填充的纹理上.所以我可以通过调用glReadPixels然后调用glTexImage2D来替换glCopyTexSubImage2d调用来产生一种解决方法. 这是我更新的代码: { glCopyTexSubImage2D cannot be used here because the combination of calling glCopyTexSubImage2D and then later glGetTexImage on the same texture causes a crash in atioglxx.dll on ATI Radeon X1650 and X1550. Instead we copy to the main memory first and then update. } // glCopyTexSubImage2D(GL_TEXTURE_2D,PixelWidth,PixelHeight); //** GetMem(P,PixelWidth * PixelHeight * 4); glReadPixels(0,PixelHeight,GL_UNSIGNED_BYTE,P); SetMemory(P,GL_UNSIGNED_BYTE); 解决方法
您可以处理GL_PACK_ALIGNEMENT.此参数告诉您打包纹理的最接近字节数.即,如果您有645像素的图像:
>使用GL_PACK_ALIGNEMENT为4(默认值),您将拥有648像素. 因此,通过执行以下操作,确保包装值正常: glPixelStorei(GL_PACK_ALIGNMENT,1) 在你的glGetTexImage()之前,或者在GL_PACK_ALIGNEMENT上对齐你的记忆纹理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- winapi – 我可以从另一个进程卸载DLL吗?的(Win32)
- Windows Server 2016-查询FSMO角色信息的三种方法
- Windows – PowerShell脚本自动安装IIS 7及更高版本
- windows-server-2008 – 保护托管Windows 2008服务器免受DD
- Windows有免费的MS Exchange客户端吗?
- windows-phone-7 – Windows Phone应用程序中的组合根目录在
- iis – Windows Web Server是否应该是Active Directory域的
- active-directory – Windows 7在分支机构上慢速登录到域
- windows dos窗口下如何复制和粘贴
- 建议在Windows文件夹(NTFS)中有多少个文件?
- windows-7 – Cisco Anyconnect:禁用远程桌面的
- windows – 我在哪里可以看到EXE程序的调用(包括
- windows-server-2008-r2 – 错误配置的高级审计策
- xaml – Windows应用程序项目中不支持Type
- windows-phone-7 – WP7 Mango中的相机捕捉
- 如何在Windows上使用命令行获取svn修订信息
- Windows SharePoint Services与Microsoft Office
- windows – 为什么lua的字符串模式匹配呢?
- windows-phone-7 – System.OutOfMemoryExceptio
- windows-server-2012 – 重新安装(修复)Server 2