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。
傳回值
IUnknown
accelerator_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 雜訊值
radians
將_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
簽署
決定指定自變數的符號。
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
整數值
傳回值
傳回自變數的最小值