Partager via


Structure FORMATOP (d3dumddi.h)

La structure FORMATOP décrit un format de surface et des opérations qui peuvent être effectuées avec une telle surface.

Syntaxe

typedef struct _FORMATOP {
  [in]  D3DDDIFORMAT Format;
  [out] UINT         Operations;
  [out] UINT         FlipMsTypes;
  [out] UINT         BltMsTypes;
  [out] UINT         PrivateFormatBitCount;
} FORMATOP;

Membres

[in] Format

Valeur D3DDDIFORMAT-typée qui indique le format de pixel de la surface.

[out] Operations

Un OU valide des indicateurs suivants qui indiquent les opérations qui peuvent être effectuées sur des surfaces avec le format de pixel spécifié dans le Format membre. Certains des indicateurs suivants impliquent que d’autres indicateurs doivent être utilisés. Si un pilote définit un indicateur qui implique d’autres indicateurs, il n’est pas nécessaire de définir les indicateurs implicites et le runtime Direct3D détermine l’utilisation des indicateurs implicites.

FORMATOP_TEXTURE (0x00000001L)

Les surfaces du format de pixel spécifié peuvent être utilisées comme textures mappées par MIP.

FORMATOP_VOLUMETEXTURE (0x00000002L)

Les surfaces de ce format peuvent être utilisées comme textures de volume. Notez que cet indicateur est indépendant de FORMATOP_TEXTURE. Par conséquent, un format de pixel peut être utilisé pour les textures de volume et non pour les textures MIP conventionnelles mappées.

FORMATOP_CUBETEXTURE (0x000000004L)

Les surfaces de ce format peuvent être utilisées comme textures de carte d’environnement cube. Notez que cet indicateur est indépendant de FORMATOP_TEXTURE. Par conséquent, un format de pixel peut être utilisé pour les textures de carte d’environnement cube et non pour les textures MIP conventionnelles mappées.

FORMATOP_OFFSCREEN_RENDERTARGET (0x00000008L)

Les surfaces de ce format peuvent être utilisées comme cibles de rendu hors écran, quel que soit le format de pixel du mode d’affichage, si le format pixel du mode d’affichage actuel a été signalé avec FORMATOP_DISPLAYMODE et FORMATOP_3DACCELERATION. Si le format de pixel du mode d’affichage actuel n’a pas défini ces indicateurs, aucune accélération 3D n’est disponible dans ce mode même si la cible de rendu est hors écran. L’indicateur de FORMATOP_OFFSCREEN_RENDERTARGET peut être combiné avec FORMATOP_TEXTURE pour indiquer que l’appareil peut s’afficher sur des textures du format de pixel spécifié.

L’indicateur FORMATOP_OFFSCREEN_RENDERTARGET implique également les indicateurs FORMATOP_SAME_FORMAT_RENDERTARGET et FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET.

FORMATOP_SAME_FORMAT_RENDERTARGET (0x00000010L)

Les surfaces de ce format peuvent être utilisées comme cibles de rendu, mais uniquement lorsque le format de pixel de la surface correspond au format pixel du mode d’affichage actuel. Cet indicateur ne s’applique pas seulement aux cibles de rendu hors écran, mais peut être spécifié sur les formats de pixels des modes d’affichage pour indiquer la fonctionnalité de cible de rendu. Cet indicateur peut être combiné avec FORMATOP_TEXTURE pour indiquer que l’appareil peut s’afficher en textures du format de pixel spécifié.

L’indicateur FORMATOP_SAME_FORMAT_RENDERTARGET implique également l’indicateur de FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET.

FORMATOP_ZSTENCIL (0x00000040L)

Les surfaces de ce format peuvent être utilisées comme mémoires tampons Z/gabarit, mais uniquement si la profondeur de la surface Z/gabarit correspond à la profondeur de couleur de la cible de rendu à laquelle la mémoire tampon de profondeur est attachée. Utilisez le pas de pixel lorsque vous décidez d’une correspondance entre Z/stencil et profondeur de mémoire tampon de couleur.

FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH (0x00000080L)

Les surfaces de ce format peuvent être utilisées comme mémoires tampons Z/gabarit, quelle que soit la profondeur de couleur de la cible de rendu à laquelle la surface est attachée.

L’indicateur FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH implique également l’indicateur FORMATOP_ZSTENCIL.

FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET (0x00000100L)

Les surfaces de ce format peuvent être utilisées comme cibles de rendu si le mode d’affichage actuel est la même profondeur et que le canal alpha est ignoré. Par exemple, si l’appareil peut s’afficher sur A8R8G8B8 lorsque le mode d’affichage est X8R8G8B8, l’entrée de liste des opérations de format pour A8R8G8B8 doit avoir cet indicateur défini.

FORMATOP_DISPLAYMODE (0x000004000L)

Mode d’affichage avec ce format de pixel pris en charge par le modèle de pilote (y compris Flip). Cet indicateur ne doit pas être défini sur les formats alpha.

FORMATOP_3DACCELERATION (0x000008000L)

L’accélérateur graphique peut prendre en charge un certain niveau d’accélération Microsoft Direct3D lorsqu’il est en mode d’affichage avec ce format de pixel, et le pilote peut créer un contexte dans ce mode (pour un format cible de rendu). Cet indicateur ne peut être utilisé que lorsque le mode d’affichage de rapports est mis en forme (en spécifiant le FORMATOP_DISPLAYMODE). Cet indicateur ne doit pas être utilisé pour signaler les formats de cibles de rendu hors écran.

FORMATOP_PIXELSIZE (0x00001000L)

Le pilote a rempli les bits par pixel pour le format du membre PrivateFormatBitCount.

Si le pilote requiert que les surfaces managées et les textures utilisent un format privé (format qui peut être traité par le pilote, mais pas en mode natif par le runtime Direct3D), le pilote doit spécifier FORMATOP_PIXELSIZE et la taille de pixel dans PrivateFormatBitCount.

FORMATOP_CONVERT_TO_ARGB (0x00002000L)

Les surfaces sources de ce format peuvent être converties en n’importe quelle surface cible avec un format de pixel RVB dont l’indicateur de FORMATOP_MEMBEROFGROUP_ARGB est spécifié.

FORMATOP_OFFSCREENPLAIN (0x000040000L)

Le pilote peut s’étirer vers et à partir des surfaces de remplissage de couleur de ce format.

FORMATOP_SRGBREAD (0x000080000L)

Les surfaces de ce format peuvent être lues en tant que sRVBtextures mises en forme (autrement dit, l’échantillonneur linéifie les données recherchées).

FORMATOP_BUMPMAP (0x00010000L)

Les surfaces de ce format peuvent être utilisées comme textures de carte d’environnement de choc. Notez que cet indicateur est indépendant de FORMATOP_TEXTURE. Par conséquent, un format de pixel peut être utilisé pour les textures de carte d’environnement de choc et non pour les textures MIP conventionnelles mappées.

FORMATOP_DMAP (0x00020000L)

L’échantillonneur de carte de déplacement peut échantillonner des surfaces de ce format.

FORMATOP_NOFILTER (0x00040000L)

Les surfaces de ce format ne peuvent pas être utilisées avec le filtrage de texture.

FORMATOP_MEMBEROFGROUP_ARGB (0x00080000L)

