Метод 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 |