Udostępnij za pośrednictwem


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_automaticdomyś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.

_Rank
Ranga tablicy.

_Tablicy
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.

Mad

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.

_Rank
Ranga tablicy do utworzenia.

_Zakresie
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

Nasycenia

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

Zobacz też

Concurrency::direct3d, przestrzeń nazw