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


Функция DwmDxGetWindowSharedSurface

Извлекает общую поверхность DirectX, резервную для заданного окна. Эту поверхность можно записать в , чтобы обновить содержимое окна.

Синтаксис

HRESULT WINAPI DwmDxGetWindowSharedSurface(
  _In_     HWND        hwnd,
  _In_     LUID        luidAdapter,
  _In_opt_ HMONITOR    hmonitorAssociation,
  _In_     DWORD       dwFlags,
  _Inout_  DXGI_FORMAT *pfmtWindow,
  _Out_    HANDLE      *phDxSurface,
  _Out_    UINT64      *puiUpdateId
);

Параметры

hwnd

HWND, указывающий обновляемое окно.

luidAdapter

LUID адаптера, на котором должна находиться поверхность.

hmonitorAssociation

Зарезервировано.

dwFlags

Этот параметр может быть одним из следующих значений или побитовой комбинацией ИЛИ нескольких значений, если это уместно.

Значение Значение
DWM_REDIRECTION_FLAG_WAIT
0
Вызывает блокировку функции до тех пор, пока не будет пройдена вертикальная синхронизация (VSync) с момента последнего успешного вызова функции.
DWM_REDIRECTION_FLAG_SUPPORT_PRESENT_TO_GDI_SURFACE
0x10
Указывает, что вызывающее приложение может выступать на общей поверхности GDI.

pfmtWindow

На входных данных — требуемый формат поверхности. В выходных данных — фактический формат возвращаемой поверхности.

phDxSurface

На выходе — общий дескриптор поверхности.

puiUpdateId

В выходных данных — идентификатор обновления.

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

Эта функция может возвращать одно из этих значений.

Код возврата Описание
S_OK Вызов выполнен успешно, и вы должны обновить поверхность, обязательно передайте идентификатор обновления в D3DKMTRenderэлементе PresentHistoryTokenструктуры D3DKMT_RENDER при отправке обновления, а затем dwmDxUpdateWindowSharedSurface должен быть вызван с тем же идентификатором обновления. Обратите внимание, что dwmDxUpdateWindowSharedSurface следует вызывать независимо от того, была ли поверхность фактически обновлена.
DWM_S_GDI_REDIRECTION_SURFACE Вызов выполнен успешно, и необходимо обновить поверхность, вызвав D3DKMTPresent и задав для элемента PresentHistoryToken значение Model D3DKMT_PM_REDIRECTED_BLT и указав идентификатор обновления в элементе Blt объединения. Это значение возвращается только в том случае, если DWM_REDIRECTION_FLAG_SUPPORT_PRESENT_TO_GDI_SURFACE был указан в dwFlags.
DWM_E_ADAPTER_NOT_FOUND Недопустимое значение luidAdapter .
DWM_E_COMPOSITIONDISABLED DwM в настоящее время не включена, и приложению потребуется представить другой способ.

Комментарии

Этот API предназначен для реализации графического драйвера или среды выполнения. Приложение не может вызывать этот метод. Эта документация действительна только для Windows 7, и этот API не гарантирует существование и поведение аналогично в других версиях Windows. Эта функция отсутствует ни в одной библиотеке заголовков или статических ссылок и находится в порядковом номере 100 в dwmapi.dll.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Ни одна версия не поддерживается
Окончание поддержки клиентов Windows 7
Заголовок Н/Д
DLL Dwmapi.dll