Question

Je suis en train d'écrire Hooks Windows pour DirectX 6.1. Je veux intercepter les appels à EMBM (Environnement Mapped Bump Mapping) et transmettre les données à posséder bosse shaders, donc l'application qui dépendent de EMBM fonctionnera correctement. Le seul problème est que DX 6.1 ne permet pas du tout shader. Je ne peux pas remplacer simplement Direct3DDevice3 par classe de SDK plus récent, car il est des méthodes utilise différents ensembles d'arguments et de l'application qui utilisent mon dll accroché plantera. Je ne sais pas comment la solution de contournement à travers. Je ne suis pas si bon à DirectX (peut-être il est beaucoup plus efficace pour mettre en œuvre bosse DX 6.1 qui fonctionnera sur le matériel moderne?) Peut-être il est possible d'interroger une interface D3Device qui me permettra d'utiliser les shaders?

Tout ce qui peut me diriger dans la bonne direction serait très apprécié.

Était-ce utile?

La solution

Chaque dispositif 3D directe dérive directement de IUnknown donc pas vous ne pouvez pas d'un dispositif QI v6 à un dispositif v9.

La seule façon que vous pouvez faire ce que vous voulez (au-dessus du niveau de pilote) est de mettre en œuvre l'ensemble du dispositif de v6 et de traduire tous les appels vers leurs équivalents v9. Bien sûr, vous avez alors un problème si le jeu EMBM implémente via v7 ou v8 ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top