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