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 |