DIEFFECTATTRIBUTES 구조체(dinputd.h)
DIEFFECTATTRIBUTES 구조체는 힘 피드백 디바이스에서 지원하는 각 효과에 대한 레지스트리 키의 "특성" 값에 포함된 정보를 설명합니다.
구문
typedef struct DIEFFECTATTRIBUTES {
DWORD dwEffectId;
DWORD dwEffType;
DWORD dwStaticParams;
DWORD dwDynamicParams;
DWORD dwCoords;
} DIEFFECTATTRIBUTES, *LPDIEFFECTATTRIBUTES;
멤버
dwEffectId
효과를 식별하기 위해 드라이버에 전달되는 임의의 32비트 값을 지정합니다. 드라이버는 IDirectInputEffectDriver::D ownloadEffect 메서드에 대한 dwEffectID 매개 변수로 이 값을 받습니다.
dwEffType
효과의 범주 및 기능을 설명합니다. 이 멤버는 다음 값 중 하나로 구성되어야 합니다.
DIEFT_CONSTANTFORCE
효과는 상수 힘 효과를 나타냅니다. 상수 힘 효과를 만들거나 수정할 때 DIEFFECT 구조체의 lpvTypeSpecificParams 멤버는 DICONSTANTFORCE 구조를 가리키고 DIEFFECT 구조체의 cbTypeSpecificParams 멤버는 sizeof(DICONSTANTFORCE)로 설정됩니다.
DIEFT_RAMPFORCE
효과는 램프 힘 효과를 나타냅니다. 램프 힘 효과를 만들거나 수정할 때 DIEFFECT 구조체의 lpvTypeSpecificParams 멤버는 DIRAMPFORCE 구조를 가리키고 DIEFFECT 구조체의 cbTypeSpecificParams 멤버는 sizeof(DIRAMPFORCE)로 설정됩니다.
DIEFT_PERIODIC
효과는 주기적인 효과를 나타냅니다. 주기적 효과를 만들거나 수정할 때 DIEFFECT 구조체의 lpvTypeSpecificParams 멤버는 DIPERIODIC 구조를 가리키고 DIEFFECT 구조체의 cbTypeSpecificParams 멤버는 sizeof(DIPERIODIC)로 설정됩니다.
DIEFT_CONDITION
효과는 조건을 나타냅니다. 조건을 만들거나 수정할 때 DIEFFECT 구조체의 lpvTypeSpecificParams 멤버는 DICONDITION 구조체의 배열(정확히 하나의 DICONDITION 구조 또는 축당 하나의 DICONDITION 구조)을 가리키고 DIEFFECT 구조체의 cbTypeSpecificParams 멤버는 각각 sizeof(DICONDITION) 또는 cAxis * sizeof(DICONDITION)로 설정됩니다. cbTypeSpecificParams가 sizeof(DICONDITION)로 설정된 경우 효과는 회전할 수 있는 단일 축 조건을 나타냅니다. cbTypeSpecificParams가 cAxis * sizeof(DICONDITION)로 설정된 경우 효과는 각 DICONDITION 구조가 rgdwAxes 목록의 해당 축에 적용되는 다중 축 조건을 나타냅니다.
DIEFT_CUSTOMFORCE
효과는 사용자 지정 힘 효과를 나타냅니다. 사용자 지정 힘 효과를 만들거나 수정할 때 DIEFFECT 구조체의 lpvTypeSpecificParams 멤버는 DICUSTOMFORCE 구조를 가리키고 DIEFFECT 구조체의 cbTypeSpecificParams 멤버는 sizeof(DICUSTOMFORCE)로 설정됩니다.
DIEFT_HARDWARE
효과는 하드웨어별 효과를 나타냅니다. 하드웨어 공급업체는 효과를 사용하는 방법에 대한 추가 설명서를 애플리케이션 기록기에 제공해야 합니다. 범주 코드 외에도 dwEffTtype 멤버는 효과의 기능을 설명하는 다음 플래그 중 0개, 하나 이상을 포함할 수도 있습니다.
DIEFT_FFATTACK
이 효과의 효과 생성기는 공격 봉투 매개 변수를 지원합니다. 효과 생성기가 공격을 지원하지 않는 경우 DIENVELOPE 구조의 공격 수준 및 공격 시간 매개 변수는 효과에 의해 무시됩니다.
DIEFT_FFFADE
이 효과의 효과 생성기는 페이드 매개 변수를 지원합니다. 효과 생성기가 페이드를 지원하지 않는 경우 DIENVELOPE 구조체의 페이드 수준 및 페이드 시간 매개 변수는 효과에 의해 무시됩니다. DIEFT_FFATTACK 또는 DIEFT_FFFADE 설정되지 않은 경우 효과는 봉투를 지원하지 않으며 제공된 봉투는 무시됩니다.
DIEFT_SATURATION
이 효과의 효과 생성기는 조건 효과의 채도를 지원합니다. 효과 생성기가 포화를 지원하지 않는 경우 조건에 의해 생성된 힘은 디바이스가 생성할 수 있는 최대 힘에 의해서만 제한됩니다.
DIEFT_POSNEGCOEFFICIENTS
이 효과의 효과 생성기는 조건에 대해 두 계수 값을 지원합니다. 하나는 축의 양수 변위 값이고 다른 하나는 축의 음수 변위 값입니다. 디바이스가 두 계수를 모두 지원하지 않는 경우 DICONDITION 구조의 음수 계수가 무시되고 양수는 양방향으로 사용됩니다.
DIEFT_POSNEGSATURATION
효과에 대한 효과 생성기는 양수 및 음수 힘 출력 모두에 대한 최대 채도를 지원합니다. 디바이스가 두 채도 값을 모두 지원하지 않는 경우 DICONDITION 구조의 음수 채도가 무시되고 양수 채도가 양방향으로 사용됩니다.
dwStaticParams
효과에서 지원하는 매개 변수에 대해 설명합니다. 예를 들어 DIEP_ENVELOPE 설정된 경우 효과는 봉투를 지원합니다. 모든 효과는 최소 DIEP_DURATION, DIEP_AXES 및 DIEP_TYPESPECIFICPARAMS 지원해야 합니다. 애플리케이션이 디바이스에서 지원하지 않는 효과 매개 변수를 사용하려고 시도하는 것은 오류가 아닙니다. 지원되지 않는 매개 변수는 무시됩니다. 이 값은 다음 플래그 중 0개, 하나 이상일 수 있습니다.
DIEP_DURATION
효과가 재생되지 않을 때 드라이버가 효과의 dwDuration(DIEFFECT 구조 참조) 변경을 지원한다는 것을 나타냅니다.
DIEP_SAMPLEPERIOD
효과가 재생되지 않을 때 드라이버가 효과의 dwSamplePeriod(DIEFFECT 구조 참조) 변경을 지원한다는 것을 나타냅니다.
DIEP_GAIN
효과가 재생되지 않을 때 드라이버가 효과의 dwGain 변경(DIEFFECT 구조 참조)을 지원한다는 것을 나타냅니다.
DIEP_TRIGGERBUTTON
효과가 재생되지 않을 때 드라이버가 효과의 dwTriggerButton 변경(DIEFFECT 구조 참조)을 지원한다는 것을 나타냅니다.
DIEP_TRIGGERREPEATINTERVAL
효과가 재생되지 않을 때 드라이버가 효과의 dwTriggerRepeatInterval(DIEFFECT 구조 참조)을 변경할 수 있음을 나타냅니다.
DIEP_AXES
효과가 재생되지 않을 때 드라이버가 효과의 cAxes 및 rgdwAxes(DIEFFECT 구조 참조) 변경을 지원한다는 것을 나타냅니다.
DIEP_DIRECTION
효과가 재생되지 않을 때 드라이버가 효과의 cAxes 및 rglDirection(DIEFFECT 구조 참조) 변경을 지원함을 나타냅니다. (DIEFFECT 구조체의 dwFlags 멤버는 DIEFF_CARTESIAN 또는 DIEFF_POLAR 통해 값을 해석해야 하는 좌표계를 지정합니다.)
DIEP_ENVELOPE
효과가 재생되지 않을 때 드라이버가 효과의 lpEnvelope(DIEFFECT 구조 참조) 변경을 지원한다는 것을 나타냅니다.
DIEP_TYPESPECIFICPARAMS
효과가 재생되지 않을 때 드라이버가 효과의 cbTypeSpecificParams 및 lpTypeSpecificParams (DIEFFECT 구조 참조) 변경을 지원함을 나타냅니다. DIEFFECT 구조체의 lpTypeSpecificParams 멤버가 가리키는 버퍼는 효과의 수명(또는 형식별 매개 변수가 새 값으로 설정될 때까지)에 대해 유효한 상태를 유지해야 합니다. DirectInput은 버퍼의 프라이빗 복사본을 만들지 않습니다.
dwDynamicParams
효과가 재생되는 동안 수정할 수 있는 효과의 매개 변수를 설명합니다. 효과가 재생되는 동안 애플리케이션이 매개 변수를 변경하려고 시도하고 드라이버가 동적으로 해당 효과 수정을 지원하지 않는 경우 드라이버는 DIERR_EFFECTPLAYING 반환합니다. 이 멤버는 dwStaticParams 멤버와 동일한 플래그를 사용합니다. 단, 플래그는 재생되지 않는 동안이 아니라 효과가 재생되는 동안 드라이버가 효과의 매개 변수를 수정할 수 있는지 여부를 설명하는 것으로 해석됩니다.
dwCoords
효과에서 지원되는 좌표계를 나타내는 하나 이상의 좌표계 플래그(DIEFF_CARTESIAN, DIEFF_POLAR, DIEFF_SPHERICAL)입니다. 하나 이상의 좌표계를 지원해야 합니다. 애플리케이션이 지원되지 않는 좌표계에서 방향을 설정하려고 하면 DirectInput은 자동으로 디바이스에서 지원하는 좌표계로 변환합니다.
설명
DIEFFECT, DICONSTANTFORCE, DIRAMPFORCE, DIPERIODIC, DICONDITION, DICUSTOMFORCE 및 DIENVELOPE 구조에 대한 자세한 내용은 DirectX SDK의 DirectInput 섹션을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | dinputd.h |