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


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

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

Синтаксис

HRESULT CreateSurface(
  [in]  UINT                 width,
  [in]  UINT                 height,
  [in]  DXGI_FORMAT          pixelFormat,
  [in]  DXGI_ALPHA_MODE      alphaMode,
  [out] IDCompositionSurface **surface
);

Параметры

[in] width

Ширина поверхности в пикселях.

[in] height

Высота поверхности в пикселях.

[in] pixelFormat

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

[in] alphaMode

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

[out] surface

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

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

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

Комментарии

Поверхность Microsoft DirectComposition — это прямоугольный массив пикселей, который можно связать с визуальным элементом для композиции.

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

Чтобы инициализировать поверхность пиксельными данными, используйте метод IDCompositionSurface::BeginDraw . Первый вызов этого метода должен охватывать всю поверхность, чтобы предоставить начальное значение для каждого пикселя. Последующие вызовы могут указывать небольшие под прямоугольники поверхности для обновления.

Этот метод завершится ошибкой, если ширина или высота превышают максимальный размер текстуры. Если в вашем сценарии требуются размеры, превышающие максимальный размер текстуры, используйте метод CreateVirtualSurface .

Поверхности 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