Поделиться через


Функция XMStoreColor (directxpackedvector.h)

Сохраняет XMVECTOR в XMCOLOR.

Синтаксис

void XM_CALLCONV XMStoreColor(
  [out] XMCOLOR   *pDestination,
  [in]  FXMVECTOR V
) noexcept;

Параметры

[out] pDestination

Адрес, по которому будут храниться данные.

[in] V

Вектор, содержащий данные для хранения. X содержит канал красного цвета, Y — зеленый, Z — синий, а W — альфа-канал.

Возвращаемое значение

Нет.

Remarks

Функция принимает вектор, зажимает его в диапазоне от 0,0f до 1,0f, преобразует компоненты в неподписанный нормализованный целочисленный формат, упаковывает компоненты в 32-разрядное целое число и записывает результат в заданный адрес. Наиболее значительный компонент записывается во второе по значению восемь битов целого числа и т. д.

Следующий псевдокод демонстрирует работу функции .

XMVector N;

N = saturate(V);
N = scale(N, 255.0f);
N = round(N);

pDestination->c = ((uint32_t)N.w << 24) |
                  ((uint32_t)N.x << 16) |
                  ((uint32_t)N.y << 8) |
                  ((uint32_t)N.z);

Для Direct3D 10.x и Direct3D 11 это соответствует порядку компонентов для функций, которые принимают параметр Float ColorRGBA[4].


 XMVECTOR Yellow = XMVectorSet( 1.0f, 1.0f, 0.0f, 1.0f );

 XMFLOAT4 clrf;
 XMStoreFloat4( &clrf, Yellow );
 pDeviceContext->ClearRenderTargetView( pRTV, (const float*)clrf );

Требования к платформе

Microsoft Visual Studio 2010 или Microsoft Visual Studio 2012 с windows SDK для Windows 8. Поддерживается для классических приложений Win32, приложений Магазина Windows и Windows Phone 8 приложений.

Требования

   
Целевая платформа Windows
Header directxpackedvector.h (включая DirectXPackedVector.h)

См. также раздел

Функции хранилища векторов библиотеки DirectXMath