Microsoft DirectX 8.0 (Visual Basic)

デバイス エフェクト

ハードウェア ドライバは、Microsoft® DirectInput® が定義するカテゴリに当てはまらない特殊効果をサポートすることができる。このようなエフェクトに対応するタイプ固有のパラメータは、ハードコーディングされていることもあれば、アプリケーションで変更できることもある。

Microsoft® DirectX® for Microsoft Visual Basic® は、カスタムのタイプ固有パラメータを要求するハードウェア エフェクトをサポートしていない。

ハードウェア ベンダーは、デバイス固有のエフェクトを識別する GUID を提供しなければならない。次に、アプリケーションは、ほかのエフェクトと同様に、DIEFFECT 型を初期化しなければならない。次に、この型を GUID と共に DirectInputDevice8.CreateEffect メソッドに渡す。

DirectInputEnumEffects 列挙にデバイス固有のエフェクトについての情報が入るが、DirectInputEnumEffects.GetType の戻り値の下位バイトは、定義済みの DirectInput のエフェクト タイプ (コンスタント フォース、傾斜フォース、周期的エフェクト、条件) のどれにデバイス エフェクトが分類されるのかを示している。定義済みのカテゴリのどれにも分類できない場合、下位バイトの値は DIEFT_HARDWARE である。

デバイス固有のエフェクトが定義済みのいずれかの種類に分類できれば、そのカテゴリの標準フォースの場合と同様に、DIEFFECT 型を初期化しなければならない。たとえば、エフェクト タイプが DIEFT_CONSTANTFORCE である場合は、constantForce メンバを初期化する必要がある。

DirectInput は確認のため、GUID と DIEFFECT 型をデバイス ドライバに渡す。GUID が未知である場合、デバイスは DIERR_DEVICENOTREG を返す。GUID は既知でも、タイプ固有データがそのエフェクトに対して不正確である場合は、デバイスは DIERR_INVALIDPARAM を返す。