DIEFFECTINFO
デバイスでサポートされるエフェクトに関する情報を返すために、IDirectInputDevice8::EnumEffects および IDirectInputDevice8::GetEffectInfo メソッドで使用される。
typedef struct DIEFFECTINFO {
DWORD dwSize;
GUID guid;
DWORD dwEffType;
DWORD dwStaticParams;
DWORD dwDynamicParams;
TCHAR tszName[MAX_PATH];
} DIEFFECTINFO, *LPDIEFFECTINFO;
typedef const DIEFFECTINFO *LPCDIEFFECTINFO;
メンバ
- dwSize
- 構造体のバイト単位のサイズ。列挙の間に、アプリケーションはこの値を調べ、構造体のメンバがいくつ有効であるかを確認できる。この構造体が IDirectInputDevice8::GetEffectInfo メソッドに渡される前に、この構造体のメンバを初期化しなければならない。
- guid
- エフェクトの識別子。
- dwEffType
- ゼロまたは以下の値のいずれか。
- DIEFT_ALL
- IDirectInputDevice8::EnumEffects に対してのみ有効。タイプに関係なくすべてのエフェクトを列挙する。このフラグは、ほかのどのフラグとも組み合せることはできない。
- DIEFT_CONDITION
- エフェクトは、条件を表す。条件を作成または修正する際は、DIEFFECT 構造体の lpvTypeSpecificParams メンバは DICONDITION 構造体 (各軸に 1 つ) から成る配列を指し、cbTypeSpecificParams メンバには cAxis * sizeof(DICONDITION) を設定しなければならない。
すべてのデバイスが、条件のすべてのパラメータをサポートするわけではない。エフェクトの能力フラグをチェックして、どの能力が使用可能であるかを調べる。
このフラグは、IDirectInputDevice8::EnumEffects に渡して、列挙対象を条件に制限することができる。
- DIEFT_CONSTANTFORCE
- エフェクトは、コンスタント フォース エフェクトを表す。コンスタント フォース エフェクトを作成または修正する際は、DIEFFECT 構造体の lpvTypeSpecificParams メンバが DICONSTANTFORCE 構造体を指し、cbTypeSpecificParams メンバには sizeof(DICONSTANTFORCE) を設定しなければならない。
このフラグは、IDirectInputDevice8::EnumEffects に渡して、列挙対象をコンスタント フォース エフェクトに制限することができる。
- DIEFT_CUSTOMFORCE
- エフェクトは、カスタム フォース エフェクトを表す。カスタム フォース エフェクトを作成または修正する際は、DIEFFECT 構造体の lpvTypeSpecificParams メンバが DICUSTOMFORCE 構造体を指し、cbTypeSpecificParams メンバには sizeof(DICUSTOMFORCE) を設定しなければならない。
このフラグは、IDirectInputDevice8::EnumEffects に渡して、列挙対象をカスタム フォース エフェクトに制限することができる。
- DIEFT_DEADBAND
- この条件エフェクトに対するエフェクト ジェネレータは、lDeadBand パラメータをサポートする。
- DIEFT_FFATTACK
- このエフェクトに対するエフェクト ジェネレータは、アタック エンベロープ パラメータをサポートする。エフェクト ジェネレータがアタックをサポートしていなければ、DIENVELOPE 構造体のアタック レベルとアタック時間のパラメータを、エフェクトが無視する。
DIEFT_FFATTACK と DIEFT_FFFADE が両方とも設定されていなければ、エフェクトは、エンベロープをサポートせず、指定のエンベロープは、すべて無視される。
- DIEFT_FFFADE
- このエフェクトに対するエフェクト ジェネレータは、フェード パラメータをサポートする。エフェクト ジェネレータがフェードをサポートしていなければ、DIENVELOPE 構造体のフェード レベルとフェード時間のパラメータを、エフェクトが無視する。
DIEFT_FFATTACK と DIEFT_FFFADE が両方とも設定されていなければ、エフェクトは、エンベロープをサポートせず、指定のエンベロープは、すべて無視される。
- DIEFT_HARDWARE
- エフェクトは、ハードウェア固有のエフェクトを表す。ハードウェア固有エフェクトの使用の詳細については、ハードウェアのドキュメントを参照すること。
このフラグを IDirectInputDevice8::EnumEffects メソッドに渡して、列挙対象をハードウェア固有エフェクトに制限することができる。
- DIEFT_PERIODIC
- エフェクトは、周期的フォース エフェクトを表す。周期的フォース エフェクトを作成または修正する際は、DIEFFECT 構造体の lpvTypeSpecificParams メンバが DIPERIODIC 構造体を指し、cbTypeSpecificParams メンバには sizeof(DIPERIODIC) を設定しなければならない。
このフラグは、IDirectInputDevice8::EnumEffects に渡して、列挙対象を周期的フォース エフェクトに制限することができる。
- DIEFT_POSNEGCOEFFICIENTS
- このエフェクトに対するエフェクト ジェネレータは、条件に対する 2 つの係数値、一方は正の軸移動、他方は負の軸移動に対する係数をサポートする。デバイスが一方向の係数しかサポートしない場合、DICONDITION 構造体の負の係数が無視され、正の係数が両方の方向で使用される。
- DIEFT_POSNEGSATURATION
- このエフェクトに対するエフェクト ジェネレータは、正負の両方のフォース出力に対する最大飽和をサポートする。デバイスが一方向の飽和値しかサポートしないのであれば、DICONDITION 構造体の負の飽和値が無視され、正の飽和値が両方の方向で使用される。
- DIEFT_RAMPFORCE
- エフェクトは、傾斜フォース エフェクトを表す。傾斜フォース エフェクトを作成または修正する際は、DIEFFECT 構造体の lpvTypeSpecificParams メンバが DIRAMPFORCE 構造体を指し、cbTypeSpecificParams メンバには sizeof(DIRAMPFORCE) を設定しなければならない。
このフラグは、IDirectInputDevice8::EnumEffects に渡して、列挙対象を傾斜フォース エフェクトに制限することができる。
- DIEFT_SATURATION
- このエフェクトに対するエフェクト ジェネレータは、条件エフェクトの飽和をサポートする。エフェクト ジェネレータが飽和をサポートしていなければ、条件が生成したフォースは、デバイスが生成できる最大フォースによってのみ制限される。
- DIEFT_STARTDELAY
- エフェクトは、すぐに開始されるのではなく再生までに遅延が発生する。この遅延を利用して、エフェクトが順番どおりに再生されるようにエフェクトの補正が行われる。
- dwStaticParams
- エフェクトがサポートするパラメータを表すゼロ以上の DIEP_* 値。たとえば、DIEP_ENVELOPE が設定されていれば、エフェクトはエンベロープをサポートする。設定可能な値の一覧については、「IDirectInputEffect::GetParameters」を参照すること。
デバイスがサポートしていないエフェクト パラメータをアプリケーションが使用しようとしても、エラーにはならない。サポートされていないパラメータは、無視されるだけである。
この情報は、アプリケーションが特定のデバイスの能力にフォース フィードバックを適合させて使えるようにするために提供されている。
- dwDynamicParams
- エフェクトの再生中に修正できるエフェクト パラメータを示すゼロ以上の DIEP_* 値。設定可能な値の一覧については、「IDirectInputEffect::GetParameters」を参照すること。
エフェクトの再生中にアプリケーションがパラメータを変更しようとしても、ドライバがそのエフェクトを動的に修正する機能をサポートしていない場合は、ドライバはそのエフェクトを停止して、パラメータを更新し、その後にエフェクトを再開することができる。詳細については、「IDirectInputEffect::SetParameters」を参照すること。
- tszName[MAX_PATH]
- エフェクトの名前。たとえば、"Sawtooth up" または "Constant Force" など。
注意
dwEffType フラグからエフェクト タイプを抽出するには、DIEFT_GETTYPE マクロを使用する。
Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
ヘッダー : dinput.h で宣言。