Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4543 connectés 

 


Dernière réponse
Sujet : Afficher un pixel en direct daw
slashp Merci, maintenant ça marche, j'ai juste un petit probléme de conversion d'une couleur RBG 24 bits en une couleur RGB 16 bits (ca dépend du hardware utilisé...)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
slashp Merci, maintenant ça marche, j'ai juste un petit probléme de conversion d'une couleur RBG 24 bits en une couleur RGB 16 bits (ca dépend du hardware utilisé...)
LeGreg En gros tu fais un lock sur une directdrawsurface, et tu travailles directement sur la zone memoire concernee.
 
ex:
DDSURFACEDESC2 ddsd;
LPDIRECTDRAWSURFACE4 g_pDDSBack;
LPSTR pBits;
HRESULT hRet;
 
ddsd.dwSize = sizeof(ddsd);
// On initialise la struct ddsd
hRet = g_pDDSBack->Lock(NULL, &ddsd, DDLOCK_WAIT , NULL);
// On verrouille la surface de travail (ici le backbuffer)
// On obtient un ddsurfacedesc2 en retour
if (hRet != DD_OK) //Erreur;
pBits = (LPSTR) ddsd.lpSurface;
// Operations de trace directement sur pBits.
g_pDDSBack->Unlock(NULL);
// Ne pas oublier de deverrouiller
 
Je crois meme que ce code est sorti directement d'un exemple du tutorial..
 
A+
LEGREG
slashp Merci, je vais voir ça...
bat La méthode brutale : ecriture directe en mémoire.
 
1) DirectDrawSurface->Lock() pour verrouiller la surface dans laquelle tu veux écire.
2) Pour le moment de l'écriture en elle même, j'ai un trou de mémoire. C'est peut etre DirectDrawSurface->GetDC() pour obtenir un contexte puis une fonction de l'API windows ou une écriture directe en mémoire grâce au pointeur qui va bien.
3) On déverrouille tout.
slashp Voila, je voulais savour comment programmer une fonction putpixel(x,y,couleur), qui affiche un pixel sur une surface ddraw (fonction en C).
 
Merci

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)