Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As seguintes funções são definidas no Concurrency::direct3d namespace (AMP):
Requisitos
Cabeçalho: amp.h
Espaço de Nomes: Concorrência
ABS
Retorna o valor absoluto do argumento.
inline int abs(int _X) restrict(amp);
Parâmetros
_X
Valor inteiro
Valor de retorno
Retorna o valor absoluto do argumento.
braçadeira
Calcula o valor do primeiro argumento especificado fixado a um intervalo definido pelo segundo e terceiro argumentos 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
O valor a ser fixado.
_Min
O limite inferior da faixa de fixação.
_Max
O limite superior da gama de fixação.
Valor de retorno
O valor limitador de _X.
countbits
Conta o número de bits definidos em _X.
inline unsigned int countbits(unsigned int _X) restrict(amp);
Parâmetros
_X
Valor inteiro não assinado
Valor de retorno
Retorna o número de bits definidos em _X.
criar_visão_acelerador
Cria um objeto accelerator_view de um ponteiro para uma interface de dispositivo Direct3D.
Sintaxe
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
O acelerador em que o novo accelerator_view será criado.
_D3D_device
O ponteiro para a interface do dispositivo Direct3D.
_Desativar_tempo_limite
Um parâmetro booleano que especifica se o tempo limite deve ser desabilitado para o accelerator_view recém-criado. Isto corresponde ao indicador D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT para criação de dispositivos Direct3D e é usado para indicar se o sistema operativo deve permitir cargas de trabalho que demoram mais de 2 segundos a serem executadas sem resetar o dispositivo, conforme o mecanismo de deteção e recuperação de timeouts do Windows. O uso desse sinalizador é recomendado se você precisar executar tarefas demoradas no accelerator_view.
_Qmode
O queuing_mode que deve ser usado para o accelerator_view recém-criado. Este parâmetro tem um valor padrão de queuing_mode_automatic.
Valor de retorno
O objeto accelerator_view criado a partir da interface de dispositivo de Direct3D fornecida.
Observações
Esta função cria um novo objeto accelerator_view de um ponteiro existente para uma interface de dispositivo Direct3D. Se a chamada de função for bem-sucedida, a contagem de referência do parâmetro será incrementada por meio de uma chamada AddRef para a interface. Você pode liberar o objeto com segurança quando ele não for mais necessário no código DirectX. Se a chamada de método falhar, uma runtime_exception será lançada.
O objeto accelerator_view que você cria usando essa função é thread safe. Você deve sincronizar o uso simultâneo do objeto accelerator_view. O uso simultâneo não sincronizado do objeto accelerator_view e da interface ID3D11Device bruta causa um comportamento indefinido.
O runtime do C++ AMP oferece informações detalhadas sobre erros no modo de depuração, utilizando a camada de depuração D3D, se você usar o parâmetro D3D11_CREATE_DEVICE_DEBUG.
d3d_access_lock
Adquira um bloqueio em um accelerator_view com a finalidade de executar com segurança operações D3D em recursos compartilhados com o accelerator_view. O accelerator_view e todos os recursos de AMP C++ associados a esse accelerator_view usam internamente esse bloqueio ao executar operações e bloquearão enquanto outro thread mantém o bloqueio de acesso D3D. Esse bloqueio não é recursivo: é um comportamento indefinido chamar essa função de um thread que já contém o bloqueio. É um comportamento indefinido executar operações no accelerator_view ou em qualquer contêiner de dados associado ao accelerator_view do thread que contém o bloqueio de acesso D3D. Consulte também scoped_d3d_access_lock, uma classe no estilo RAII para um bloqueio de acesso D3D baseado em escopo.
void __cdecl d3d_access_lock(accelerator_view& _Av);
Parâmetros
_Av
O accelerator_view bloquear.
d3d_access_try_lock
Tente adquirir a exclusividade de acesso D3D em um accelerator_view, sem causar bloqueio.
bool __cdecl d3d_access_try_lock(accelerator_view& _Av);
Parâmetros
_Av
O accelerator_view bloquear.
Valor de retorno
verdadeiro se o bloqueio foi adquirido, ou falso se estiver atualmente mantido por outra thread.
d3d_access_unlock
Libere o bloqueio de acesso ao D3D no 'accelerator_view' especificado. Se o thread de chamada não mantiver o bloqueio no accelerator_view os resultados serão indefinidos.
void __cdecl d3d_access_unlock(accelerator_view& _Av);
Parâmetros
_Av
O accelerator_view para o qual o bloqueio será libertado.
PrimeiroBitHigh
Obtém a localização do primeiro bit definido em _X, começando com o bit de ordem mais alta e movendo-se para o bit de ordem mais baixa.
inline int firstbithigh(int _X) restrict(amp);
Parâmetros
_X
Valor inteiro
Valor de retorno
A localização do primeiro bit definido.
firstbitlow
Obtém a localização do primeiro bit definido em _X, começando com o bit de ordem mais baixa e trabalhando em direção ao bit de ordem mais alta.
inline int firstbitlow(int _X) restrict(amp);
Parâmetros
_X
Valor inteiro
Valor de retorno
Devolve A localização do primeiro bit definido.
get_buffer
Obtenha a interface de buffer Direct3D subjacente à matriz especificada.
template<
typename value_type,
int _Rank
>
IUnknown *get_buffer(
const array<value_type, _Rank>& _Array);
Parâmetros
value_type
O tipo de elementos na matriz.
_Rank
A classificação da matriz.
_Array
Uma matriz em uma vista de aceleração Direct3D para a qual a interface de buffer subjacente do Direct3D é retornada.
Valor de retorno
O ponteiro de interface IUnknown correspondente ao buffer Direct3D subjacente à matriz.
get_device
Obtenha a interface de dispositivo D3D associada a um accelerator_view.
IUnknown* get_device(const accelerator_view Av);
Parâmetros
Av
A vista de acelerador D3D para a qual é retornada a interface do dispositivo D3D subjacente.
Valor de retorno
O ponteiro de interface IUnknown do dispositivo D3D subjacente ao accelerator_view.
IMAX
Determine o valor numérico máximo dos argumentos.
inline int imax(
int _X,
int _Y) restrict(amp);
Parâmetros
_X
Valor inteiro
_Y
Valor inteiro
Valor de retorno
Retornar o valor numérico máximo dos argumentos.
Imin
Determine o valor numérico mínimo dos argumentos.
inline int imin(
int _X,
int _Y) restrict(amp);
Parâmetros
_X
Valor inteiro
_Y
Valor inteiro
Valor de retorno
Retorna o valor numérico mínimo dos argumentos.
is_timeout_disabled
Retorna um indicador booleano que indica se o time-out está desativado para o accelerator_view especificado. Isso corresponde ao sinalizador D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT para a criação de dispositivos Direct3D.
bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);
Parâmetros
_Vista_de_Acelerador
A accelerator_view para a qual deve ser consultada a configuração de desativação do tempo limite.
Valor de retorno
Um sinalizador booleano que indica se o limite de tempo está desativado para o accelerator_view especificado.
louco
Calcula o produto do primeiro e segundo argumento especificado e, em seguida, adiciona o terceiro 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
O primeiro argumento especificado.
_Y
O segundo argumento especificado.
_Z
O terceiro argumento especificado.
Valor de retorno
O resultado de _X * _Y + _Z.
make_array
Crie uma matriz a partir de um ponteiro de interface de buffer 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
O tipo de elemento da matriz a ser criada.
_Rank
A classificação da matriz a ser criada.
_Extent
Uma extensão que descreve a forma da matriz agregada.
_Rv
Uma visualização do acelerador D3D na qual a matriz deve ser criada.
_D3D_buffer
Ponteiro de interface IUnknown do buffer D3D a partir do qual criar a matriz.
Valor de retorno
Uma matriz criada usando o buffer Direct3D fornecido.
ruído
Gera um valor aleatório usando o algoritmo de ruído Perlin.
inline float noise(float _X) restrict(amp);
Parâmetros
_X
Valor de ponto flutuante a partir do qual gerar ruído Perlin.
Valor de retorno
Devolve o valor de ruído Perlin dentro de um intervalo entre -1 e 1.
radianos
Converte _X de graus em radianos.
inline float radians(float _X) restrict(amp);
Parâmetros
_X
Valor de ponto flutuante
Valor de retorno
Devolve _X convertido de graus para radianos.
rcp
Calcula a recíproca do argumento especificado usando uma aproximação rápida.
inline float rcp(float _X) restrict(amp);
inline double rcp(double _X) restrict(amp);
Parâmetros
_X
O valor para o qual calcular a recíproca.
Valor de retorno
A recíproca do argumento especificado.
Reversebits
Inverte a ordem dos bits em _X.
inline unsigned int reversebits(unsigned int _X) restrict(amp);
Parâmetros
_X
Valor inteiro não assinado
Valor de retorno
Devolve o valor com a ordem de bits invertida em _X.
saturado
Limita _X ao intervalo de 0 a 1.
inline float saturate(float _X) restrict(amp);
Parâmetros
_X
Valor de ponto flutuante
Valor de retorno
Devolve _X limitado dentro do intervalo de 0 a 1.
símbolo
Determina o sinal do argumento especificado.
inline int sign(int _X) restrict(amp);
Parâmetros
_X
Valor inteiro
Valor de retorno
O sinal do argumento.
passo suave
Devolve uma interpolação Hermite suave entre 0 e 1, se _X estiver no intervalo [_Min, _Max].
inline float smoothstep(
float _Min,
float _Max,
float _X) restrict(amp);
Parâmetros
_Min
Valor de ponto flutuante
_Max
Valor de ponto flutuante
_X
Valor de ponto flutuante
Valor de retorno
Devolve 0 se _X for inferior a _Min; 1 se _X for superior a _Max; caso contrário, um valor entre 0 e 1 se _X estiver no intervalo [_Min, _Max].
passo a passo
Compara dois valores, retornando 0 ou 1 com base em qual valor é maior.
inline float step(
float _Y,
float _X) restrict(amp);
Parâmetros
_Y
Valor de ponto flutuante
_X
Valor de ponto flutuante
Valor de retorno
Devolve 1 se o _X for igual ou superior a _Y; caso contrário, 0.
UMAX
Determine o valor numérico máximo dos argumentos.
inline unsigned int umax(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parâmetros
_X
Valor inteiro
_Y
Valor inteiro
Valor de retorno
Retornar o valor numérico máximo dos argumentos.
Umin
Determine o valor numérico mínimo dos argumentos.
inline unsigned int umin(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parâmetros
_X
Valor inteiro
_Y
Valor inteiro
Valor de retorno
Retorna o valor numérico mínimo dos argumentos.