共用方式為


Concurrency::direct3d 命名空間函式 (AMP)

需求

標頭: amp.h 命名空間: 並行

abs

傳回引數的絕對值

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

參數

_X
整數值

傳回值

傳回引數的絕對值。

計算第一個指定引數的值,這個值會限制為第二個和第三個指定引數所定義的範圍。

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

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

參數

_X
要夾住的值

_Min
夾接範圍的下限。

_麥克斯
限制範圍的上限。

傳回值

的固定值 _X

countbits

計算_X中的設定位數目

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

參數

_X
不帶正負號的整數值

傳回值

傳回 _X 中的設定位數目

create_accelerator_view

從 Direct3D 裝置介面的指標建立accelerator_view 物件。

語法

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

參數

_加速器
要在其中建立新accelerator_view的快速鍵。

_D3D_device
Direct3D 裝置介面的指標。

_Disable_timeout
布林參數,指定是否應針對新建立的accelerator_view停用逾時。 這會對應至 Direct3D 裝置建立的D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT旗標,並用來指出作業系統是否應該允許執行超過 2 秒的工作負載,而不需要根據 Windows 逾時偵測和復原機制重設裝置。 如果您需要在accelerator_view上執行耗時的工作,建議您使用此旗標。

_Qmode
用於新建立accelerator_view的queuing_mode。 此參數的預設值為 queuing_mode_automatic

傳回值

accelerator_view從傳遞的 Direct3D 裝置介面建立的物件。

備註

此函式會從 Direct3D 裝置介面的現有指標建立新的 accelerator_view 物件。 如果函式呼叫成功,參數的參考計數會透過 AddRef 對 介面的呼叫遞增。 當您的 DirectX 程式碼中不再需要物件時,您可以安全地釋放物件。 如果方法呼叫失敗, 則會擲回runtime_exception

accelerator_view您使用這個函式建立的物件是安全線程。 您必須同步處理物件的並行使用 accelerator_view 。 物件和原始 ID3D11Device 介面的 accelerator_view 同步處理並行使用會導致未定義的行為。

如果您使用 D3D11_CREATE_DEVICE_DEBUG 旗標,C++ AMP 執行時間會使用 D3D 偵錯層,在偵錯模式中提供詳細的錯誤資訊。

d3d_access_lock

取得accelerator_view鎖定,以便安全地對與accelerator_view共用的資源執行 D3D 作業。 與這個accelerator_view相關聯的accelerator_view和所有 C++ AMP 資源在執行作業時會在內部接受此鎖定,而且會在另一個執行緒保留 D3D 存取鎖定時封鎖。 此鎖定為非遞迴:從已保存鎖定的執行緒呼叫此函式是不定義的行為。 從保留 D3D 存取鎖定的執行緒,對accelerator_view或任何與accelerator_view相關聯的資料容器執行作業是不定義的行為。 另請參閱scoped_d3d_access_lock,這是範圍型 D3D 存取鎖定的 RAII 樣式類別。

void __cdecl d3d_access_lock(accelerator_view& _Av);

參數

_Av
要鎖定的accelerator_view。

d3d_access_try_lock

嘗試取得accelerator_view上的 D3D 存取鎖定,而不封鎖。

bool __cdecl d3d_access_try_lock(accelerator_view& _Av);

參數

_Av
要鎖定的accelerator_view。

傳回值

如果已取得鎖定,則為 true;如果鎖定目前由另一個執行緒持有,則為 false。

d3d_access_unlock

釋放指定accelerator_view上的 D3D 存取鎖定。 如果呼叫執行緒未在accelerator_view鎖定,則結果未定義。

void __cdecl d3d_access_unlock(accelerator_view& _Av);

參數

_Av
要釋放鎖定的accelerator_view。

firstbithigh

取得_X中第一個設定位的位置,從最高順序位開始,並移至最低順序位。

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

參數

_X
整數值

傳回值

第一個設定位的位置

firstbitlow

