Bagikan melalui


Fungsi namespace Concurrency::direct3d (AMP)

Persyaratan

Header : amp.h

Namespace: Konkurensi

abs

Mengembalikan nilai absolut argumen.

inline int abs(int _X) restrict(amp);

Parameter

_X
Nilai bilangan bulat

Tampilkan Nilai

Mengembalikan nilai absolut argumen.

jepit

Menghitung nilai argumen pertama yang ditentukan yang dijepit ke rentang yang ditentukan oleh argumen kedua dan ketiga yang ditentukan.

inline float clamp(
    float _X,
    float _Min,
    float _Max) restrict(amp);

inline int clamp(
    int _X,
    int _Min,
    int _Max) restrict(amp);

Parameter

_X
Nilai yang akan dijepit.

_Min
Batas bawah rentang penjepitan.

_Maks
Batas atas rentang penjepitan.

Tampilkan Nilai

Nilai yang dijepit dari _X.

countbits

Menghitung jumlah bit yang ditetapkan dalam _X.

inline unsigned int countbits(unsigned int _X) restrict(amp);

Parameter

_X
Nilai bilangan bulat tidak ditandatangani

Tampilkan Nilai

Mengembalikan jumlah bit yang ditetapkan dalam _X.

create_accelerator_view

Membuat objek accelerator_view dari penunjuk ke antarmuka perangkat Direct3D.

Sintaks

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);

Parameter

_Accelerator
Akselerator tempat accelerator_view baru akan dibuat.

_D3D_device
Penunjuk ke antarmuka perangkat Direct3D.

_Disable_timeout
Parameter Boolean yang menentukan apakah batas waktu harus dinonaktifkan untuk accelerator_view yang baru dibuat. Ini sesuai dengan bendera D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT untuk pembuatan perangkat Direct3D dan digunakan untuk menunjukkan apakah sistem operasi harus memungkinkan beban kerja yang membutuhkan waktu lebih dari 2 detik untuk dieksekusi tanpa mengatur ulang perangkat per mekanisme deteksi dan pemulihan batas waktu Windows. Penggunaan bendera ini disarankan jika Anda perlu melakukan tugas yang memakan waktu pada accelerator_view.

_Qmode
queuing_mode yang akan digunakan untuk accelerator_view yang baru dibuat. Parameter ini memiliki nilai queuing_mode_automaticdefault .

Tampilkan Nilai

Objek accelerator_view yang dibuat dari antarmuka perangkat Direct3D yang dilewatkan.

Keterangan

Fungsi ini membuat objek baru accelerator_view dari pointer yang ada ke antarmuka perangkat Direct3D. Jika panggilan fungsi berhasil, jumlah referensi parameter bertambah dengan cara AddRef panggilan ke antarmuka. Anda dapat melepaskan objek dengan aman saat tidak lagi diperlukan dalam kode DirectX Anda. Jika panggilan metode gagal, runtime_exception akan dilemparkan.

Objek accelerator_view yang Anda buat dengan menggunakan fungsi ini aman untuk utas. Anda harus menyinkronkan penggunaan objek secara bersamaan accelerator_view . Penggunaan bersamaan accelerator_view objek yang tidak disinkronkan dan antarmuka ID3D11Device mentah menyebabkan perilaku yang tidak ditentukan.

Runtime C++ AMP menyediakan informasi kesalahan terperinci dalam mode debug dengan menggunakan lapisan Debug D3D jika Anda menggunakan D3D11_CREATE_DEVICE_DEBUG bendera .

d3d_access_lock

Dapatkan kunci pada accelerator_view untuk tujuan melakukan operasi D3D dengan aman pada sumber daya yang dibagikan dengan accelerator_view. accelerator_view dan semua sumber daya C++ AMP yang terkait dengan ini accelerator_view secara internal mengambil kunci ini saat melakukan operasi dan akan memblokir sementara utas lain menahan kunci akses D3D. Kunci ini tidak rekursif: Ini adalah perilaku yang tidak terdefinisi untuk memanggil fungsi ini dari utas yang sudah menahan kunci. Perilaku tidak terdefinisi untuk melakukan operasi pada accelerator_view atau kontainer data apa pun yang terkait dengan accelerator_view dari utas yang menyimpan kunci akses D3D. Lihat juga scoped_d3d_access_lock, kelas bergaya RAII untuk kunci akses D3D berbasis cakupan.

