FORMATOP-Struktur (d3dumddi.h)
Die FORMATOP-Struktur beschreibt ein Oberflächenformat und Vorgänge, die mit einer solchen Oberfläche ausgeführt werden können.
Syntax
typedef struct _FORMATOP {
[in] D3DDDIFORMAT Format;
[out] UINT Operations;
[out] UINT FlipMsTypes;
[out] UINT BltMsTypes;
[out] UINT PrivateFormatBitCount;
} FORMATOP;
Member
[in] Format
Der D3DDDIFORMAT typisierte Wert, der das Pixelformat der Oberfläche angibt.
[out] Operations
Ein gültiges bitweises OR der folgenden Flags, die die Vorgänge angibt, die auf Oberflächen mit dem Pixelformat ausgeführt werden können, das im Format-Element angegeben ist. Einige der folgenden Flags implizieren, dass andere Flags verwendet werden sollten. Wenn ein Treiber ein Flag festlegt, das andere Flags impliziert, muss der Treiber die impliziten Flags nicht festlegen, und die Direct3D-Runtime bestimmt die Verwendung der impliziten Flags.
FORMATOP_TEXTURE (0x00000001L)
Oberflächen des angegebenen Pixelformats können als MIP-zugeordnete Texturen verwendet werden.
FORMATOP_VOLUMETEXTURE (0x00000002L)
Oberflächen dieses Formats können als Volumetexturen verwendet werden. Beachten Sie, dass dieses Flag unabhängig von FORMATOP_TEXTURE ist. Daher kann ein Pixelformat für Volumentexturen und nicht für herkömmliche, MIP-zugeordnete Texturen verwendet werden.
FORMATOP_CUBETEXTURE (0x00000004L)
Oberflächen dieses Formats können als kubische Umgebungszuordnungstexturen verwendet werden. Beachten Sie, dass dieses Flag unabhängig von FORMATOP_TEXTURE ist. Daher kann ein Pixelformat für kubische Umgebungszuordnungstexturen und nicht für herkömmliche, MIP-zugeordnete Texturen verwendet werden.
FORMATOP_OFFSCREEN_RENDERTARGET (0x00000008L)
Oberflächen dieses Formats können unabhängig vom Pixelformat des Anzeigemodus als Offscreen-Renderziele verwendet werden, wenn das Pixelformat des aktuellen Anzeigemodus mit FORMATOP_DISPLAYMODE und FORMATOP_3DACCELERATION gemeldet wurde. Wenn für das Pixelformat des aktuellen Anzeigemodus diese Flags nicht festgelegt wurden, ist in diesem Modus keine 3D-Beschleunigung verfügbar, auch wenn sich das Renderziel im Offscreen befindet. Das FORMATOP_OFFSCREEN_RENDERTARGET-Flag kann mit FORMATOP_TEXTURE kombiniert werden, um anzugeben, dass das Gerät in Texturen des angegebenen Pixelformats gerendert werden kann.
Das FORMATOP_OFFSCREEN_RENDERTARGET-Flag impliziert auch die FORMATOP_SAME_FORMAT_RENDERTARGET- und FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET-Flags.
FORMATOP_SAME_FORMAT_RENDERTARGET (0x00000010L)
Oberflächen dieses Formats können als Renderziele verwendet werden, aber nur, wenn das Pixelformat der Oberfläche dem Pixelformat des aktuellen Anzeigemodus entspricht. Dieses Flag gilt nicht nur für Offscreen-Renderziele, sondern kann in den Pixelformaten der Anzeigemodi angegeben werden, um die Renderingzielfunktion anzugeben. Dieses Flag kann mit FORMATOP_TEXTURE kombiniert werden, um anzugeben, dass das Gerät in Texturen des angegebenen Pixelformats gerendert werden kann.
Das FORMATOP_SAME_FORMAT_RENDERTARGET-Flag impliziert auch das FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET Flag.
FORMATOP_ZSTENCIL (0x00000040L)
Oberflächen dieses Formats können als Z/Schablonenpuffer verwendet werden, aber nur, wenn die Tiefe der Z/Schablonenoberfläche mit der Farbtiefe des Renderingziels übereinstimmt, an das der Tiefenpuffer angefügt ist. Verwenden Sie den Pixelschritt, wenn Sie sich für eine Übereinstimmung zwischen Z/Schablone und Farbpuffertiefe entscheiden.
FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH (0x000000080L)
Oberflächen dieses Formats können unabhängig von der Farbtiefe des Renderziels, an das die Oberfläche angefügt ist, als Z/Schablonenpuffer verwendet werden.
Das FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH-Flag impliziert auch das FORMATOP_ZSTENCIL-Flag.
FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET (0x00000100L)
Oberflächen dieses Formats können als Renderziele verwendet werden, wenn der aktuelle Anzeigemodus dieselbe Tiefe aufweist und der Alphakanal ignoriert wird. Wenn das Gerät beispielsweise in A8R8G8B8 rendern kann, wenn der Anzeigemodus X8R8G8B8 ist, sollte für den Listeneintrag formatvorgang für A8R8G8B8 dieses Flag festgelegt sein.
FORMATOP_DISPLAYMODE (0x00000400L)
Ein Anzeigemodus mit diesem Pixelformat, der vom Treibermodell (einschließlich Flip) unterstützt wird. Dieses Flag sollte nicht für Alphaformate festgelegt werden.
FORMATOP_3DACCELERATION (0x00000800L)
Die Grafikbeschleunigung kann eine gewisse Ebene der Microsoft Direct3D-Beschleunigung unterstützen, wenn sie sich in einem Anzeigemodus mit diesem Pixelformat befindet, und der Treiber kann einen Kontext in diesem Modus erstellen (für einige Renderzielformate). Dieses Flag kann nur beim Melden von Anzeigemodusformaten (durch Angabe der FORMATOP_DISPLAYMODE) verwendet werden. Dieses Flag sollte nicht zum Melden von Offscreen-Renderzielformaten verwendet werden.
FORMATOP_PIXELSIZE (0x00001000L)
Der Treiber hat die Bits pro Pixel für das Format im PrivateFormatBitCount-Element eingegeben.
Wenn der Treiber erfordert, dass verwaltete Oberflächen und Texturen ein privates Format verwenden (ein Format, das vom Treiber, aber nicht nativ von der Direct3D-Runtime verarbeitet werden kann), muss der Treiber FORMATOP_PIXELSIZE und die Pixelgröße in PrivateFormatBitCount angeben.
FORMATOP_CONVERT_TO_ARGB (0x00002000L)
Quelloberflächen dieses Formats können in eine beliebige Zieloberfläche mit einem RGB-Pixelformat konvertiert werden, für das das flag FORMATOP_MEMBEROFGROUP_ARGB angegeben ist.
FORMATOP_OFFSCREENPLAIN (0x00004000L)
Der Treiber kann sich zu und von erstrecken und Farbfüllflächen dieses Formats füllen.
FORMATOP_SRGBREAD (0x00008000L)
Oberflächen dieses Formats können als sRGB-formatierte Texturen gelesen werden (das heißt, der Sampler linearisiert die gesuchten Daten).
FORMATOP_BUMPMAP (0x00010000L)
Oberflächen dieses Formats können als Bump-Umgebungszuordnungstexturen verwendet werden. Beachten Sie, dass dieses Flag unabhängig von FORMATOP_TEXTURE ist. Daher kann ein Pixelformat für Bump-Umgebungszuordnungstexturen und nicht für herkömmliche MIP-zugeordnete Texturen verwendet werden.
FORMATOP_DMAP (0x00020000L)
Der Sampler für Verschiebungszuordnungen kann Oberflächen dieses Formats samplen.
FORMATOP_NOFILTER (0x00040000L)
Oberflächen dieses Formats können nicht mit der Texturfilterung verwendet werden.
FORMATOP_MEMBEROFGROUP_ARGB (0x00080000L)
Zieloberflächen dieses Formats können von jeder Quelloberfläche mit einem Pixelformat konvertiert werden, für das das flag FORMATOP_CONVERT_TO_ARGB angegeben ist. Der Treiber kann FORMATOP_MEMBEROFGROUP_ARGB nur für ARGB-Oberflächen mit mindestens 5 Bit Farbinformationen für jeden Kanal angeben. Das heißt, das D3DDDIFMT_A1R5G5B5-Format ist gültig, aber das D3DDDIFMT_A4R4G4B4 Format ist ungültig. Wenn der Treiber FORMATOP_MEMBEROFGROUP_ARGB mit einem ungültigen Format angibt, verhindert die Direct3D-Runtime das Laden der Direct3D-HAL. Beachten Sie, dass dieses Flag zwar ARGB-Formate angibt, die Runtime dem Treiber jedoch auch ermöglicht, Oberflächen mit XRGB-Formaten anzugeben (z. B. D3DDDIFMT_X1R5G5B5).
FORMATOP_SRGBWRITE (0x00100000L)
Oberflächen dieses Formats können als sRGB-formatierte Ziele geschrieben werden (das heißt, die Pixelpipeline bezieht daten bei der Ausgabe in dieses Format ein).
FORMATOP_NOALPHABLEND (0x00200000L)
Oberflächen dieses Formats können nicht mit Alpha-Blending verwendet werden.
FORMATOP_AUTOGENMIPMAP (0x00400000L)
Die Unterebenen von MIP-zugeordneten Texturen mit diesem Format können automatisch generiert werden. Damit der Treiber Aufrufe seiner GenerateMipSubLevels-Funktion empfängt , muss dieses Flag verfügbar gemacht werden.
FORMATOP_VERTEXTEXTURE (0x00800000L)
Ein Vertextextur-Sampler kann Oberflächen dieses Formats verwenden. Das heißt, nur Oberflächen dieses Formats können als Scheitelpunkttexturen verwendet werden.
FORMATOP_NOTEXCOORDWRAPNORMIP (0x01000000L)
Oberflächen dieses Formats können nur bedingt für die Texturzuordnung von 2D-Texturen mit Dimensionen verwendet werden, die keine Kräfte von 2 aufweisen. Weitere Informationen finden Sie in den Definitionen für D3DPTEXTURECAPS_POW2 und D3DPTEXTURECAPS_NONPOW2CONDITIONAL auf der D3DPRIMCAPS-Referenzseite.
FORMATOP_PLANAR (0x02000000L)
Oberflächen dieses Formats sind planar oder gepackt. Die Direct3D-Runtime muss einen Puffer zuordnen, wenn sie die Lock-Funktion des Benutzermodus-Anzeigetreibers auf einer Oberfläche mit planarem Format aufruft, während die Oberfläche verloren geht und die typische Berechnung der Pitch-Multiplikationshöhe nicht möglich ist. Die meisten Formate sind gepackt, mit Ausnahme der Formate, die die Microsoft DirectX-Videobeschleunigung verwendet (z. B. YUV-Formate).
FORMATOP_OVERLAY (0x04000000L)
Oberflächen dieses Formats werden für Überlagerungsvorgänge verwendet.
FORMATOP_CAPTURE (0x08000000L)
Wenn das VideoEncoder-Element der D3DDDI_RESOURCEFLAGS2-Struktur festgelegt ist, können Oberflächen dieses Formats als Erfassungspuffer verwendet werden.
Wird ab Windows 8 unterstützt.
FORMATOP_VIDEO_ENCODER (0x10000000L)
Wenn das VideoEncoder-Element der D3DDDI_RESOURCEFLAGS2-Struktur festgelegt ist, können Oberflächen dieses Formats als Videoencoder-Eingaberessourcen verwendet werden.
Wird ab Windows 8 unterstützt.
FORMATOP_MULTIPLANE_OVERLAY (0x20000000L)
Oberflächen dieses Formats unterstützen ein Mehrschicht-Overlay.
Wird ab Windows 8 unterstützt.
[out] FlipMsTypes
Eine 32-Bit-Maske für die mehrfache Vollbild-Stichprobenerstellung.
[out] BltMsTypes
Eine 32-Bit-Maske für mehrere Stichproben im Fenster.
[out] PrivateFormatBitCount
Die Bits pro Pixel eines Pixelformats, das für den Treiber privat ist (d. a. eines der Standardpixelformate, die durch den D3DDDIFORMAT Enumerationstyp definiert werden).
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Kopfzeile | d3dumddi.h (include D3dumddi.h) |