Les surfaces cibles de ce format peuvent être converties à partir de n’importe quelle surface source avec un format de pixel avec l’indicateur de FORMATOP_CONVERT_TO_ARGB spécifié. Le pilote peut spécifier FORMATOP_MEMBEROFGROUP_ARGB uniquement pour les surfaces ARVB avec au moins 5 bits d’informations de couleur pour chaque canal. Autrement dit, le format D3DDDIFMT_A1R5G5B5 est valide, mais le format D3DDDIFMT_A4R4G4B4 n’est pas valide. Si le pilote spécifie FORMATOP_MEMBEROFGROUP_ARGB avec un format non valide, le runtime Direct3D empêche le chargement de Direct3D HAL. Notez que bien que cet indicateur indique des formats ARVB, le runtime permet également au pilote de spécifier des surfaces avec des formats XRGB (par exemple, D3DDDIFMT_X1R5G5B5).

FORMATOP_SRGBWRITE (0x00100000L)

Les surfaces de ce format peuvent être écrites en tant que cibles sRVB-formatées (autrement dit, le canal de pixel délimite les données de sortie vers ce format).

FORMATOP_NOALPHABLEND (0x00200000L)

Les surfaces de ce format ne peuvent pas être utilisées avec le mélange alpha.

FORMATOP_AUTOGENMIPMAP (0x00400000L)

Les sous-niveaux des textures MIP mappées avec ce format peuvent être générés automatiquement. Pour que le pilote reçoive des appels à son GenerateMipSubLevels fonction, cet indicateur doit être exposé.

FORMATOP_VERTEXTEXTURE (0x00800000L)

Un échantillonneur de texture de vertex peut utiliser des surfaces de ce format. Autrement dit, seules les surfaces de ce format peuvent être utilisées comme textures de vertex.

FORMATOP_NOTEXCOORDWRAPNORMIP (0x01000000L)

Les surfaces de ce format peuvent uniquement être utilisées de manière conditionnelle pour le mappage de textures de textures 2D avec des dimensions qui ne sont pas des puissances de 2. Pour plus d’informations, consultez les définitions de D3DPTEXTURECAPS_POW2 et de D3DPTEXTURECAPS_NONPOW2CONDITIONAL dans la page de référence D3DPRIMCAPS.

FORMATOP_PLANAR (0x02000000L)

Les surfaces de ce format sont planaires et emballées. Le runtime Direct3D doit allouer une mémoire tampon si elle appelle le lock du pilote d’affichage en mode utilisateur sur une surface avec un format planaire alors que la surface est perdue et que le calcul classique de la hauteur multipliée par l’emplacement n’est pas possible. La plupart des formats sont emballés à l’exception de ceux que l’accélération vidéo Microsoft DirectX utilise (par exemple, les formats YUV).

FORMATOP_OVERLAY (0x040000000L)

Les surfaces de ce format sont utilisées pour les opérations de superposition.

FORMATOP_CAPTURE (0x080000000L)

Si le VideoEncoder membre de la structure D3DDDI_RESOURCEFLAGS2 est défini, les surfaces de ce format peuvent être utilisées comme mémoires tampons de capture.

Prise en charge à partir de Windows 8.

FORMATOP_VIDEO_ENCODER (0x100000000L)

Si le VideoEncoder membre de la structure D3DDDI_RESOURCEFLAGS2 est défini, les surfaces de ce format peuvent être utilisées comme ressources d’entrée d’encodeur vidéo.

Prise en charge à partir de Windows 8.

FORMATOP_MULTIPLANE_OVERLAY (0x200000000L)

Les surfaces de ce format prennent en charge une superposition multiplane.

Prise en charge à partir de Windows 8.

[out] FlipMsTypes

Masque 32 bits pour l’échantillonnage multiple en plein écran.

[out] BltMsTypes

Masque 32 bits pour l’échantillonnage multiple fenêtré.

[out] PrivateFormatBitCount

Bits par pixel d’un format de pixel privé au pilote (autrement dit, pas l’un des formats de pixel standard définis par le type d’énumération D3DDDIFORMAT).

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.
d’en-tête d3dumddi.h (include D3dumddi.h)

Voir aussi

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

D3DDDIFORMAT

D3DDDI_RESOURCEFLAGS2

GetCaps