XMVectorSelect 함수(directxmath.h)
두 입력 벡터 간에 구성 요소별 선택을 수행하고 결과 벡터를 반환합니다.
구문
XMVECTOR XM_CALLCONV XMVectorSelect(
[in] FXMVECTOR V1,
[in] FXMVECTOR V2,
[in] FXMVECTOR Control
) noexcept;
매개 변수
[in] V1
비교할 첫 번째 벡터입니다.
[in] V2
비교할 두 번째 벡터입니다.
[in] Control
V1 또는 V2에서 벡터 구성 요소를 선택하는 데 사용되는 벡터 마스크입니다. Control의 구성 요소가 0이면 반환된 벡터의 해당 구성 요소가 첫 번째 벡터의 구성 요소가 됩니다. Control의 구성 요소가 0xFF 경우 반환된 벡터의 해당 구성 요소가 두 번째 벡터의 구성 요소가 됩니다. 벡터 마스크의 작동 방식에 대한 자세한 내용은 "설명"을 참조하세요.
일반적으로 Control에 사용되는 벡터는 벡터 비교 함수(예: XMVectorEqual, XMVectorLess 또는 XMVectorGreater)의 출력이거나 XMVectorSelectControl의 출력이 됩니다.
반환 값
구성 요소별 선택 결과를 반환합니다.
설명
지정된 컨트롤 비트가 설정되면 V2의 해당 비트가 사용되고, 그렇지 않으면 V1의 해당 비트가 사용됩니다. 다음 의사 코드는 함수의 작업을 보여 줍니다.
XMVECTOR Result;
Result.u[0] = (V1.u[0] & ~Control.u[0]) | (V2.u[0] & Control.u[0]);
Result.u[1] = (V1.u[1] & ~Control.u[1]) | (V2.u[1] & Control.u[1]);
Result.u[2] = (V1.u[2] & ~Control.u[2]) | (V2.u[2] & Control.u[2]);
Result.u[3] = (V1.u[3] & ~Control.u[3]) | (V2.u[3] & Control.u[3]);
return Result;
컨트롤 벡터의 수동 생성은 필요하지 않습니다. 적절한 컨트롤 벡터를 생성하는 두 가지 간단한 방법이 있습니다.
-
XMVectorSelectControl 함수를 사용하여 컨트롤 벡터를 생성합니다.
이 함수 를 사용하는 방법에 대한 데모는 XMVectorSelect 및 XMVectorSelectControl 사용을 참조하세요.
-
컨트롤 벡터는 XM_SELECT_[0,1] 상수를 사용하여 생성할 수 있습니다(DirectXMath 라이브러리 상수 참조). 예를 들어 의사 코드에서 요소와 함께 Control의 instance.
Control = { XM_SELECT_0, XM_SELECT_1, XM_SELECT_0, XM_SELECT_1 }
는 V1 및 V2의 다음 구성 요소를 사용하여 벡터 결과를 반환합니다.
Result = { V1.X, V2.Y, V1.Z, V2.W }
플랫폼 요구 사항
Windows 8용 Windows SDK를 사용하는 Microsoft Visual Studio 2010 또는 Microsoft Visual Studio 2012. Win32 데스크톱 앱, Windows 스토어 앱 및 Windows Phone 8개 앱에서 지원됩니다.요구 사항
대상 플랫폼 | Windows |
헤더 | directxmath.h(DirectXMath.h 포함) |