我写的DirectX 6.1 windows钩子。我想拦截的EMBM电话(环境映射凹凸贴图),并将数据传递到拥有凹凸着色器,所以应用程序,它依赖于EMBM将正常工作。唯一的问题是,DX 6.1不允许在所有着色器。我不能简单的用类从较新的SDK替换Direct3DDevice3,因为它的方法使用不同集合用我迷上DLL会崩溃的论点和应用。我不知道如何来解决办法通过。我不是在DirectX的那么好(也许有落实在DX 6.1凸点,将在现代硬件上工作更有效的方式?)也许可以查询在D3Device一些接口,它允许我使用着色器?

任何可能指向我正确的方向,将不胜感激。

有帮助吗?

解决方案

每个直接3D设备直接自IUnknown派生所以没有你不能QI从V6设备到设备V9

你可以做你想做的(上述驱动级)的唯一方法是实现整个V6设备和翻译他们的V9等价物的所有呼叫。当然,你再有一个问题,如果游戏通过V7实现embm或V8 ...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top