Функция XMVectorPermute (directxmath.h)
Перемыкает компоненты двух векторов для создания нового вектора.
Синтаксис
XMVECTOR XM_CALLCONV XMVectorPermute(
[in] FXMVECTOR V1,
[in] FXMVECTOR V2,
uint32_t PermuteX,
uint32_t PermuteY,
uint32_t PermuteZ,
uint32_t PermuteW
) noexcept;
Параметры
[in] V1
Первый вектор.
[in] V2
Второй вектор.
PermuteX
Форма индекса 0–7, указывающая, откуда следует скопировать компонент X нового вектора.
PermuteY
Форма индекса 0–7, указывающая, откуда следует скопировать компонент Y нового вектора.
PermuteZ
Форма индекса от 0 до 7, указывающая, откуда следует скопировать компонент Z нового вектора.
PermuteW
Форма индекса 0–7, указывающая, откуда следует скопировать компонент W нового вектора.
Возвращаемое значение
Возвращает пермутированный вектор, полученный в результате объединения исходных векторов.
Комментарии
Если все 4 индекса ссылаются только на один вектор (т. е. все они находятся в диапазоне 0–3 или все в диапазоне 4–7), для повышения производительности используйте XMVectorSwizzle .
Константы XM_PERMUTE_ предоставляются для использования в качестве входных значений для PermuteX, PermuteY, PermuteZ и PermuteW.
Для постоянных параметров PermuteX/Y/Z/W гораздо эффективнее использовать форму шаблона XMVectorPermute:
template<uint32_t PermuteX, uint32_t PermuteY, uint32_t PermuteZ, uint32_t PermuteW>
XMVECTOR XMVectorPermute(FXMVECTOR V1, FXMVECTOR V2)
Example: XMVectorPermute<XM_PERMUTE_0Z, XM_PERMUTE_1X, XM_PERMUTE_0W, XM_PERMUTE_1Y>( V1, V2 );
XMVectorPermute
является новой для DirectXMath. Библиотека XNAMath версии 2.x использовала XMVectorPermuteControl
элемент управления XMVECTOR
вместо 4 индексов для XMVectorPermute
и использовала разные значения для констант XM_PERMUTE_x.Требования к платформе
Microsoft Visual Studio 2010 или Microsoft Visual Studio 2012 с windows SDK для Windows 8. Поддерживается для классических приложений Win32, приложений Магазина Windows и приложений Windows Phone 8.Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | directxmath.h (включая DirectXMath.h) |