Structure FORMATOP (d3dumddi.h)

La structure FORMATOP décrit un format de surface et les 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 de type D3DDDIFORMAT qui indique le format de pixels de la surface.

[out] Operations

OR au niveau du bit 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 membre Format. 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 (0x0000001L)

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

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 mappées MIP conventionnelles.

FORMATOP_CUBETEXTURE (0x0000004L)

Les surfaces de ce format peuvent être utilisées comme textures de carte d’environnement cubique. 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 cubique et non pour les textures mappées MIP conventionnelles.

FORMATOP_OFFSCREEN_RENDERTARGET (0x0000008L)

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 de pixel du mode d’affichage actuel a été signalé avec FORMATOP_DISPLAYMODE et FORMATOP_3DACCELERATION. Si ces indicateurs n’ont pas été définis dans le format de pixel du mode d’affichage actuel, aucune accélération 3D n’est disponible dans ce mode, même si la cible de rendu est hors écran. L’indicateur FORMATOP_OFFSCREEN_RENDERTARGET peut être combiné avec FORMATOP_TEXTURE pour indiquer que l’appareil peut afficher 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 pixels de la surface correspond au format de pixel du mode d’affichage actuel. Cet indicateur ne s’applique pas uniquement aux cibles de rendu hors écran, mais peut être spécifié sur les formats de pixels des modes d’affichage pour indiquer la capacité de la cible de rendu. Cet indicateur peut être combiné avec FORMATOP_TEXTURE pour indiquer que l’appareil peut afficher des textures au format de pixel spécifié.

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

FORMATOP_ZSTENCIL (0x0000040L)

Les surfaces de ce format peuvent être utilisées comme 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 la foulée de pixels lorsque vous décidez d’une correspondance entre Z/gabarit et profondeur de la mémoire tampon de couleur.

FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH (0x0000080L)

Les surfaces de ce format peuvent être utilisées comme 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 de la même profondeur et si 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 (0x00000400L)

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 (0x00000800L)

L’accélérateur graphique peut prendre en charge un certain niveau d’accélération Microsoft Direct3D en mode d’affichage avec ce format de pixel, et le pilote peut créer un contexte dans ce mode (pour certains formats de cible de rendu). Cet indicateur peut être utilisé uniquement lors de la création de rapports de formats de mode d’affichage (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 dans le membre PrivateFormatBitCount .

Si le pilote nécessite que les surfaces et textures managées 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 des pixels 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 (0x00004000L)

Le pilote peut s’étirer vers et depuis et colorier les surfaces de remplissage de ce format.

FORMATOP_SRGBREAD (0x00008000L)

Les surfaces de ce format peuvent être lues à partir de en tant que textures au format sRGB (autrement dit, l’échantillonneur linéarise les données recherchées).

FORMATOP_BUMPMAP (0x00010000L)

Les surfaces de ce format peuvent être utilisées comme textures de carte d’environnement de bosse. 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 bosse et non pour les textures mappées MIP conventionnelles.

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 textures.

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 dont l’indicateur de FORMATOP_CONVERT_TO_ARGB est spécifié. Le pilote peut spécifier FORMATOP_MEMBEROFGROUP_ARGB uniquement pour les surfaces ARGB 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 dont le format n’est pas valide, le runtime Direct3D empêche le chargement du hal Direct3D. Notez que bien que cet indicateur indique des formats ARGB, 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 dans des cibles au format sRGB (autrement dit, le canal de pixels délimite les données de sortie dans 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 à sa fonction GenerateMipSubLevels , 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 des D3DPTEXTURECAPS_POW2 et 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 s’il appelle la fonction Lock du pilote d’affichage en mode utilisateur sur une surface au format planaire alors que la surface est perdue et que le calcul classique de la hauteur multipliée par la hauteur n’est pas possible. La plupart des formats sont emballés, à l’exception de ceux que Microsoft DirectX Video Acceleration utilise (par exemple, les formats YUV).

FORMATOP_OVERLAY (0x04000000L)

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

FORMATOP_CAPTURE (0x08000000L)

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

Pris en charge à partir de Windows 8.

FORMATOP_VIDEO_ENCODER (0x10000000L)

Si le membre VideoEncoder 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.

Pris en charge à partir de Windows 8.

FORMATOP_MULTIPLANE_OVERLAY (0x20000000L)

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

Pris 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é pour le pilote (autrement dit, pas l’un des formats de pixels standard définis par le type d’énumération D3DDDIFORMAT ).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et les versions ultérieures des systèmes d’exploitation Windows.
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

D3DDDIFORMAT

D3DDDI_RESOURCEFLAGS2

GetCaps