Compartilhar via


Estrutura DIEFFECTATTRIBUTES (dinputd.h)

A estrutura DIEFFECTATTRIBUTES descreve as informações contidas no valor "Atributos" da chave do Registro para cada efeito compatível com um dispositivo de comentários forçados.

Sintaxe

typedef struct DIEFFECTATTRIBUTES {
  DWORD dwEffectId;
  DWORD dwEffType;
  DWORD dwStaticParams;
  DWORD dwDynamicParams;
  DWORD dwCoords;
} DIEFFECTATTRIBUTES, *LPDIEFFECTATTRIBUTES;

Membros

dwEffectId

Especifica um valor arbitrário de 32 bits que é passado para o driver para identificar o efeito. O driver recebe esse valor como o parâmetro dwEffectID para o método IDirectInputEffectDriver::D ownloadEffect .

dwEffType

Descreve a categoria e os recursos do efeito. Esse membro deve consistir em um dos seguintes valores:

DIEFT_CONSTANTFORCE

O efeito representa um efeito de força constante. Ao criar ou modificar um efeito de força constante, o membro lpvTypeSpecificParams da estrutura DIEFFECT aponta para uma estrutura DICONSTANTFORCE e o membro cbTypeSpecificParams da estrutura DIEFFECT é definido como sizeof(DICONSTANTFORCE).

DIEFT_RAMPFORCE

O efeito representa um efeito de força de rampa. Ao criar ou modificar um efeito de força de rampa, o membro lpvTypeSpecificParams da estrutura DIEFFECT aponta para uma estrutura DIRAMPFORCE e o membro cbTypeSpecificParams da estrutura DIEFFECT é definido como sizeof(DIRAMPFORCE).

DIEFT_PERIODIC

O efeito representa um efeito periódico. Ao criar ou modificar um efeito periódico, o membro lpvTypeSpecificParams da estrutura DIEFFECT aponta para uma estrutura DIPERIODIC e o membro cbTypeSpecificParams da estrutura DIEFFECT é definido como sizeof(DIPERIODIC).

DIEFT_CONDITION

O efeito representa uma condição. Ao criar ou modificar uma condição, o membro lpvTypeSpecificParams da estrutura DIEFFECT aponta para uma matriz de estruturas DICONDITION (exatamente uma estrutura DICONDITION ou uma estrutura DICONDITION por eixo) e o membro cbTypeSpecificParams da estrutura DIEFFECT é definido como sizeof(DICONDITION) ou cAxis * sizeof(DICONDITION), respectivamente. Se cbTypeSpecificParams for definido como sizeof(DICONDITION), o efeito representará uma condição de eixo único que pode ser girada. Se cbTypeSpecificParams for definido como cAxis * sizeof(DICONDITION), o efeito representará uma condição de vários eixos, com cada estrutura DICONDITION aplicando-se ao respectivo eixo na lista rgdwAxes.

DIEFT_CUSTOMFORCE

O efeito representa um efeito de força personalizado. Ao criar ou modificar um efeito de força personalizado, o membro lpvTypeSpecificParams da estrutura DIEFFECT aponta para uma estrutura DICUSTOMFORCE e o membro cbTypeSpecificParams da estrutura DIEFFECT é definido como sizeof(DICUSTOMFORCE).

DIEFT_HARDWARE

O efeito representa um efeito específico do hardware. O fornecedor de hardware é necessário para fornecer documentação adicional ao gravador de aplicativos sobre como o efeito deve ser usado. Além do código de categoria, o membro dwEffTtype também pode conter zero, um ou mais dos seguintes sinalizadores que descrevem os recursos do efeito:

DIEFT_FFATTACK

O gerador de efeitos para esse efeito dá suporte ao parâmetro de envelope de ataque. Se o gerador de efeitos não der suporte a ataques, os parâmetros de tempo de ataque e nível de ataque da estrutura DIENVELOPE serão ignorados pelo efeito .

DIEFT_FFFADE

O gerador de efeitos para esse efeito dá suporte ao parâmetro fade. Se o gerador de efeitos não der suporte a fade, os parâmetros fade level e fade time da estrutura DIENVELOPE serão ignorados pelo efeito . Se DIEFT_FFATTACK ou DIEFT_FFFADE não estiver definido, o efeito não oferecerá suporte a um envelope e qualquer envelope fornecido será ignorado.

DIEFT_SATURATION

O gerador de efeitos para esse efeito dá suporte à saturação de efeitos de condição. Se o gerador de efeito não der suporte à saturação, a força gerada por uma condição será limitada apenas pela força máxima que o dispositivo pode gerar.

DIEFT_POSNEGCOEFFICIENTS

O gerador de efeitos para esse efeito dá suporte a dois valores de coeficiente para condições: um para o deslocamento positivo do eixo e outro para o deslocamento negativo do eixo. Se o dispositivo não der suporte a ambos os coeficientes, o coeficiente negativo na estrutura DICONDITION será ignorado e o coeficiente positivo será usado em ambas as direções.

