Funkce oboru názvů Concurrency::direct3d (AMP)
Požadavky
Hlavička: amp.h Namespace: Souběžnost
Abs
Vrátí absolutní hodnotu argumentu.
inline int abs(int _X) restrict(amp);
Parametry
_X
Celočíselná hodnota
Návratová hodnota
Vrátí absolutní hodnotu argumentu.
svěrka
Vypočítá hodnotu prvního zadaného argumentu upínacího do rozsahu definovaného druhým a třetím zadaným argumentem.
inline float clamp(
float _X,
float _Min,
float _Max) restrict(amp);
inline int clamp(
int _X,
int _Min,
int _Max) restrict(amp);
Parametry
_X
Hodnota, která má být uchycena
_Min
Dolní mez upínacího rozsahu.
_Max
Horní mez upevňovacího rozsahu.
Návratová hodnota
Upínací hodnota _X
.
countbits
Spočítá počet bitů sady v _X
inline unsigned int countbits(unsigned int _X) restrict(amp);
Parametry
_X
Celočíselná hodnota bez znaménka
Návratová hodnota
Vrátí počet bitů sady v _X
create_accelerator_view
Vytvoří objekt accelerator_view z ukazatele na rozhraní zařízení Direct3D.
Syntaxe
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
_Akcelerátor
Akcelerátor, na kterém se má vytvořit nový accelerator_view.
_D3D_device
Ukazatel na rozhraní zařízení Direct3D.
_Disable_timeout
Logický parametr, který určuje, jestli má být pro nově vytvořený accelerator_view zakázán časový limit. To odpovídá příznaku D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT pro vytvoření zařízení Direct3D a slouží k označení, jestli má operační systém povolit spouštění úloh, které zabírají více než 2 sekundy, aniž by se zařízení resetoval podle mechanismu detekce a obnovení časového limitu Windows. Tento příznak se doporučuje použít, pokud potřebujete na accelerator_view provádět časově náročné úlohy.
_Qmode
Queuing_mode, která se má použít pro nově vytvořenou accelerator_view. Tento parametr má výchozí hodnotu queuing_mode_automatic
.
Návratová hodnota
Objekt accelerator_view
vytvořený z předaného rozhraní zařízení Direct3D.
Poznámky
Tato funkce vytvoří nový accelerator_view
objekt z existujícího ukazatele na rozhraní zařízení Direct3D. Pokud volání funkce proběhne úspěšně, zvýší se počet odkazů parametru voláním AddRef
rozhraní. Objekt můžete bezpečně uvolnit, pokud už není v kódu DirectX vyžadován. Pokud volání metody selže, vyvolá se runtime_exception .
Objekt accelerator_view
, který vytvoříte pomocí této funkce, je bezpečný z více vláken. Musíte synchronizovat souběžné použití objektu accelerator_view
. Nesynchronizované souběžné použití objektu accelerator_view
a nezpracované rozhraní ID3D11Device způsobuje nedefinované chování.
Modul runtime C++ AMP poskytuje podrobné informace o chybách v režimu ladění pomocí vrstvy ladění D3D, pokud používáte D3D11_CREATE_DEVICE_DEBUG
příznak.
d3d_access_lock
Získejte zámek na accelerator_view za účelem bezpečného provádění D3D operací s prostředky sdílenými s accelerator_view. Accelerator_view a všechny prostředky C++ AMP přidružené k tomuto accelerator_view interně tento zámek při provádění operací převezmou a zablokují se, zatímco jiné vlákno obsahuje zámek přístupu D3D. Tento zámek není rekurzivní: Není definováno chování volání této funkce z vlákna, které již zámek obsahuje. Není definováno chování při provádění operací s accelerator_view nebo jakýmkoli datovým kontejnerem přidruženým k accelerator_view z vlákna, které obsahuje zámek přístupu D3D. Viz také scoped_d3d_access_lock, třídy ve stylu RAII pro zámek přístupu D3D založené na oboru.
void __cdecl d3d_access_lock(accelerator_view& _Av);
Parametry
_Av
Accelerator_view, která se má uzamknout.
d3d_access_try_lock
Pokus o získání zámku přístupu D3D na accelerator_view bez blokování
bool __cdecl d3d_access_try_lock(accelerator_view& _Av);
Parametry
_Av
Accelerator_view, která se má uzamknout.
Návratová hodnota
true Pokud zámek byl získán, nebo false, pokud je aktuálně uložen jiným vláknem.
d3d_access_unlock
Uvolněte zámek přístupu D3D na dané accelerator_view. Pokud volající vlákno neudrží zámek na accelerator_view výsledky nejsou definovány.
void __cdecl d3d_access_unlock(accelerator_view& _Av);
Parametry
_Av
Accelerator_view, pro které má být zámek uvolněn.
firstbithigh
Získá umístění prvního bitu sady v _X, počínaje bitem nejvyššího řádu a přechodem k bitu nejnižšího pořadí.
inline int firstbithigh(int _X) restrict(amp);
Parametry
_X
Celočíselná hodnota
Návratová hodnota
Umístění prvního bitu sady
firstbitlow
Získá umístění prvního bitu sady v _X, počínaje bitem nejnižšího pořadí a pracuje na bitu nejvyššího pořadí.
inline int firstbitlow(int _X) restrict(amp);
Parametry
_X
Celočíselná hodnota
Návratová hodnota
Vrátí umístění prvního bitu sady.
get_buffer
Získejte rozhraní vyrovnávací paměti Direct3D, které je základem zadaného pole.
template<
typename value_type,
int _Rank
>
IUnknown *get_buffer(
const array<value_type, _Rank>& _Array) ;
Parametry
value_type
Typ prvků v poli.
_Hodnost
Pořadí pole.
_Pole
Pole v accelerator_view Direct3D, pro které je vráceno základní rozhraní vyrovnávací paměti Direct3D.
Návratová hodnota
Ukazatel rozhraní IUnknown odpovídající vyrovnávací paměti Direct3D podkladové pole.
get_device
Získejte rozhraní zařízení D3D, které je podkladem accelerator_view.
IUnknown* get_device(const accelerator_view Av);
Parametry
Av
D3D accelerator_view, pro které se vrátí základní rozhraní zařízení D3D.
Vrácená hodnota
Ukazatel IUnknown
rozhraní zařízení D3D podkladového accelerator_view.
imax
Určení maximální číselné hodnoty argumentů
inline int imax(
int _X,
int _Y) restrict(amp);
Parametry
_X
Celočíselná hodnota
_Y
Celočíselná hodnota
Návratová hodnota
Vrátí maximální číselnou hodnotu argumentů.
imin
Určení minimální číselné hodnoty argumentů
inline int imin(
int _X,
int _Y) restrict(amp);
Parametry
_X
Celočíselná hodnota
_Y
Celočíselná hodnota
Návratová hodnota
Vrátí minimální číselnou hodnotu argumentů.
is_timeout_disabled
Vrátí logický příznak označující, jestli je pro zadaný accelerator_view zakázaný časový limit. To odpovídá příznaku D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT pro vytvoření zařízení Direct3D.
bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);
Parametry
_Accelerator_view
Accelerator_view, pro které se má dotazovat nastavení časového limitu zakázaného časového limitu.
Návratová hodnota
Logický příznak označující, jestli je pro zadaný accelerator_view zakázaný časový limit.
šílený
Vypočítá součin prvního a druhého zadaného argumentu a pak sečte třetí zadaný 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
První zadaný argument.
_Y
Druhý zadaný argument.
_Z
Třetí zadaný argument.
Návratová hodnota
Výsledek ._X
* _Y
+ _Z
make_array
Vytvořte pole z ukazatele rozhraní vyrovnávací paměti 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 prvku pole, který se má vytvořit.
_Hodnost
Pořadí pole, které se má vytvořit.
_Rozsah
Rozsah, který popisuje tvar agregace pole.
_Rv
Zobrazení akcelerátoru D3D, na kterém se má pole vytvořit.
_D3D_buffer
Ukazatel rozhraní IUnknown vyrovnávací paměti D3D pro vytvoření pole z.
Návratová hodnota
Pole vytvořené pomocí poskytnuté vyrovnávací paměti Direct3D.
hluk
Generuje náhodnou hodnotu pomocí algoritmu šumu Perlin.
inline float noise(float _X) restrict(amp);
Parametry
_X
Hodnota s plovoucí desetinou čárkou, ze které se má generovat šum Perlin
Návratová hodnota
Vrátí hodnotu šumu Perlin v rozsahu od -1 do 1.
Radiánech
Převede _X ze stupňů na radiány.
inline float radians(float _X) restrict(amp);
Parametry
_X
Hodnota s plovoucí desetinou čárkou
Návratová hodnota
Vrátí _X převedené ze stupňů na radiány.
Rcp
Vypočítá reciproční hodnotu zadaného argumentu pomocí rychlé aproximace.
inline float rcp(float _X) restrict(amp);
inline double rcp(double _X) restrict(amp);
Parametry
_X
Hodnota, pro kterou se má vypočítat reciproční hodnota.
Návratová hodnota
Reciproční hodnota zadaného argumentu.
reversebits
Obrátí pořadí bitů v _X
inline unsigned int reversebits(unsigned int _X) restrict(amp);
Parametry
_X
Celočíselná hodnota bez znaménka
Návratová hodnota
Vrátí hodnotu s pořadím bitů obráceným v _X
saturovat
Svorky _X v rozsahu od 0 do 1
inline float saturate(float _X) restrict(amp);
Parametry
_X
Hodnota s plovoucí desetinou čárkou
Návratová hodnota
Vrátí _X upínací v rozsahu od 0 do 1.
znak
Určuje znaménko zadaného argumentu.
inline int sign(int _X) restrict(amp);
Parametry
_X
Celočíselná hodnota
Návratová hodnota
Znaménko argumentu
smoothstep
Vrátí plynulou interpolaci hermit mezi 0 a 1, pokud je _X v rozsahu [_Min, _Max].
inline float smoothstep(
float _Min,
float _Max,
float _X) restrict(amp);
Parametry
_Min
Hodnota s plovoucí desetinou čárkou
_Max
Hodnota s plovoucí desetinou čárkou
_X
Hodnota s plovoucí desetinou čárkou
Návratová hodnota
Vrátí hodnotu 0, pokud je _X menší než _Min; 1, pokud je _X větší než _Max; jinak hodnota mezi 0 a 1, pokud je _X v rozsahu [_Min, _Max]
step
Porovná dvě hodnoty, které vrátí hodnotu 0 nebo 1 na základě toho, která hodnota je větší.
inline float step(
float _Y,
float _X) restrict(amp);
Parametry
_Y
Hodnota s plovoucí desetinou čárkou
_X
Hodnota s plovoucí desetinou čárkou
Návratová hodnota
Vrátí hodnotu 1, pokud je _X větší nebo roven _Y; jinak, 0
umax
Určení maximální číselné hodnoty argumentů
inline unsigned int umax(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parametry
_X
Celočíselná hodnota
_Y
Celočíselná hodnota
Návratová hodnota
Vrátí maximální číselnou hodnotu argumentů.
mínus
Určení minimální číselné hodnoty argumentů
inline unsigned int umin(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parametry
_X
Celočíselná hodnota
_Y
Celočíselná hodnota
Návratová hodnota
Vrátí minimální číselnou hodnotu argumentů.