IGameInput::GetPreviousReading
선택적으로 필터링된 입력 스트림에서 참조 측정값을 기반으로 이전 IGameInputReading을 검색합니다.
구문
HRESULT GetPreviousReading(
IGameInputReading* referenceReading,
GameInputKind inputKind,
IGameInputDevice* device,
IGameInputReading** reading
)
매개 변수
referenceReading _In_
형식: IGameInputReading*
이 참조를 읽기 전에 반환된 IGameInputReading
인터페이스를 순차적으로 읽습니다.
inputKind _In_
형식: GameInputKind
이전 측정값을 가져올 입력의 유형에 대한 필터. GameInputKind
인터페이스가 플래그 변수입니다. 여러 상수를 필터링하기 위해 여러 값을 결합할 수 있습니다.
여러 입력 유형이 지정된 경우, 최소 하나 이상의 입력 유형을 포함하는 모든 측정값이 일치하며 반환됩니다.
device _In_opt_
형식: IGameInputDevice*
이전 측정값을 가져올 특정 장치에 대한 필터.
읽기 _COM_Outptr_
형식: IGameInputReading**
반환된 IGameInputReading
인터페이스는 referenceReading
입력 이전의 순차적인 측정값입니다.
반환 값
형식: HRESULT
함수 결과입니다. null IGameInputDevice 포인터가 전달된 경우 이 포인터는 E_NOTIMPL을 반환합니다.
설명
GetNextReading 및 GetPreviousReading 메서드는 앱이 입력 기록 측정값을 차례로 살펴볼 수 있게 합니다.
referenceReading
이후에 측정값이 없거나 연결이 끊긴 장치에 대해 장치 필터가 제공된 경우 또는 너무 많은 시간이 경과하고 참조 측정값과 반환된 측정값이 입력 스트림 기록 버퍼를 떠난 경우 NULL
값과 오류 HRESULT
을(를) 반환합니다. 입력 스트림은 각 장치의 0.5초에 해당하는 측정값을 해당 내역 버퍼에 유지하므로 앱에서 경과된 시간 오류가 발생하는 경우는 많지 않을 것입니다.
다음 코드 예제는 특정 장치에서 모든 게임 패드 상태를 폴링하는 방법을 보여줍니다.
Microsoft::WRL::ComPtr<IGameInput> gameInput;
Microsoft::WRL::ComPtr<IGameInputDevice> gamepad;
Microsoft::WRL::ComPtr<IGameInputReading> prevReading;
void PollGamepadInput() noexcept
{
if (!prevReading)
{
if (SUCCEEDED(gameInput->GetCurrentReading(
GameInputKindGamepad,
nullptr,
&prevReading)))
{
prevReading->GetDevice(&gamepad);
// Application-specific code to process the initial reading
}
}
else
{
Microsoft::WRL::ComPtr<IGameInputReading> nextReading;
HRESULT hr = gameInput->GetNextReading(
prevReading.Get(),
GameInputKindGamepad,
gamepad.Get(),
&nextReading);
if (SUCCEEDED(hr))
{
// Application-specific code to process the next reading
prevReading = nextReading;
}
else if (hr != GAMEINPUT_E_READING_NOT_FOUND)
{
gamepad = nullptr;
prevReading = nullptr;
}
}
}
요건
헤더: GameInput.h
라이브러리: xgameruntime.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔
참고 항목
GameInput
GameInput 개요
IGameInput_GetCurrentReading
IGameInput_GetNextReading
IGameInput