DIEFT_POSNEGSATURATION

O gerador de efeitos para o efeito dá suporte a uma saturação máxima para saída de força positiva e negativa. Se o dispositivo não der suporte a ambos os valores de saturação, a saturação negativa na estrutura DICONDITION será ignorada e a saturação positiva será usada em ambas as direções.

dwStaticParams

Descreve os parâmetros compatíveis com o efeito . Por exemplo, se DIEP_ENVELOPE estiver definido, o efeito oferecerá suporte a um envelope. Todos os efeitos devem dar suporte a pelo menos DIEP_DURATION, DIEP_AXES e DIEP_TYPESPECIFICPARAMS. Não é um erro para um aplicativo tentar usar parâmetros de efeito que não são compatíveis com o dispositivo. Os parâmetros sem suporte são simplesmente ignorados. Esse valor pode ser zero, um ou mais dos seguintes sinalizadores:

DIEP_DURATION

Indica que o driver dá suporte à alteração da dwDuration (consulte a estrutura DIEFFECT) de um efeito quando o efeito não está sendo reproduzido.

DIEP_SAMPLEPERIOD

Indica que o driver dá suporte à alteração do dwSamplePeriod (consulte a estrutura DIEFFECT) de um efeito quando o efeito não está sendo reproduzido.

DIEP_GAIN

Indica que o driver dá suporte à alteração do dwGain (consulte a estrutura DIEFFECT) de um efeito quando o efeito não está sendo reproduzido.

DIEP_TRIGGERBUTTON

Indica que o driver dá suporte à alteração do dwTriggerButton (consulte a estrutura DIEFFECT) de um efeito quando o efeito não está sendo reproduzido.

DIEP_TRIGGERREPEATINTERVAL

Indica que o driver dá suporte à alteração de dwTriggerRepeatInterval (consulte a estrutura DIEFFECT) de um efeito quando o efeito não está sendo reproduzido.

DIEP_AXES

Indica que o driver dá suporte à alteração de cAxes e rgdwAxes (consulte a estrutura DIEFFECT) de um efeito quando o efeito não está sendo reproduzido.

DIEP_DIRECTION

Indica que o driver dá suporte à alteração de cAxes e rglDirection (consulte a estrutura DIEFFECT) de um efeito quando o efeito não está sendo reproduzido. (O membro dwFlags da estrutura DIEFFECT especifica, por meio de DIEFF_CARTESIAN ou DIEFF_POLAR, o sistema de coordenadas no qual os valores devem ser interpretados.)

DIEP_ENVELOPE

Indica que o driver dá suporte à alteração do lpEnvelope (consulte a estrutura DIEFFECT) de um efeito quando o efeito não está sendo reproduzido.

DIEP_TYPESPECIFICPARAMS

Indica que o driver dá suporte à alteração de cbTypeSpecificParams e lpTypeSpecificParams (consulte a estrutura DIEFFECT) de um efeito quando o efeito não está sendo reproduzido. Observe que o buffer apontado pelo membro lpTypeSpecificParams da estrutura DIEFFECT deve permanecer válido durante o tempo de vida do efeito (ou até que o parâmetro específico do tipo seja definido como um novo valor). DirectInput não faz uma cópia privada do buffer.

dwDynamicParams

Descreve os parâmetros do efeito que podem ser modificados enquanto o efeito está sendo reproduzido. Se um aplicativo tentar alterar um parâmetro enquanto o efeito estiver sendo reproduzido e o driver não der suporte à modificação desse efeito dinamicamente, o driver retornará DIERR_EFFECTPLAYING. Esse membro usa os mesmos sinalizadores que o membro dwStaticParams , exceto que os sinalizadores são interpretados como descrevendo se o driver pode modificar os parâmetros de um efeito enquanto o efeito está sendo reproduzido, em vez de enquanto ele não está sendo reproduzido.

dwCoords

Um ou mais sinalizadores do sistema de coordenadas (DIEFF_CARTESIAN, DIEFF_POLAR DIEFF_SPHERICAL) indicando quais sistemas de coordenadas são compatíveis com o efeito. Pelo menos um sistema de coordenadas deve ter suporte. Se um aplicativo tentar definir uma direção em um sistema de coordenadas sem suporte, o DirectInput o converterá automaticamente em um sistema de coordenadas ao qual o dispositivo dá suporte.

Comentários

Para obter informações sobre as estruturas DIEFFECT, DICONSTANTFORCE, DIRAMPFORCE, DIPERIODIC, DICONDITION, DICUSTOMFORCE e DIENVELOPE, consulte a seção DirectInput do SDK do DirectX.

Requisitos

Requisito Valor
Cabeçalho dinputd.h