DisplayDevice.CreateSimpleScanoutWithDirtyRectsAndOptions 方法

定义

创建一个 DisplayScanout 对象,该对象提供向 DisplaySource 呈现帧所需的参数的不可变封装。

public:
 virtual DisplayScanout ^ CreateSimpleScanoutWithDirtyRectsAndOptions(DisplaySource ^ source, DisplaySurface ^ surface, unsigned int subresourceIndex, unsigned int syncInterval, IIterable<RectInt32> ^ dirtyRects, DisplayScanoutOptions options) = CreateSimpleScanoutWithDirtyRectsAndOptions;
DisplayScanout CreateSimpleScanoutWithDirtyRectsAndOptions(DisplaySource const& source, DisplaySurface const& surface, uint32_t const& subresourceIndex, uint32_t const& syncInterval, IIterable<RectInt32> const& dirtyRects, DisplayScanoutOptions const& options);
public DisplayScanout CreateSimpleScanoutWithDirtyRectsAndOptions(DisplaySource source, DisplaySurface surface, uint subresourceIndex, uint syncInterval, IEnumerable<RectInt32> dirtyRects, DisplayScanoutOptions options);
function createSimpleScanoutWithDirtyRectsAndOptions(source, surface, subresourceIndex, syncInterval, dirtyRects, options)
Public Function CreateSimpleScanoutWithDirtyRectsAndOptions (source As DisplaySource, surface As DisplaySurface, subresourceIndex As UInteger, syncInterval As UInteger, dirtyRects As IEnumerable(Of RectInt32), options As DisplayScanoutOptions) As DisplayScanout

参数

source
DisplaySource

要显示内容的 DisplaySource

surface
DisplaySurface

主图面。

subresourceIndex
UInt32

unsigned int

uint32_t

与 Direct3D 的 子资源概念相关。 使用此索引,可以指定 DisplaySurface 中的哪个子资源应该用于扫描,如果有多个子资源。

拥有具有多个子资源的 DisplaySurface 的唯一方法是使用 isStereo 标志创建 DisplaySurface (请参阅 CreateWithProperties) ,或使用 IDisplayDeviceInterop 中的 API 打开 ID3D11Texture2D

subresourceindex 的最常见值为 0,表示不需要或没有子资源可用。

syncInterval
UInt32

unsigned int

uint32_t

一个整数,指定如何将框架的呈现与显示器的垂直空白同步。

SyncInterval == 0。 演示发生在显示器的下一个垂直空白上。 如果队列中存在值 = 0 的其他演示,则会丢弃这些呈现。 SyncInterval == 0,带有 DisplayScanoutOptions::AllowTearing。 演示文稿立即发生;与上一帧没有同步。 这可能会导致可见撕裂。 SyncInterval == 1 到 4。 同步显示至少 n 个 垂直空白的演示文稿。

dirtyRects

IIterable<RectInt32>

IEnumerable<RectInt32>

向图形驱动程序提供指示主要区域正在更改的提示的脏矩形。 驱动程序可能使用此方法来减少基础显示传输的带宽量,因此必须传递包含帧中所有已更改像素的有效矩形。

这是一种优化,如果 DirectDisplay 客户端未跟踪脏矩形,则可以传递 nulldirtyRect,操作系统会将其视为全帧脏 (这意味着主缓冲区中的所有像素都) 修改。 如果为 dirtyRect 传递空列表,则表示主缓冲区中没有更改任何像素,并且图形驱动程序可能会选择优化此主缓冲区的扫描输出。

options
DisplayScanoutOptions

可以为正在创建的 DisplayScanout 指定各种选项的标志。 DisplayScanoutOptions.AllowTearing 仅当 syncInterval 为 0 时有效。

返回

DisplayScanout 值。

Windows 要求

设备系列
Windows 11 (在 10.0.22000.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v14.0 中引入)

适用于