我正在围绕 DirectX 6.1 库编写 windows32 挂钩到 DirectX 9.0c;想法是将所有对 DX 6.1 3D 设备的调用替换为对 Direct 9.0c 的调用并注入一些自定义代码,因此我正在修补的旧游戏(99 年)将能够使用着色器、后期效果等。
旧的 DX 6.1 3D 设备是通过创建 DDraw 模块创建的。然后游戏正在枚举设备上限。在我的模块中,整个 DDraw 模块被跳过并且 3D 视图被初始化。所以我有问题,因为我根本没有 DDraw 设备,所以我无法给游戏提供它需要的 Ddraw4 设备上限!
所以我的问题是如何在不初始化 DDraw4 设备的情况下获得 DDraw4 设备上限。也许创建固定列表并将其提供给游戏就足够了,但我不知道该列表应该是什么(我给出了我认为应该的,并且游戏退出了 - 记录器显示它只是在设备上限之后检查)