XMVectorReplicate

ベクトルの 4 つの要素すべてに浮動小数点値を複製します。

構文

XMVECTOR XMVectorReplicate(         FLOAT Value)

パラメーター

  • Value
    [in] 複製する値

戻り値

要素がすべて Value に等しいベクトルを返します。

解説 

Xbox 360 を対象にしている場合、XMVectorReplicate はロード/ヒット/ストア イベントを発生させることがあるため、パフォーマンスが低下します。Xbox 360 では、XMVectorReplicatePtr を使用する方が効率的な場合があります。

ただし、XMVectorReplicate を使用しているときは、FLOAT 値がレジスタ内ではなくメモリー内にあり、XMVectorReplicate がインライン化されている場合 (既定) に限って、XMVectorReplicate は FLOAT 値をロードおよび複製するための効率的な方法です。

XMVectorReplicate に渡されるときにレジスタ内にある FLOAT 値は、コストの高いロード/ヒット/ストアを生成します。そのため、値を明示的にメモリーに書き込んでからロードする必要があります。

値に対する最新の操作では、値がメモリー内にはない可能性が高くなります。次に、XMVectorReplicate の問題のある使用例を 2 つ示します。

float x = y * 0.5;XMVECTOR v = XMVectorReplicate(x);

ここでは、現在の x はメモリー内ではなくレジスタにあります。計算内で使用され、ロード/ヒット/ストアが生成されます。

void DoSomething(float y){XMVECTOR v = XMVectorReplicate(y);/* ...*/}	    

この場合、既定ではパラメーターはレジスタ内のメソッドに渡されるため、y は、XMVectorReplicate からアクセス可能になるためには、読み取られてメモリーに格納される必要があります (この結果としてロード/ヒット/ストアが生じます)。

要件

ヘッダー: xnamath.h で宣言されています。

関連項目

XMVectorReplicateInt
XMVectorReplicateIntPtr
XMVectorReplicatePtr