Funzioni dello spazio dei nomi Concurrency::direct3d (AMP)
Requisiti
Intestazione: spazio dei nomi amp.h : concorrenza
abs
Restituisce il valore assoluto dell'argomento
inline int abs(int _X) restrict(amp);
Parametri
_X
Valore intero
Valore restituito
Restituisce il valore assoluto dell'argomento.
morsetto
Calcola il valore del primo argomento specificato bloccato su un intervallo definito dal secondo e dal terzo argomento specificato.
inline float clamp(
float _X,
float _Min,
float _Max) restrict(amp);
inline int clamp(
int _X,
int _Min,
int _Max) restrict(amp);
Parametri
_X
Valore da bloccare
_Min
Limite inferiore dell'intervallo di bloccaggio.
_Max
Limite superiore dell'intervallo di bloccaggio.
Valore restituito
Valore bloccato di _X
.
countbit
Conta il numero di bit impostati in _X
inline unsigned int countbits(unsigned int _X) restrict(amp);
Parametri
_X
Valore intero senza segno
Valore restituito
Restituisce il numero di bit impostati in _X
create_accelerator_view
Crea un oggetto accelerator_view da un puntatore a un'interfaccia del dispositivo Direct3D.
Sintassi
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);
Parametri
_Acceleratore
Acceleratore in cui creare il nuovo accelerator_view.
_D3D_device
Puntatore all'interfaccia del dispositivo Direct3D.
_Disable_timeout
Parametro booleano che specifica se il timeout deve essere disabilitato per il accelerator_view appena creato. Corrisponde al flag di D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT per la creazione del dispositivo Direct3D e viene usato per indicare se il sistema operativo deve consentire l'esecuzione dei carichi di lavoro che richiedono più di 2 secondi senza reimpostare il dispositivo in base al meccanismo di rilevamento e ripristino del timeout di Windows. L'uso di questo flag è consigliato se è necessario eseguire attività dispendiose in termini di tempo nel accelerator_view.
_Qmode
Queuing_mode da utilizzare per il accelerator_view appena creato. Questo parametro ha un valore predefinito di queuing_mode_automatic
.
Valore restituito
Oggetto accelerator_view
creato dall'interfaccia del dispositivo Direct3D passata.
Osservazioni:
Questa funzione crea un nuovo accelerator_view
oggetto da un puntatore esistente a un'interfaccia del dispositivo Direct3D. Se la chiamata di funzione ha esito positivo, il conteggio dei riferimenti del parametro viene incrementato tramite una AddRef
chiamata all'interfaccia. È possibile rilasciare in modo sicuro l'oggetto quando non è più necessario nel codice DirectX. Se la chiamata al metodo ha esito negativo, viene generata una runtime_exception .
L'oggetto accelerator_view
creato tramite questa funzione è thread-safe. È necessario sincronizzare l'utilizzo simultaneo dell'oggetto accelerator_view
. L'utilizzo simultaneo non sincronizzato dell'oggetto e dell'interfaccia accelerator_view
ID3D11Device non elaborato causa un comportamento non definito.
Il runtime C++ AMP fornisce informazioni dettagliate sull'errore in modalità di debug usando il livello debug D3D se si usa il D3D11_CREATE_DEVICE_DEBUG
flag .
d3d_access_lock
Acquisire un blocco su un accelerator_view allo scopo di eseguire operazioni D3D in modo sicuro sulle risorse condivise con il accelerator_view. Le accelerator_view e tutte le risorse C++ AMP associate a questo accelerator_view accettano internamente questo blocco durante l'esecuzione di operazioni e bloccano mentre un altro thread contiene il blocco di accesso D3D. Questo blocco non è ricorsivo: è un comportamento non definito per chiamare questa funzione da un thread che contiene già il blocco. È un comportamento non definito per eseguire operazioni sul accelerator_view o su qualsiasi contenitore di dati associato al accelerator_view dal thread che contiene il blocco di accesso D3D. Vedere anche scoped_d3d_access_lock, una classe in stile RAII per un blocco di accesso D3D basato sull'ambito.
void __cdecl d3d_access_lock(accelerator_view& _Av);
Parametri
_Av
Accelerator_view da bloccare.
d3d_access_try_lock
Tentare di acquisire il blocco di accesso D3D in un accelerator_view senza bloccare.
bool __cdecl d3d_access_try_lock(accelerator_view& _Av);
Parametri
_Av
Accelerator_view da bloccare.
Valore restituito
true se il blocco è stato acquisito o false se è attualmente mantenuto da un altro thread.
d3d_access_unlock
Rilasciare il blocco di accesso D3D sul accelerator_view specificato. Se il thread chiamante non contiene il blocco sul accelerator_view i risultati non sono definiti.
void __cdecl d3d_access_unlock(accelerator_view& _Av);
Parametri
_Av
Il accelerator_view per il quale deve essere rilasciato il blocco.
firstbithigh
Ottiene la posizione del primo bit impostato in _X, a partire dal bit più alto e spostandosi verso il bit più basso.
inline int firstbithigh(int _X) restrict(amp);
Parametri
_X
Valore intero
Valore restituito
Posizione del primo bit impostato
firstbitlow
Ottiene la posizione del primo bit impostato in _X, a partire dal bit più basso e lavorando verso il bit più alto.
inline int firstbitlow(int _X) restrict(amp);
Parametri
_X
Valore intero
Valore restituito
Restituisce La posizione del primo bit set
get_buffer
Ottenere l'interfaccia del buffer Direct3D sottostante la matrice specificata.
template<
typename value_type,
int _Rank
>
IUnknown *get_buffer(
const array<value_type, _Rank>& _Array) ;
Parametri
value_type
Tipo di elementi nella matrice.
_Rango
Classificazione della matrice.
_Array
Matrice in un accelerator_view Direct3D per cui viene restituita l'interfaccia del buffer Direct3D sottostante.
Valore restituito
Puntatore dell'interfaccia IUnknown corrispondente al buffer Direct3D sottostante la matrice.
get_device
Ottenere l'interfaccia del dispositivo D3D sottostante un accelerator_view.
IUnknown* get_device(const accelerator_view Av);
Parametri
Av
L'accelerator_view D3D per cui viene restituita l'interfaccia del dispositivo D3D sottostante.
Valore restituito
Puntatore IUnknown
dell'interfaccia del dispositivo D3D sottostante il accelerator_view.
imax
Determinare il valore numerico massimo degli argomenti
inline int imax(
int _X,
int _Y) restrict(amp);
Parametri
_X
Valore intero
_Y
Valore intero
Valore restituito
Restituisce il valore numerico massimo degli argomenti
imin
Determinare il valore numerico minimo degli argomenti
inline int imin(
int _X,
int _Y) restrict(amp);
Parametri
_X
Valore intero
_Y
Valore intero
Valore restituito
Restituisce il valore numerico minimo degli argomenti
is_timeout_disabled
Restituisce un flag booleano che indica se il timeout è disabilitato per il accelerator_view specificato. Corrisponde al flag di D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT per la creazione del dispositivo Direct3D.
bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);
Parametri
_Accelerator_view
Il accelerator_view per cui deve essere eseguita una query sull'impostazione di timeout disabilitato.
Valore restituito
Flag booleano che indica se il timeout è disabilitato per il accelerator_view specificato.
mad
Calcola il prodotto del primo e del secondo argomento specificato, quindi aggiunge il terzo argomento specificato.
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);
Parametri
_X
Primo argomento specificato.
_Y
Secondo argomento specificato.
_Z
Terzo argomento specificato.
Valore restituito
Risultato di _X
* _Y
+ _Z
.
make_array
Creare una matrice da un puntatore all'interfaccia del 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) ;
Parametri
value_type
Tipo di elemento della matrice da creare.
_Rango
Classificazione della matrice da creare.
_Misura
Extent che descrive la forma dell'aggregazione della matrice.
_Rv
Visualizzazione dell'acceleratore D3D su cui creare la matrice.
_D3D_buffer
Puntatore dell'interfaccia IUnknown del buffer D3D da cui creare la matrice.
Valore restituito
Matrice creata usando il buffer Direct3D fornito.
rumore
Genera un valore casuale usando l'algoritmo di disturbo Perlin
inline float noise(float _X) restrict(amp);
Parametri
_X
Valore a virgola mobile da cui generare rumore perlin
Valore restituito
Restituisce il valore del rumore Perlin compreso in un intervallo compreso tra -1 e 1
Radianti
Converte _X da gradi a radianti
inline float radians(float _X) restrict(amp);
Parametri
_X
Valore a virgola mobile
Valore restituito
Restituisce _X convertito da gradi a radianti
rcp
Calcola il reciproco dell'argomento specificato usando un'approssimazione rapida.
inline float rcp(float _X) restrict(amp);
inline double rcp(double _X) restrict(amp);
Parametri
_X
Valore per il quale calcolare il reciproco.
Valore restituito
Reciproco dell'argomento specificato.
reversebit
Inverte l'ordine dei bit in _X
inline unsigned int reversebits(unsigned int _X) restrict(amp);
Parametri
_X
Valore intero senza segno
Valore restituito
Restituisce il valore con l'ordine di bit invertito in _X
saturare
Le morse _X compreso nell'intervallo compreso tra 0 e 1
inline float saturate(float _X) restrict(amp);
Parametri
_X
Valore a virgola mobile
Valore restituito
Restituisce _X bloccato compreso nell'intervallo compreso tra 0 e 1
sign
Determina il segno dell'argomento specificato.
inline int sign(int _X) restrict(amp);
Parametri
_X
Valore intero
Valore restituito
Segno dell'argomento.
smussato
Restituisce un'interpolazione di emite uniforme compresa tra 0 e 1, se _X è compreso nell'intervallo [_Min, _Max].
inline float smoothstep(
float _Min,
float _Max,
float _X) restrict(amp);
Parametri
_Min
Valore a virgola mobile
_Max
Valore a virgola mobile
_X
Valore a virgola mobile
Valore restituito
Restituisce 0 se _X è minore di _Min; 1 se _X è maggiore di _Max; in caso contrario, un valore compreso tra 0 e 1 se _X è compreso nell'intervallo [_Min, _Max]
step
Confronta due valori, restituendo 0 o 1 in base al valore maggiore
inline float step(
float _Y,
float _X) restrict(amp);
Parametri
_Y
Valore a virgola mobile
_X
Valore a virgola mobile
Valore restituito
Restituisce 1 se il _X è maggiore o uguale a _Y; in caso contrario, 0
umax
Determinare il valore numerico massimo degli argomenti
inline unsigned int umax(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parametri
_X
Valore intero
_Y
Valore intero
Valore restituito
Restituisce il valore numerico massimo degli argomenti
umin
Determinare il valore numerico minimo degli argomenti
inline unsigned int umin(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parametri
_X
Valore intero
_Y
Valore intero
Valore restituito
Restituisce il valore numerico minimo degli argomenti