Partager via


IDCompositionDevice2 ::CreateVirtualSurface, méthode (dcomp.h)

Crée une surface peu remplie qui peut être associée à un ou plusieurs visuels pour la composition.

Syntaxe

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

Paramètres

[in] initialWidth

Type : UINT

Largeur de la surface, en pixels. La largeur maximale est de 16 777 216 pixels.

[in] initialHeight

Type : UINT

Hauteur de la surface, en pixels. La hauteur maximale est de 16 777 216 pixels.

[in] pixelFormat

Type : DXGI_FORMAT

Format de pixel de la surface.

[in] alphaMode

Type : DXGI_ALPHA_MODE

Signification du canal alpha, si le format de pixel contient un canal alpha. Ce peut être l’une des valeurs suivantes :

Valeur Signification
DXGI_ALPHA_MODE_UNSPECIFIED
Le canal alpha n’est pas spécifié. Cette valeur a le même effet que DXGI_ALPHA_MODE_IGNORE.
DXGI_ALPHA_MODE_PREMULTIPLIED
Les canaux de couleurs contiennent des valeurs qui sont prémultipliées avec le canal alpha.
DXGI_ALPHA_MODE_IGNORE
Le canal alpha doit être ignoré et la bitmap doit être rendue de manière opaque.

[out] virtualSurface

Type : IDCompositionVirtualSurface**

Objet surface nouvellement créé. Ce paramètre ne doit pas être NULL.

Valeur retournée

Type : HRESULT

Si la fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT. Pour obtenir la liste des codes d’erreur, consultez Codes d’erreur DirectComposition .

Remarques

Une surface éparse Microsoft DirectComposition est un objet logique qui se comporte comme un tableau rectangulaire de pixels qui peut être associé à un visuel pour la composition. La surface n’est pas nécessairement soutenue par une vidéo physique ou une mémoire système pour chacun de ses pixels. L’application peut réaliser ou virtualiser des parties de la surface logique à différents moments.

Un objet surface nouvellement créé est dans un état non initialisé. Bien qu’elle soit non initialisée, la surface n’a aucun effet sur la composition de l’arborescence visuelle. Il se comporte exactement comme une surface initialisée avec 100 % de pixels transparents.

Pour initialiser la surface avec des données de pixels, utilisez les méthodes IDCompositionSurface ::BeginDraw et IDCompositionSurface ::EndDraw . Cette méthode fournit non seulement des pixels pour la surface, mais elle alloue également de l’espace de stockage réel pour ces pixels. L’allocation de mémoire persiste jusqu’à ce que l’application retourne une partie de la mémoire au système. L’application peut libérer une partie ou la totalité de la mémoire allouée en appelant la méthode IDCompositionVirtualSurface ::Trim .

Les surfaces DirectComposition prennent en charge les formats de pixels suivants :

  • DXGI_FORMAT_B8G8R8A8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM
  • DXGI_FORMAT_R16G16B16A16_FLOAT
Cette méthode échoue si initialWidth ou initialHeight dépasse 16 777 216 pixels.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.1 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête dcomp.h
Bibliothèque Dcomp.lib
DLL Dcomp.dll

Voir aussi

IDCompositionDevice2

IDCompositionDevice ::CreateSurface