|
|
1
9
取决于客户所说的“不工作”是什么意思。它可能是:
所有Windows版本(自95年起)都内置了OpenGL支持。因此,除非您申请,否则不太可能导致上述情况1)。 要求 更高的OpenGL版本。 但是,默认的OpenGL实现是OpenGL 1.1, 软件渲染 . 如果用户没有手动安装具有OpenGL支持的驱动程序(从Nvidia/AMD/Intel站点下载的任何驱动程序都将具有OpenGL),那么它们将默认为这种缓慢而陈旧的实现。这很可能导致上述情况3)和4)。 即使OpenGL可用,在Windows上,OpenGL驱动程序也不是非常健壮,可以说是温和的。驾驶员中的各种错误很可能导致情况2),在这种情况下,做一些有效的事情会导致驾驶员发生车祸。 这里是一个C++/WiAPI代码片段,它创建了一个哑OpenGL上下文并检索信息(GL版本、图形卡名称、扩展名等):
您可以以某种方式将代码插入安装程序或应用程序,并至少检查GL版本是否为1.1;这将检测到“未安装驱动程序”的情况。要解决实际的OpenGL驱动程序错误,你必须解决它们。很多工作。 |
|
|
2
2
我认为您可能会对仅仅依赖于检查OpenGL的硬件支持有问题,因为假设过去10年内制造的每台笔记本电脑都能提供它是相当安全的。(不过,如果这些笔记本真的那么旧,那么也许
this wiki
有帮助吗?)
|
|
|
3
1
OpenGL是Windows NT或Win95的一部分。您不太可能找到未预装OpenGL的Windows系统(如Windows 3.1) 但是,您的应用程序可能需要较新版本的OpenGL,而不是默认的OpenGL 1.1,后者随Windows的旧版本一起提供。你可以从你的程序中检查它。我不知道怎么从微星找到它。 请注意,OpenGL是通过图形驱动程序更新的,而不是通过安装一个服务包等方式更新的。 关于启用OpenGL的图形卡:所有图形卡都有OpenGL。即使客户使用的是石器时代的ISAET4000图形卡,他至少通过软件渲染获得了OpenGL 1.1。 |
|
|
4
1
Windows附带了对OpenGL 1.1的支持(正如其他人在这里提到的)。因此,您的用户面临的问题是由于在1.1之后添加到OpenGL的扩展。如果您使用的是glew库,那么很容易检查对以编程方式使用的所有扩展的支持。以下是如何检查遮挡查询的支持:
有关使用glew的更多信息,请参见 here . |