取得_X中第一個設定位的位置,從最低順序位開始,並努力達到最高順序位。

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

參數

_X
整數值

傳回值

傳回第一個設定位的位置

get_buffer

取得指定陣列基礎的 Direct3D 緩衝區介面。

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

參數

value_type
陣列中項目的型別。

_排名
陣列的排名。

_陣 列
在 Direct3D accelerator_view上傳回基礎 Direct3D 緩衝區介面的陣列。

傳回值

對應至陣列基礎 Direct3D 緩衝區的 IUnknown 介面指標。

get_device

取得基礎accelerator_view的 D3D 裝置介面。

IUnknown* get_device(const accelerator_view Av);

參數

Av
傳回基礎 D3D 裝置介面的 D3D accelerator_view。

傳回值

IUnknownaccelerator_view基礎的 D3D 裝置介面指標。

Imax

判斷引數的數值上限

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

參數

_X
整數值

_Y
整數值

傳回值

傳回引數的數值上限

系統管理員

判斷引數的最小值

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

參數

_X
整數值

_Y
整數值

傳回值

傳回引數的最小值

is_timeout_disabled

傳回布林值旗標,指出指定的accelerator_view是否停用逾時。 這會對應至 Direct3D 裝置建立D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT旗標。

bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);

參數

_Accelerator_view
要查詢逾時設定的accelerator_view。

傳回值

布林值旗標,指出指定的accelerator_view是否停用逾時。

mad

計算第一個和第二個指定引數的乘積,然後加入第三個指定的引數。

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

參數

_X
第一個指定的引數。

_Y
第二個指定的引數。

_Z
第三個指定的引數。

傳回值

_X * _Y + _Z 的結果。

make_array

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

參數

value_type
要建立之陣列的專案類型。

_排名
要建立之陣列的排名。

_程度
描述陣列匯總圖形的範圍。

_Rv
要在其中建立陣列的 D3D 快速鍵檢視。

_D3D_buffer
要從中建立陣列之 D3D 緩衝區的 IUnknown 介面指標。

傳回值

使用提供的 Direct3D 緩衝區所建立的陣列。

雜訊

使用 Perlin 雜訊演算法產生隨機值

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

參數

_X
要從中產生 Perlin 雜訊的浮點值

傳回值

傳回介於 -1 和 1 之間的範圍內的 Perlin 雜訊值

弧度

將_X從度轉換成弧度

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

參數

_X
浮點值。

傳回值

傳回從度轉換成弧度_X

rcp

使用快速近似值來計算指定引數的倒數。

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

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

參數

_X
要計算倒數的值。

傳回值

指定引數的倒數。

reversebits

反轉_X中的位順序

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

參數

_X
不帶正負號的整數值

傳回值

傳回以 _X 反轉位順序的值

飽和

夾_X介於 0 到 1 的範圍內

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

參數

_X
浮點值。

傳回值

傳回限制在 0 到 1 範圍內_X

Sign

決定指定引數的符號。

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

參數

_X
整數值

傳回值

引數的符號。

smoothstep

如果_X位於 [_Min, _Max] 範圍中,則傳回介於 0 到 1 之間的平滑隱密插補點。

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

參數

_Min
浮點值。

_麥克斯
浮點值。

_X
浮點值。

傳回值

如果_X小於 _Min,則傳回 0;如果_X大於 _Max,則為 1;否則,如果_X位於範圍 [_Min,則為介於 0 和 1 之間的值 [_Min,_Max]

step

比較兩個值,根據值大於 0 或 1

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

參數

_Y
浮點值。

_X
浮點值。

傳回值

如果_X大於或等於_Y,則傳回 1;否則為 0

umax

判斷引數的數值上限

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

參數

_X
整數值

_Y
整數值

傳回值

傳回引數的數值上限

umin

判斷引數的最小值

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

參數

_X
整數值

_Y
整數值

傳回值

傳回引數的最小值

另請參閱

Concurrency::direct3d 命名空間