XGameUiShowMessageDialogAsync
사용자 지정 가능한 메시지 대화 상자에 대한 UI를 표시합니다. 사용자가 누른 버튼의 인덱스가 결과에 포함됩니다.
구문
HRESULT XGameUiShowMessageDialogAsync(
XAsyncBlock* async,
const char* titleText,
const char* contentText,
const char* firstButtonText,
const char* secondButtonText,
const char* thirdButtonText,
XGameUiMessageDialogButton defaultButton,
XGameUiMessageDialogButton cancelButton
)
매개 변수
async _In_
형식: XAsyncBlock*
XAsyncRun에 전달된 XAsyncBlock에 대한 포인터입니다.
titleText _In_
형식: char*
메시지 대화 상자의 텍스트 제목입니다.
contentText _In_
형식: char*
메시지 대화 상자 내부에 표시된 텍스트입니다.
firstButtonText _In_opt_
형식: char*
메시지 대화 상자의 첫 번째 버튼에 표시된 텍스트입니다.
secondButtonText _In_opt_
형식: char*
메시지 대화 상자의 두 번째 버튼에 표시된 텍스트입니다.
thirdButtonText _In_opt_
형식: char*
메시지 대화 상자의 세 번째 버튼에 표시된 텍스트입니다.
defaultButton _In_
형식: XGameUiMessageDialogButton
메시지 대화 상자가 처음 표시될 때 기본적으로 선택되는 버튼을 나타냅니다.
cancelButton _In_
형식: XGameUiMessageDialogButton
취소 작업을 나타내는 버튼을 나타냅니다.
반환 값
형식: HRESULT
비동기 호출의 HRESULT 성공 또는 오류 코드입니다.
결과를 가져오려면 XAsyncBlock 콜백 내에서 또는 XAsyncBlock이 완료된 후 XGameUiShowMessageDialogResult를 호출합니다.
비고
다른 XGameUI* 함수와 마찬가지로 XGameUiShowMessageDialogAsync는 타이틀 파티션의 외부에서 해당 UI를 렌더링하고, 각 프레임이 디스플레이 장치로 보내지기 전에 타이틀 출력과 함께 결과가 구성됩니다. 즉, XGameUiShowMessageDialogAsync를 사용하여 게임이 고르게 렌더링되는지 여부에 대한 정보를 사용자에게 표시할 수 있습니다.
UI를 호출하면 게임이 제한 모드로 전환됩니다. 제한 모드에서는 호출된 UI의 백그라운드에 있는 동안 타이틀이 시스템 리소스를 적게 받게 됩니다. 타이틀의 제한 모드 및 기타 운영 모드에 대한 자세한 내용은 Xbox 게임 수명 주기(NDA 항목)권한 부여 필요를 참조하세요.
다음 예제 코드는 개발 시나리오에서 이 메서드를 사용하여 입력 대기 중인 UI 차단을 생성하는 방법을 보여줍니다. 이 방식은 특히 충돌 오류 위치에서 현재 실행을 일시 중지하고 충돌 위치를 보고하거나 개발자에게 디버거를 연결하도록 프롬프트할 때 유용할 수 있습니다.
if (FAILED(XGameRuntimeInitialize()))
return 1;
XTaskQueueHandle queue;
DX::ThrowIfFailed(
XTaskQueueCreate(XTaskQueueDispatchMode::ThreadPool, XTaskQueueDispatchMode::Immediate, &queue)
);
XAsyncBlock* ab = new XAsyncBlock;
ZeroMemory(ab, sizeof(XAsyncBlock));
ab->queue = queue;
// show dialog, wait for completion, get result.
XGameUiMessageDialogButton button;
if (SUCCEEDED(XGameUiShowMessageDialogAsync(ab, u8"Title String", u8"This is content text",
u8"Option #1", u8"Option #2", u8"Option #3",
XGameUiMessageDialogButton::First,
XGameUiMessageDialogButton::Third)) &&
SUCCEEDED(XAsyncGetStatus(ab, true)) &&
SUCCEEDED(XGameUiShowMessageDialogResult(ab, &button)))
{
DoSomethingWithResponse(button); // set breakpoint here to investigate
}
요구 사항
헤더: XGameUI.h
라이브러리: xgameruntime.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔
참고 항목
XGameUI
XGameUIShowMessageDialogResult
Xbox 게임 수명 주기(NDA 항목)권한 부여 필요