Функция InterlockedOr

Выполняет атомарное ИЛИ для значения .

Синтаксис

void InterlockedOr(
  in  UINT dest,
  in  UINT value,
  out UINT original_value
);

Параметры

dest [in]

Тип: UINT

Адрес назначения.

value [in]

Тип: UINT

Входное значение.

original_value [out]

Тип: UINT

Исходное значение.

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

Ничего

Комментарии

Эта операция может выполняться только с типизированными ресурсами INT или UINT и переменными общей памяти. Существует три возможных варианта использования этой функции. Во-первых, R является типом переменной общей памяти. В этом случае функция выполняет атомарное ИЛИ со значением регистра общей памяти, на который ссылается dest. Второй сценарий — это когда R является типом переменной ресурса. В этом сценарии функция выполняет атомарное ИЛИ со значением расположения ресурса, на которое ссылается dest. Наконец, третий сценарий заключается в том, что R является локальным типом переменной. В этом сценарии функция уменьшается до ИЛИ со значениями dest и value. Результат операции заменяет значение dest. Перегруженная функция имеет дополнительную выходную переменную, которой будет присвоено исходное значение dest. Эта перегруженная операция доступна только в том случае, если R доступен для чтения и записи.

Эта функция поддерживается в следующих типах шейдеров:

VS HS DS GS PS CS
x x x x x x

 

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

RWByteAddressBuffer

Модель шейдера 5