D3DCAPS9-Struktur (d3d9caps.h)
Stellt die Funktionen der Hardware dar, die über das Direct3D-Objekt verfügbar gemacht wird.
Syntax
typedef struct _D3DCAPS9 {
D3DDEVTYPE DeviceType;
UINT AdapterOrdinal;
DWORD Caps;
DWORD Caps2;
DWORD Caps3;
DWORD PresentationIntervals;
DWORD CursorCaps;
DWORD DevCaps;
DWORD PrimitiveMiscCaps;
DWORD RasterCaps;
DWORD ZCmpCaps;
DWORD SrcBlendCaps;
DWORD DestBlendCaps;
DWORD AlphaCmpCaps;
DWORD ShadeCaps;
DWORD TextureCaps;
DWORD TextureFilterCaps;
DWORD CubeTextureFilterCaps;
DWORD VolumeTextureFilterCaps;
DWORD TextureAddressCaps;
DWORD VolumeTextureAddressCaps;
DWORD LineCaps;
DWORD MaxTextureWidth;
DWORD MaxTextureHeight;
DWORD MaxVolumeExtent;
DWORD MaxTextureRepeat;
DWORD MaxTextureAspectRatio;
DWORD MaxAnisotropy;
float MaxVertexW;
float GuardBandLeft;
float GuardBandTop;
float GuardBandRight;
float GuardBandBottom;
float ExtentsAdjust;
DWORD StencilCaps;
DWORD FVFCaps;
DWORD TextureOpCaps;
DWORD MaxTextureBlendStages;
DWORD MaxSimultaneousTextures;
DWORD VertexProcessingCaps;
DWORD MaxActiveLights;
DWORD MaxUserClipPlanes;
DWORD MaxVertexBlendMatrices;
DWORD MaxVertexBlendMatrixIndex;
float MaxPointSize;
DWORD MaxPrimitiveCount;
DWORD MaxVertexIndex;
DWORD MaxStreams;
DWORD MaxStreamStride;
DWORD VertexShaderVersion;
DWORD MaxVertexShaderConst;
DWORD PixelShaderVersion;
float PixelShader1xMaxValue;
DWORD DevCaps2;
float MaxNpatchTessellationLevel;
DWORD Reserved5;
UINT MasterAdapterOrdinal;
UINT AdapterOrdinalInGroup;
UINT NumberOfAdaptersInGroup;
DWORD DeclTypes;
DWORD NumSimultaneousRTs;
DWORD StretchRectFilterCaps;
D3DVSHADERCAPS2_0 VS20Caps;
D3DPSHADERCAPS2_0 PS20Caps;
DWORD VertexTextureFilterCaps;
DWORD MaxVShaderInstructionsExecuted;
DWORD MaxPShaderInstructionsExecuted;
DWORD MaxVertexShader30InstructionSlots;
DWORD MaxPixelShader30InstructionSlots;
} D3DCAPS9;
Member
DeviceType
Typ: D3DDEVTYPE
Mitglied des aufgezählten D3DDEVTYPE-Typs , der angibt, welcher Ressourcentyp für die Verarbeitung von Scheitelpunkten verwendet wird.
AdapterOrdinal
Typ: UINT
Adapter, auf dem dieses Direct3D-Gerät erstellt wurde. Diese Ordnungszahl ist nur gültig, um an Methoden der IDirect3D9-Schnittstelle zu übergeben, die dieses Direct3D-Gerät erstellt hat. Die IDirect3D9-Schnittstelle kann immer durch Aufrufen von GetDirect3D abgerufen werden.
Caps
Typ: DWORD
Die folgende treiberspezifische Funktion.
Wert | Bedeutung | |
---|---|---|
|
Anzeigehardware kann die aktuelle Scanzeile zurückgeben. | |
|
Der Anzeigetreiber unterstützt einen Überlagerungs-DDI, der die Überprüfung von Überlagerungsfunktionen ermöglicht. Weitere Informationen zum Overlay-DDI finden Sie unter Overlay DDI.
|
Caps2
Typ: DWORD
Treiberspezifische Funktionen, die in D3DCAPS2 identifiziert werden.
Caps3
Typ: DWORD
Treiberspezifische Funktionen, die in D3DCAPS3 identifiziert werden.
PresentationIntervals
Typ: DWORD
Bitmaske von Werten, die darstellen, welche Präsentationstauschintervalle verfügbar sind.
CursorCaps
Typ: DWORD
Bitmaske, die angibt, welche Hardwareunterstützung für Cursor verfügbar ist. Direct3D 9 definiert keine Alpha-Blending-Cursorfunktionen.
DevCaps
Typ: DWORD
Flags, die die Funktionen des Geräts identifizieren.
Wert | Bedeutung |
---|---|
|
Das Gerät unterstützt Blits von Systemspeichertexturen bis hin zu nichtlokalen Videospeichertexturen. |
|
Geräte können Renderingbefehle nach einem Seitendrehen in die Warteschlange stellen. Anwendungen ändern ihr Verhalten nicht, wenn dieses Flag festgelegt ist. Diese Funktion bedeutet, dass das Gerät relativ schnell ist. |
|
Das Gerät kann mindestens einen DirectX 5-kompatiblen Treiber unterstützen. |
|
Das Gerät kann mindestens einen DirectX 7-kompatiblen Treiber unterstützen. |
|
Das Gerät exportiert eine IDirect3DDevice9::D rawPrimitive-fähige Hal. |
|
Das Gerät kann Ausführungspuffer aus dem Systemspeicher verwenden. |
|
Das Gerät kann Ausführungspuffer aus dem Videospeicher verwenden. |
|
Das Gerät verfügt über Hardwarebeschleunigung für die Rasterung von Szenen. |
|
Das Gerät kann transformations- und beleuchtungsbasierte Hardware unterstützen. |
|
Das Gerät unterstützt N-Patches. |
|
Das Gerät kann die Rasterung, Transformation, Beleuchtung und Schattierung in Hardware unterstützen. |
|
Das Gerät unterstützt quintische Bézierkurven und B-Splines. |
|
Das Gerät unterstützt rechteckige und dreieckige Patches. |
|
Wenn diese Gerätefunktion festgelegt ist, erfordert die Hardwarearchitektur keine Zwischenspeicherung von Informationen, und nicht zwischengespeicherte Patches (Handle Zero) werden genauso effizient wie zwischengespeicherte Patches gezeichnet. Beachten Sie, dass das Festlegen D3DDEVCAPS_RTPATCHHANDLEZERO nicht bedeutet, dass ein Patch mit handle zero gezeichnet werden kann. Ein Handle-Zero-Patch kann immer gezeichnet werden, unabhängig davon, ob diese Obergrenze festgelegt ist oder nicht. |
|
Das Gerät texturiert aus separaten Speicherpools. |
|
Das Gerät kann Texturen aus dem nicht lokalen Videospeicher abrufen. |
|
Das Gerät kann Texturen aus dem Systemspeicher abrufen. |
|
Das Gerät kann Texturen aus dem Gerätespeicher abrufen. |
|
Das Gerät kann Puffer aus dem Systemspeicher für transformierte und beleuchtete Scheitelpunkte verwenden. |
|
Das Gerät kann Puffer aus dem Videospeicher für transformierte und beleuchtete Scheitelpunkte verwenden. |
PrimitiveMiscCaps
Typ: DWORD
Verschiedene primitive Treiberfunktionen. Siehe D3DPMISCCAPS.
RasterCaps
Typ: DWORD
Informationen zu Rasterzeichnungsfunktionen. Bei diesem Member kann es sich um ein oder mehrere der folgenden Flags handelt.
Wert | Bedeutung |
---|---|
|
Das Gerät unterstützt die anisotrope Filterung. |
|
Das Gerät durchläuft die Farbenperspektive korrekt. |
|
Das Gerät kann dither, um die Farbauflösung zu verbessern. |
|
Das Gerät unterstützt Legacy-Tiefenverzerrungen. Informationen zu true depth bias finden Sie unter D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS. |
|
Das Gerät unterstützt bereichsbasierten Nebel. Im bereichsbasierten Nebel wird die Entfernung eines Objekts vom Viewer verwendet, um Nebeleffekte zu berechnen, nicht die Tiefe des Objekts (d. h. die Z-Koordinate) in der Szene. |
|
Das Gerät berechnet den Nebelwert, indem es auf eine Nachschlagetabelle verweist, die Nebelwerte enthält, die auf die Tiefe eines bestimmten Pixels indiziert sind. |
|
Das Gerät berechnet den Nebelwert während des Beleuchtungsvorgangs und interpoliert den Nebelwert während der Rasterung. |
|
Das Gerät unterstützt Anpassungen von Verzerrungen im Detail. Diese Verzerrungsanpassungen ermöglichen es einer Anwendung, eine Mipmap schärfer oder weniger scharf als normalerweise erscheinen zu lassen. Weitere Informationen zum Grad-of-Detail-Bias in mipmaps finden Sie unter D3DSAMP_MIPMAPLODBIAS. |
|
Das Gerät unterstützt das Ein- und Ausschalten von Multisampling zwischen IDirect3DDevice9::BeginScene und IDirect3DDevice9::EndScene (mit D3DRS_MULTISAMPLEANTIALIAS). |
|
Gerät unterstützt Scissor-Tests. Siehe Scherentest (Direct3D 9). |
|
Das Gerät führt eine echte, auf Neigungsskalierung basierende Tiefenverzerrung aus. Dies steht im Gegensatz zur Verzerrung der älteren Stiltiefe. |
|
Das Gerät unterstützt die Tiefenpufferung mit w. |
|
Das Gerät unterstützt w-basiertes Nebel. W-basierte Nebel wird verwendet, wenn eine perspektivische Projektionsmatrix angegeben wird, aber affine Projektionen verwenden weiterhin z-basierten Nebel. Das System betrachtet eine Projektionsmatrix, die einen nonzero-Wert im [3][4]-Element enthält, als perspektivische Projektionsmatrix. |
|
Das Gerät kann das Entfernen von verborgenen Oberflächen (Hidden Surface Removal, HSR) durchführen, ohne dass die Anwendung Polygone sortieren muss und ohne dass die Zuordnung eines Tiefenpuffers erforderlich ist. Dadurch bleibt mehr Videospeicher für Texturen übrig. Die zum Ausführen von HSR verwendete Methode ist hardwareabhängig und für die Anwendung transparent.
Das hsR ohne Z-Puffer wird ausgeführt, wenn der Rendering-Zieloberfläche keine Tiefenpufferoberfläche zugeordnet ist und der Tiefenpuffervergleichstest aktiviert ist (d. h. wenn der der D3DRS_ZENABLE Enumerationskonstante zugeordnete Zustandswert auf TRUE festgelegt ist). |
|
Das Gerät unterstützt z-basierte Nebel. |
|
Das Gerät kann Z-Test-Vorgänge ausführen. Dadurch wird effektiv ein Primitive gerendert und gibt an, ob Z-Pixel gerendert wurden. |
ZCmpCaps
Typ: DWORD
Z-Puffer-Vergleichsfunktionen. Bei diesem Member kann es sich um ein oder mehrere der folgenden Flags handelt.
SrcBlendCaps
Typ: DWORD
Funktionen für die Quellenmischung. Bei diesem Member kann es sich um ein oder mehrere der folgenden Flags handelt. (Die RGBA-Werte der Quelle und des Ziels werden durch die Subscripts s und d angegeben.)
Wert | Bedeutung | |
---|---|---|
|
Der Treiber unterstützt sowohl D3DBLEND_BLENDFACTOR als auch D3DBLEND_INVBLENDFACTOR. Siehe D3DBLEND. | |
|
Quellmischungsfaktor ist (1 - As, 1 - As, 1 - As, 1 - As) und Zielmischungsfaktor (As, As, As, As); die Zielmischungsauswahl wird überschrieben. | |
|
Der Treiber unterstützt den D3DBLEND_BOTHSRCALPHA-Mischmodus. (Dieser Mischmodus ist veraltet. Weitere Informationen finden Sie unter D3DBLEND.) | |
|
Mischfaktor ist (Ad, Ad, Ad, Ad). | |
|
Mischfaktor ist (Rd, Gd, Bd, Ad). | |
|
Mischfaktor ist (1 - Ad, 1 - Ad, 1 - Ad, 1 - Ad). | |
|
Mischfaktor ist (1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad). | |
|
Mischfaktor ist (1 - As, 1 - As, 1 - As, 1 - As). | |
|
Mischfaktor ist (1 - Rs, 1 - Gs, 1 - Bs, 1 - As). | |
|
Der Blendfaktor ist (1 – PSOutColor[1]r, 1 – PSOutColor[1]g, 1 – PSOutColor[1]b, nicht verwendet)). Weitere Informationen finden Sie unter Rendern von Zielmischungen.
|
|
|
Mischfaktor ist (1, 1, 1, 1). | |
|
Der Mischfaktor ist (As, As, As, As). | |
|
Mischfaktor ist (f, f, f, 1); f = min(As, 1 - Ad). | |
|
Mischfaktor ist (Rs, Gs, Bs, As). | |
|
Der Blendfaktor ist (PSOutColor[1]r, PSOutColor[1]g, PSOutColor[1]b, nicht verwendet). Weitere Informationen finden Sie unter Rendern von Zielmischungen.
|
|
|
Der Mischfaktor ist (0, 0, 0, 0). |
DestBlendCaps
Typ: DWORD
Funktionen für die Zielmischung. Dieser Member kann dieselben Funktionen sein, die für das SrcBlendCaps-Element definiert sind.
AlphaCmpCaps
Typ: DWORD
Alphatestvergleichsfunktionen. Dieses Element kann dieselben Funktionsflags enthalten, die für das ZCmpCaps-Element definiert sind. Wenn dieses Element nur die D3DPCMPCAPS_ALWAYS-Funktion oder nur die D3DPCMPCAPS_NEVER-Funktion enthält, unterstützt der Treiber keine Alphatests. Andernfalls identifizieren die Flags die einzelnen Vergleiche, die für Alphatests unterstützt werden.
ShadeCaps
Typ: DWORD
Funktionen für Schattierungsvorgänge. Es wird im Allgemeinen davon ausgegangen, dass ein Gerät, wenn es einen bestimmten Befehl überhaupt unterstützt, den D3DSHADE_FLAT-Modus unterstützt (wie im aufgezählten D3DSHADEMODE-Typ angegeben). Dieses Flag gibt an, ob der Treiber auch Gouraud-Schattierung unterstützen kann und ob Alphafarbkomponenten unterstützt werden. Wenn Alphakomponenten nicht unterstützt werden, ist der Alphawert der generierten Farben implizit 255. Dies ist die maximal mögliche Alpha (d. a. die Alphakomponente hat die volle Intensität).
Die Farb-, Spiegel-, Nebel- und Alpha-Interpolanten eines Dreiecks verfügen jeweils über Funktionsflags, mit denen eine Anwendung herausfinden kann, wie sie vom Gerätetreiber implementiert werden.
Bei diesem Member kann es sich um ein oder mehrere der folgenden Flags handelt.
TextureCaps
Typ: DWORD
Verschiedene Funktionen zur Texturzuordnung. Bei diesem Member kann es sich um ein oder mehrere der folgenden Flags handelt.
Wert | Bedeutung |
---|---|
|
Alpha in Texturpixeln wird unterstützt. |
|
Das Gerät kann Alpha aus Texturpaletten zeichnen. |
|
Unterstützt Cubetexturen. |
|
Das Gerät erfordert, dass Cubetexturzuordnungen Dimensionen mit zwei Kräften angegeben haben. |
|
Das Gerät unterstützt mipmapped Cubetexturen. |
|
Das Gerät unterstützt mipmappenfähige Texturen. |
|
Das Gerät unterstützt mipmappenfähige Volumetexturen. |
|
D3DPTEXTURECAPS_POW2 ebenfalls festgelegt ist, unterstützt bedingt die Verwendung von 2D-Texturen mit Dimensionen, die keine Zweimächte sind. Ein Gerät, das diese Funktion verfügbar macht, kann eine solche Textur verwenden, wenn alle folgenden Anforderungen erfüllt sind.
Wenn dieses Flag nicht festgelegt ist und D3DPTEXTURECAPS_POW2 auch nicht festgelegt ist, wird bedingungslose Unterstützung für 2D-Texturen mit Dimensionen bereitgestellt, die keine Zweimächte sind. Eine Textur, die keine Macht von zwei ist, kann nicht in einer Phase festgelegt werden, die basierend auf einer Shaderberechnung gelesen wird (z. B. die Anweisungen bem - ps und texm3x3 - ps in Pixel-Shaderversionen 1_0 bis 1_3). Diese Texturen können beispielsweise verwendet werden, um Unebenheiten zu speichern, die in Texturlesevorgänge eingespeist werden, aber nicht die Umgebungszuordnungen, die in texbem - ps, texbeml - ps und texm3x3spec - ps verwendet werden. Dies bedeutet, dass eine Textur mit Dimensionen, die keine Zweikräfte sind, nicht mithilfe von Texturkoordinaten, die im Shader berechnet werden, behandelt oder abgetastet werden kann. Diese Art von Vorgang wird als abhängiger Lesevorgang bezeichnet und kann für diese Arten von Texturen nicht ausgeführt werden. |
|
Das Gerät unterstützt keine projizierte Bump-Umgebungssuche in programmierbaren und festen Funktionsshadern. |
|
Die Texturierung der Perspektivkorrektur wird unterstützt. |
|
Wenn D3DPTEXTURECAPS_NONPOW2CONDITIONAL nicht festgelegt ist, müssen alle Texturen breiten und höhen als Zweikräfte angegeben sein. Diese Anforderung gilt weder für Cubetexturen noch für Volumentexturen.
Wenn D3DPTEXTURECAPS_NONPOW2CONDITIONAL ebenfalls festgelegt ist, unterstützt bedingt die Verwendung von 2D-Texturen mit Dimensionen, die keine Zweikräfte sind. Siehe D3DPTEXTURECAPS_NONPOW2CONDITIONAL Beschreibung. Wenn dieses Flag nicht festgelegt ist und D3DPTEXTURECAPS_NONPOW2CONDITIONAL auch nicht festgelegt ist, wird bedingungslose Unterstützung für 2D-Texturen mit Dimensionen bereitgestellt, die keine Zweimächte sind. |
|
Unterstützt das D3DTTFF_PROJECTED Texturtransformationsflag. Beim Anwenden teilt das Gerät transformierte Texturkoordinaten durch die letzte Texturkoordinate. Wenn diese Funktion vorhanden ist, tritt die projektive Aufteilung pro Pixel auf. Wenn diese Funktion nicht vorhanden ist, aber die projektive Aufteilung trotzdem auftreten muss, wird sie von der Direct3D-Runtime auf Vertexbasis ausgeführt. |
|
Alle Texturen müssen quadratisch sein. |
|
Texturindizes werden nicht nach der Texturgröße vor der Interpolation skaliert. |
|
Das Gerät unterstützt Volumetexturen. |
|
Das Gerät erfordert, dass für Volumentexturzuordnungen zwei Dimensionen angegeben sind. |
TextureFilterCaps
Typ: DWORD
Texturfilterungsfunktionen für eine Textur. Die Filterfunktionen pro Stufe geben an, welche Filtermodi für Texturphasen beim Mischen mehrerer Texturen unterstützt werden. Dieser Member kann eine beliebige Kombination der in D3DPTFILTERCAPS definierten Texturfilterflags pro Phase sein.
CubeTextureFilterCaps
Typ: DWORD
Texturfilterungsfunktionen für eine Würfeltextur. Die Filterfunktionen pro Stufe geben an, welche Filtermodi für Texturphasen beim Mischen mehrerer Texturen unterstützt werden. Dieser Member kann eine beliebige Kombination der in D3DPTFILTERCAPS definierten Texturfilterflags pro Phase sein.
VolumeTextureFilterCaps
Typ: DWORD
Texturfilterungsfunktionen für eine Volumetextur. Die Filterfunktionen pro Stufe geben an, welche Filtermodi für Texturphasen beim Mischen mehrerer Texturen unterstützt werden. Dieser Member kann eine beliebige Kombination der in D3DPTFILTERCAPS definierten Texturfilterflags pro Phase sein.
TextureAddressCaps
Typ: DWORD
Texturadressierungsfunktionen für Texturobjekte. Bei diesem Member kann es sich um ein oder mehrere der folgenden Flags handelt.
VolumeTextureAddressCaps
Typ: DWORD
Texturadressierungsfunktionen für eine Volumetextur. Bei diesem Member kann es sich um ein oder mehrere der flags handeln, die für das TextureAddressCaps-Element definiert sind.
LineCaps
Typ: DWORD
Definiert die Funktionen für Linienzeichnungsgrundtypen.
MaxTextureWidth
Typ: DWORD
Maximale Texturbreite für dieses Gerät.
MaxTextureHeight
Typ: DWORD
Maximale Texturhöhe für dieses Gerät.
MaxVolumeExtent
Typ: DWORD
Maximaler Wert für eine der drei Dimensionen (Breite, Höhe und Tiefe) einer Volumentextur.
MaxTextureRepeat
Typ: DWORD
Diese Zahl stellt den maximalen Bereich der ganzzahligen Bits der postnormalisierten Texturkoordinaten dar. Eine Texturkoordinate wird als 32-Bit-Ganzzahl mit Vorzeichen gespeichert, wobei 27 Bits zum Speichern des Ganzzahlteils und 5 Bits für den Gleitkommabruch verwendet werden. Der maximale ganzzahlige Index von 2²⁷ wird verwendet, um die maximale Texturkoordinate zu bestimmen, je nachdem, wie die Hardware die Texturkoordinatenskalierung durchführt.
Einige Hardware meldet die Obergrenze D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE. In diesem Fall verschiebt das Gerät die Skalierungstexturkoordinaten nach der Texturgröße bis nach der Interpolation und Anwendung des Texturadressmodus, sodass die Häufigkeit, mit der eine Textur umschlossen werden kann, durch den ganzzahligen Wert in MaxTextureRepeat angegeben wird.
Weniger erwünscht ist, dass auf einigen Hardware-D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE nicht festgelegt ist und das Gerät die Texturkoordinaten vor der Interpolation anhand der Texturgröße (mit der höchsten Detailebene) skaliert. Dies begrenzt die Häufigkeit, mit der eine Textur in MaxTextureRepeat/Texturgröße umschlossen werden kann.
Angenommen, MaxTextureRepeat ist gleich 32.000 und die Texturgröße beträgt 4.000. Wenn die Hardware D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE festlegt, ist die Anzahl der Umschließungen einer Textur gleich MaxTextureRepeat, was in diesem Beispiel 32.000 beträgt. Andernfalls ist die Anzahl der Umschließungen einer Textur gleich MaxTextureRepeat dividiert durch Texturgröße, die in diesem Beispiel 32k/4k beträgt.
MaxTextureAspectRatio
Typ: DWORD
Maximales Texturseitenverhältnis, das von der Hardware unterstützt wird, in der Regel eine Leistung von 2.
MaxAnisotropy
Typ: DWORD
Maximal gültiger Wert für den D3DSAMP_MAXANISOTROPY Texturphasenzustand.
MaxVertexW
Typ: float
Maximaler W-basierter Tiefenwert, der vom Gerät unterstützt wird.
GuardBandLeft
Typ: float
Bildschirmraumkoordinate des Guard-Band-Clipping-Bereichs. Koordinaten innerhalb dieses Rechtecks, aber außerhalb des Viewportrechtecks werden automatisch abgeschnitten.
GuardBandTop
Typ: float
Bildschirmraumkoordinate des Guard-Band-Clipping-Bereichs. Koordinaten innerhalb dieses Rechtecks, aber außerhalb des Viewportrechtecks werden automatisch abgeschnitten.
GuardBandRight
Typ: float
Bildschirmraumkoordinate des Guard-Band-Clipping-Bereichs. Koordinaten innerhalb dieses Rechtecks, aber außerhalb des Viewportrechtecks werden automatisch abgeschnitten.
GuardBandBottom
Typ: float
Bildschirmraumkoordinate des Guard-Band-Clipping-Bereichs. Koordinaten innerhalb dieses Rechtecks, aber außerhalb des Viewportrechtecks werden automatisch abgeschnitten.
ExtentsAdjust
Typ: float
Anzahl von Pixeln zum Anpassen des Blöckesrechtecks nach außen, um Antialiasingkerne aufzunehmen.
StencilCaps
Typ: DWORD
Flags, die unterstützte Schablonenpuffervorgänge angeben. Es wird angenommen, dass Schablonenvorgänge für alle drei Renderzustände des Schablonenpuffervorgangs (D3DRS_STENCILFAIL, D3DRS_STENCILPASS und D3DRS_STENCILZFAIL) gültig sind.
Weitere Informationen finden Sie unter D3DSTENCILCAPS.
FVFCaps
Typ: DWORD
Flexible Vertexformatfunktionen.
TextureOpCaps
Typ: DWORD
Kombination von Flags, die die von diesem Gerät unterstützten Texturvorgänge beschreiben. Die folgenden Flags werden definiert.
MaxTextureBlendStages
Typ: DWORD
Die maximale Anzahl von Texture-Blending-Phasen, die in der festen Funktionspipeline unterstützt werden. Dieser Wert ist die Anzahl der verfügbaren Blender. In der programmierbaren Pixelpipeline entspricht dies der Anzahl eindeutiger Texturregister, die von Pixel-Shaderanweisungen verwendet werden.
MaxSimultaneousTextures
Typ: DWORD
Maximale Anzahl von Texturen, die gleichzeitig an die Pipeline-Samplerphasen mit festen Funktionen gebunden werden können. Wenn dieselbe Textur an zwei Samplerstufen gebunden ist, zählt sie als zwei Texturen.
Dieser Wert hat keine Bedeutung in der programmierbaren Pipeline, in der die Anzahl der Samplerphasen von jeder Pixel-Shaderversion bestimmt wird. Jede Pixel-Shaderversion bestimmt auch die Anzahl der Texturdeklarationsanweisungen. Siehe Pixel-Shader.
VertexProcessingCaps
Typ: DWORD
Vertexverarbeitungsfunktionen. Für ein bestimmtes physisches Gerät kann diese Funktion von Direct3D-Geräten abhängig von den parametern variieren, die für CreateDevice bereitgestellt werden. Siehe D3DVTXPCAPS.
MaxActiveLights
Typ: DWORD
Maximale Anzahl von Leuchten, die gleichzeitig aktiv sein können. Für ein bestimmtes physisches Gerät kann diese Funktion von Direct3D-Geräten abhängig von den parametern variieren, die für CreateDevice bereitgestellt werden.
MaxUserClipPlanes
Typ: DWORD
Maximale Anzahl der unterstützten benutzerdefinierten Abschneideebenen. Dieses Element kann 0 sein. Für ein bestimmtes physisches Gerät kann diese Funktion von Direct3D-Geräten abhängig von den parametern variieren, die für CreateDevice bereitgestellt werden.
MaxVertexBlendMatrices
Typ: DWORD
Die maximale Anzahl von Matrizen, die dieses Gerät anwenden kann, wenn multimatrix vertex blending ausgeführt wird. Für ein bestimmtes physisches Gerät kann diese Funktion von Direct3D-Geräten abhängig von den parametern variieren, die für CreateDevice bereitgestellt werden.
MaxVertexBlendMatrixIndex
Typ: DWORD
DWORD-Wert, der den maximalen Matrixindex angibt, in den mithilfe der Pro-Vertex-Indizes indiziert werden kann. Die Anzahl der Matrizen ist MaxVertexBlendMatrixIndex + 1, was der Größe der Matrixpalette entspricht. Wenn Normalwerte in den Scheitelpunktdaten vorhanden sind, die für die Beleuchtung gemischt werden müssen, ist die Anzahl der Matrizen halb so viele wie durch dieses Funktionsflag angegebene Zahl. Wenn MaxVertexBlendMatrixIndex auf 0 festgelegt ist, unterstützt der Treiber keine indizierte Vertex-Blending. Wenn dieser Wert nicht 0 ist, ist der gültige Indizesbereich 0 über MaxVertexBlendMatrixIndex.
Ein Nullwert für MaxVertexBlendMatrixIndex gibt an, dass der Treiber keine indizierten Matrizen unterstützt.
Bei Verwendung der Softwarevertexverarbeitung können 256 Matrizen für die indizierte Vertexmischung mit oder ohne normales Mischen verwendet werden.
Für ein bestimmtes physisches Gerät kann diese Funktion von Direct3D-Geräten abhängig von den parametern variieren, die für CreateDevice bereitgestellt werden.
MaxPointSize
Typ: float
Maximale Größe eines Punktgrundtyps. Wenn auf 1.0f festgelegt ist, unterstützt das Gerät keine Punktgrößensteuerung. Der Bereich ist größer oder gleich 1,0f.
MaxPrimitiveCount
Typ: DWORD
Maximale Anzahl von Grundtypen für jeden DrawPrimitive-Aufruf . Es gibt zwei Fälle:
- Wenn MaxPrimitiveCount nicht gleich 0xffff ist, können Sie maximal MaxPrimitiveCount-Primitive mit jedem Draw-Aufruf zeichnen.
- Wenn MaxPrimitiveCount jedoch 0xffff entspricht, können Sie immer noch maximal MaxPrimitiveCount primitiv zeichnen, aber Sie können auch nicht mehr als eindeutige Scheitelpunkte von MaxPrimitiveCount verwenden (da jeder Primitive möglicherweise drei verschiedene Scheitelpunkte verwenden kann).
MaxVertexIndex
Typ: DWORD
Maximale Größe von Indizes, die für die Hardwarevertexverarbeitung unterstützt werden. Es ist möglich, 32-Bit-Indexpuffer zu erstellen. Sie können jedoch nicht mit dem Indexpuffer rendern, es sei denn, dieser Wert ist größer als 0x0000FFFF.
MaxStreams
Typ: DWORD
Maximale Anzahl gleichzeitiger Datenströme für SetStreamSource. Der gültige Bereich ist 1 bis 16. Beachten Sie, dass der Treiber kein Direct3D 9-Treiber ist, wenn dieser Wert 0 ist.
MaxStreamStride
Typ: DWORD
Maximaler Schritt für SetStreamSource.
VertexShaderVersion
Typ: DWORD
Zwei Zahlen, die den Vertex-Shader Standard und Unterversionen darstellen. Weitere Informationen zu den Anweisungen, die für jede Vertex-Shaderversion unterstützt werden, finden Sie unter Version 1_x, Version 2_0, Version 2_0 Extended oder Version 3_0.
MaxVertexShaderConst
Typ: DWORD
Die Anzahl der Vertex-Shader-Vertex-Shaderregister , die für Konstanten reserviert sind.
PixelShaderVersion
Typ: DWORD
Zwei Zahlen, die den Pixel-Shader Standard und Unterversionen darstellen. Weitere Informationen zu den Anweisungen, die für jede Pixel-Shaderversion unterstützt werden, finden Sie unter Version 1_x, Version 2_0, Version 2_0 Extended oder Version 3_0.
PixelShader1xMaxValue
Typ: float
Maximaler Wert der arithmetischen Komponente des Pixel-Shaders. Dieser Wert gibt den internen Wertebereich an, der für Pixelfarbmischungsvorgänge unterstützt wird. Innerhalb des Bereichs, an den sie berichten, müssen Implementierungen zulassen, dass Daten die Pixelverarbeitung unverändert (unclamped) durchlaufen können. Normalerweise ist der Wert dieses Members ein absoluter Wert. Ein 1,0 gibt beispielsweise an, dass der Bereich -1,0 bis 1 ist, und ein 8,0 gibt an, dass der Bereich -8,0 bis 8,0 ist. Der Wert muss für jede Hardware, die Pixel-Shader unterstützt, = 1,0 sein >.
DevCaps2
Typ: DWORD
Gerätetreiberfunktionen für adaptive Tessellation. Weitere Informationen finden Sie unter D3DDEVCAPS2.
MaxNpatchTessellationLevel
TBD
Reserved5
TBD
MasterAdapterOrdinal
Typ: UINT
Diese Zahl gibt an, welches Gerät das master für diesen Untergeordneten ist. Diese Zahl wird aus demselben Raum wie die Adapterwerte entnommen.
Für die Unterstützung mit mehreren Köpfen wird ein Kopf als master Kopf bezeichnet, und alle anderen Köpfe auf demselben Karte werden als untergeordnete Köpfe bezeichnet. Wenn mehr als ein Mehrkopfadapter in einem System vorhanden ist, werden die master und ihre Untergeordneten aus einem Multiheadadapter als Gruppe bezeichnet.
AdapterOrdinalInGroup
Typ: UINT
Diese Zahl gibt die Reihenfolge an, in der von der API auf Köpfe verwiesen wird. Der Wert für den master-Adapter ist immer 0. Diese Werte entsprechen nicht den Adapter ordinalen. Sie gelten nur für Köpfe innerhalb einer Gruppe.
NumberOfAdaptersInGroup
Typ: UINT
Die Anzahl der Adapter in dieser Adaptergruppe (nur, wenn master). Dies ist 1 für herkömmliche Adapter. Der Wert ist größer als 1 für den master Adapter eines mehrstufigen Karte. Der Wert ist 0 für einen untergeordneten Adapter eines mehrkopfigen Karte. Jede Karte kann höchstens einen master, aber möglicherweise viele Untergeordnete haben.
DeclTypes
Typ: DWORD
Eine Kombination aus einem oder mehreren Datentypen, die in einer Scheitelpunktdeklaration enthalten sind. Siehe D3DDTCAPS.
NumSimultaneousRTs
Typ: DWORD
Anzahl gleichzeitiger Renderziele. Diese Zahl muss mindestens eins sein.
StretchRectFilterCaps
Typ: DWORD
Kombination von Konstanten, die die von StretchRect unterstützten Vorgänge beschreiben. Die Flags, die in diesem Feld festgelegt werden können, sind:
Dauerhaft | BESCHREIBUNG |
---|---|
D3DPTFILTERCAPS_MINFPOINT | Das Gerät unterstützt die Punktbeispielfilterung zum Minimieren von Rechtecken. Dieser Filtertyp wird angefordert, indem StretchRect mithilfe von D3DTEXF_POINT aufgerufen wird. |
D3DPTFILTERCAPS_MAGFPOINT | Das Gerät unterstützt die Punktbeispielfilterung zum Vergrößern von Rechtecken. Dieser Filtertyp wird angefordert, indem StretchRect mithilfe von D3DTEXF_POINT aufgerufen wird. |
D3DPTFILTERCAPS_MINFLINEAR | Das Gerät unterstützt die bilineare Interpolationsfilterung, um Rechtecke zu minimieren. Dieser Filtertyp wird angefordert, indem StretchRect mithilfe von D3DTEXF_LINEAR aufgerufen wird. |
D3DPTFILTERCAPS_MAGFLINEAR | Das Gerät unterstützt die bilineare Interpolationsfilterung zum Vergrößern von Rechtecken. Dieser Filtertyp wird angefordert, indem StretchRect mithilfe von D3DTEXF_LINEAR aufgerufen wird. |
Weitere Informationen finden Sie unter D3DTEXTUREFILTERTYPE und D3DTEXTUREFILTERTYPE.
VS20Caps
Typ: D3DVSHADERCAPS2_0
Das Gerät unterstützt die erweiterte Funktion Vertex-Shader version 2_0. Siehe D3DVSHADERCAPS2_0.
PS20Caps
Typ: D3DPSHADERCAPS2_0
Das Gerät unterstützt die erweiterte Funktion pixel shader Version 2_0. Siehe D3DPSHADERCAPS2_0.
VertexTextureFilterCaps
Typ: DWORD
Das Gerät unterstützt die Texturfilterfunktion für Vertex-Shader. Siehe D3DPTFILTERCAPS.
MaxVShaderInstructionsExecuted
Typ: DWORD
Maximale Anzahl von Vertex-Shaderanweisungen, die bei Verwendung der Flusssteuerung ausgeführt werden können. Die maximale Anzahl von Anweisungen, die programmiert werden können, ist MaxVertexShader30InstructionSlots.
MaxPShaderInstructionsExecuted
Typ: DWORD
Maximale Anzahl von Pixel-Shaderanweisungen, die bei Verwendung der Flusssteuerung ausgeführt werden können. Die maximale Anzahl von Anweisungen, die programmiert werden können, ist MaxPixelShader30InstructionSlots.
MaxVertexShader30InstructionSlots
Typ: DWORD
Maximale Anzahl der unterstützten Scheitelpunkt-Shader-Befehlsslots. Der maximale Wert, der für diese Obergrenze festgelegt werden kann, ist 32768. Geräte, die vs_3_0 unterstützen, müssen mindestens 512 Anweisungsslots unterstützen.
MaxPixelShader30InstructionSlots
Typ: DWORD
Maximale Anzahl unterstützter Pixel-Shader-Anweisungsslots. Der maximale Wert, der für diese Obergrenze festgelegt werden kann, ist 32768. Geräte, die ps_3_0 unterstützen, müssen mindestens 512 Anweisungsslots unterstützen.
Hinweise
Die Elemente MaxTextureBlendStages und MaxSimultaneousTextures mögen ähnlich aussehen, enthalten jedoch unterschiedliche Informationen. Das MaxTextureBlendStages-Element enthält die Gesamtzahl der vom aktuellen Gerät unterstützten Textur-Blending-Phasen, und das MaxSimultaneousTextures-Element beschreibt, wie viele dieser Phasen texturen mit der SetTexture-Methode gebunden sein können.
Wenn der Treiber diese Struktur ausfüllt, kann er Werte für Ausführungspufferfunktionen festlegen, auch wenn die Zum Abrufen der Funktionen verwendete Schnittstelle (z. B . IDirect3DDevice9) keine Ausführungspuffer unterstützt.
Im Allgemeinen können Leistungsprobleme auftreten, wenn Sie eine Textur verwenden und diese dann während einer Szene ändern. Stellen Sie sicher, dass keine Textur, die im aktuellen BeginScene - und EndScene-Block verwendet wird, entfernt wird, es sei denn, dies ist unbedingt erforderlich. Bei extrem hoher Texturnutzung innerhalb einer Szene sind die Ergebnisse nicht definiert. Dies tritt auf, wenn Sie eine Textur ändern, die Sie in der Szene verwendet haben, und es ist kein freies Texturspeicher verfügbar. Bei solchen Systemen wird der Inhalt des z-Puffers bei EndScene ungültig. Anwendungen sollten UpdateSurface nicht auf oder aus dem Backpuffer auf diesem Hardwaretyp innerhalb eines BeginScene/EndScene-Paares aufrufen. Darüber hinaus sollten Anwendungen nicht versuchen, auf den Z-Puffer zuzugreifen, wenn das D3DPRASTERCAPS_ZBUFFERLESSHSR-Funktionsflag festgelegt ist. Schließlich sollten Anwendungen den Backpuffer oder den Z-Puffer in einem BeginScene/EndScene-Paar nicht sperren.
Die folgenden Flags für mipmapped-Texturen werden in Direct3D 9 nicht unterstützt.
- D3DPTFILTERCAPS_LINEAR
- D3DPTFILTERCAPS_LINEARMIPLINEAR
- D3DPTFILTERCAPS_LINEARMIPNEAREST
- D3DPTFILTERCAPS_MIPNEAREST
- D3DPTFILTERCAPS_NEAREST
Anforderungen
Kopfzeile | d3d9caps.h |