D3DDDI_RESOURCEFLAGS-Struktur (d3dukmdt.h)
Die D3DDDI_RESOURCEFLAGS-Struktur gibt den Typ der Ressourcen an, die in einem Aufruf der CreateResource-Funktion des Treibers erstellt werden sollen.
Syntax
typedef struct _D3DDDI_RESOURCEFLAGS {
union {
struct {
UINT RenderTarget : 1;
UINT ZBuffer : 1;
UINT Dynamic : 1;
UINT HintStatic : 1;
UINT AutogenMipmap : 1;
UINT DMap : 1;
UINT WriteOnly : 1;
UINT NotLockable : 1;
UINT Points : 1;
UINT RtPatches : 1;
UINT NPatches : 1;
UINT SharedResource : 1;
UINT DiscardRenderTarget : 1;
UINT Video : 1;
UINT CaptureBuffer : 1;
UINT Primary : 1;
UINT Texture : 1;
UINT CubeMap : 1;
UINT Volume : 1;
UINT VertexBuffer : 1;
UINT IndexBuffer : 1;
UINT DecodeRenderTarget : 1;
UINT DecodeCompressedBuffer : 1;
UINT VideoProcessRenderTarget : 1;
UINT CpuOptimized : 1;
UINT MightDrawFromLocked : 1;
UINT Overlay : 1;
UINT MatchGdiPrimary : 1;
UINT InterlacedRefresh : 1;
UINT TextApi : 1;
UINT RestrictedContent : 1;
UINT RestrictSharedAccess : 1;
};
UINT Value;
};
} D3DDDI_RESOURCEFLAGS;
Member
RenderTarget
Das Festlegen dieses Elements entspricht dem Festlegen des ersten Bits des 32-Bit-Elements Wert (0x00000001).
ZBuffer
Ein UINT-Wert, der angibt, ob die Oberfläche der Z-Puffer ist. Der Z-Puffer enthält Informationen zur Bittiefe, die verwendet werden, um zu bestimmen, welche Pixel sichtbar sind und welche verdeckt sind. Der Z-Puffer enthält Informationen, die nicht angezeigt werden können.
Das Festlegen dieses Elements entspricht dem Festlegen des zweiten Bits des 32-Bit-Wertmembers (0x00000002).
Dynamic
Ein UINT-Wert, der angibt, ob die Oberfläche häufig aktualisiert wird. Dieses Bitfeldflag kann nicht mit dem HintStatic-Bitfeldflag verwendet werden.
Das Festlegen dieses Elements entspricht dem Festlegen des dritten Bits des 32-Bit-Elements Wert (0x00000004).
HintStatic
Ein UINT-Wert, der angibt, ob die Oberfläche selten aktualisiert wird, aber trotzdem zugriff zulassen muss. Dieses Bitfeldflag kann nicht mit dem Flag "Dynamisches Bitfeld" verwendet werden.
Das Festlegen dieses Elements entspricht dem Festlegen des vierten Bits des 32-Bit-Wertmembers (0x00000008).
AutogenMipmap
Ein UINT-Wert, der angibt, ob die MIP-Zuordnungsunterebenen für die Oberfläche automatisch generiert werden.
Das Festlegen dieses Elements entspricht dem Festlegen des fünften Bits des 32-Bit-Elements Wert (0x00000010).
DMap
Ein UINT-Wert, der angibt, ob es sich bei der Oberfläche um eine Verschiebungszuordnungstextur handelt, die der Verschiebungsdiagramm-Sampler in der Tessellationseinheit abtasten kann.
Das Festlegen dieses Elements entspricht dem Festlegen des sechsten Bits des 32-Bit-Wertelements (0x00000020).
WriteOnly
Ein UINT-Wert, der angibt, ob die Oberfläche nur in geschrieben werden kann. Der Lesezugriff von der Oberfläche kann einen allgemeinen Schutzfehler (General Protection Fault, GPF) generieren. Wenn die Oberfläche aus gelesen wird, sind die Leseergebnisse nicht aussagekräftig.
Das Festlegen dieses Elements entspricht dem Festlegen des siebten Bits des 32-Bit-Elements Wert (0x00000040).
NotLockable
Ein UINT-Wert, der angibt, ob das Renderziel gesperrt werden kann. Dieses Bitfeldflag wird für den primären Puffer und den Hintergrundpuffer festgelegt, wenn die Flippingchain nicht gesperrt werden kann, oder auf einem Renderziel, das nicht gesperrt werden kann. Der Treiber kann dann die Hintergrundoptimierung durchführen.
Selbst wenn dieses Flag festgelegt ist, kann die Oberfläche immer noch gesperrt werden, sodass der Fahrer diese Situation bewältigen muss. Solche Sperren sind jedoch selten und werden nicht erwartet, dass sie schnell sind.
Der Treiber kann auch bestimmen, ob der Tiefen- oder Schablonenpuffer durch das Vorhandensein dieses Bitfeldflags gesperrt werden kann.
Das Festlegen dieses Elements entspricht dem Festlegen des achten Bits des 32-Bit-Elements Wert (0x00000080).
Points
Ein UINT-Wert, der angibt, ob die Oberfläche Vertexpufferdaten enthält, die zum Rendern von Punkten und Punkt sprites verwendet werden können.
Das Festlegen dieses Elements entspricht dem Festlegen des neunten Bits des 32-Bit-Elements Wert (0x00000100).
RtPatches
Ein UINT-Wert, der angibt, ob die Oberfläche Vertexpufferdaten enthält, die zum Rendern von rt-patches verwendet werden können.
Das Festlegen dieses Elements entspricht dem Festlegen des zehnten Bits des 32-Bit-Elements Wert (0x00000200).
NPatches
Ein UINT-Wert, der angibt, ob die Oberfläche Vertexpufferdaten enthält, die zum Rendern von n-Patches verwendet werden können.
Das Festlegen dieses Elements entspricht dem Festlegen des elften Bits des 32-Bit-Elements Wert (0x00000400).
SharedResource
Ein UINT-Wert, der angibt, ob mehrere Geräte und Prozesse die Oberfläche gemeinsam nutzen.
Das Festlegen dieses Elements entspricht dem Festlegen des zwölften Bits des 32-Bit-Wertelements (0x00000800).
DiscardRenderTarget
Ein UINT-Wert, der angibt, ob die Erhaltung der Oberfläche erforderlich ist. Wenn die Oberfläche als Renderziel verwendet wird, ist ihre Beibehaltung nicht erforderlich.
Das Festlegen dieses Elements entspricht dem Festlegen des dreizehnten Bits des 32-Bit-Elements Wert (0x00001000).
Video
Ein UINT-Wert, der angibt, ob die Oberfläche ein Renderziel ist, das Videodaten enthält.
Beachten Sie, dass mit diesem Flag mehrere Renderziele erstellt werden können. Wenn zwei oder mehr dieser Renderziele zum gleichen Microsoft Direct3D-Kontext gehören, bestimmt der Treiber, dass alle diese Renderziele denselben Videostream anzeigen sollen, unabhängig davon, ob die Renderzieloberflächen miteinander verbunden sind.
Das Festlegen dieses Elements entspricht dem Festlegen des vierzehnten Bits des 32-Bit-Wertmembers (0x00002000).
CaptureBuffer
Ein UINT-Wert, der angibt, ob die Ressource ein Erfassungspuffer ist.
Das Festlegen dieses Elements entspricht dem Festlegen des fünfzehnten Bits des 32-Bit-Elements Wert (0x00004000).
Primary
Ein UINT-Wert, der angibt, ob die Oberfläche die primäre Oberfläche ist, d. h. ob die Oberfläche derzeit für den Benutzer sichtbar ist.
Das Festlegen dieses Elements entspricht dem Festlegen des sechzehnten Bits des 32-Bit-Elements Wert (0x00008000).
Texture
Ein UINT-Wert, der angibt, ob die Oberfläche als Textur verwendet werden kann.
Das Festlegen dieses Elements entspricht dem Festlegen des siebzehnten Bits des 32-Bit-Elements Wert (0x00010000).
CubeMap
Ein UINT-Wert, der angibt, ob es sich bei der Oberfläche um eine Kubikumgebungskarte handelt. Dieses Bitfeldflag erfordert, dass das Textur-Bitfeldflag festgelegt ist.
Das Festlegen dieses Elements entspricht dem Festlegen des achtzehnten Bits des 32-Bit-Elements Wert (0x00020000).
Volume
Ein UINT-Wert, der angibt, ob die Oberfläche zusätzlich zu Breite und Höhe tiefe hat, d. h. ob die Oberfläche ein Volumen ist. Dieses Bitfeldflag erfordert, dass das Textur-Bitfeldflag festgelegt ist.
Das Festlegen dieses Elements entspricht dem Festlegen des neunzehnten Bits des 32-Bit-Elements Wert (0x00040000).
VertexBuffer
Ein UINT-Wert, der angibt, ob die Oberfläche ein Vertexpuffer ist (d. a. speichert Scheitelpunkte).
Das Festlegen dieses Elements entspricht dem Festlegen des zwanzigsten Bits des 32-Bit-Elements Wert (0x00080000).
IndexBuffer
Ein UINT-Wert, der angibt, ob die Oberfläche ein Indexpuffer ist (d. a. speichert Indizes).
Das Festlegen dieses Elements entspricht dem Festlegen des einundzwanzig ersten Bits des 32-Bit-Wertelements (0x00100000).
DecodeRenderTarget
Ein UINT-Wert, der angibt, ob die Oberfläche als Renderziel für die Microsoft DirectX-Videobeschleunigung (DirectX VA)-Decodierung verwendet wird.
Das Festlegen dieses Elements entspricht dem Festlegen des 22-Bit-Bits des 32-Bit-Elements Wert (0x00200000).
DecodeCompressedBuffer
Ein UINT-Wert, der angibt, ob die Oberfläche komprimierte Pufferinformationen für die DirectX VA-Decodierung enthält.
Das Festlegen dieses Elements entspricht dem Festlegen des 32-Bit-Wertmembers (0x00400000).
VideoProcessRenderTarget
Ein UINT-Wert, der angibt, ob die Oberfläche als Renderziel für die DirectX VA-Videoverarbeitung verwendet wird.
Das Festlegen dieses Elements entspricht dem Festlegen des vierundzwanzig Bits des 32-Bit-Elements Wert (0x00800000).
CpuOptimized
Ein UINT-Wert, der angibt, ob die CPU häufig auf die Ressource zugreift.
Der Treiber sollte die Ressource in einem Arbeitsspeicherpool platzieren, auf den die CPU schnell zugreifen kann (z. B. AGP-Arbeitsspeicher). Der Anzeige-Miniporttreiber sollte den Speicher als zwischenspeicherbar kennzeichnen, indem das Flag "Zwischengespeichertes Bitfeld" im Flags-Element der DXGK_ALLOCATIONINFO-Struktur festgelegt wird, wenn die DxgkDdiCreateAllocation-Funktion aufgerufen wird.
Das Flag CpuOptimized wird in der Regel für Renderziele (sowohl eigenständige Renderziele als auch Texturen) festgelegt.
Das Festlegen dieses Elements entspricht dem Festlegen des fünfundzwanzigten Bits des 32-Bit-Elements Wert (0x01000000).
MightDrawFromLocked
Ein UINT-Wert, der angibt, ob der Treiber möglicherweise aufgefordert wird, aus einem Vertexpuffer zu zeichnen, auch wenn der Vertexpuffer durch die Direct3D-Runtime gesperrt ist. Diese Anforderung bedeutet, dass der Treiber gelegentlich Aufrufe seiner Funktionen DrawIndexedPrimitive, DrawIndexedPrimitive2, DrawPrimitive und DrawPrimitive2 empfangen kann, bei denen auf die Vertexdaten in einem gesperrten Vertexpuffer verwiesen wird, der mit MightDrawFromLocked gekennzeichnet ist. Die Runtime muss diese Arten von Aufrufen in Szenarien durchführen, in denen sie Softwaretransformationen und -beleuchtungen (anstelle von Hardware) durchführt. Diese Szenarien treten in der Regel nicht auf.
Da die Laufzeit jedoch den Vertexpuffer gesperrt hat, kann der Treiber die PfnUnlockCb-Funktion vor dem Aufruf der pfnRenderCb-Funktion nicht aufrufen. Daher muss der Treiber den Vertexpuffer in einem System- oder AGP-Speichersegment unterstützen. Andernfalls lehnt der Videospeicher-Manager das Rendering ab. Der Treiber muss keine andere spezielle Aktion ausführen, da die Runtime keine Daten im gesperrten Vertexpuffer überschreibt, wenn die Hardware aktiv aus dem Vertexpuffer gerendert wird.
Das Festlegen dieses Elements entspricht dem Festlegen des sechsundzwanzigsten Bits des 32-Bit-Elements Wert (0x02000000).
Overlay
Ein UINT-Wert, der angibt, ob es sich bei der Ressource um eine Überlagerung handelt.
Das Festlegen dieses Members entspricht dem Festlegen des 20. Bits des 32-Bit-Elements Wert (0x04000000).
MatchGdiPrimary
Ein UINT-Wert, der angibt, ob die Ressource eine primäre Oberfläche ist, die mit allen Eigenschaften der aktuellen primären GDI-Oberfläche übereinstimmt, die mithilfe der D3DKMDT_SHAREDPRIMARYSURFACEDATA-Struktur erstellt wurde. Beispielsweise ist ein Umdrehen von der übereinstimmenden primären Oberfläche zur aktuellen primären GDI-Oberfläche und umgekehrt möglich.
Das Festlegen dieses Elements entspricht dem Festlegen des achtundzwanzigzigen Bits des 32-Bit-Elements Wert (0x08000000).
InterlacedRefresh
Ein UINT-Wert, der angibt, ob es sich bei der Ressource um eine primäre Oberfläche handelt, die in einem Interlaced Display-Modus verwendet werden soll.
Das Festlegen dieses Elements entspricht dem Festlegen des neunundzwanzigten Bits des 32-Bit-Elements Wert (0x10000000).
TextApi
Ein UINT-Wert, der angibt, ob die Ressource für die Texturfilterung oder als Eingabestreamquelle verwendet werden kann. Wenn Texturen mit festgelegtem TextApi-Bitfeldflag erstellt werden, können sie nicht für die Texturfilterung verwendet werden. Wenn Vertexpuffer mit festgelegtem TextApi-Bitfeldflag erstellt werden, können sie nicht als Eingabedatenstromquellen verwendet werden. Das TextApi-Bitfeldflag muss für Vertexpuffer und Quelloberflächen angegeben werden, die in Aufrufen der ComposeRects-Funktion verwendet werden.
Das Festlegen dieses Elements entspricht dem Festlegen des dreißigsten Bits des 32-Bit-Elements Wert (0x20000000).
RestrictedContent
Unterstützt in Windows 7 und höheren Versionen.
Ein UINT-Wert, der angibt, ob die Ressource geschützte Inhalte enthält. In den meisten Fällen hat eine Anwendung den Inhaltsschutz explizit aktiviert, bevor die Anwendung eine eingeschränkte Ressource erstellt. Die Anwendung muss den Inhaltsschutz jedoch nicht explizit aktivieren, wenn sie eine eingeschränkte Swapchain im exklusiven Vollbildmodus erstellt.
Das Festlegen dieses Elements entspricht dem Festlegen des einunddreißig ersten Bits des 32-Bit-Elements Wert (0x40000000).
RestrictSharedAccess
Unterstützt in Windows 7 und höheren Versionen.
Ein UINT-Wert, der angibt, ob die Runtime nur bestimmten Prozessen den Zugriff auf die freigegebene Ressource zulässt.
Das Festlegen dieses Elements entspricht dem Festlegen des 32-Bit-Wert-Elements (0x80000000).
Value
Ein 32-Bit-Wert, der den Typ der zu erstellenden Ressource angibt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Kopfzeile | d3dukmdt.h (einschließlich D3dumddi.h, D3dkmddi.h) |