XAppCaptureOpenScreenshotStream
스크린샷 스트림을 엽니다.
구문
HRESULT XAppCaptureOpenScreenshotStream(
const char* localId,
XAppCaptureScreenshotFormatFlag screenshotFormat,
XAppCaptureScreenshotStreamHandle* handle,
uint64_t* totalBytes
)
매개 변수
localId _In_
형식: char*
XAppCaptureTakeScreenshot을 호출한 후 XAppCaptureTakeScreenshotResult에 반환된 스크린샷의 로컬 ID입니다.
screenshotFormat _In_
형식: XAppCaptureScreenshotFormatFlag
XAppCaptureTakeScreenshot을 호출한 후 XAppCaptureTakeScreenshotResult에 반환된 스크린샷 형식 플래그입니다.
handle _Out_
형식: XAppCaptureScreenshotStreamHandle*
스트림을 연 결과로 반환된 스크린샷 스트림 핸들입니다.
totalBytes _Out_opt_
형식: uint64_t*
스트림의 총 바이트 수입니다.
반환 값
형식: HRESULT
함수 결과입니다.
설명
참고 항목
이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.
스크린샷은 게임 파티션에서 액세스할 수 없으므로, 사용자가 작성했거나 XAppCaptureTakeScreenshot으로 생성된 스크린샷을 검색하기 위해 스트림을 열어야 합니다. XAppCaptureTakeScreenshot은 해당 결과에 localID를 반환합니다. 이 결과는 적절한 스크린샷을 검색하기 위해 이 함수에서 사용됩니다. localID는 스크린샷이 디스크에 보존되는 한 유효합니다. 스크린샷이 저장되는 콘솔은 공간이 제한되어 있습니다. 할당된 공간이 채워지면 오래된 스크린샷이 삭제됩니다. 그 결과 스크린샷 열기 함수에서 localID가 누락될 수 있습니다. 스트림을 연 후에는 XAppCaptureReadScreenShotStream으로 스크린샷을 읽을 수 있습니다. 마지막으로 메모리 누수를 방지하기 위해 모든 스트림을 XAppCaptureCloseScreenshotStream으로 닫아야 합니다.
XAppCaptureTakeScreenshotResult takeScreenshotResult = {0};
XAppCaptureScreenshotStreamHandle handle = nullptr;
UINT64 totalBytesToRead = 0;
XAppCaptureScreenshotFormatFlag screenshotFormat = XAppCaptureScreenshotFormatFlag::SDR;
bool hdrAvailable = false;
/* ... obtain takeScreenshotResult with XAppCaptureTakeScreenshot. Refer to corresponding documentation ... */
hdrAvailable = static_cast<bool>(takeScreenshotResult.availableScreenshotFormats & XAppCaptureScreenshotFormatFlag::HDR);
/* Note: It is optional to obtain the HDR screenshot, if HDR is available. You will need to call XAppCaptureOpenScreenshotStream twice to obtain both SDR and HDR screenshots */
if (hdrAvailable)
{
screenshotFormat = XAppCaptureScreenshotFormatFlag::HDR;
}
if (FAILED_LOG(XAppCaptureOpenScreenshotStream(takeScreenshotResult.localId, screenshotFormat, &handle, &totalBytesToRead)))
{
return;
}
appLog.AddLog("%I64d bytes returned\n", totalBytesToRead);
/* You must always call XAppCaptureCloseScreenshotStream on an open XAppCaptureScreenshotStreamHandle to avoid a memory leak */
if (handle != nullptr)
{
XAppCaptureCloseScreenshotStream(handle);
}
요구 사항
헤더: XAppCapture.h
라이브러리: xgameruntime.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔
참고 항목
GameDVR 개요
XAppCapture 멤버
XAppCaptureReadScreenShotStream
XAppCaptureTakeScreenshot
XAppCaptureCloseScreenshotStream