Concurrency::direct3d ad alanı işlevleri (AMP)
Gereksinimler
Üst Bilgi: amp.h Ad Alanı: Eşzamanlılık
Abs
Bağımsız değişkenin mutlak değerini verir
inline int abs(int _X) restrict(amp);
Parametreler
_X
Tamsayı değeri
Dönüş Değeri
Bağımsız değişkenin mutlak değerini döndürür.
kelepçe
İkinci ve üçüncü belirtilen bağımsız değişkenler tarafından tanımlanan bir aralığa sıkıştırılmış ilk belirtilen bağımsız değişkenin değerini hesaplar.
inline float clamp(
float _X,
float _Min,
float _Max) restrict(amp);
inline int clamp(
int _X,
int _Min,
int _Max) restrict(amp);
Parametreler
_X
Sıkıştırılacak değer
_Min
Sıkıştırma aralığının alt sınırı.
_Max
Sıkıştırma aralığının üst sınırı.
Dönüş Değeri
öğesinin _X
kıskaçlı değeri.
countbits
_X içinde ayarlanan bit sayısını sayar
inline unsigned int countbits(unsigned int _X) restrict(amp);
Parametreler
_X
İmzasız tamsayı değeri
Dönüş Değeri
_X küme bitlerinin sayısını verir
create_accelerator_view
bir işaretçiden Direct3D cihaz arabirimine bir accelerator_view nesnesi oluşturur.
Sözdizimi
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);
Parametreler
_Hızlandırıcı
Yeni accelerator_view oluşturulacağı hızlandırıcı.
_D3D_device
Direct3D cihaz arabiriminin işaretçisi.
_Disable_timeout
Yeni oluşturulan accelerator_view için zaman aşımının devre dışı bırakılıp bırakılmayacağını belirten boole parametresi. Bu, Direct3D cihaz oluşturma için D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT bayrağına karşılık gelir ve işletim sisteminin Windows zaman aşımı algılama ve kurtarma mekanizması başına cihazı sıfırlamadan 2 saniyeden uzun süre çalışan iş yüklerinin yürütülmesine izin vermesi gerekip gerekmediğini belirtmek için kullanılır. accelerator_view zaman alan görevler gerçekleştirmeniz gerekiyorsa bu bayrağın kullanılması önerilir.
_Qmode
Yeni oluşturulan accelerator_view için kullanılacak queuing_mode. Bu parametrenin varsayılan değeri vardır queuing_mode_automatic
.
Dönüş Değeri
Geçirilen accelerator_view
Direct3D cihaz arabiriminden oluşturulan nesne.
Açıklamalar
Bu işlev, mevcut bir işaretçiden Direct3D cihaz arabirimine yeni accelerator_view
bir nesne oluşturur. İşlev çağrısı başarılı olursa, parametrenin başvuru sayısı arabirime yapılan bir AddRef
çağrıyla artırılır. DirectX kodunuzda artık gerekli olmadığında nesneyi güvenli bir şekilde serbest bırakabilirsiniz. Yöntem çağrısı başarısız olursa, bir runtime_exception oluşturulur.
accelerator_view
Bu işlevi kullanarak oluşturduğunuz nesne iş parçacığı güvenlidir. Nesnenin accelerator_view
eşzamanlı kullanımını eşitlemeniz gerekir. Nesnenin ve ham ID3D11Device arabiriminin accelerator_view
eşitlenmemiş eşzamanlı kullanımı tanımsız davranışa neden olur.
C++ AMP çalışma zamanı, bayrağını kullanıyorsanız D3D11_CREATE_DEVICE_DEBUG
D3D Hata Ayıklama katmanını kullanarak hata ayıklama modunda ayrıntılı hata bilgileri sağlar.
d3d_access_lock
accelerator_view ile paylaşılan kaynaklarda D3D işlemlerini güvenli bir şekilde gerçekleştirmek amacıyla bir accelerator_view kilit alın. bu accelerator_view ilişkili accelerator_view ve tüm C++ AMP kaynakları, işlemleri gerçekleştirirken bu kilidi dahili olarak alır ve başka bir iş parçacığı D3D erişim kilidini barındırırken engeller. Bu kilit özyinelemeli değil: Bu işlevi zaten kilidi tutan bir iş parçacığından çağırmak tanımsız bir davranıştır. accelerator_view veya D3D erişim kilidini tutan iş parçacığından accelerator_view ilişkili herhangi bir veri kapsayıcısı üzerinde işlem gerçekleştirmek tanımsız bir davranıştır. Ayrıca bkz. kapsam tabanlı D3D erişim kilidi için RAII stilinde bir sınıf olan scoped_d3d_access_lock.
void __cdecl d3d_access_lock(accelerator_view& _Av);
Parametreler
_Av
Kilit accelerator_view.
d3d_access_try_lock
Engelleme olmadan bir accelerator_view D3D erişim kilidini almayı deneme.
bool __cdecl d3d_access_try_lock(accelerator_view& _Av);
Parametreler
_Av
Kilit accelerator_view.
Dönüş Değeri
kilit alındıysa true veya şu anda başka bir iş parçacığı tarafından tutulduysa false.
d3d_access_unlock
Verilen accelerator_view D3D erişim kilidini bırakın. Çağıran iş parçacığı accelerator_view kilidi tutmazsa sonuçlar tanımsız olur.
void __cdecl d3d_access_unlock(accelerator_view& _Av);
Parametreler
_Av
Kilidin serbest bırakılacağı accelerator_view.
firstbithigh
en yüksek sıralı bit ile başlayıp en düşük sıralı bite doğru hareket ederek ilk küme bitinin _X konumunu alır.
inline int firstbithigh(int _X) restrict(amp);
Parametreler
_X
Tamsayı değeri
Dönüş Değeri
İlk küme bitinin konumu
firstbitlow
en düşük sıralı bit ile başlayıp en yüksek sıralı bite doğru çalışan ilk küme bitinin konumunu _X alır.
inline int firstbitlow(int _X) restrict(amp);
Parametreler
_X
Tamsayı değeri
Dönüş Değeri
İlk küme bitinin konumunu döndürür
get_buffer
Belirtilen diziyi temel alan Direct3D arabellek arabirimini alın.
template<
typename value_type,
int _Rank
>
IUnknown *get_buffer(
const array<value_type, _Rank>& _Array) ;
Parametreler
value_type
Dizideki öğelerin türü.
_Rütbe
Dizinin sırası.
_Dizi
Temel alınan Direct3D arabellek arabiriminin döndürüldiği Direct3D accelerator_view bir dizi.
Dönüş Değeri
Dizinin temel alınan Direct3D arabelleğine karşılık gelen IUnknown arabirim işaretçisi.
get_device
bir accelerator_view temel alan D3D cihaz arabirimini alın.
IUnknown* get_device(const accelerator_view Av);
Parametreler
Av
Temel alınan D3D cihaz arabiriminin döndürüldiği D3D accelerator_view.
Dönüş değeri
accelerator_view IUnknown
temel alan D3D cihazının arabirim işaretçisi.
imax
Bağımsız değişkenlerin en yüksek sayısal değerini belirleme
inline int imax(
int _X,
int _Y) restrict(amp);
Parametreler
_X
Tamsayı değeri
_Y
Tamsayı değeri
Dönüş Değeri
Bağımsız değişkenlerin en yüksek sayısal değerini döndürme
imin
Bağımsız değişkenlerin en düşük sayısal değerini belirleme
inline int imin(
int _X,
int _Y) restrict(amp);
Parametreler
_X
Tamsayı değeri
_Y
Tamsayı değeri
Dönüş Değeri
Bağımsız değişkenlerin en düşük sayısal değerini döndürme
is_timeout_disabled
Belirtilen accelerator_view için zaman aşımının devre dışı bırakılıp bırakılmadığını gösteren bir boole bayrağı döndürür. Bu, Direct3D cihaz oluşturma için D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT bayrağına karşılık gelir.
bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);
Parametreler
_Accelerator_view
Zaman aşımı devre dışı ayarının sorgulanması gereken accelerator_view.
Dönüş Değeri
Belirtilen accelerator_view için zaman aşımının devre dışı bırakılıp bırakılmadığını gösteren boole bayrağı.
deli
Birinci ve ikinci belirtilen bağımsız değişkenin çarpımını hesaplar, ardından belirtilen üçüncü bağımsız değişkeni ekler.
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);
Parametreler
_X
Belirtilen ilk bağımsız değişken.
_Y
Belirtilen ikinci bağımsız değişken.
_Z
Belirtilen üçüncü bağımsız değişken.
Dönüş Değeri
sonucu._X
* _Y
+ _Z
make_array
Direct3D arabellek arabirimi işaretçisinden bir dizi oluşturun.
template<
typename value_type,
int _Rank
>
array<value_type, _Rank> make_array(
const extent<_Rank>& _Extent,
const Concurrency::accelerator_view& _Rv,
IUnknown* _D3D_buffer) ;
Parametreler
value_type
Oluşturulacak dizinin öğe türü.
_Rütbe
Oluşturulacak dizinin sırası.
_Kapsam
Dizi toplamının şeklini açıklayan bir kapsam.
_Rv
Dizinin oluşturulacağı D3D hızlandırıcı görünümü.
_D3D_buffer
Dizinin oluşturulacağı D3D arabelleğinin IUnknown arabirim işaretçisi.
Dönüş Değeri
Sağlanan Direct3D arabelleği kullanılarak oluşturulan bir dizi.
gürültü
Perlin kirlilik algoritmasını kullanarak rastgele bir değer oluşturur
inline float noise(float _X) restrict(amp);
Parametreler
_X
Perlin gürültüsü oluşturulacak kayan nokta değeri
Dönüş Değeri
-1 ile 1 arasında bir aralık içindeki Perlin kirlilik değerini verir
Radyan
_X derecelerden radyana dönüştürür
inline float radians(float _X) restrict(amp);
Parametreler
_X
Kayan nokta değeri
Dönüş Değeri
Derecelerden radyana dönüştürülen _X döndürür
Rcp
Hızlı bir yaklaşık değer kullanarak belirtilen bağımsız değişkenin karşılıklısını hesaplar.
inline float rcp(float _X) restrict(amp);
inline double rcp(double _X) restrict(amp);
Parametreler
_X
Karşılıklı değerin hesaplandığı değer.
Dönüş Değeri
Belirtilen bağımsız değişkenin karşılıklı değeri.
ters bitler
_X'de bitlerin sırasını tersine çevirir
inline unsigned int reversebits(unsigned int _X) restrict(amp);
Parametreler
_X
İmzasız tamsayı değeri
Dönüş Değeri
_X bit sırasının ters çevrilmiş olduğu değeri döndürür
doyurmak
0 ila 1 aralığında _X kelepçeler
inline float saturate(float _X) restrict(amp);
Parametreler
_X
Kayan nokta değeri
Dönüş Değeri
0 ile 1 aralığında sıkıştırılmış _X verir
sign
Belirtilen bağımsız değişkenin işaretini belirler.
inline int sign(int _X) restrict(amp);
Parametreler
_X
Tamsayı değeri
Dönüş Değeri
Bağımsız değişkenin işareti.
smoothstep
_X [_Min, _Max] aralığındaysa 0 ile 1 arasında düzgün bir Hermite ilişkilendirmesi döndürür.
inline float smoothstep(
float _Min,
float _Max,
float _X) restrict(amp);
Parametreler
_Min
Kayan nokta değeri
_Max
Kayan nokta değeri
_X
Kayan nokta değeri
Dönüş Değeri
_X _Min'den küçükse 0 döndürür; _X _Max'den büyükse 1; aksi takdirde, _X [_Min, _Max] aralığındaysa 0 ile 1 arasında bir değer
step
İki değeri karşılaştırır ve hangi değerin daha büyük olduğuna bağlı olarak 0 veya 1 döndürür
inline float step(
float _Y,
float _X) restrict(amp);
Parametreler
_Y
Kayan nokta değeri
_X
Kayan nokta değeri
Dönüş Değeri
_X _Y büyük veya buna eşitse 1 döndürür; aksi takdirde, 0
umax
Bağımsız değişkenlerin en yüksek sayısal değerini belirleme
inline unsigned int umax(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parametreler
_X
Tamsayı değeri
_Y
Tamsayı değeri
Dönüş Değeri
Bağımsız değişkenlerin en yüksek sayısal değerini döndürme
umin
Bağımsız değişkenlerin en düşük sayısal değerini belirleme
inline unsigned int umin(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parametreler
_X
Tamsayı değeri
_Y
Tamsayı değeri
Dönüş Değeri
Bağımsız değişkenlerin en düşük sayısal değerini döndürme