DIEFFECTATTRIBUTES-Struktur (dinputd.h)
Die DIEFFECTATTRIBUTES-Struktur beschreibt die Informationen, die im Wert "Attributes" des Registrierungsschlüssels für jeden Effekt enthalten sind, der von einem Force-Feedback-Gerät unterstützt wird.
Syntax
typedef struct DIEFFECTATTRIBUTES {
DWORD dwEffectId;
DWORD dwEffType;
DWORD dwStaticParams;
DWORD dwDynamicParams;
DWORD dwCoords;
} DIEFFECTATTRIBUTES, *LPDIEFFECTATTRIBUTES;
Member
dwEffectId
Gibt einen beliebigen 32-Bit-Wert an, der an den Treiber übergeben wird, um den Effekt zu identifizieren. Der Treiber empfängt diesen Wert als dwEffectID-Parameter für die IDirectInputEffectDriver::D ownloadEffect-Methode .
dwEffType
Beschreibt die Kategorie und die Funktionen des Effekts. Dieser Member muss aus einem der folgenden Werte bestehen:
DIEFT_CONSTANTFORCE
Der Effekt stellt einen konstanten Krafteffekt dar. Beim Erstellen oder Ändern eines konstanten Krafteffekts verweist der lpvTypeSpecificParams-Member der DIEFFECT-Struktur auf eine DICONSTANTFORCE-Struktur, und der cbTypeSpecificParams-Member der DIEFFECT-Struktur ist auf sizeof(DICONSTANTFORCE) festgelegt.
DIEFT_RAMPFORCE
Der Effekt stellt einen Rampenkrafteffekt dar. Beim Erstellen oder Ändern eines Rampenkrafteffekts verweist der lpvTypeSpecificParams-Member der DIEFFECT-Struktur auf eine DIRAMPFORCE-Struktur, und der cbTypeSpecificParams-Member der DIEFFECT-Struktur ist auf sizeof(DIRAMPFORCE) festgelegt.
DIEFT_PERIODIC
Der Effekt stellt einen periodischen Effekt dar. Beim Erstellen oder Ändern eines periodischen Effekts verweist der lpvTypeSpecificParams-Member der DIEFFECT-Struktur auf eine DIPERIODIC-Struktur, und der cbTypeSpecificParams-Member der DIEFFECT-Struktur ist auf sizeof(DIPERIODIC) festgelegt.
DIEFT_CONDITION
Der Effekt stellt eine Bedingung dar. Beim Erstellen oder Ändern einer Bedingung verweist der lpvTypeSpecificParams-Member der DIEFFECT-Struktur auf ein Array von DICONDITION-Strukturen (entweder genau eine DICONDITION-Struktur oder eine DICONDITION-Struktur pro Achse), und das cbTypeSpecificParams-Element der DIEFFECT-Struktur ist auf sizeof(DICONDITION) bzw. cAxis * sizeof(DICONDITION) festgelegt. Wenn cbTypeSpecificParams auf sizeof(DICONDITION) festgelegt ist, stellt der Effekt eine Einachsenbedingung dar, die gedreht werden kann. Wenn cbTypeSpecificParams auf cAxis * sizeof(DICONDITION) festgelegt ist, stellt der Effekt eine Bedingung mit mehreren Achsen dar, wobei jede DICONDITION-Struktur auf die jeweilige Achse in der Liste rgdwAxes angewendet wird.
DIEFT_CUSTOMFORCE
Der Effekt stellt einen benutzerdefinierten Krafteffekt dar. Beim Erstellen oder Ändern eines benutzerdefinierten Krafteffekts zeigt der lpvTypeSpecificParams-Member der DIEFFECT-Struktur auf eine DICUSTOMFORCE-Struktur, und der cbTypeSpecificParams-Member der DIEFFECT-Struktur ist auf sizeof(DICUSTOMFORCE) festgelegt.
DIEFT_HARDWARE
Der Effekt stellt einen hardwarespezifischen Effekt dar. Der Hardwarehersteller muss dem Application Writer zusätzliche Dokumentationen zur Verwendung des Effekts bereitstellen. Zusätzlich zum Kategoriecode kann das dwEffTtype-Element auch null, ein oder mehrere der folgenden Flags enthalten, die die Funktionen des Effekts beschreiben:
DIEFT_FFATTACK
Der Effektgenerator für diesen Effekt unterstützt den Parameter "Angriffshülle". Wenn der Effektgenerator keinen Angriff unterstützt, werden die Angriffsebene und die Angriffszeitparameter der DIENVELOPE-Struktur vom Effekt ignoriert.
DIEFT_FFFADE
Der Effektgenerator für diesen Effekt unterstützt den Fade-Parameter. Wenn der Effektgenerator das Einblenden nicht unterstützt, werden die Parameter für die Einblendungsstufe und die Einblendzeit der DIENVELOPE-Struktur vom Effekt ignoriert. Wenn DIEFT_FFATTACK oder DIEFT_FFFADE nicht festgelegt ist, unterstützt der Effekt keinen Umschlag, und alle bereitgestellten Umschläge werden ignoriert.
DIEFT_SATURATION
Der Effektgenerator für diesen Effekt unterstützt die Sättigung von Bedingungseffekten. Wenn der Effektgenerator keine Sättigung unterstützt, wird die von einer Bedingung generierte Kraft nur durch die maximale Kraft begrenzt, die das Gerät generieren kann.
DIEFT_POSNEGCOEFFICIENTS
Der Effektgenerator für diesen Effekt unterstützt zwei Koeffizientenwerte für Bedingungen: einen für die positive Verschiebung der Achse und einen für die negative Verschiebung der Achse. Wenn das Gerät nicht beide Koeffizienten unterstützt, wird der negative Koeffizienten in der DICONDITION-Struktur ignoriert, und der positive Koeffizienten wird in beide Richtungen verwendet.
DIEFT_POSNEGSATURATION
Der Effektgenerator für den Effekt unterstützt eine maximale Sättigung für positive und negative Kraftausgabe. Wenn das Gerät nicht beide Sättigungswerte unterstützt, wird die negative Sättigung in der DICONDITION-Struktur ignoriert, und die positive Sättigung wird in beide Richtungen verwendet.
dwStaticParams
Beschreibt die parameter, die vom Effekt unterstützt werden. Wenn beispielsweise DIEP_ENVELOPE festgelegt ist, unterstützt der Effekt einen Umschlag. Alle Effekte sollten mindestens DIEP_DURATION, DIEP_AXES und DIEP_TYPESPECIFICPARAMS unterstützen. Es ist kein Fehler, wenn eine Anwendung versucht, Effektparameter zu verwenden, die vom Gerät nicht unterstützt werden. Die nicht unterstützten Parameter werden lediglich ignoriert. Dieser Wert kann null, ein oder mehrere der folgenden Flags sein:
DIEP_DURATION
Gibt an, dass der Treiber das Ändern der dwDuration (siehe DIEFFECT-Struktur) eines Effekts unterstützt, wenn der Effekt nicht wiedergegeben wird.
DIEP_SAMPLEPERIOD
Gibt an, dass der Treiber das Ändern von dwSamplePeriod (siehe DIEFFECT-Struktur) eines Effekts unterstützt, wenn der Effekt nicht wiedergegeben wird.
DIEP_GAIN
Gibt an, dass der Treiber das Ändern von dwGain (siehe DIEFFECT-Struktur) eines Effekts unterstützt, wenn der Effekt nicht wiedergegeben wird.
DIEP_TRIGGERBUTTON
Gibt an, dass der Treiber das Ändern von dwTriggerButton (siehe die DIEFFECT-Struktur) eines Effekts unterstützt, wenn der Effekt nicht wiedergegeben wird.
DIEP_TRIGGERREPEATINTERVAL
Gibt an, dass der Treiber das Ändern von dwTriggerRepeatInterval (siehe DIEFFECT-Struktur) eines Effekts unterstützt, wenn der Effekt nicht wiedergegeben wird.
DIEP_AXES
Gibt an, dass der Treiber das Ändern der cAxes und rgdwAxes (siehe DIEFFECT-Struktur) eines Effekts unterstützt, wenn der Effekt nicht wiedergegeben wird.
DIEP_DIRECTION
Gibt an, dass der Treiber das Ändern von cAxes und rglDirection (siehe DIEFFECT-Struktur) eines Effekts unterstützt, wenn der Effekt nicht wiedergegeben wird. (Der dwFlags-Member der DIEFFECT-Struktur gibt über DIEFF_CARTESIAN oder DIEFF_POLAR das Koordinatensystem an, in dem die Werte interpretiert werden sollen.)
DIEP_ENVELOPE
Gibt an, dass der Treiber das Ändern von lpEnvelope (siehe die DIEFFECT-Struktur) eines Effekts unterstützt, wenn der Effekt nicht wiedergegeben wird.
DIEP_TYPESPECIFICPARAMS
Gibt an, dass der Treiber das Ändern von cbTypeSpecificParams und lpTypeSpecificParams (siehe DIEFFECT-Struktur) eines Effekts unterstützt, wenn der Effekt nicht wiedergegeben wird. Beachten Sie, dass der Puffer, auf den der lpTypeSpecificParams-Member der DIEFFECT-Struktur verweist, für die Lebensdauer des Effekts gültig bleiben muss (oder bis der typspezifische Parameter auf einen neuen Wert festgelegt ist). DirectInput erstellt keine private Kopie des Puffers.
dwDynamicParams
Beschreibt die Parameter des Effekts, der während der Wiedergabe des Effekts geändert werden kann. Wenn eine Anwendung versucht, einen Parameter zu ändern, während der Effekt wiedergegeben wird, und der Treiber das dynamische Ändern dieses Effekts nicht unterstützt, gibt der Treiber DIERR_EFFECTPLAYING zurück. Dieses Element verwendet die gleichen Flags wie das dwStaticParams-Element , mit der Ausnahme, dass die Flags so interpretiert werden, dass beschrieben wird, ob der Treiber die Parameter eines Effekts ändern kann, während der Effekt wiedergegeben wird, anstatt während er nicht wiedergegeben wird.
dwCoords
Mindestens ein Koordinatensystemflag (DIEFF_CARTESIAN, DIEFF_POLAR, DIEFF_SPHERICAL), das angibt, welche Koordinatensysteme vom Effekt unterstützt werden. Es muss mindestens ein Koordinatensystem unterstützt werden. Wenn eine Anwendung versucht, eine Richtung in einem nicht unterstützten Koordinatensystem festzulegen, konvertiert DirectInput diese automatisch in ein Koordinatensystem, das vom Gerät unterstützt wird.
Hinweise
Informationen zu den Strukturen DIEFFECT, DICONSTANTFORCE, DIRAMPFORCE, DIPERIODIC, DICONDITION, DICUSTOMFORCE und DIENVELOPE finden Sie im Abschnitt DirectInput des DirectX SDK.
Anforderungen
Anforderung | Wert |
---|---|
Header | dinputd.h |