Fonction XMCOLOR::XMCOLOR(constfloat*) (directxpackedvector.h)
Initialise une nouvelle instance de XMCOLOR à partir d’un argument de tableau à quatre élémentsfloat
.
Ce constructeur initialise une nouvelle instance de XMCOLOR à partir d’un argument de tableau à quatre élémentsfloat
.
Syntaxe
void XMCOLOR(
const float *pArray
) noexcept;
Paramètres
pArray
Tableau à virgule flottante à quatre éléments contenant les valeurs de couleur utilisées pour initialiser les quatre composants d’une nouvelle instance de XMCOLOR.
Valeur de retour
None
Notes
Les éléments tableaux sont mappés aux composants vectoriels d’une nouvelle instance de XMCOLOR comme suit :
Composant Vector | Élément Array | Plage | Description |
---|---|---|---|
a | pArray[0] | 0.0, 1.0 | Pendant l’instanciation, pArray[0] est serré entre 0 et 1, multiplié par 255,0f et affecté à un (canal alpha). |
r | pArray[1] | 0.0, 1.0 | Pendant l’instanciation, pArray[1] est serré entre 0 et 1, multiplié par 255,0f, puis affecté à r (canal rouge). |
z | pArray[2] | 0.0, 1.0 | Pendant l’instanciation, pArray[2] est serré entre 0 et 1, multiplié par 255,0f, puis affecté à g (canal vert). |
w | pArray[3] | 0.0, 1.0 | Pendant l’instanciation, pArray[3] est serré entre 0 et 1, multiplié par 255,0f, puis affecté à b (canal bleu). |
Le pseudocode suivant illustre le fonctionnement de ce constructeur, qui tire parti de l’union des quatre canaux de couleur de la structure XMCOLOR avec un instance de uint32_t
dans la définition de la structure :
XMCOLOR instance;
_a1 = min( max( pArray[0], 0.0 ), 1.0 );
_r1 = min( max( pArray[1], 0.0 ), 1.0 );
_g1 = min( max( pArray[2], 0.0 ), 1.0 );
_b1 = min( max( pArray[3], 0.0 ), 1.0 );
_a1 = round ( _a1 * 255.0f );
_r1 = round ( _r1 * 255.0f );
_g1 = round ( _g1 * 255.0f );
_b1 = round ( _b1 * 255.0f );
instance.v = ( (uint32_t)_a1 << 24) |
( (uint32_t)_r1 << 16) |
( (uint32_t)_b1 << 8) |
( (uint32_t)_b1 );
Spécifications
Plateforme cible | Windows |
En-tête | directxpackedvector.h |