答案1
DirectDraw(和其他 DirectX 组件)的 Wikipedia 页面对这种情况的描述非常清楚。但我将总结并安慰一下相关部分(当然是释义):
1:1 起初,只有黑暗和图形混乱。1:2 有一天,微软说要有一个单一的、一致的图形框架,于是就创建了 DirectDraw,于是就有了,而且它很好。1:3 微软告诉它去硬件花园里嬉戏,创造许多美丽的 2D 图像。1:4 DirectDraw 做到了,而且它也很好。
2:1 有一天,野心之蛇来到 DirectDraw 面前,告诉它奇妙的 3D 图像。2:2 蛇说服 DirectDraw,只要吃下知识树的果实,就可以制作 3D 图像,于是 DirectDraw 吃下了果实,开始尝试创建 3D 图像。
3:1 微软看到 DirectDraw 孤军奋战,无法独自开发 3D 图形,于是便可怜它,利用 DirectDraw 的部分功能,创建了 Direct3D。3:2 DirectDraw 和 Direct3D 一度愉快地共存着。
4:1 在邻居的帮助下,DirectDraw 和 Direct3D 诞生了 DirectX。4:2 DirectX 是一个不起眼的孩子,但却充满潜力。4:3 DirectX 也是一个嫉妒心强的孩子,它竭力摧毁只住在大型机宏伟城堡里的兄弟 OpenGL。
5:1 DirectX 1 催生了 DirectX 2 和 DirectX 2a,与 DirectX 1 和 2 不同,DirectX 2a 是 Windows 的一部分。DirectX 2a 经历了四代和两代的发展,创建了让最美的东西和最棒的游戏得以绽放的框架。
6:1 到了 DirectX 5 的儿子 DirectX 6 的时候,DirectX 家族已经变得邋遢而肥胖,难以管理。
7:1 当地人抱怨 DirectX 7 的近亲繁殖。7:2 他们不喜欢 DirectDraw 和 Direct3D 功能之间的乱伦重叠。7:3 微软看到自己的作品被破坏,下令只能使用一个框架。7:4 为了洗清 DirectDraw 的嫉妒、骄傲和贪婪的罪孽,他向 DirectDraw 镇发送了一场强大的发展洪流、面向对象的火与硫磺以及加密盐柱。
8:1 对于 DirectX 8,他抛弃了 DirectDraw,重新开始使用 Direct3D。Direct3D 之所以能幸存下来,是因为它遵循了指令,在 DirectDraw 正式消亡时没有回头。8:2 Direct3D 并不抱怨失去了它心爱的 DirectDraw,看到了这种忠诚,微软给了它一个新的、更好的合作伙伴。8:3 他采用了 DirectDraw 幸存的、仍然是纯 2D 的功能,并创建了 DirectX Graphics,以便 Direct3D 可以快乐地运行并完全发挥作用。
9:1 DirectX 8,Direct3D 和 DirectX Graphics(以及它们的邻居)的儿子,生下了 DirectX 9,这是一个优秀的孩子。9:2 DirectX 9 存活了很多年,比其他任何人都长。9:3 它完成了许多奇妙的事情,让它的祖先感到骄傲。9:4 DirectX 9 现在所在的 XP 村民仍然崇拜微软,但也开始崇拜金企鹅的偶像并吃禁果。9:5 这让微软很生气,他放逐了 XP 村。9:6 他把长着灰胡子的 DirectX 9 留在 XP 中,并创建了 Vista 市,其中包含骄傲的新生儿 DirectX 10。9:7 在 Vista 市,许多人不得不升级他们的房屋以支付 DirectX 10 的高额税款。
10:1 后来,DirectX 10 又衍生出 Direct2D,与 DirectDraw++ 类似,但表现一般。10:2 它是一个骄傲而苛刻的孩子,不满足于 XP 这样的好家,而是坚持生活在 Windows 7 的王国里。10:3 它也是一个贪婪的孩子,宣称需要大量的显卡财富,尽管它实际上只是一个微不足道的 2D 框架。10:4 人们抱怨不已,于是微软将它提供给 Vista 的公民。10:5 对此并不满足,还住在小屋里的 XP 人们入侵并征服了 Vista,在那里他们洗劫一空,把 DirectX 10 绑架到了他们的 XP 之家。10:6 DirectX 10 最终屈服于人民的意志,学会了在 XP 中生活和工作,但从未全心全意地投入其中。
11:1 DirectX 10 催生了 DirectX 11,但这一次人们无法将它绑架到他们的 XP 村庄。11:2 他们看到许多新的骑士、士兵、虫族和其他外国贵族都要求有 DirectX 11 国王或 DirectX 11 女王在场,所以他们默许了,要么接受他们所拥有的,要么缴纳大量税款,这样 DirectX 10 和 11 的伟大就可以降临到他们身上。
12:17:12:6:2 遥远的地方,在世界的边缘,海兽、龙和骆驼肆虐的地方,人们发现了玛雅王国的一本古老而伟大的历法,其中预言了世界的末日(并不真地,但我们只是假装而已)。
13:0:0:0:0 微软之神看到世上偶像崇拜和腐败,向世界发出了白色、红色、黑色和苍白色四次巨大的太阳耀斑,摧毁了所有电子设备。只有被带到方舟上的宇航员幸存下来,而世界其他地方则陷入了七七年的混乱和动荡之中。
因此,基本上,除非你使用的是 DirectX 7 或更低版本(但你不是),否则你将无法禁用只是DirectDraw(作为一个整体),因为它不再作为独立框架存在。相反,您只能从 DirectX 禁用 DirectDraw 功能。
这当然可能会对 Direct3D 产生影响,也可能不会,因为有些3D 函数依赖于 2D 函数(啊,大学的计算机图形学课程,你们有多有趣……)。
我无法断言,但根据其他类似情况和微软的历史,我非常怀疑他们是否设计了可以打开或关闭框架部分的功能;这几乎可以肯定是一件孤注一掷的事情。也就是说,如果您禁用 DirectDraw,那么 Direct3D 也会关闭,因为它是构建的,并且依赖于 2D。如果您禁用 3D,那么 2D 仍然有效,因为 2D 工作不需要 3D 计算。
尽管如此,您实际上并没有禁用 DirectDraw 或 Direct3D。您所指的按钮(如下)不会禁用框架,它们只会禁用硬件加速。这些功能仍然存在,并且仍然可用于软件;它们只是运行速度慢得多,因为它们是通过 CPU/RAM 而不是通过 GPU/VRAM 执行的。
如果禁用加速可以解决问题,那么这是因为软件太旧,与较新的硬件/驱动程序不兼容。您可能必须做出妥协,接受在运行游戏之前/之后切换加速的不便(或者干脆不使用加速)。