Concurrency::direct3d, funkcje przestrzeni nazw (AMP)
Wymagania
Nagłówek: amp.h przestrzeń nazw: współbieżność
Abs
Zwraca wartość bezwzględną argumentu
inline int abs(int _X) restrict(amp);
Parametry
_X
Wartość całkowita
Wartość zwracana
Zwraca wartość bezwzględną argumentu.
Zacisk
Oblicza wartość pierwszego określonego argumentu zaciśniętego do zakresu zdefiniowanego przez drugi i trzeci określony argument.
inline float clamp(
float _X,
float _Min,
float _Max) restrict(amp);
inline int clamp(
int _X,
int _Min,
int _Max) restrict(amp);
Parametry
_X
Wartość, która ma być zaciśnięta
_Min
Dolna granica zakresu zaciskania.
_Max
Górna granica zakresu zaciskania.
Wartość zwracana
Zaciśnięta wartość _X
.
countbits
Zlicza liczbę bitów ustawionych w _X
inline unsigned int countbits(unsigned int _X) restrict(amp);
Parametry
_X
Wartość niepodpisanej liczby całkowitej
Wartość zwracana
Zwraca liczbę bitów ustawionych w _X
create_accelerator_view
Tworzy obiekt accelerator_view z wskaźnika do interfejsu urządzenia Direct3D.
Składnia
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);
Parametry
_Akcelerator
Akcelerator, na którym ma zostać utworzony nowy accelerator_view.
_D3D_device
Wskaźnik do interfejsu urządzenia Direct3D.
_Disable_timeout
Parametr logiczny określający, czy limit czasu powinien być wyłączony dla nowo utworzonej accelerator_view. Odpowiada to flagi D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT tworzenia urządzenia Direct3D i służy do wskazania, czy system operacyjny powinien zezwalać na wykonywanie obciążeń, które potrwają ponad 2 sekundy bez resetowania urządzenia na mechanizm wykrywania limitu czasu systemu Windows i odzyskiwania. Użycie tej flagi jest zalecane, jeśli musisz wykonywać czasochłonne zadania na accelerator_view.
_Qmode
Queuing_mode do użycia dla nowo utworzonej accelerator_view. Ten parametr ma wartość queuing_mode_automatic
domyślną .
Wartość zwracana
Obiekt accelerator_view
utworzony na podstawie przekazanego interfejsu urządzenia Direct3D.
Uwagi
Ta funkcja tworzy nowy accelerator_view
obiekt z istniejącego wskaźnika do interfejsu urządzenia Direct3D. Jeśli wywołanie funkcji powiedzie się, liczba odwołań parametru jest zwiększana za pomocą AddRef
wywołania interfejsu. Możesz bezpiecznie zwolnić obiekt, gdy nie jest już wymagany w kodzie DirectX. Jeśli wywołanie metody zakończy się niepowodzeniem , zostanie zgłoszony runtime_exception .
Obiekt accelerator_view
tworzony przy użyciu tej funkcji jest bezpieczny wątkiem. Należy zsynchronizować współbieżne użycie accelerator_view
obiektu. Niezsynchronizowane współbieżne użycie accelerator_view
obiektu i nieprzetworzony interfejs ID3D11Device powoduje niezdefiniowane zachowanie.
Środowisko uruchomieniowe C++ AMP udostępnia szczegółowe informacje o błędach w trybie debugowania przy użyciu warstwy debugowania D3D, jeśli używasz flagi D3D11_CREATE_DEVICE_DEBUG
.
d3d_access_lock
Uzyskaj blokadę na accelerator_view w celu bezpiecznego wykonywania operacji D3D na zasobach udostępnionych accelerator_view. Accelerator_view i wszystkie zasoby AMP języka C++ skojarzone z tym accelerator_view wewnętrznie przyjmują tę blokadę podczas wykonywania operacji i będą blokowane, podczas gdy inny wątek przechowuje blokadę dostępu D3D. Ta blokada nie jest rekursywna: niezdefiniowane zachowanie w celu wywołania tej funkcji z wątku, który już przechowuje blokadę. Jest to niezdefiniowane zachowanie do wykonywania operacji na accelerator_view lub dowolnego kontenera danych skojarzonego z accelerator_view z wątku, który przechowuje blokadę dostępu D3D. Zobacz również scoped_d3d_access_lock klasy w stylu RAII dla blokady dostępu D3D opartej na zakresie.
void __cdecl d3d_access_lock(accelerator_view& _Av);
Parametry
_Av
Accelerator_view do zablokowania.
d3d_access_try_lock
Spróbuj uzyskać blokadę dostępu D3D na accelerator_view bez blokowania.
bool __cdecl d3d_access_try_lock(accelerator_view& _Av);
Parametry
_Av
Accelerator_view do zablokowania.
Wartość zwracana
wartość true, jeśli blokada została nabyta, lub false, jeśli jest ona obecnie przechowywana przez inny wątek.
d3d_access_unlock
Zwolnij blokadę dostępu D3D dla danego accelerator_view. Jeśli wątek wywołujący nie przechowuje blokady na accelerator_view wyniki są niezdefiniowane.
void __cdecl d3d_access_unlock(accelerator_view& _Av);
Parametry
_Av
Accelerator_view, dla którego należy zwolnić blokadę.
firstbithigh
Pobiera lokalizację pierwszego bitu zestawu w _X, począwszy od bitu najwyższego porządku i przechodząc w kierunku bitu o najniższej kolejności.
inline int firstbithigh(int _X) restrict(amp);
Parametry
_X
Wartość całkowita
Wartość zwracana
Lokalizacja pierwszego zestawu bitów
firstbitlow
Pobiera lokalizację pierwszego bitu ustawionego w _X, począwszy od bitu o najniższej kolejności i pracy w kierunku bitu najwyższego porządku.
inline int firstbitlow(int _X) restrict(amp);
Parametry
_X
Wartość całkowita
Wartość zwracana
Zwraca lokalizację pierwszego zestawu bitów
get_buffer
Pobierz interfejs buforu Direct3D bazowego określonej tablicy.
template<
typename value_type,
int _Rank
>
IUnknown *get_buffer(
const array<value_type, _Rank>& _Array) ;
Parametry
value_type
Typ elementów w tablicy.
_Ranga
Ranga tablicy.
_Tablica
Tablica w accelerator_view Direct3D, dla której jest zwracany podstawowy interfejs buforu Direct3D.
Wartość zwracana
Wskaźnik interfejsu IUnknown odpowiadający buforowi Direct3D bazowemu tablicy.
get_device
Pobierz interfejs urządzenia D3D bazowy accelerator_view.
IUnknown* get_device(const accelerator_view Av);
Parametry
Av
Accelerator_view D3D, dla którego jest zwracany podstawowy interfejs urządzenia D3D.
Wartość zwracana
Wskaźnik IUnknown
interfejsu urządzenia D3D bazowego accelerator_view.
imax
Określanie maksymalnej wartości liczbowej argumentów
inline int imax(
int _X,
int _Y) restrict(amp);
Parametry
_X
Wartość całkowita
_Y
Wartość całkowita
Wartość zwracana
Zwraca maksymalną wartość liczbową argumentów
imin
Określanie minimalnej wartości liczbowej argumentów
inline int imin(
int _X,
int _Y) restrict(amp);
Parametry
_X
Wartość całkowita
_Y
Wartość całkowita
Wartość zwracana
Zwraca minimalną wartość liczbową argumentów
is_timeout_disabled
Zwraca flagę logiczną wskazującą, czy limit czasu jest wyłączony dla określonego accelerator_view. Odpowiada to flagi D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT dla tworzenia urządzenia Direct3D.
bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);
Parametry
_Accelerator_view
Accelerator_view, dla którego ma być odpytywane ustawienie limitu czasu wyłączone.
Wartość zwracana
Flaga logiczna wskazująca, czy limit czasu jest wyłączony dla określonego accelerator_view.
obłąkany
Oblicza produkt pierwszego i drugiego określonego argumentu, a następnie dodaje trzeci określony argument.
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);
Parametry
_X
Pierwszy określony argument.
_Y
Drugi określony argument.
_Z
Trzeci określony argument.
Wartość zwracana
Wynik ._X
* _Y
+ _Z
make_array
Utwórz tablicę na podstawie wskaźnika interfejsu buforu 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) ;
Parametry
value_type
Typ elementu tablicy do utworzenia.
_Ranga
Ranga tablicy do utworzenia.
_Rozciągłość
Zakres opisujący kształt agregacji tablicy.
_Rv
Widok akceleratora D3D, w którym ma zostać utworzona tablica.
_D3D_buffer
Wskaźnik interfejsu IUnknown buforu D3D w celu utworzenia tablicy z.
Wartość zwracana
Tablica utworzona przy użyciu udostępnionego buforu Direct3D.
noise
Generuje wartość losową przy użyciu algorytmu szumu perlin
inline float noise(float _X) restrict(amp);
Parametry
_X
Wartość zmiennoprzecinkowa, z której ma być generowany szum perlin
Wartość zwracana
Zwraca wartość szumu perlin w zakresie od -1 do 1
Radianach
Konwertuje _X z stopni na radiany
inline float radians(float _X) restrict(amp);
Parametry
_X
Wartość zmiennoprzecinkowa
Wartość zwracana
Zwraca _X przekonwertowane z stopni na radiany
Rcp
Oblicza odwrotność określonego argumentu przy użyciu szybkiego przybliżenia.
inline float rcp(float _X) restrict(amp);
inline double rcp(double _X) restrict(amp);
Parametry
_X
Wartość, dla której należy obliczyć wzajemne wartości.
Wartość zwracana
Odwrotność określonego argumentu.
reversebits
Odwraca kolejność bitów w _X
inline unsigned int reversebits(unsigned int _X) restrict(amp);
Parametry
_X
Wartość niepodpisanej liczby całkowitej
Wartość zwracana
Zwraca wartość z odwrotną kolejnością bitów w _X
nasycać
Zaciski _X w zakresie od 0 do 1
inline float saturate(float _X) restrict(amp);
Parametry
_X
Wartość zmiennoprzecinkowa
Wartość zwracana
Zwraca _X zaciskane w zakresie od 0 do 1
znak
Określa znak określonego argumentu.
inline int sign(int _X) restrict(amp);
Parametry
_X
Wartość całkowita
Wartość zwracana
Znak argumentu.
smoothstep
Zwraca płynną interpolację Hermite z zakresu od 0 do 1, jeśli _X znajduje się w zakresie [_Min, _Max].
inline float smoothstep(
float _Min,
float _Max,
float _X) restrict(amp);
Parametry
_Min
Wartość zmiennoprzecinkowa
_Max
Wartość zmiennoprzecinkowa
_X
Wartość zmiennoprzecinkowa
Wartość zwracana
Zwraca wartość 0, jeśli _X jest mniejsza niż _Min; 1, jeśli _X jest większa niż _Max; w przeciwnym razie wartość z zakresu od 0 do 1, jeśli _X znajduje się w zakresie [_Min, _Max]
step
Porównuje dwie wartości, zwracając wartość 0 lub 1, na podstawie której wartość jest większa
inline float step(
float _Y,
float _X) restrict(amp);
Parametry
_Y
Wartość zmiennoprzecinkowa
_X
Wartość zmiennoprzecinkowa
Wartość zwracana
Zwraca wartość 1, jeśli _X jest większa lub równa _Y; w przeciwnym razie, 0
umax
Określanie maksymalnej wartości liczbowej argumentów
inline unsigned int umax(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parametry
_X
Wartość całkowita
_Y
Wartość całkowita
Wartość zwracana
Zwraca maksymalną wartość liczbową argumentów
umin
Określanie minimalnej wartości liczbowej argumentów
inline unsigned int umin(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parametry
_X
Wartość całkowita
_Y
Wartość całkowita
Wartość zwracana
Zwraca minimalną wartość liczbową argumentów