我最近将我的程序的渲染部分从GDI +移动到OpenGL。
现在我想知道:这样做有缺点吗?
例如,是否有任何版本的Windows(XP或更高版本)支持GDI +而不支持OpenGL?
或者,例如,是否可能缺少驱动程序(或驱动程序较差)或缺少图形卡等,以使GDI +正常工作的系统无法进行OpenGL渲染?
(我知道OpenGL可能需要在功能较弱的系统上使用软件渲染,但除了缓慢之外,我还想知道在某种情况下它是否只是无法正常工作哪个GDI +会。)
答案 0 :(得分:4)
这取决于您正在使用的OpenGL版本/配置文件。最多可以包含Windows XP OpenGL-1.1,默认情况下没有其他驱动程序。从Windows Vista开始,最小的OpenGL版本是OpenGL-1.4。
但是,如果您需要更多内容,那么您依赖于安装来自GPU供应商的驱动程序的用户;默认情况下,在标准Windows安装中安装的驱动程序不适用于OpenGL(原因并非完全正确)。
强烈依赖OpenGL-ES的程序和库已经采用了诸如ANGLE之类的回退。
答案 1 :(得分:2)
有一些特性,例如:如果禁用透明度(这意味着,根本不在OpenGL
下),则无法创建透明的XP
窗口。否则,正如datenwolf指出的那样,ANGLE
,但即便如此也不行。另一个选项可能是为Windows目标编译mesa3d
,并启用了软件渲染。此选项可能是最安全的选项,并且比Microsoft的OpenGL
1.1软件实施速度更快。