DirectInput DirectInput C/C++ 레퍼런스 구조체 DIOBJECTDATAFORMAT [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
IDirectInputDevice8::SetDataFormat 메서드로 사용하기 위한 장치 개체의 데이터 형식을 나타낸다.
구문
typedef struct DIOBJECTDATAFORMAT { const GUID * pguid; DWORD dwOfs; DWORD dwType; DWORD dwFlags; } DIOBJECTDATAFORMAT, *LPDIOBJECTDATAFORMAT; typedef const DIOBJECTDATAFORMAT *LPCDIOBJECTDATAFORMAT;
멤버
- pguid
- 축, 버튼, 또는 그 외의 입력 소스에 대한 일의의 식별자. 데이터 형식의 요구시에 이 멤버를 NULL 로 하면 임의의 타입의 개체를 허가하는 것을 나타낸다.
- dwOfs
- 입력 소스의 데이터를 저장 하는 데이터 패킷내의 오프셋(offset). 이 값은, 축 등,DWORD 사이즈의 데이터에 맞도록(듯이), 4 의 배수여야한다. 버튼의 경우는, 바이트 정렬이라도 좋다.
- dwType
- 개체를 기술하는 장치 타입. 개체의 종류 (축, 버튼등)를 나타내는 이하의 플래그의 편성이며, 중앙의 16 비트는, 개체 인스턴스 번호를 저장 한다. 데이터 형식의 요구시에, 인스턴스 부분에 DIDFT_ANYINSTANCE 를 설정 하면, 임의의 인스턴스를 허가할 수 있다. 또,DIDFT_MAKEINSTANCE (n)로 설정 하면, 요구를 인스턴스 n 로 한정할 수 있다. 「주의」의 예를 참조할것.
- DIDFT_ABSAXIS
- IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 절대축이어야 한다.
- DIDFT_AXIS
- IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 절대축 또는 상대축이어야 한다.
- DIDFT_BUTTON
- IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 푸쉬 버튼 또는 토글버튼이어야 한다.
- DIDFT_FFACTUATOR
- IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, force feedback 액츄에이터를 포함해야 한다. 즉, 포스를 이 개체에 적용할 수 있을 필요가 있다.
- DIDFT_FFEFFECTTRIGGER
- IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 유효한 force feedback 이펙트 방아쇠여야 한다.
- DIDFT_POV
- IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 시점 콘트롤러여야 한다.
- DIDFT_PSHBUTTON
- IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 푸쉬 버튼이어야 한다.
- DIDFT_RELAXIS
- IDirectInputDevice8::SetDataFormat 에 의해 선택된 개체는, 상대축이어야 한다.
- DIDFT_TGLBUTTON
- IDirectInputDevice8::SetDataFormat 에 의해 선택된 개체는, 토글버튼이어야 한다.
- DIDFT_VENDORDEFINED
- IDirectInputDevice8::SetDataFormat 에 의해 선택된 개체는, 메이커 정의의 타입이어야 한다.
- dwFlags
- 제로 또는 다음의 몇개의 값을 지정한다.
- DIDOI_ASPECTACCEL
- IDirectInputDevice8::SetDataFormat 로 선택한 개체는, 가속도 정보를 보고해야 한다.
- DIDOI_ASPECTFORCE
- IDirectInputDevice8::SetDataFormat 로 선택한 개체는, 포스 정보를 보고해야 한다.
- DIDOI_ASPECTPOSITION
- IDirectInputDevice8::SetDataFormat 로 선택한 개체는, 위치 정보를 보고해야 한다.
- DIDOI_ASPECTVELOCITY
- IDirectInputDevice8::SetDataFormat 로 선택한 개체는, 속도 정보를 보고해야 한다.
주의
데이터 형식은, 각 개체 (축, 버튼등)가 1 개씩 보유하는 복수의 DIOBJECTDATAFORMAT 구조체로부터 완성된다. 이러한 구조체의 배열은,IDirectInputDevice8::SetDataFormat 에게 건네지는 DIDATAFORMAT 구조체에 저장 된다. 애플리케이션은, 보통,DIOBJECTDATAFORMAT 구조체로부터 완성되는 배열을 생성 할 필요는 없고,DIOBJECTDATAFORMAT 에 사전 정의되고 있는 설정값인 c_dfDIMouse,c_dfDIMouse2,c_dfDIKeyboard,c_dfDIJoystick,c_dfDIJoystick2 등의 데이터 형식 데이터의 어느쪽이든을 사용할 수 있다.
다음의 개체 데이터 형식은, Microsoft® DirectInput® 가 최초의 사용 가능한 축을 선택해, 그 장치 데이터의 오프셋(offset) 4 의 위치에 있는 값을 DWORD 로 보고하지 않으면 안 되는 것을 지정하고 있다.
DIOBJECTDATAFORMAT dfAnyAxis = { 0, // Wildcard 4, // Offset DIDFT_AXIS | DIDFT_ANYINSTANCE, // Any axis is okay. 0, // Ignore aspect };다음의 개체 데이터 형식은, 장치의 x 축을 장치 데이터의 오프셋(offset) 12 의 위치에 DWORD 로 저장 하도록(듯이) 지정하고 있다. 장치가 복수의 x 축을 가지고 있는 경우는, 최초로 사용 가능한 축이 선택된다.
DIOBJECTDATAFORMAT dfAnyXAxis = { &GUID_XAxis, // Must be an X axis 12, // Offset DIDFT_AXIS | DIDFT_ANYINSTANCE, // Any X axis is okay. 0, // Ignore aspect };다음의 개체 데이터 형식은, DirectInput 가 최초로 사용 가능한 버튼을 선택해, 장치 데이터의 오프셋(offset) 16 의 위치에 있는 바이트의 상위 비트의 값을 보고하도록(듯이) 지정하고 있다.
DIOBJECTDATAFORMAT dfAnyButton = { 0, // Wildcard 16, // Offset DIDFT_BUTTON | DIDFT_ANYINSTANCE, // Any button is okay. 0, // Ignore aspect };다음의 개체 데이터 형식은, 장치의 버튼 0 을 장치 데이터의 오프셋(offset) 18 의 위치에 저장 되고 있는 바이트의 상위 비트로서 보고하도록(듯이) 지정하고 있다.
장치에 버튼 0 이 없는 경우, 이 데이터 형식의 설정은 실패한다.
DIOBJECTDATAFORMAT dfButton0 = { 0, // Wildcard 18, // Offset DIDFT_BUTTON | DIDFT_MAKEINSTANCE(0), // Button zero 0, // Ignore aspect };
구조체의 정보
헤더 dinput.h 최저한의 operating system Windows 98