【发布时间】:2010-11-12 00:16:25
【问题描述】:
我遇到了一个我无法解决的最奇怪的问题。在过去的几个月里,我一直在 Windows 7 中使用 VB.net 开发一个应用程序。该程序涉及一些基本的 OpenGL 绘图和动画,基本形状(正方形和圆形)和映射到点列表的基本纹理。是时候将程序分发到另一台机器了。不过,在某些机器上,我在绘制纹理时会遇到问题。我知道 openGL 仍然可以正常工作,因为仍然会绘制基本的正方形和圆形,纹理对象是唯一缺少的东西。
我已经在多台 Windows 7 64 位机器上测试过这个问题,一切正常。
在 Windows XP 32 位机器上安装程序会导致该问题。没有错误被抛出。程序不会崩溃。纹理不会被绘制到屏幕上。所有其他简单的形状仍然存在,并且程序的任何功能都不会受到影响。
我在 Windows XP 32 和 64 位虚拟机上测试了同样的问题,并且两者都出现了同样的问题。这是在安装到最新更新并安装 .net framework 3.5 之后。这让我相信这不是 x64/x86 的问题,而是 Windows XP 本身的问题。
OpenGL 中是否有一些 Windows XP 不支持的功能?这个想法对我来说似乎很奇怪,我看不出这是问题所在。
我想出的唯一可能的解释是,初始化的调用顺序在 XP 和 7 中可能不同,但我的测试并没有证明任何一种方式。几何图形正在初始化时从文本文件中加载,这就是为什么这似乎是另一种可能的解释
更新
我在不同的机器上做了进一步的测试,发现程序在 Windows 7 32 位上运行良好,但在另一台运行 Windows 7 64 位的机器上遇到了问题。因此,我可以得出结论,它与操作系统无关,但有一些我没有发现导致问题的变量。
【问题讨论】:
-
您是否在代码中使用过 glGetError() 和/或在 GLIntercept 之类的 OpenGL 调试器中尝试过?后者可能会为您提供一些关于代码中发生的事情的答案(它也应该自动检查 glGetError,AFAICR)。
标签: windows vb.net opengl compatibility