Метод IDCompositionTexture::GetAvailableFence (dcomp.h)
Важно!
Некоторые сведения относятся к предварительной версии продукта, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Извлекает пару "забор/значение" синхронизации Direct3D, которая указывает, когда текстура композиции станет доступной, если эта информация известна. Возвращаемое значение зависит от состояния доступности текстуры композиции. Состояние доступности указывает, можно ли и когда безопасно отрисовывать текстуру композиции.
Сведения о состояниях доступности, их описаниях и поведении GetAvailableFence для каждого состояния см. в разделе Примечания.
Если текстура композиции становится доступной, приложение должно быть осторожным, чтобы выполнить отрисовку только к точному значению текстуры Direct3D, к которому оно относится.
Синтаксис
HRESULT GetAvailableFence(
UINT64 *fenceValue,
REFIID iid,
void **availableFence
);
Параметры
fenceValue
Тип: _Out_ UINT64*
Возвращаемое значение ограждения.
iid
Тип: _In_ REFIID
Идентификатор интерфейса.
availableFence
Тип: _Outptr_result_maybenull_ void**
Возвращаемое доступное ограждение или nullptr
в зависимости от состояния доступности текстуры композиции. Дополнительные сведения см. в разделе Примечания .
Возвращаемое значение
Тип: HRESULT
Если функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Ниже приведены состояния доступности, их описания и поведение GetAvailableFence для каждого состояния.
немедленно доступен. Текстура композиции не отображается диспетчером окон рабочего стола (DWM), а фиксации приложений не помещаются в очередь, чтобы сделать это. Таким образом, текстура композиции безопасна для немедленного написания. GetAvailableFence возвращает доступное ограждение, которое уже будет соответствовать возвращаемому значению.
скоро будет доступен. Текстура композиции в настоящее время отображается DWM, но приложение удалило ее из визуального дерева и зафиксировало в DWM. Однако эта фиксация еще не была обработана DWM, поэтому DWM еще не прекратил отображение текстуры. Приложение может отрисовывать текстуру, которая скоро станет доступной, если эта работа синхронизирована с доступным ограждением текстуры. GetAvailableFence возвращает доступное ограждение. Текстура композиции будет безопасно записывать в, когда это ограждение будет сигнализировать о возвращаемом значении.
недоступно. Текстура композиции в настоящее время отображается dwm или поставлена в очередь для отображения DWM. Поэтому ваше приложение не должно выполнять запись в него. GetAvailableFence возвращает вместо nullptr
ограждения.
Доступный забор описывает доступность одной текстуры композиции. Несколько текстур композиции могут ссылаться на одну и ту же текстуру Direct3D, если каждая текстура композиции занимает другую (неперекрывающуюся) область более крупной текстуры Direct3D, указав исходный прямоугольник (метод, известный как атласирование). В таком случае, если текстура композиции становится доступной, ваше приложение должно быть осторожным, чтобы выдавать отрисовку только к точному значению текстуры Direct3D; чтобы не вмешиваться в пиксели, которые могут принадлежать другим текстурам композиции (которые могут быть недоступны). Это связано с тем, что разные области одной текстуры Direct3D могут иметь разные состояния доступности.
Требования
Требование | Значение |
---|---|
Заголовок | dcomp.h |