次の方法で共有


XMCOLOR::XMCOLOR(constfloat*) 関数 (directxpackedvector.h)

4 つの要素float配列引数から XMCOLOR の新しいインスタンスを初期化します。

このコンストラクターは、4 つの要素float配列引数から、 から XMCOLOR の新しいインスタンスを初期化します。

メモ これは、C++ ベースの開発でのみ使用できます。

構文

void XMCOLOR(
  const float *pArray
) noexcept;

パラメーター

pArray

XMCOLOR の新しいインスタンスの 4 つのコンポーネントを初期化するために使用される色の値を含む 4 つの要素浮動小数点配列。

戻り値

なし

解説

配列要素は、次のように XMCOLOR の新しいインスタンスのベクター コンポーネントにマップされます。

ベクター コンポーネント Array 要素 Range 説明
a pArray[0] 0.0, 1.0 インスタンス化中、pArray[0] は 0 から 1 の間でクランプされ、255.0f を乗算して (アルファ チャネル) に割り当てられます。
r pArray[1] 0.0, 1.0 インスタンス化中、pArray[1] は 0 から 1 の間でクランプされ、255.0f を乗算して r (赤チャネル) に割り当てられます。
z pArray[2] 0.0, 1.0 インスタンス化中、pArray[2] は 0 から 1 の間でクランプされ、255.0f を乗算して g (緑チャネル) に割り当てられます。
pArray[3] 0.0, 1.0 インスタンス化中、pArray[3] は 0 から 1 の間でクランプされ、255.0f を乗算して b (青いチャネル) に割り当てられます。

次の擬似コードは、このコンストラクターの操作を示しています。このコンストラクターは、XMCOLOR 構造体の 4 つのカラー チャネルと、 構造体の定義内の インスタンスuint32_tとの和集合を利用します。

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 );

要件

   
対象プラットフォーム Windows
ヘッダー directxpackedvector.h

関連項目

XMCOLOR

XMCOLOR コンストラクター