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