Функция InterlockedXor
Выполняет атомарное XOR для значения .
Синтаксис
void InterlockedXor(
in UINT dest,
in UINT value,
out UINT original_value
);
Параметры
-
dest [in]
-
Тип: UINT
Адрес назначения.
-
value [in]
-
Тип: UINT
Входное значение.
-
original_value [out]
-
Тип: UINT
Исходное значение.
Возвращаемое значение
Эта функция не возвращает значение.
Комментарии
Эта операция может выполняться только с типизированными ресурсами INT или UINT и переменными общей памяти. Существует три возможных варианта использования этой функции. Во-первых, R является типом переменной общей памяти. В этом случае функция выполняет атомарный XOR со значением регистра общей памяти, на который ссылается dest. Второй сценарий — это когда R является типом переменной ресурса. В этом сценарии функция выполняет атомарное XOR со значением расположения ресурса, на которое ссылается dest. Наконец, третий сценарий заключается в том, что R является локальным типом переменной. В этом сценарии функция уменьшается до XOR значений dest и value. Результат операции заменяет значение в dest. Перегруженная функция имеет дополнительную выходную переменную, которой будет присвоено исходное значение dest. Эта перегруженная операция доступна только в том случае, если R доступен для чтения и записи.
Эта функция поддерживается в следующих типах шейдеров:
VS | HS | DS | GS | PS | CS |
---|---|---|---|---|---|
x | x | x | x | x | x |
См. также раздел