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