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


Метод IDCompositionDevice2::CreateSurfaceFactory (dcomp.h)

Создает объект фабрики поверхности Microsoft DirectComposition, который можно использовать для создания других объектов поверхности DirectComposition или виртуальных поверхностей.

Синтаксис

HRESULT CreateSurfaceFactory(
  [in]  IUnknown                    *renderingDevice,
  [out] IDCompositionSurfaceFactory **surfaceFactory
);

Параметры

[in] renderingDevice

Указатель на устройство DirectX, используемое для создания объектов поверхности DirectComposition. Должен быть указателем на объект, реализующий интерфейсы IDXGIDevice или ID2D1Device . Этот параметр не должен иметь значение NULL.

[out] surfaceFactory

Вновь созданный объект фабрики surface. Этот параметр не должен иметь значение NULL.

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

Если функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT . Список кодов ошибок см. в разделе Коды ошибок DirectComposition .

Комментарии

Фабрика поверхностей позволяет приложению одновременно использовать несколько устройств DXGI или Direct2D с DirectComposition. Каждая фабрика поверхности имеет постоянную связь с одним устройством DXGI или Direct2D, но устройство DirectComposition может иметь любое количество поверхностных фабрик.

Каждая фабрика поверхности управляет ресурсами независимо от других. В частности, пулы DirectComposition позволяют снизить затраты на выделение поверхности и освобождение. Этот пул выполняется для каждой фабрики поверхности.

Если функция DCompositionCreateDevice2 вызывается с параметром renderingDevice , отличном от NULL, возвращенный объект устройства DirectComposition имеет неявную фабрику поверхности под крышками, связанную с данным устройством отрисовки. Эта неявная фабрика поверхностей используется для обслуживания методов IDCompositionDevice::CreateSurface, IDCompositionDevice::CreateVirtualSurface, IDCompositionDevice2::CreateSurface и IDCompositionDevice2::CreateVirtualSurface .

Поверхностный объект остается активным до тех пор, пока любая из созданных им поверхностей или виртуальных поверхностей остается в живых, либо непосредственно потому, что приложение содержит прямую ссылку, либо косвенно, так как одна или несколько таких поверхностей связаны с одним или несколькими визуальными объектами.

Требования

Требование Значение
Минимальная версия клиента Windows 8.1 [только классические приложения]
Минимальная версия сервера Windows Server 2012 R2 [только классические приложения]
Целевая платформа Windows
Header dcomp.h
Библиотека Dcomp.lib
DLL Dcomp.dll

См. также раздел

IDCompositionDevice2

IDCompositionDevice2::CreateSurface

IDCompositionDevice2::CreateVirtualSurface