Функции пространства имен Concurrency::direct3d (AMP)
Требования
Заголовок: пространство имен amp.h: параллелизм
abs
Возвращает абсолютное значение аргумента
inline int abs(int _X) restrict(amp);
Параметры
_X
Целое значение
Возвращаемое значение
Возвращает абсолютное значение аргумента.
зажим
Вычисляет значение первого указанного аргумента, зажатого в диапазон, определенный вторым и третьим указанными аргументами.
inline float clamp(
float _X,
float _Min,
float _Max) restrict(amp);
inline int clamp(
int _X,
int _Min,
int _Max) restrict(amp);
Параметры
_X
Значение, которое необходимо зажать
_Мин
Нижняя граница диапазона зажимания.
_Макс
Верхняя граница диапазона зажимания.
Возвращаемое значение
Зажатое значение _X
.
countbits
Подсчитывает количество битов набора в _X
inline unsigned int countbits(unsigned int _X) restrict(amp);
Параметры
_X
Целое число без знака
Возвращаемое значение
Возвращает количество битов набора в _X
create_accelerator_view
Создает объект accelerator_view из указателя на интерфейс устройства Direct3D.
Синтаксис
accelerator_view create_accelerator_view(
IUnknown * _D3D_device
queuing_mode _Qmode = queuing_mode_automatic);
accelerator_view create_accelerator_view(
accelerator& _Accelerator,
bool _Disable_timeout
queuing_mode _Qmode = queuing_mode_automatic);
Параметры
_Акселератор
Акселератор, на котором должен быть создан новый accelerator_view.
_D3D_device
Указатель на интерфейс устройства Direct3D.
_Disable_timeout
Логический параметр, указывающий, следует ли отключить время ожидания для только что созданного accelerator_view. Это соответствует флагу D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT для создания устройства Direct3D и используется для указания того, должна ли операционная система разрешать рабочие нагрузки, которые выполняются более 2 секунд, без сброса устройства на механизм обнаружения и восстановления времени ожидания Windows. Использование этого флага рекомендуется, если вам нужно выполнять много времени на accelerator_view.
_Qmode
Queuing_mode, который будет использоваться для только что созданного accelerator_view. Этот параметр имеет значение queuing_mode_automatic
по умолчанию.
Возвращаемое значение
Объект accelerator_view
, созданный из переданного интерфейса устройства Direct3D.
Замечания
Эта функция создает новый accelerator_view
объект из существующего указателя на интерфейс устройства Direct3D. Если вызов функции выполнен успешно, число ссылок параметра увеличивается с помощью AddRef
вызова интерфейса. Вы можете безопасно освободить объект, если он больше не требуется в коде DirectX. Если вызов метода завершается ошибкой , возникает runtime_exception .
Объект, создаваемый accelerator_view
с помощью этой функции, является потокобезопасной. Необходимо синхронизировать параллельное использование accelerator_view
объекта. Несинхронизированное параллельное использование accelerator_view
объекта и необработанный интерфейс ID3D11Device приводит к неопределенному поведению.
Среда выполнения C++ AMP предоставляет подробные сведения об ошибках в режиме отладки с помощью уровня отладки D3D при использовании флага D3D11_CREATE_DEVICE_DEBUG
.
d3d_access_lock
Получите блокировку accelerator_view для безопасного выполнения операций D3D с ресурсами, общими с accelerator_view. Accelerator_view и все ресурсы C++ AMP, связанные с этим accelerator_view внутренне принимают эту блокировку при выполнении операций и блокируются, а другой поток содержит блокировку доступа D3D. Эта блокировка не рекурсивна. Это неопределенное поведение для вызова этой функции из потока, который уже содержит блокировку. Не определено поведение для выполнения операций с accelerator_view или любого контейнера данных, связанного с accelerator_view из потока, в котором хранится блокировка доступа D3D. См. также scoped_d3d_access_lock класс стиля RAII для блокировки доступа на основе области D3D.
void __cdecl d3d_access_lock(accelerator_view& _Av);
Параметры
_Av
Блокировка accelerator_view.
d3d_access_try_lock
Попытайтесь получить блокировку доступа D3D на accelerator_view без блокировки.
bool __cdecl d3d_access_try_lock(accelerator_view& _Av);
Параметры
_Av
Блокировка accelerator_view.
Возвращаемое значение
Значение true, если блокировка была приобретена, или значение false, если она в настоящее время хранится другим потоком.
d3d_access_unlock
Отпустите блокировку доступа D3D для заданного accelerator_view. Если вызывающий поток не удерживает блокировку на accelerator_view результаты не определены.
void __cdecl d3d_access_unlock(accelerator_view& _Av);
Параметры
_Av
Accelerator_view, для которого должна быть освобождена блокировка.
firstbithigh
Получает расположение первого набора бита в _X, начиная с бита с наивысшим порядком и переходя к биту с наименьшим порядком.
inline int firstbithigh(int _X) restrict(amp);
Параметры
_X
Целое значение
Возвращаемое значение
Расположение первого заданного бита
firstbitlow
Возвращает расположение первого набора бита в _X, начиная с бита с наименьшим порядком и работая в направлении бита с наибольшим порядком.
inline int firstbitlow(int _X) restrict(amp);
Параметры
_X
Целое значение
Возвращаемое значение
Возвращает расположение первого бита набора
get_buffer
Получите интерфейс буфера Direct3D, базовый указанный массив.
template<
typename value_type,
int _Rank
>
IUnknown *get_buffer(
const array<value_type, _Rank>& _Array) ;
Параметры
value_type
Тип элементов в массиве.
_Rank
Ранг массива.
_Array
Массив в accelerator_view Direct3D, для которого возвращается базовый интерфейс буфера Direct3D.
Возвращаемое значение
Указатель интерфейса IUnknown, соответствующий буферу Direct3D, лежащему в основе массива.
get_device
Получите интерфейс устройства D3D, базовый accelerator_view.
IUnknown* get_device(const accelerator_view Av);
Параметры
Av
Accelerator_view D3D, для которого возвращается базовый интерфейс устройства D3D.
Возвращаемое значение
IUnknown
Указатель интерфейса устройства D3D, лежащего в основе accelerator_view.
imax
Определение максимального числового значения аргументов
inline int imax(
int _X,
int _Y) restrict(amp);
Параметры
_X
Целое значение
_Y
Целое значение
Возвращаемое значение
Возвращает максимальное числовое значение аргументов
Администратор
Определение минимального числового значения аргументов
inline int imin(
int _X,
int _Y) restrict(amp);
Параметры
_X
Целое значение
_Y
Целое значение
Возвращаемое значение
Возвращает минимальное числовое значение аргументов
is_timeout_disabled
Возвращает логический флаг, указывающий, отключается ли время ожидания для указанного accelerator_view. Это соответствует флагу D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT для создания устройства Direct3D.
bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);
Параметры
_Accelerator_view
Accelerator_view, для которого требуется запросить параметр времени ожидания.
Возвращаемое значение
Логический флаг, указывающий, отключается ли время ожидания для указанного accelerator_view.
сумасшедший
Вычисляет продукт первого и второго указанного аргумента, а затем добавляет третий указанный аргумент.
inline float mad(
float _X,
float _Y,
float _Z) restrict(amp);
inline double mad(
double _X,
double _Y,
double _Z) restrict(amp);
inline int mad(
int _X,
int _Y,
int _Z) restrict(amp);
inline unsigned int mad(
unsigned int _X,
unsigned int _Y,
unsigned int _Z) restrict(amp);
Параметры
_X
Первый указанный аргумент.
_Y
Второй указанный аргумент.
_Z
Третий указанный аргумент.
Возвращаемое значение
Результат _X
* _Y
+ _Z
.
make_array
Создайте массив из указателя интерфейса буфера Direct3D.
template<
typename value_type,
int _Rank
>
array<value_type, _Rank> make_array(
const extent<_Rank>& _Extent,
const Concurrency::accelerator_view& _Rv,
IUnknown* _D3D_buffer) ;
Параметры
value_type
Тип элемента создаваемого массива.
_Rank
Ранг создаваемого массива.
_Степень
Степень, описывающая форму агрегата массива.
_Rv
Представление акселератора D3D, на котором создается массив.
_D3D_buffer
Указатель интерфейса IUnknown буфера D3D для создания массива из.
Возвращаемое значение
Массив, созданный с помощью предоставленного буфера Direct3D.
шум
Создает случайное значение с помощью алгоритма шума Perlin
inline float noise(float _X) restrict(amp);
Параметры
_X
Значение с плавающей запятой, из которого создается шум Perlin
Возвращаемое значение
Возвращает значение шума Perlin в диапазоне от -1 до 1
radians
Преобразует _X из градусов в радианы
inline float radians(float _X) restrict(amp);
Параметры
_X
Значение с плавающей запятой
Возвращаемое значение
Возвращает _X, преобразованные из градусов в радианы
rcp
Вычисляет взаимность указанного аргумента с помощью быстрого приближения.
inline float rcp(float _X) restrict(amp);
inline double rcp(double _X) restrict(amp);
Параметры
_X
Значение, для которого вычисляется взаимное значение.
Возвращаемое значение
Взаимное значение указанного аргумента.
обратные биты
Изменяет порядок битов в _X
inline unsigned int reversebits(unsigned int _X) restrict(amp);
Параметры
_X
Целое число без знака
Возвращаемое значение
Возвращает значение с обратным порядком бита в _X
насыщать
Зажимы _X в диапазоне от 0 до 1
inline float saturate(float _X) restrict(amp);
Параметры
_X
Значение с плавающей запятой
Возвращаемое значение
Возвращает _X, зажатые в диапазоне от 0 до 1
sign
Определяет знак указанного аргумента.
inline int sign(int _X) restrict(amp);
Параметры
_X
Целое значение
Возвращаемое значение
Знак аргумента.
smoothstep
Возвращает гладкую интерполяцию от 0 до 1, если _X находится в диапазоне [_Min, _Max].
inline float smoothstep(
float _Min,
float _Max,
float _X) restrict(amp);
Параметры
_Мин
Значение с плавающей запятой
_Макс
Значение с плавающей запятой
_X
Значение с плавающей запятой
Возвращаемое значение
Возвращает значение 0, если _X меньше _Min; 1, если _X больше _Max; в противном случае значение от 0 до 1, если _X находится в диапазоне [_Min, _Max]
step
Сравнивает два значения, возвращая значение 0 или 1 в зависимости от того, какое значение больше
inline float step(
float _Y,
float _X) restrict(amp);
Параметры
_Y
Значение с плавающей запятой
_X
Значение с плавающей запятой
Возвращаемое значение
Возвращает значение 1, если _X больше или равно _Y; в противном случае — значение 0
umax
Определение максимального числового значения аргументов
inline unsigned int umax(
unsigned int _X,
unsigned int _Y) restrict(amp);
Параметры
_X
Целое значение
_Y
Целое значение
Возвращаемое значение
Возвращает максимальное числовое значение аргументов
umin
Определение минимального числового значения аргументов
inline unsigned int umin(
unsigned int _X,
unsigned int _Y) restrict(amp);
Параметры
_X
Целое значение
_Y
Целое значение
Возвращаемое значение
Возвращает минимальное числовое значение аргументов