EXEMPLE D'UTILISATION DE SETDIBITSTODEVICE

Signaler
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
gabuzomeuh
Messages postés
53
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
28 mars 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37657-exemple-d-utilisation-de-setdibitstodevice

gabuzomeuh
Messages postés
53
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
28 mars 2007

Bonjour,

Moi je comprends pas pourquoi define BYTEWIDTH = 4*((3*TABWIDTH+3)/4) c'est a dire (TABWIDTH*3)+3.

Pourquoi + 3 ?

Qqn peut m'expliquer ?

Merci
SAKingdom
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
La dernière deja?!? C'est pas grave. C'est déja bien gentil de ta part de me consacrer ce temps. Merci bien. Bon allez. C'est la dernière mise à jour après moi aussi je passe à autre chose. Voila j'ai corriger la fonction myZeroMemory. C'est maintenant celle de BruNews. Plus grosse mais plus rapide.
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
Allez une dernière:

myZeroMemory() boucle autant de tours que d'octets, pas terrible, il faut dérouler afin de faire le moins de sauts de code possible, c'est le plus pénalisant pour les perfs.

Exemple avec 8 octets (2 DWORDs) par tour:
__declspec(naked) void __fastcall bnZeroMemory(void *destination, UINT size)
{ // ECX destination, EDX size
__asm {
test edx, edx
mov eax, edx
je short zeroEXIT
and eax, 7
sub edx, eax
jz short finHUIT
parHUIT:
mov dword ptr[ecx], 0
mov dword ptr[ecx+4], 0
add ecx, 8
sub edx, 8
jnz short parHUIT
finHUIT:
test eax, eax
je short zeroEXIT
parUN:
mov byte ptr[ecx], 0
inc ecx
dec eax
jnz short parUN
zeroEXIT:
ret 0
}
}
MickCo
Messages postés
16
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
13 août 2007

Merci à toi BruNews.
Désolé SAKingdom, je me suis égaré quand j'ai vu qu'on parlait d'optimisation.