Estructura DIEFFECTATTRIBUTES (dinputd.h)
La estructura DIEFFECTATTRIBUTES describe la información contenida en el valor "Atributos" de la clave del Registro para cada efecto compatible con un dispositivo de respuesta forzada.
Sintaxis
typedef struct DIEFFECTATTRIBUTES {
DWORD dwEffectId;
DWORD dwEffType;
DWORD dwStaticParams;
DWORD dwDynamicParams;
DWORD dwCoords;
} DIEFFECTATTRIBUTES, *LPDIEFFECTATTRIBUTES;
Miembros
dwEffectId
Especifica un valor arbitrario de 32 bits que se pasa al controlador para identificar el efecto. El controlador recibe este valor como el parámetro dwEffectID al método IDirectInputEffectDriver::D ownloadEffect .
dwEffType
Describe la categoría y las funcionalidades del efecto. Este miembro debe constar de uno de los siguientes valores:
DIEFT_CONSTANTFORCE
El efecto representa un efecto de fuerza constante. Al crear o modificar un efecto de fuerza constante, el miembro lpvTypeSpecificParams de la estructura DIEFFECT apunta a una estructura DICONSTANTFORCE y el miembro cbTypeSpecificParams de la estructura DIEFFECT se establece en sizeof(DICONSTANTFORCE).
DIEFT_RAMPFORCE
El efecto representa un efecto de fuerza de rampa. Al crear o modificar un efecto de fuerza de rampa, el miembro lpvTypeSpecificParams de la estructura DIEFFECT apunta a una estructura DIRAMPFORCE y el miembro cbTypeSpecificParams de la estructura DIEFFECT se establece en sizeof(DIRAMPFORCE).
DIEFT_PERIODIC
El efecto representa un efecto periódico. Al crear o modificar un efecto periódico, el miembro lpvTypeSpecificParams de la estructura DIEFFECT apunta a una estructura DIPERIODIC y el miembro cbTypeSpecificParams de la estructura DIEFFECT se establece en sizeof(DIPERIODIC).
DIEFT_CONDITION
El efecto representa una condición. Al crear o modificar una condición, el miembro lpvTypeSpecificParams de la estructura DIEFFECT apunta a una matriz de estructuras DICONDITION (exactamente una estructura DICONDITION o una estructura DICONDITION por eje) y el miembro cbTypeSpecificParams de la estructura DIEFFECT se establece en sizeof(DICONDITION) o cAxis * sizeof(DICONDITION), respectivamente. Si cbTypeSpecificParams se establece en sizeof(DICONDITION), el efecto representa una condición de eje único que se puede girar. Si cbTypeSpecificParams se establece en cAxis * sizeof(DICONDITION), el efecto representa una condición de varios ejes, con cada estructura DICONDITION que se aplica al eje respectivo de la lista rgdwAxes.
DIEFT_CUSTOMFORCE
El efecto representa un efecto de fuerza personalizada. Al crear o modificar un efecto de fuerza personalizada, el miembro lpvTypeSpecificParams de la estructura DIEFFECT apunta a una estructura DICUSTOMFORCE y el miembro cbTypeSpecificParams de la estructura DIEFFECT se establece en sizeof(DICUSTOMFORCE).
DIEFT_HARDWARE
El efecto representa un efecto específico del hardware. El proveedor de hardware es necesario para proporcionar documentación adicional al escritor de aplicaciones sobre cómo se debe usar el efecto. Además del código de categoría, el miembro dwEffTtype también puede contener cero, uno o varios de los siguientes marcadores que describen las funcionalidades del efecto:
DIEFT_FFATTACK
El generador de efectos para este efecto admite el parámetro sobre de ataque. Si el generador de efectos no admite ataques, el efecto omite los parámetros de tiempo de ataque y nivel de ataque de la estructura DIENVELOPE.
DIEFT_FFFADE
El generador de efectos para este efecto admite el parámetro fade. Si el generador de efectos no admite la atenuación, el efecto omite los parámetros de tiempo de atenuación y nivel de atenuación de la estructura DIENVELOPE. Si no se establece DIEFT_FFATTACK o DIEFT_FFFADE, el efecto no admite un sobre y se omite cualquier sobre proporcionado.
DIEFT_SATURATION
El generador de efectos para este efecto admite la saturación de los efectos de condición. Si el generador de efectos no admite saturación, la fuerza generada por una condición solo está limitada por la fuerza máxima que puede generar el dispositivo.
DIEFT_POSNEGCOEFFICIENTS
El generador de efectos para este efecto admite dos valores de coeficiente para las condiciones: uno para el desplazamiento positivo del eje y otro para el desplazamiento negativo del eje. Si el dispositivo no admite ambos coeficientes, se omite el coeficiente negativo de la estructura DICONDITION y el coeficiente positivo se usa en ambas direcciones.
DIEFT_POSNEGSATURATION
El generador de efectos para el efecto admite una saturación máxima para la salida de fuerza positiva y negativa. Si el dispositivo no admite ambos valores de saturación, se omite la saturación negativa en la estructura DICONDITION y la saturación positiva se usa en ambas direcciones.
dwStaticParams
Describe los parámetros admitidos por el efecto. Por ejemplo, si se establece DIEP_ENVELOPE, el efecto admite un sobre. Todos los efectos deben admitir al menos DIEP_DURATION, DIEP_AXES y DIEP_TYPESPECIFICPARAMS. No es un error para que una aplicación intente usar parámetros de efecto que no sean compatibles con el dispositivo. Los parámetros no admitidos simplemente se omiten. Este valor puede ser cero, uno o varios de los siguientes marcadores:
DIEP_DURATION
Indica que el controlador admite el cambio de dwDuration (vea la estructura DIEFFECT) de un efecto cuando el efecto no se está reproduciendo.
DIEP_SAMPLEPERIOD
Indica que el controlador admite el cambio de dwSamplePeriod (vea la estructura DIEFFECT) de un efecto cuando el efecto no se está reproduciendo.
DIEP_GAIN
Indica que el controlador admite el cambio de dwGain (vea la estructura DIEFFECT) de un efecto cuando el efecto no se está reproduciendo.
DIEP_TRIGGERBUTTON
Indica que el controlador admite el cambio del dwTriggerButton (vea la estructura DIEFFECT) de un efecto cuando el efecto no se está reproduciendo.
DIEP_TRIGGERREPEATINTERVAL
Indica que el controlador admite el cambio de dwTriggerRepeatInterval (vea la estructura DIEFFECT) de un efecto cuando el efecto no se está reproduciendo.
DIEP_AXES
Indica que el controlador admite el cambio de los cAxes y rgdwAxes (vea la estructura DIEFFECT) de un efecto cuando el efecto no se está reproduciendo.
DIEP_DIRECTION
Indica que el controlador admite el cambio de cAxes y rglDirection (vea la estructura DIEFFECT) de un efecto cuando el efecto no se está reproduciendo. (El miembro dwFlags de la estructura DIEFFECT especifica, a través de DIEFF_CARTESIAN o DIEFF_POLAR, el sistema de coordenadas en el que se deben interpretar los valores).
DIEP_ENVELOPE
Indica que el controlador admite el cambio del lpEnvelope (ver la estructura DIEFFECT) de un efecto cuando el efecto no se está reproduciendo.
DIEP_TYPESPECIFICPARAMS
Indica que el controlador admite el cambio de cbTypeSpecificParams y lpTypeSpecificParams (vea la estructura DIEFFECT) de un efecto cuando el efecto no se está reproduciendo. Tenga en cuenta que el búfer al que apunta el miembro lpTypeSpecificParams de la estructura DIEFFECT debe permanecer válido durante la vigencia del efecto (o hasta que el parámetro específico del tipo se establezca en un nuevo valor). DirectInput no realiza una copia privada del búfer.
dwDynamicParams
Describe los parámetros del efecto que se pueden modificar mientras se reproduce el efecto. Si una aplicación intenta cambiar un parámetro mientras se está reproduciendo el efecto y el controlador no admite la modificación dinámica de ese efecto, el controlador devolverá DIERR_EFFECTPLAYING. Este miembro usa las mismas marcas que el miembro dwStaticParams , salvo que las marcas se interpretan como si el controlador puede modificar los parámetros de un efecto mientras el efecto se está reproduciendo, en lugar de mientras no se está reproduciendo.
dwCoords
Una o más marcas del sistema de coordenadas (DIEFF_CARTESIAN, DIEFF_POLAR, DIEFF_SPHERICAL) que indican qué sistemas de coordenadas son compatibles con el efecto. Se debe admitir al menos un sistema de coordenadas. Si una aplicación intenta establecer una dirección en un sistema de coordenadas no compatible, DirectInput lo convierte automáticamente en un sistema de coordenadas que admite el dispositivo.
Comentarios
Para obtener información sobre las estructuras DIEFFECT, DICONSTANTFORCE, DIRAMPFORCE, DIPERIODIC, DICONDITION, DICUSTOMFORCE y DIENVELOPE, consulte la sección DirectInput del SDK de DirectX.
Requisitos
Requisito | Valor |
---|---|
Header | dinputd.h |