Función XMVectorSwizzle (directxmath.h)
Gira un vector.
Sintaxis
XMVECTOR XM_CALLCONV XMVectorSwizzle(
[in] FXMVECTOR V,
[in] uint32_t E0,
[in] uint32_t E1,
[in] uint32_t E2,
[in] uint32_t E3
) noexcept;
Parámetros
[in] V
Vector a eswizzle.
[in] E0
Índice que describe qué componente de V se va a colocar en el componente x del vector deswizzled. Un valor de 0 selecciona el componente x, 1 selecciona el componente y, 2 selecciona el componente z y 3 selecciona el componente w.
[in] E1
Índice que describe qué componente de V se va a colocar en el componente y del vector deswizzled. Un valor de 0 selecciona el componente x, 1 selecciona el componente y, 2 selecciona el componente z y 3 selecciona el componente w.
[in] E2
Índice que describe qué componente de V se va a colocar en el componente z del vector eswizzled. Un valor de 0 selecciona el componente x, 1 selecciona el componente y, 2 selecciona el componente z y 3 selecciona el componente w.
[in] E3
Índice que describe qué componente de V se va a colocar en el componente w del vector eswizzled. Un valor de 0 selecciona el componente x, 1 selecciona el componente y, 2 selecciona el componente z y 3 selecciona el componente w.
Valor devuelto
Devuelve el XMVECTOR destornado.
Comentarios
En el código siguiente se muestra cómo se puede usar esta función.
XMVECTOR v = XMVectorSet( 10.0f, 20.0f, 30.0f, 40.0f );
XMVECTOR result = XMVectorSwizzle(v, 3, 3, 0, 2 );
El vector swizzled (result) será <40.0f, 40.0f, 10.0f, 30.0f>.
XM_SWIZZLE_X
, XM_SWIZZLE_Y
, XM_SWIZZLE_Z
y XM_SWIZZLE_W
son constantes que se evalúan como 0, 1, 2 y 3 respectivamente para su uso con XMVectorSwizzle.
Esto es idéntico a XM_PERMUTE_0X
, XM_PERMUTE_0Y
, XM_PERMUTE_0Z
y XM_PERMUTE_0W
.
Para el caso de índices constantes (E0, E1, E2, E3), es mucho más eficaz usar la forma de plantilla de XMVectorSwizzle:
template<uint32_t SwizzleX, uint32_t SwizzleY, uint32_t SwizzleZ, uint32_t SwizzleW>
XMVECTOR XMVectorSwizzle(FXMVECTOR V)
Example: XMVectorSwizzle< 3, 3, 0, 2>(v);
Requisitos de la plataforma
Microsoft Visual Studio 2010 o Microsoft Visual Studio 2012 con Windows SDK para Windows 8. Compatible con aplicaciones de escritorio Win32, aplicaciones de la Tienda Windows y Windows Phone 8 aplicaciones.Requisitos
Plataforma de destino | Windows |
Encabezado | directxmath.h (incluya DirectXMath.h) |