Compartir a través de


Concurrency::direct3d (Funciones del espacio de nombres) (AMP)

Requisitos

Encabezado: amp.h Espacio de nombres: simultaneidad

abs

Devuelve el valor absoluto del argumento.

inline int abs(int _X) restrict(amp);

Parámetros

_X
Valor entero

Valor devuelto

Devuelve el valor absoluto del argumento.

clamp

Calcula el valor del primer argumento especificado fijado en un intervalo definido por el segundo y el tercer argumento especificados.

inline float clamp(
    float _X,
    float _Min,
    float _Max) restrict(amp);

inline int clamp(
    int _X,
    int _Min,
    int _Max) restrict(amp);

Parámetros

_X
Valor que se va a fijar.

_Min
Límite inferior del intervalo de fijación.

_Max
Límite superior del intervalo de fijación.

Valor devuelto

Valor fijado de _X.

countbits

Cuenta el número de bits establecidos en _X.

inline unsigned int countbits(unsigned int _X) restrict(amp);

Parámetros

_X
Valor entero sin signo

Valor devuelto

Devuelve el número de bits establecidos en _X.

create_accelerator_view

Crea un objeto accelerator_view de un puntero a una interfaz de dispositivo Direct3D.

Sintaxis

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);

Parámetros

_Accelerator
Acelerador en el que se va a crear el nuevo elemento accelerator_view.

_D3D_device
Puntero a la interfaz del dispositivo Direct3D.

_Disable_timeout
Parámetro booleano que especifica si se debe deshabilitar el tiempo de espera para el elemento accelerator_view recién creado. Esto corresponde a la marca D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT para la creación de dispositivos Direct3D y se usa para indicar si el sistema operativo debe permitir cargas de trabajo que tarden más de 2 segundos en ejecutarse sin restablecer el dispositivo según el mecanismo de detección y recuperación del tiempo de espera de Windows. Se recomienda usar esta marca si necesita realizar tareas que consumen mucho tiempo en el elemento accelerator_view.

_Qmode
El valor queuing_mode que se usará para el elemento accelerator_view recién creado. Este parámetro tiene un valor predeterminado de queuing_mode_automatic.

Valor devuelto

Objeto accelerator_view creado en la interfaz de dispositivos Direct3D pasada.

Comentarios

Esta función crea un nuevo objeto accelerator_view a partir de un puntero existente a una interfaz de dispositivos Direct3D. Si la llamada de función se realiza correctamente, el recuento de referencias del parámetro se incrementa mediante una llamada AddRef a la interfaz. Puede liberar el objeto de forma segura cuando ya no sea necesario en el código de DirectX. Si se produce un error en la llamada al método, se inicia una excepción runtime_exception.

El objeto accelerator_view que se crea mediante esta función es seguro para subprocesos. Debe sincronizar el uso simultáneo del objeto accelerator_view. El uso simultáneo no sincronizado del objeto accelerator_view y la interfaz ID3D11Device sin formato provocan un comportamiento indefinido.

El entorno de ejecución de C++ AMP proporciona información detallada sobre los errores en modo de depuración mediante la capa de depuración D3D si usa la marca D3D11_CREATE_DEVICE_DEBUG.

d3d_access_lock

Adquiere un bloqueo sobre un elemento accelerator_view con el fin de realizar operaciones D3D de forma segura en los recursos compartidos con dicho elemento. El elemento accelerator_view y todos los recursos C++ AMP asociados toman internamente este bloqueo al realizar operaciones y se bloquearán mientras otro subproceso mantiene el bloqueo de acceso a D3D. Este bloqueo no es recursivo: es un comportamiento indefinido para llamar a esta función desde un subproceso que ya contiene el bloqueo. Es un comportamiento indefinido realizar operaciones sobre el elemento accelerator_view o en cualquier contenedor de datos asociado desde el subproceso que contiene el bloqueo de acceso a D3D. Consulte también scoped_d3d_access_lock, una clase de estilo RAII para un bloqueo de acceso a D3D basado en el ámbito.

void __cdecl d3d_access_lock(accelerator_view& _Av);

Parámetros

_Av
El elemento accelerator_view que se va a bloquear.

d3d_access_try_lock

Intenta adquirir el bloqueo de acceso a D3D en un elemento accelerator_view sin bloqueo.

bool __cdecl d3d_access_try_lock(accelerator_view& _Av);

Parámetros

_Av
El elemento accelerator_view que se va a bloquear.

Valor devuelto

True si se adquirió el bloqueo o false si lo contiene actualmente otro subproceso.

d3d_access_unlock

Libera el bloqueo de acceso a D3D en el elemento accelerator_view especificado. Si el subproceso que realiza la llamada no contiene el bloqueo sobre el elemento accelerator_view, los resultados no están definidos.

void __cdecl d3d_access_unlock(accelerator_view& _Av);

Parámetros

_Av
El elemento accelerator_view para el que se va a liberar el bloqueo.

firstbithigh

Obtiene la ubicación del primer bit establecido en _X, empezando por el bit de orden más alto y moviéndose hacia el bit de orden más bajo.

inline int firstbithigh(int _X) restrict(amp);

Parámetros

_X
Valor entero

Valor devuelto

Ubicación del primer bit establecido.

firstbitlow

Obtiene la ubicación del primer bit establecido en _X, empezando por el bit de orden más bajo y trabajando hacia el bit de orden más alto.

inline int firstbitlow(int _X) restrict(amp);

Parámetros

_X
Valor entero

Valor devuelto

Devuelve la ubicación del primer bit establecido.

get_buffer

Obtiene la interfaz del búfer de Direct3D subyacente a la matriz especificada.

template<
    typename value_type,
    int _Rank
