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


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

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

Синтаксис

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

Параметры

[in] width

Тип: UINT

Ширина поверхности в пикселях. Ограничивается уровнем функций устройства отрисовки, который был передан во время создания устройства DirectComposition.

[in] height

Тип: UINT

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

[in] pixelFormat

Тип: DXGI_FORMAT

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

[in] alphaMode

Тип: DXGI_ALPHA_MODE

Формат альфа-канала, если альфа-канал включен в формат пикселей. Может иметь одно из следующих значений.

Значение Значение
DXGI_ALPHA_MODE_UNSPECIFIED
Альфа-канал не указан. Это значение имеет тот же эффект, что и DXGI_ALPHA_MODE_IGNORE.
DXGI_ALPHA_MODE_PREMULTIPLIED
Цветовые каналы содержат значения, которые предварительно связаны с альфа-каналом.
DXGI_ALPHA_MODE_IGNORE
Альфа-канал следует игнорировать, а растровое изображение должно отображаться непрозрачно.

[out] surface

Тип: IDCompositionSurface**

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

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

Тип: HRESULT

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

Комментарии

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

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

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

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

IDCompositionDevice2::CreateVirtualSurface