2010-09-07 25 views
1

Quelle petite information j'ai réussi à creuser sur le développement des superpositions dans le jeu (semblable à ce que Steam fait) mentionne devoir intercepter les appels de la fonction de permutation d'images de l'API graphique.SDK pour les superpositions dans le jeu

Cela semble être ce que fait Mumble (une VoIP de jeu). Comme je n'ai jamais rien fait qui implique l'accrochage, et comme je n'ai pas vraiment d'expérience avec DirectX, je me demande s'il existe une sorte de SDK, ou même juste un exemple plus lisible que Mumble qui implémente aussi l'entrée, Cela montre comment implémenter une superposition interactive dans le jeu. Mumble est génial, mais je ne semble pas être capable d'en faire le tour, surtout en ce qui concerne les choses les plus intéressantes, afin de bien accrocher ses affaires.

Aussi, si vous avez une information plus détaillée sur la façon de le faire sur Mac et Linux ... :-)

Répondre

1
  • Commencez par la conception de votre superposition sans interception API graphique. Gardez à l'esprit que l'entrée de clé doit utiliser des crochets globaux.
  • Intégrez-le à l'application à l'aide d'une DLL d'interception Direct3D. Google pour récupérer un code de base.

Edit:

+0

veulent partager un lien spécifique? "Direct3D interceptor dll" ne renvoie pas de résultats via Google. –

+0

Les DLL proxy/intercepteur placées dans le dossier de l'application ne sont pas ce que je recherche, car j'aimerais pouvoir affecter n'importe quel jeu lancé sur la machine. On dirait que cette question pourrait contenir la réponse que je recherche: http://stackoverflow.com/questions/1994676/hooking-directx-endscene-from-an-injected-dll –

1

Peut-être GLIntercept pourrait vous donner un peu d'inspiration. Il fournit un fichier openGL.dll que vous avez placé dans le dossier de votre application. Windows charge cette DLL au lieu de celle de system32 en raison des règles de priorité. GLIntercept transfère tous les appels à la DLL du system32, mais les enregistre tous pendant ce temps. Ainsi, vous pouvez implémenter votre propre glSwapBuffers() qui restitue plus de choses, puis transfère l'appel.

Le code source est également disponible.

J'Upvote votre question, et je suis intéressé à vous les découvertes futures ... ne hésitez pas à reposter quand vous avez plus d'info :)

+0

Merci :-) Malheureusement, GLintercept (et équivalent méthodes pour DX) comme vous les décrivez ne sont pas ce que je cherche; Je voudrais injecter les fonctions dans n'importe quel jeu qui se lance. Cela dit, il ressemble à cette question connexe (comme suggéré par StackOverflow): http://stackoverflow.com/questions/1994676/hooking-directx-endscene-from-an-injected-dll semble contenir la réponse. –