次の方法で共有


Concurrency::direct3d 名前空間関数 (AMP)

要件

ヘッダー: amp.h

名前空間: コンカレンシーの

abs

引数の絶対値を返します。

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

パラメーター

_X
整数値

戻り値

引数の絶対値を返します。

clamp

2 番目および 3 番目に指定された引数によって定義される範囲に固定される 1 番目に指定された引数の値を計算します。

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

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

パラメーター

_X
クランプする値。

_Min
固定される範囲の下限。

_Max
固定される範囲の上限。

戻り値

_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
新しい accelerator_view が作成されるアクセラレータ。

_D3D_device
Direct3D デバイス インターフェイスへのポインター。

_Disable_timeout
新しく作成された accelerator_view に対してタイムアウトを無効にする必要があるかどうかを指定するブール値パラメーター。 これは、Direct3D デバイス作成のための D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT フラグに対応し、オペレーティング システムが Windows のタイムアウトの検出と回復機構ごとにデバイスをリセットせずに、実行するために 2 秒より長くかかる負荷を許可するかどうかを示すために使用されます。 このフラグの使用は、accelerator_view で時間のかかるタスクを実行する必要がある場合にお勧めします。

_Qmode
新たに作成された accelerator_view に使用する queuing_mode。 このパラメーターには queuing_mode_automatic の既定値があります。

戻り値

渡された Direct3D デバイス インターフェイスから作成された accelerator_view オブジェクト。

解説

この関数は、Direct3D デバイス インターフェイスへの既存のポインターから新しい accelerator_view オブジェクトを作成します。 関数呼び出しが成功した場合、パラメーターの参照カウントはインターフェイスに対する AddRef 呼び出しを使用してインクリメントされます。 DirectX コードで不要になった場合は、オブジェクトを安全に解放できます。 メソッド呼び出しが失敗した場合、runtime_exception がスローされます。

この関数を使用して作成する accelerator_view オブジェクトはスレッド セーフです。 accelerator_view オブジェクトの同時使用を同期する必要があります。 accelerator_view オブジェクトと生の ID3D11Device インターフェイスを非同期で同時に使用すると、未定義の動作が発生します。

C++ AMP ランタイムは、D3D11_CREATE_DEVICE_DEBUG フラグを使用すると D3D デバッグ レイヤーを使用してデバッグ モードで詳細なエラー情報を提供します。

d3d_access_lock

accelerator_view と共有されるリソースに対して安全に D3D 演算を実行する目的で、accelerator_view のロックを取得します。 accelerator_view および内部でこの accelerator_view に関連付けられているすべての C++ AMP リソースは、演算を実行するときにこのロックを取得し、別のスレッドが D3D アクセス ロックを保持している間はブロックします。 このロックは非再帰的です。既にロックを保持しているスレッドからこの関数を呼び出したときの動作は定義されていません。 D3D のアクセスのロックを保持しているスレッドから、accelerator_view または accelerator_view に関連付けられているデータ コンテナーに対して演算を実行したときの動作は定義されていません。 スコープ ベースの D3D アクセス ロックの RAII スタイル クラスである、scoped_d3d_access_lock も参照してください。

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
配列内の要素の型。

_Rank
配列のランク。

_Array
基になる Direct3D バッファー インターフェイスが返される Direct3D accelerator_view の配列。

戻り値

配列の基になる Direct3D バッファーに対応する IUnknown インターフェイス ポインター。

get_device

accelerator_view の基盤になる D3D デバイス インターフェイスを取得します。

IUnknown* get_device(const accelerator_view Av);

パラメーター

Av
基盤となる D3D デバイスインターフェースが返される D3D accelerator_view。

戻り値

accelerator_view の基盤になる D3D デバイスの IUnknown インタフェイス ポインター。

imax

引数の最大数値を決定します。

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

パラメーター

_X
整数値

_Y
整数値

戻り値

引数の最大数値を返します。

imin

引数の最小値を決定します。

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

1 番目と 2 番目の指定された引数の積を計算し、3 番目の指定された引数を加算します。

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
1 番目の指定された引数。

_Y
2 番目の指定された引数。

_Z
3 番目の指定された引数。

戻り値

_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
作成される配列の要素型。

_Rank
作成される配列のランク。

_Extent
配列の集合の図形を記述する範囲。

_Rv
配列が作成される D3D アクセラレータ ビュー。

_D3D_buffer
配列を作成する基になる D3D バッファーの IUnknown インターフェイス ポインター。

戻り値

用意された Direct3D バッファーを使用して作成された配列。

noise

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でビット順序が逆の値を返します。

saturate

クランプ _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
浮動小数点値

_Max
浮動小数点値

_X
浮動小数点値

戻り値

_X が_Min未満の場合は 0 を返します。_X が_Maxより大きい場合は 1。それ以外の場合、_X が [_Min, _Max] の範囲内にある場合は、0 から 1 までの値になります。

ステップ

2 つの値を比較し、どの値が大きいかに基づいて 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 名前空間