void __cdecl d3d_access_lock(accelerator_view& _Av);

Parameter

_Av
Accelerator_view terkunci.

d3d_access_try_lock

Coba dapatkan kunci akses D3D pada accelerator_view tanpa memblokir.

bool __cdecl d3d_access_try_lock(accelerator_view& _Av);

Parameter

_Av
Accelerator_view terkunci.

Tampilkan Nilai

true jika kunci diperoleh, atau salah jika saat ini dipegang oleh utas lain.

d3d_access_unlock

Lepaskan kunci akses D3D pada accelerator_view yang diberikan. Jika utas panggilan tidak menahan kunci pada accelerator_view hasilnya tidak ditentukan.

void __cdecl d3d_access_unlock(accelerator_view& _Av);

Parameter

_Av
accelerator_view yang kuncinya akan dilepaskan.

firstbithigh

Mendapatkan lokasi bit set pertama di _X, dimulai dengan bit urutan tertinggi dan bergerak menuju bit urutan terendah.

inline int firstbithigh(int _X) restrict(amp);

Parameter

_X
Nilai bilangan bulat

Tampilkan Nilai

Lokasi bit set pertama.

firstbitlow

Mendapatkan lokasi bit set pertama di _X, dimulai dengan bit urutan terendah dan bekerja menuju bit urutan tertinggi.

inline int firstbitlow(int _X) restrict(amp);

Parameter

_X
Nilai bilangan bulat

Tampilkan Nilai

Mengembalikan Lokasi bit set pertama.

get_buffer

Dapatkan antarmuka buffer Direct3D yang mendasar array yang ditentukan.

template<
    typename value_type,
    int _Rank
>
IUnknown *get_buffer(
    const array<value_type, _Rank>& _Array);

Parameter

value_type
Jenis elemen dalam array.

_Rank
Peringkat array.

_Array
Array pada accelerator_view Direct3D tempat antarmuka buffer Direct3D yang mendasar dikembalikan.

Tampilkan Nilai

Penunjuk antarmuka IUnknown yang sesuai dengan buffer Direct3D yang mendasar array.

get_device

Dapatkan antarmuka perangkat D3D yang mendasar accelerator_view.

IUnknown* get_device(const accelerator_view Av);

Parameter

Av
Accelerator_view D3D tempat antarmuka perangkat D3D yang mendasar dikembalikan.

Nilai hasil

Penunjuk IUnknown antarmuka perangkat D3D yang mendasar accelerator_view.

imax

Tentukan nilai numerik maksimum argumen.

inline int imax(
    int _X,
    int _Y) restrict(amp);

Parameter

_X
Nilai bilangan bulat

_Y
Nilai bilangan bulat

Tampilkan Nilai

Mengembalikan nilai numerik maksimum argumen.

imin

Tentukan nilai numerik minimum argumen.

inline int imin(
    int _X,
    int _Y) restrict(amp);

Parameter

_X
Nilai bilangan bulat

_Y
Nilai bilangan bulat

Tampilkan Nilai

Mengembalikan nilai numerik minimum argumen.

is_timeout_disabled

Mengembalikan bendera boolean yang menunjukkan apakah batas waktu dinonaktifkan untuk accelerator_view yang ditentukan. Ini sesuai dengan bendera D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT untuk pembuatan perangkat Direct3D.

bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);

Parameter

_Accelerator_view
Accelerator_view pengaturan waktu habis yang dinonaktifkan akan dikueri.

Tampilkan Nilai

Bendera boolean yang menunjukkan apakah batas waktu dinonaktifkan untuk accelerator_view yang ditentukan.

gila

Menghitung produk argumen pertama dan kedua yang ditentukan, lalu menambahkan argumen ketiga yang ditentukan.

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);

Parameter

_X
Argumen pertama yang ditentukan.