>
IUnknown *get_buffer(
    const array<value_type, _Rank>& _Array)  ;

Parámetros

value_type
Tipo de los elementos de la matriz.

_Rank
Rango de la matriz.

_Array
Matriz en un elemento accelerator_view de Direct3D para la que se devuelve la interfaz de búfer de Direct3D subyacente.

Valor devuelto

Puntero de interfaz IUnknown correspondiente al búfer de Direct3D subyacente a la matriz.

get_device

Obtiene la interfaz de dispositivos D3D subyacente a un elemento accelerator_view.

IUnknown* get_device(const accelerator_view Av);

Parámetros

Av
El elemento accelerator_view D3D para el que se devuelve la interfaz de dispositivos D3D subyacente.

Valor devuelto

Puntero de interfaz IUnknown del dispositivo D3D subyacente al elemento accelerator_view.

imax

Determina el valor numérico máximo de los argumentos

inline int imax(
    int _X,
    int _Y) restrict(amp);

Parámetros

_X
Valor entero

_Y
Valor entero

Valor devuelto

Devuelve el valor numérico máximo de los argumentos

imin

Determina el valor numérico mínimo de los argumentos.

inline int imin(
    int _X,
    int _Y) restrict(amp);

Parámetros

_X
Valor entero

_Y
Valor entero

Valor devuelto

Devuelve el valor numérico mínimo de los argumentos

is_timeout_disabled

Devuelve una marca booleana que indica si el tiempo de espera está deshabilitado para el elemento accelerator_view especificado. Corresponde a la marca D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT para la creación de dispositivos Direct3D.

bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);

Parámetros

_Accelerator_view
El elemento accelerator_view para el que se va a consultar el valor de tiempo de espera deshabilitado.

Valor devuelto

Marca booleana que indica si el tiempo de espera está deshabilitado para el elemento accelerator_view especificado.

mad

Calcula el producto del primer y el segundo argumento especificados y, luego, agrega el tercer argumento especificado.

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);

Parámetros

_X
Primer argumento especificado.

_Y
Segundo argumento especificado.

_Z
Tercer argumento especificado.

Valor devuelto

Resultado de _X * _Y + _Z.

make_array

Crea una matriz a partir de un puntero de interfaz de búfer de 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)  ;

Parámetros

value_type
Tipo de elemento de la matriz que se va a crear.

_Rank
Clasificación de la matriz que se va a crear.

_Extent
Extensión que describe la forma del agregado de matriz.

_Rv
Vista de acelerador D3D en la que se va a crear la matriz.

_D3D_buffer
Puntero de interfaz IUnknown del búfer D3D desde el que crear la matriz.

Valor devuelto

Matriz creada mediante el búfer de Direct3D proporcionado.

noise

Genera un valor aleatorio mediante el algoritmo de ruido Perlin.

inline float noise(float _X) restrict(amp);

Parámetros

_X
Valor de punto flotante desde el que se va a generar el ruido de Perlin.

Valor devuelto

Devuelve el valor de ruido Perlin dentro de un intervalo entre -1 y 1.

radians

Convierte _X de grados a radianes.

inline float radians(float _X) restrict(amp);

Parámetros

_X
Valor de punto flotante

Valor devuelto

Devuelve _X convertido de grados a radianes.

rcp

Calcula el recíproco del argumento especificado mediante una aproximación rápida.

inline float rcp(float _X) restrict(amp);

inline double rcp(double _X) restrict(amp);

Parámetros

_X
Valor para el que se va a calcular el recíproco.

Valor devuelto

El recíproco del argumento especificado.

reversebits

Invierte el orden de los bits en _X

inline unsigned int reversebits(unsigned int _X) restrict(amp);

Parámetros

_X
Valor entero sin signo

Valor devuelto

Devuelve el valor con el orden de bits invertido en _X.

saturate

Fija _X dentro del intervalo de 0 a 1

inline float saturate(float _X) restrict(amp);

Parámetros

_X
Valor de punto flotante

Valor devuelto

Devuelve _X fijado dentro del intervalo de 0 a 1.

sign

Determina el signo del argumento especificado.

inline int sign(int _X) restrict(amp);

Parámetros

_X
Valor entero

Valor devuelto

Signo del argumento.

smoothstep

Devuelve una interpolación Hermita suave entre 0 y 1, si _X está en el intervalo [_Min, _Max].

inline float smoothstep(
    float _Min,
    float _Max,
    float _X) restrict(amp);

Parámetros

_Min
Valor de punto flotante

_Max
Valor de punto flotante

_X
Valor de punto flotante

Valor devuelto

Devuelve 0 si _X es menor que _Min; 1 si _X es mayor que _Max; de lo contrario, un valor entre 0 y 1 si _X está en el intervalo [_Min, _Max]

step

Compara dos valores y devuelve 0 o 1 en función del valor que sea mayor

inline float step(
    float _Y,
    float _X) restrict(amp);

Parámetros

_Y
Valor de punto flotante

_X
Valor de punto flotante

Valor devuelto

Devuelve 1 si _X es mayor o igual que _Y; de lo contrario, 0.

umax

Determina el valor numérico máximo de los argumentos

inline unsigned int umax(
    unsigned int _X,
    unsigned int _Y) restrict(amp);

Parámetros

_X
Valor entero

_Y
Valor entero

Valor devuelto

Devuelve el valor numérico máximo de los argumentos

umin

Determina el valor numérico mínimo de los argumentos.

inline unsigned int umin(
    unsigned int _X,
    unsigned int _Y) restrict(amp);

Parámetros

_X
Valor entero

_Y
Valor entero

Valor devuelto

Devuelve el valor numérico mínimo de los argumentos

Consulte también

Concurrency::direct3d (espacio de nombres)