Share via


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