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


Метод IDCompositionSurfaceFactory::CreateVirtualSurface (dcomp.h)

Создает разреженную поверхность, которая может быть связана с одним или несколькими визуальными элементами для композиции.

Синтаксис

HRESULT CreateVirtualSurface(
  [in]  UINT                        initialWidth,
  [in]  UINT                        initialHeight,
  [in]  DXGI_FORMAT                 pixelFormat,
  [in]  DXGI_ALPHA_MODE             alphaMode,
  [out] IDCompositionVirtualSurface **virtualSurface
);

Параметры

[in] initialWidth

Ширина поверхности в пикселях. Максимальная ширина составляет 16 777 216 пикселей.

[in] initialHeight

Высота поверхности в пикселях. Максимальная высота составляет 16 777 216 пикселей.

[in] pixelFormat

Формат пикселей поверхности.

[in] alphaMode

Формат альфа-канала, если альфа-канал включен в формат пикселей. Это может быть один из DXGI_ALPHA_MODE_PREMULTIPLIED или DXGI_ALPHA_MODE_IGNORE. Его также можно DXGI_ALPHA_MODE_UNSPECIFIED, который интерпретируется как DXGI_ALPHA_MODE_IGNORE.

[out] virtualSurface

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

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

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

Комментарии

Созданный виртуальный объект поверхности находится в неинициализированном состоянии. Хотя она не инициализирована, поверхность не влияет на состав визуального дерева. Он ведет себя точно так же, как поверхность, инициализированная со 100 % прозрачными пикселями.

Чтобы инициализировать поверхность с пиксельными данными, используйте метод IDCompositionSurface::BeginDraw . Этот метод не только предоставляет пиксели для поверхности, но и выделяет фактическое дисковое пространство для этих пикселей. Выделение памяти сохраняется до тех пор, пока приложение не вернет часть памяти в систему. Приложение может освободить часть или всю выделенную память, вызвав метод IDCompositionVirtualSurface::Trim или IDCompositionVirtualSurface::Resize .

Поверхности Microsoft DirectComposition поддерживают следующие форматы пикселей:

  • DXGI_FORMAT_B8G8R8A8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM
  • DXGI_FORMAT_R16G16B16A16_FLOAT

Требования

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

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

IDCompositionDevice2::CreateSurface

IDCompositionDevice2::CreateVirtualSurface

IDCompositionSurfaceFactory

IDCompositionSurfaceFactory::CreateVirtualSurface