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 _Xkı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

Ayrıca bkz.

Concurrency::direct3d Ad Alanı