Skip to main content

XGameStreamingSetResolution

设置流的分辨率。

语法

参数

width   _In_
类型:uint32_t
要将流分辨率设置为的宽度。 height   _In_
类型:uint32_t
要将流分辨率设置为的高度。

返回值

类型:HRESULT 如果成功,则返回 S_OK;否则返回错误代码。

潜在错误

有关错误代码列表,请参阅错误代码

备注

此 API 使用非标准分辨率时,仅在 XBOX Game Streaming 服务器、XBOX Series X Dev Kit 和 XBOX Series S Test Kit 上会成功。标准分辨率(如 720p 和 1080p)无论硬件如何都会成功。原因是零售版 XBOX 只能通过 Remote Play 进行流式处理,并且可能仍在向电视输出视频,因此使用非标准分辨率会产生失真的图像。 宽度和高度必须至少为 640x360,最大值可以在 XGameStreamingDisplayDetailsmaxWidthmaxHeight 字段中找到,可以通过 XGameStreamingGetDisplayDetails 检索。 width * height 计算得出的最大像素数必须小于或等于编码器的最大值。可以使用 XGameStreamingGetDisplayDetails API 找到最大值。此值将来可能会增大。 widthheight 必须能被 8 整除。 可以根据需要频繁调用此 API,但是流分辨率每 200 毫秒只能更改一次。在该 200 毫秒时间窗口内发生的任何调用中的最后一次分辨率将在该窗口过后应用。 请注意,此 API 将为所有已连接的客户端设置流的分辨率。这意味着必须特别考虑当连接了多个客户端时,游戏的最佳选项是什么。这可能意味着使用标准的 16:9 分辨率,也可能意味着尝试找到最适合所有客户端的分辨率。
更改流分辨率会修改 ID3D12CommandQueue::PresentX 中的视图矩形缩放。D3D12XBOX_PRESENT_PLANE_PARAMETERS.pDestPlacementBase 的 0.0-1.0 缩放因子引用传递给 XGameStreamingSetResolution 的高度和宽度,而不是它们通常引用的标准 1920x1080 或 3840x2160 分辨率。

示例

要求

标头: xgamestreaming.h
库: xgameruntime.lib
支持的平台: Windows、XBOX One 系列主机和 XBOX Series 主机

另请参阅

XGameStreaming
XGameStreamingDisplayDetails
XGameStreamingGetDisplayDetails
自定义分辨率概述
最后修改于 2026年8月24日