_Y
Argumen kedua yang ditentukan.

_Z
Argumen ketiga yang ditentukan.

Tampilkan Nilai

Hasil dari _X * _Y + _Z.

make_array

Buat array dari penunjuk antarmuka buffer 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);

Parameter

value_type
Jenis elemen array yang akan dibuat.

_Rank
Peringkat array yang akan dibuat.

_Sejauh
Tingkat yang menjelaskan bentuk agregat array.

_Rv
Tampilan akselerator D3D tempat array akan dibuat.

_D3D_buffer
Penunjuk antarmuka IUnknown dari buffer D3D untuk membuat array.

Tampilkan Nilai

Array yang dibuat menggunakan buffer Direct3D yang disediakan.

kebisingan

Menghasilkan nilai acak menggunakan algoritma kebisingan Perlin.

inline float noise(float _X) restrict(amp);

Parameter

_X
Nilai floating-point untuk menghasilkan kebisingan Perlin.

Tampilkan Nilai

Mengembalikan nilai noise Perlin dalam rentang antara -1 dan 1.

radians

Mengonversi _X dari derajat ke radian.

inline float radians(float _X) restrict(amp);

Parameter

_X
Nilai floating-point

Tampilkan Nilai

Mengembalikan _X dikonversi dari derajat ke radian.

rcp

Menghitung timbal balik argumen yang ditentukan dengan menggunakan perkiraan cepat.

inline float rcp(float _X) restrict(amp);

inline double rcp(double _X) restrict(amp);

Parameter

_X
Nilai untuk menghitung timbal balik.

Tampilkan Nilai

Timbal balik dari argumen yang ditentukan.

reversebits

Membalik urutan bit dalam _X.

inline unsigned int reversebits(unsigned int _X) restrict(amp);

Parameter

_X
Nilai bilangan bulat tidak ditandatangani

Tampilkan Nilai

Mengembalikan nilai dengan urutan bit yang dibalik dalam _X.

Jenuh

Klem _X dalam kisaran 0 hingga 1.

inline float saturate(float _X) restrict(amp);

Parameter

_X
Nilai floating-point

Tampilkan Nilai

Mengembalikan _X dijepit dalam rentang 0 hingga 1.

sign

Menentukan tanda argumen yang ditentukan.

inline int sign(int _X) restrict(amp);

Parameter

_X
Nilai bilangan bulat

Tampilkan Nilai

Tanda argumen.

smoothstep

Mengembalikan interpolasi Hermite halus antara 0 dan 1, jika _X berada dalam rentang [_Min, _Max].

inline float smoothstep(
    float _Min,
    float _Max,
    float _X) restrict(amp);

Parameter

_Min
Nilai floating-point

_Maks
Nilai floating-point

_X
Nilai floating-point

Tampilkan Nilai

Mengembalikan 0 jika _X kurang dari _Min; 1 jika _X lebih besar dari _Max; jika tidak, nilai antara 0 dan 1 jika _X berada dalam rentang [_Min, _Max].

langkah

Membandingkan dua nilai, mengembalikan 0 atau 1 berdasarkan nilai mana yang lebih besar.

inline float step(
    float _Y,
    float _X) restrict(amp);

Parameter

_Y
Nilai floating-point

_X
Nilai floating-point

Tampilkan Nilai

Mengembalikan 1 jika _X lebih besar dari atau sama dengan _Y; jika tidak, 0.

umax

Tentukan nilai numerik maksimum argumen.

inline unsigned int umax(
    unsigned int _X,
    unsigned int _Y) restrict(amp);

Parameter

_X
Nilai bilangan bulat

_Y
Nilai bilangan bulat

Tampilkan Nilai

Mengembalikan nilai numerik maksimum argumen.

umin

Tentukan nilai numerik minimum argumen.

inline unsigned int umin(
    unsigned int _X,
    unsigned int _Y) restrict(amp);

Parameter

_X
Nilai bilangan bulat

_Y
Nilai bilangan bulat

Tampilkan Nilai

Mengembalikan nilai numerik minimum argumen.

Lihat juga

Concurrency::d irect3d Namespace