2010-10-05 3 views
1

Je développe un Antichat pour Counter Strike en utilisant C++ .Cette AC doit prendre des captures d'écran et les télécharger vers un serveur spécifié. Le problème est que dans Win7/Vista, les captures d'écran sont noires. J'ai fait des recherches sur le web mais je n'ai pas trouvé quelque chose qui m'a aidé.C++/C# Capture d'écran sur le jeu OpenGL (Counter Strike 1.6) Problème

J'ai vu des sources TAKSI, tester toutes les versions et Taksi 0.3 est assez bon et pas très grand mais je ne peux pas déboguer la source (http://sourceforge.net/projects/taksi/files/stable/taksi-0.3/taksi-0.3-src.zip/download). quand je débogue cela avec tous les SDK DirectX 9 inclus et libs et STL, je reçois beaucoup d'erreurs. (J'ai aussi lu l'info Build.txt, et essayé avec Visual C++ 2006, DC++, Visual C++ 2010)

Je suis begginer avec des applications C++ et je veux vraiment faire cela. Si quelqu'un pouvait donner une aide ou simplifier la source de taksi 0.3 pour moi (j'ai juste besoin de prendre de petites captures d'écran sur OpenGL) et donnez-moi la source m'a beaucoup aidé et la communauté CS.

Aussi, si personne aura le temps de simplifier la source 0.3 pour moi, je vous saurais gré si vous pouviez me expliquer comment déboguer (txt très expliqué :))

S'il vous plaît aidez-moi: P

Répondre

0

Si vous pouvez entrer dans la fonction de rappel d'affichage OpenGL/GLUT, vous pouvez ajouter un appel à glReadPixels à la fin de la fonction, quelque part après glutSwapBuffers();. Ensuite, vous devrez écrire le tampon d'image RVB, rempli par glReadPixels, dans un fichier, dans le format approprié, en utilisant peut-être le IJG JPEG library si l'application n'a pas déjà une bibliothèque de gestion d'image.

int width = 1024; // would be better to get actual window dimensions 
int height = 768; 
unsigned char *img_rgb[width * height * 3]; // each pixel is three bytes (RGB) 
... 
glReadPixels(0,0, width,height, GL_RGB, GL_UNSIGNEDBYTE, img_rgb); 
+0

merci pour votre réponse jholl, c'est très utile. Pouvez-vous m'aider avec des infos sur comment accrocher une application spécifique? (le nom du processus d'application est hl.exe -OpenGL) –