Discussion: [PSP][Résolu] draw images on images
Afficher un message
Vieux 19/07/2008, 18h28   #18
Nesgba
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 830
Par défaut

Citation:
Envoyé par daaa57150 Voir le message
La pêche au Nesgba a été bonne
Merci pour tes optimisations je les ai intégrées à ma fonction pour avoir un compromis (pour gérer le swizzle entre autres) et ça marche très bien.
Tu peux juste m'expliquer pourquoi &0xff dans tes extractions de composantes? Brunni le fait aussi dans sa macro:
#define oslRgbaGet8888(data, r, g, b, a) ((r)=((data)&0xff), (g)=(((data)>>8)&0xff), (b)=(((data)>>16)&0xff), (a)=(((data)>>24)&0xff))
Pour ce qui est de la performance des fonctions, j'ai pas testé mais il va de soi que la mienne était vachement + lente
re,
0xff(hexa) est en fait un masque qui conserve les 8 bits de poid faible (les 8 premiers), après pour chaque composante il faut décaler pour y accéder.
Code PHP:
a1 = *pdst ;
r1 = (a1)&0xff ;
g1 = (a1>>8)&0xff ;
b1 = (a1>>16)&0xff ;
a1 = (a1>>24)&0xff // masque obligatoire ici aussi 
on peut aussi préférer décaler le masque d'abort, mais généralement le compillo le ferra de lui même si c'est préférable en terme d'optimisation. (puis c'est plus long à tapper ;p)
Code PHP:
a1 = *pdst ;
r1 = (a1&0xff) ;
g1 = (a1&0xff00)>>;
b1 = (a1&0xff0000)>>16 ;
a1 = (a1&0xff000000)>>24 
Nesgba est déconnecté   Réponse avec citation