다음을 통해 공유


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;

컨트롤 벡터의 수동 생성은 필요하지 않습니다. 적절한 컨트롤 벡터를 생성하는 두 가지 간단한 방법이 있습니다.

플랫폼 요구 사항

Windows 8용 Windows SDK를 사용하는 Microsoft Visual Studio 2010 또는 Microsoft Visual Studio 2012. Win32 데스크톱 앱, Windows 스토어 앱 및 Windows Phone 8개 앱에서 지원됩니다.

요구 사항

   
대상 플랫폼 Windows
헤더 directxmath.h(DirectXMath.h 포함)

추가 정보

구성 요소별 벡터 함수

XMVectorSelectControl