Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Следующие функции определяются в 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.
подсчет битов
Подсчитывает количество единичных битов в _X.
inline unsigned int countbits(unsigned int _X) restrict(amp);
Параметры
_X
Целое число без знака
Возвращаемое значение
Возвращает количество установленных битов в _X.
создать_вид_ускорителя
Создает объект 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
Режим очереди, который используется для вновь созданного 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
Для безопасного выполнения операций D3D с ресурсами, общими с accelerator_view, установите блокировку на 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);
Параметры
тип значения
Тип элементов в массиве.
_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);
Параметры
тип значения
Тип элемента создаваемого массива.
_Rank
Ранг массива, который нужно создать.
_Степень
Размер, описывающий форму группировки массива.
_Rv
Представление акселератора D3D, на котором будет создан массив.
_D3D_buffer
Указатель интерфейса IUnknown на буфер D3D, из которого создается массив.
Возвращаемое значение
Массив, созданный с помощью предоставленного буфера Direct3D.
шум
Создает случайное значение с помощью алгоритма шума Perlin.
inline float noise(float _X) restrict(amp);
Параметры
_X
Значение с плавающей запятой, из которого создается шум Perlin.
Возвращаемое значение
Возвращает значение шума Perlin в диапазоне от -1 до 1.
Радианы
Преобразует _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.
знак
Определяет знак указанного аргумента.
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].
шаг
Сравнивает два значения, возвращая значение 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
Целочисленное значение
Возвращаемое значение
Возвращает минимальное числовое значение аргументов.