begin process at 2012 05 30 03:00:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

DirectX

 > 

Lire le backbuffer ? Capture d'écran ? (DirectX 9)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lire le backbuffer ? Capture d'écran ? (DirectX 9)

dimanche 14 août 2005 à 11:46:40 | Lire le backbuffer ? Capture d'écran ? (DirectX 9)

supergrey

Salut, j'aurai besoin de lire chaque octet du backbuffer (de ce qui va etre afficher a l'ecran) dans un programme directx 9.
Comment faire?
Merci
dimanche 14 août 2005 à 12:05:44 | Re : Lire le backbuffer ? Capture d'écran ? (DirectX 9)

Galmiza

Tiens donc, un DirectX !


Ajoute ce flag dans la structure D3DPRESENT_PARAMETERS (necessaire pour la creation du device lpDirect3DDevice9) : D3DPRESENTFLAG_LOCKABLE_BACKBUFFER

Ensuite, recupere l'adresse de la surface du back buffer:
LPDIRECT3DSURFACE9 m_pBackBufferSurface;
lpDirect3DDevice9->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&m_pBackBufferSurface);

Puis tu pourras locker la surface:
D3DLOCKED_RECT pLockedRect;
D3DCOLOR *pPix;
pBackBufferSurface->LockRect(
&pLockedRect,
NULL,
D3DLOCK_NO_DIRTY_UPDATE );
pPix = (D3DCOLOR*)pLockedRect.pBits;        // acces au données via pPix (les fameux octets recherchés)

// traitement puis
pBackBufferSurface->UnlockRect();

Voila, ca doit marcher.

dimanche 14 août 2005 à 12:16:17 | Re : Lire le backbuffer ? Capture d'écran ? (DirectX 9)

supergrey

Merci beaucoup, je vais voir si ca fonctionne.

dimanche 14 août 2005 à 12:45:55 | Re : Lire le backbuffer ? Capture d'écran ? (DirectX 9)

supergrey

Eu... ca a l'air de fonctionner, juste une question stupide, comment on récupère les 3 valeur R G et B dans le D3DCOLOR je crois que c'est un truc du genre int r=(color<<2) enfin je sais plus trop...
dimanche 14 août 2005 à 12:51:22 | Re : Lire le backbuffer ? Capture d'écran ? (DirectX 9)

Galmiza

Ca depend du format du back buffer.
Generalement:
ARGB, un octet par channel
color = 0x11223344
0x11 pour alpha
0x22 pour le channel rouge
0x33 vert
0x44 bleu

donc:
alpha = (color >> 8*3)
rouge = (color >> 8*2) & 0xFF
vert = (color >> 8*1) & 0xFF
bleu = (color >> 8*0) & 0xFF

dimanche 14 août 2005 à 13:05:50 | Re : Lire le backbuffer ? Capture d'écran ? (DirectX 9)

Galmiza

Sinon, ne te prend pas la tete avec les channels:

D3DXSaveSurfaceToFile(    "screenshot.bmp",
D3DXIFF_BMP,
pBackBufferSurface,
NULL, // Palette
NULL);    // Rect


Cette discussion est classée dans : lire, écran, directx, capture, backbuffer


Répondre à ce message

Sujets en rapport avec ce message

Capture d'écran [ par joyeuxlutin ] Bonjour Sur mon application, j'ai un controle (zone de texte à plusieurs lignes). Je peux faire la sauvegarde de ce controle en fichier *.txt.Je désir Capture d'écran [ par joyeuxlutin ] Bonjour Sur mon application, j'ai un controle (zone de texte à plusieurs lignes). Je peux faire la sauvegarde de ce controle en fichier *.txt.Je désir Capture d'écran et envoi de mail [ par jbHTS ] Bonjour tout le monde,je souhaiterai savoir si il existe une fonction permettant de faire une capture d'écran et si vous connaissez des cours en franç Debbugger application DirectX [ par ouze ] Bonjour à tousJ'ai un problème depuis que je me suis lancé dans la programmation avec DirectX, au niveau debugage. Quand je lance le debuggeur, ma fen capture d' écran ! [ par vdox05 ] Bonjour,Je voudrais savoir comment on fait pour faire une capture d' écran depuis un programme et l' enregistrer dans un fichier .Merci ;-) capture écran sous dos plein écran et xp [ par freeman_nerv ] Comment faire pour faire une capture d'écran sous dos lorsque l'on est en plein écran avec xp  ? Help urgent interface en C++ utilisant directX [ par CeNedra83 ] Salut,J'ai récupéré une source appelée à l'origine interface01. Elle affiche en utilisant directX une image en plein écran avec un menu. Je l'ai modif Lire une ligne vide avec fscanf() [ par kiboumz ] Bonjour, j'ai un petit problème, j'essaie d'afficher des lignes à l'écran lu à partir d'un fichier, tout cela fonctionne jusqu'à je recontre une ligne Capture écran dans le menu contextuel [ par lunnatick ] Bonjour à tous, je recherche un logiciel de capture d’écran (gratuit de préférence) qui ajoute dans le menu contextuel de Windows une commande pour ca capture video d'un écran [ par micke_II ] Bonjour à tous!Je voudrais capturer mon écran, mais en video (certainement comme le font ce qui mettent des videos sur CS). Est-ce que quelqu'un conna


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,810 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales