Поделиться через


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 с несколькими подресурсами — создать DisplaySurface с флагом isStereo (см. Раздел CreateWithProperties) или открыть ID3D11Texture2D с помощью API в IDisplayDeviceInterop.

Наиболее распространенным значением для 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 не отслеживает грязное прямоугольников, вы можете передать null для dirtyRects, и операционная система будет считать это полнокадровой грязное (это означает, что все пиксели в основном буфере изменяются). Если передать пустой список для dirtyRects , это означает, что пиксели в основном буфере не были изменены, и графический драйвер может оптимизировать сканирование этого основного буфера.

options
DisplayScanoutOptions

Флаги, которые могут указывать различные параметры для создаваемого DisplayScanout . DisplayScanoutOptions.AllowTearing действителен, только если syncInterval имеет значение 0.

Возвращаемое значение

Значение DisplayScanout .

Требования к Windows

Семейство устройств
Windows 11 (появилось в 10.0.22000.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v14.0)

Применяется к