Struttura DIEFFECTATTRIBUTES (dinputd.h)
La struttura DIEFFECTATTRIBUTES descrive le informazioni contenute nel valore "Attributi" della chiave del Registro di sistema per ogni effetto supportato da un dispositivo force-feedback.
Sintassi
typedef struct DIEFFECTATTRIBUTES {
DWORD dwEffectId;
DWORD dwEffType;
DWORD dwStaticParams;
DWORD dwDynamicParams;
DWORD dwCoords;
} DIEFFECTATTRIBUTES, *LPDIEFFECTATTRIBUTES;
Members
dwEffectId
Specifica un valore arbitrario a 32 bit passato al driver per identificare l'effetto. Il driver riceve questo valore come parametro dwEffectID al metodo IDirectInputEffectDriver::D ownloadEffect .
dwEffType
Descrive la categoria e le funzionalità dell'effetto. Questo membro deve essere costituito da uno dei valori seguenti:
DIEFT_CONSTANTFORCE
L'effetto rappresenta un effetto costante di forza. Quando si crea o si modifica un effetto di forza costante, il membro lpvTypeSpecificParams della struttura DIEFFECT punta a una struttura DICONSTANTFORCE e il membro cbTypeSpecificParams della struttura DIEFFECT è impostato su sizeof(DICONSTANTFORCE).
DIEFT_RAMPFORCE
L'effetto rappresenta un effetto di forza di rampa. Quando si crea o si modifica un effetto di forza di rampa, il membro lpvTypeSpecificParams della struttura DIEFFECT punta a una struttura DIRAMPFORCE e il membro cbTypeSpecificParams della struttura DIEFFECT è impostato su sizeof(DIRAMPFORCE).
DIEFT_PERIODIC
L'effetto rappresenta un effetto periodico. Quando si crea o si modifica un effetto periodico, il membro lpvTypeSpecificParams della struttura DIEFFECT punta a una struttura DIPERIODIC e il membro cbTypeSpecificParams della struttura DIEFFECT è impostato su sizeof(DIPERIODIC).
DIEFT_CONDITION
L'effetto rappresenta una condizione. Quando si crea o si modifica una condizione, il membro lpvTypeSpecificParams della struttura DIEFFECT punta a una matrice di strutture DICONDITION (esattamente una struttura DICONDITION o una struttura DICONDITION per asse) e il membro cbTypeSpecificParams della struttura DIEFFECT è impostato rispettivamente su sizeof(DICONDITION) o cAxis * sizeof(DICONDITION), rispettivamente. Se cbTypeSpecificParams è impostato su sizeof(DICONDITION), l'effetto rappresenta una condizione a asse singolo che può essere ruotata. Se cbTypeSpecificParams è impostato su cAxis * sizeof(DICONDITION), l'effetto rappresenta una condizione a più assi, con ogni struttura DICONDITION che si applica al rispettivo asse nell'elenco rgdwAxes.
DIEFT_CUSTOMFORCE
L'effetto rappresenta un effetto di forza personalizzato. Quando si crea o si modifica un effetto di forza personalizzato, il membro lpvTypeSpecificParams della struttura DIEFFECT punta a una struttura DICUSTOMFORCE e al membro cbTypeSpecificParams della struttura DIEFFECT viene impostato su sizeof(DICUSTOMFORCE).
DIEFT_HARDWARE
L'effetto rappresenta un effetto specifico dell'hardware. Il fornitore dell'hardware è necessario per fornire documentazione aggiuntiva al writer dell'applicazione su come usare l'effetto. Oltre al codice di categoria, il membro dwEffTtype può contenere anche zero, uno o più dei flag seguenti che descrivono le funzionalità dell'effetto:
DIEFT_FFATTACK
Il generatore di effetti per questo effetto supporta il parametro busta di attacco. Se il generatore di effetti non supporta l'attacco, i parametri di tempo di attacco e di attacco della struttura DIENVELOPE vengono ignorati dall'effetto.
DIEFT_FFFADE
Il generatore di effetti per questo effetto supporta il parametro di dissolvenza. Se il generatore di effetti non supporta la dissolvenza, i parametri di tempo di fade e fade della struttura DIENVELOPE vengono ignorati dall'effetto. Se DIEFT_FFATTACK o DIEFT_FFFADE non è impostato, l'effetto non supporta una busta e qualsiasi busta fornita viene ignorata.
DIEFT_SATURATION
Il generatore di effetti per questo effetto supporta la saturazione degli effetti della condizione. Se il generatore di effetti non supporta la saturazione, la forza generata da una condizione è limitata solo dalla forza massima che il dispositivo può generare.
DIEFT_POSNEGCOEFFICIENTS
Il generatore di effetti per questo effetto supporta due valori di coefficiente per le condizioni: uno per lo spostamento positivo dell'asse e uno per lo spostamento negativo dell'asse. Se il dispositivo non supporta entrambi i coefficienti, il coefficiente negativo nella struttura DICONDITION viene ignorato e il coefficiente positivo viene usato in entrambe le direzioni.
DIEFT_POSNEGSATURATION
Il generatore di effetti per l'effetto supporta una saturazione massima per l'output di forza positiva e negativa. Se il dispositivo non supporta entrambi i valori di saturazione, la saturazione negativa nella struttura DICONDITION viene ignorata e la saturazione positiva viene usata in entrambe le direzioni.
dwStaticParams
Descrive i parametri supportati dall'effetto. Ad esempio, se DIEP_ENVELOPE è impostato, l'effetto supporta una busta. Tutti gli effetti devono supportare almeno DIEP_DURATION, DIEP_AXES e DIEP_TYPESPECIFICPARAMS. Non è un errore per un'applicazione che tenta di usare parametri di effetto non supportati dal dispositivo. I parametri non supportati vengono semplicemente ignorati. Questo valore può essere zero, uno o più dei flag seguenti:
DIEP_DURATION
Indica che il driver supporta la modifica della dwDuration (vedere la struttura DIEFFECT) di un effetto quando l'effetto non viene riprodotto.
DIEP_SAMPLEPERIOD
Indica che il driver supporta la modifica del dwSamplePeriod (vedere la struttura DIEFFECT) di un effetto quando l'effetto non viene riprodotto.
DIEP_GAIN
Indica che il driver supporta la modifica della struttura dwGain (vedere la struttura DIEFFECT) di un effetto quando l'effetto non viene riprodotto.
DIEP_TRIGGERBUTTON
Indica che il driver supporta la modifica della struttura dwTriggerButton (vedere la struttura DIEFFECT) di un effetto quando l'effetto non viene riprodotto.
DIEP_TRIGGERREPEATINTERVAL
Indica che il driver supporta la modifica del dwTriggerRepeatInterval (vedere la struttura DIEFFECT) di un effetto quando l'effetto non viene riprodotto.
DIEP_AXES
Indica che il driver supporta la modifica di cAxes e rgdwAxes (vedere la struttura DIEFFECT) di un effetto quando l'effetto non viene riprodotto.
DIEP_DIRECTION
Indica che il driver supporta la modifica di cAxes e rglDirection (vedere la struttura DIEFFECT) di un effetto quando l'effetto non viene riprodotto. Il membro dwFlags della struttura DIEFFECT specifica, tramite DIEFF_CARTESIAN o DIEFF_POLAR, il sistema di coordinate in cui devono essere interpretati i valori.
DIEP_ENVELOPE
Indica che il driver supporta la modifica dell'lpEnvelope (vedere la struttura DIEFFECT) di un effetto quando l'effetto non viene riprodotto.
DIEP_TYPESPECIFICPARAMS
Indica che il driver supporta la modifica del cbTypeSpecificParams e lpTypeSpecificParams (vedere la struttura DIEFFECT) di un effetto quando l'effetto non viene riprodotto. Si noti che il buffer a cui punta il membro lpTypeSpecificParams della struttura DIEFFECT deve rimanere valido per la durata dell'effetto o fino a quando il parametro specifico del tipo non è impostato su un nuovo valore. DirectInput non esegue una copia privata del buffer.
dwDynamicParams
Descrive i parametri dell'effetto che possono essere modificati durante la riproduzione dell'effetto. Se un'applicazione tenta di modificare un parametro durante la riproduzione dell'effetto e il driver non supporta la modifica di tale effetto in modo dinamico, il driver restituirà DIERR_EFFECTPLAYING. Questo membro usa gli stessi flag del membro dwStaticParams , ad eccezione del fatto che i flag vengono interpretati come se il driver può modificare i parametri di un effetto mentre l'effetto viene riprodotto, anziché mentre non viene riprodotto.
dwCoords
Uno o più flag di sistema di coordinate (DIEFF_CARTESIAN, DIEFF_POLAR, DIEFF_SPHERICAL) che indicano quali sistemi di coordinate sono supportati dall'effetto. È necessario supportare almeno un sistema di coordinate. Se un'applicazione tenta di impostare una direzione in un sistema di coordinate non supportato, DirectInput lo converte automaticamente in un sistema di coordinate supportato dal dispositivo.
Commenti
Per informazioni sulle strutture DIEFFECT, DICONSTANTFORCE, DIRAMPFORCE, DIPERIODIC, DICONDITION, DICUSTOMFORCE e DIENVELOPE, vedere la sezione DirectInput dell'SDK DirectX.
Requisiti
Requisito | Valore |
---|---|
Intestazione | dinputd.h |