Comment la superposition de graphiques sur les jeux Windows?
Je veux que mon programme pour être en mesure de lancer des Fenêtres de jeu, et alors que l'utilisateur est en cours de lecture, par intermittence d'affichage du texte ou des images dans une partie de la fenêtre de jeu. Le jeu peut être de la fenêtre ou en mode plein écran. De ce que j'ai pu comprendre à partir de ressources en ligne, ce qui pourrait être fait à l'aide d'une bibliothèque graphique qui prend en charge les superpositions et à l'aide de Windows Crochets pour garder une trace de la cible de la fenêtre de l'application. Dans ce contexte, j'ai quelques questions.
- Seront les superpositions affecter les performances du jeu?
- Comment connecter l'application affecter les performances?
- Est-il un autre moyen on peut arriver à cela? Par exemple, comment pensez-vous PIX, le DirectX de débogage et analyse de l'outil de travail?
OriginalL'auteur |
Vous devez vous connecter pour publier un commentaire.
Fraps est l'archétype exemple de faire ce genre de chose pour un plein écran DirectX application à partir d'une application tierce. Il fonctionne en se connectant certains appels système et s'insérant dans l'appel de la chaîne entre une application et DirectX. Il y a quelques performances, mais en général sa minimes.
Cette page semble avoir quelques détails et des exemples de code sur la façon de connecter l'application de cette façon.
Si je me souviens bien, d'autres discussions sur le forum (ne peut pas trouver le lien pour le moment. rechercher des choses comme "comment fraps travail", c'est une question populaire), Fraps accroche un peu les choses pour forcer l'application à charger ses DLL, puis les crochets Présents() appelle et exécute un appareil->Clear() avant d'appeler le réel Présent(), avec une liste de petits rectangles pour définir une couleur différente, ce qui peut préciser le nombre FPS qu'il affiche. Cela a un impact minimal sur les performances et il est largement compatible avec ce que le rendu de l'application est en train de faire. La superposition d'une image bitmap serait plus compliqué, car il ne serait pas aussi facile à faire à l'heure Actuelle. Peut-être si vous pouviez crochet EndScene, alors vous pourriez faire plus, mais vous devez être prudent de ne pas modifier l'état du périphérique.
PIX dispose d'un accès privilégié pour le pilote DirectX, donc je ne m'attends pas à être en mesure de l'utiliser comme un modèle à imiter.
Si l'application cible est en cours d'exécution en mode fenêtré, le branchement de DirectX encore du travail, mais vous pourriez tout aussi bien utiliser GDI à la place.
Edit: je pense que cette est le lien que j'ai été à l'origine de la pensée de.
OriginalL'auteur