Funzione XMCOLOR::XMCOLOR(constfloat*) (directxpackedvector.h)
Inizializza una nuova istanza di XMCOLOR da un argomento della matrice di quattro elementi float
.
Questo costruttore inizializza una nuova istanza di XMCOLOR da un oggetto da un argomento di quattro matrici di elementi float
.
Sintassi
void XMCOLOR(
const float *pArray
) noexcept;
Parametri
pArray
Matrice a virgola mobile di quattro elementi contenente i valori di colore usati per inizializzare i quattro componenti di una nuova istanza di XMCOLOR.
Valore restituito
nessuno
Osservazioni
Gli elementi della matrice vengono mappati ai componenti vettoriali di una nuova istanza di XMCOLOR come indicato di seguito:
Componente vettore | Elemento Array | Intervallo | Descrizione |
---|---|---|---|
a | pArray[0] | 0.0, 1.0 | Durante l'istanza, pArray[0] viene bloccato tra 0 e 1, moltiplicato per 255.0f e assegnato a un (canale alfa). |
r | pArray[1] | 0.0, 1.0 | Durante l'istanza, pArray[1] viene bloccato tra 0 e 1, moltiplicato per 255.0f e quindi assegnato a r (canale rosso). |
z | pArray[2] | 0.0, 1.0 | Durante l'istanza, pArray[2] viene bloccato tra 0 e 1, moltiplicato per 255.0f e quindi assegnato a g (canale verde). |
w | pArray[3] | 0.0, 1.0 | Durante l'istanza, pArray[3] viene bloccato tra 0 e 1, moltiplicato per 255.0f e quindi assegnato a b (canale blu). |
Lo pseudocode seguente illustra l'operazione di questo costruttore, che sfrutta l'unione dei quattro canali di colore della struttura XMCOLOR con un'istanza uint32_t
di nella definizione della struttura:
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 );
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | directxpackedvector.h |