Função XMCOLOR::XMCOLOR(constfloat*) (directxpackedvector.h)
Inicializa uma nova instância de XMCOLOR de um argumento de matriz de quatro elementos float
.
Esse construtor inicializa uma nova instância de XMCOLOR de um de um argumento de matriz de quatro elementos float
.
Sintaxe
void XMCOLOR(
const float *pArray
) noexcept;
Parâmetros
pArray
Matriz de ponto flutuante de quatro elementos que contém os valores de cor usados para inicializar os quatro componentes de uma nova instância de XMCOLOR.
Valor retornado
Nenhum
Comentários
Os elementos de matriz são mapeados para os componentes vetoriais de uma nova instância de XMCOLOR da seguinte maneira:
Componente vetor | Elemento Array | Intervalo | Descrição |
---|---|---|---|
um | pArray[0] | 0.0, 1.0 | Durante a instanciação, pArray[0] é fixado entre 0 e 1, multiplicado por 255,0f e atribuído a um (canal alfa). |
r | pArray[1] | 0.0, 1.0 | Durante a instanciação, pArray[1] é fixado entre 0 e 1, multiplicado por 255,0f e atribuído a r (canal vermelho). |
z | pArray[2] | 0.0, 1.0 | Durante a instanciação, pArray[2] é fixado entre 0 e 1, multiplicado por 255,0f e atribuído a g (canal verde). |
w | pArray[3] | 0.0, 1.0 | Durante a instanciação, pArray[3] é fixado entre 0 e 1, multiplicado por 255,0f e atribuído a b (canal azul). |
O pseudocódigo a seguir demonstra a operação desse construtor, que aproveita a união dos quatro canais de cores da estrutura XMCOLOR com uma instância de uint32_t
na definição da estrutura:
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 );
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | directxpackedvector.h |