Struttura D3DCAPS9 (d3d9caps.h)
Rappresenta le funzionalità dell'hardware esposto tramite l'oggetto Direct3D.
Sintassi
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;
Members
DeviceType
Tipo: D3DDEVTYPE
Membro del tipo enumerato D3DDEVTYPE , che identifica il tipo di risorse utilizzato per l'elaborazione dei vertici.
AdapterOrdinal
Tipo: UINT
Adattatore in cui è stato creato questo dispositivo Direct3D. Questo ordinale è valido solo per passare ai metodi dell'interfaccia IDirect3D9 che ha creato questo dispositivo Direct3D. L'interfaccia IDirect3D9 può sempre essere recuperata chiamando GetDirect3D.
Caps
Tipo: DWORD
Funzionalità specifiche del driver seguenti.
Valore | Significato | |
---|---|---|
|
L'hardware di visualizzazione è in grado di restituire la riga di analisi corrente. | |
|
Il driver di visualizzazione supporta un DDI sovrimpressione che consente la verifica delle funzionalità di sovrapposizione. Per altre informazioni sull'DDI sovrimpressione, vedere Sovrimpressione DDI.
|
Caps2
Tipo: DWORD
Funzionalità specifiche del driver identificate in D3DCAPS2.
Caps3
Tipo: DWORD
Funzionalità specifiche del driver identificate in D3DCAPS3.
PresentationIntervals
Tipo: DWORD
Maschera di bit di valori che rappresentano gli intervalli di scambio di presentazioni disponibili.
CursorCaps
Tipo: DWORD
Maschera bit che indica il supporto hardware disponibile per i cursori. Direct3D 9 non definisce le funzionalità del cursore alfa-blending.
DevCaps
Tipo: DWORD
Contrassegni che identificano le funzionalità del dispositivo.
Valore | Significato |
---|---|
|
Il dispositivo supporta le trame di memoria di sistema a trame di memoria video non locali. |
|
Il dispositivo può eseguire il rendering dei comandi dopo un'inversione di pagina. Le applicazioni non modificano il comportamento se questo flag è impostato; questa funzionalità significa che il dispositivo è relativamente veloce. |
|
Il dispositivo può supportare almeno un driver conforme a DirectX 5. |
|
Il dispositivo può supportare almeno un driver conforme a DirectX 7. |
|
Il dispositivo esporta un hal IDirect3DDevice9::D rawPrimitive-aware. |
|
Il dispositivo può usare buffer di esecuzione dalla memoria di sistema. |
|
Il dispositivo può usare buffer di esecuzione dalla memoria video. |
|
Il dispositivo ha accelerazione hardware per la rasterizzazione della scena. |
|
Il dispositivo può supportare la trasformazione e l'illuminazione nell'hardware. |
|
Il dispositivo supporta le patch N. |
|
Il dispositivo può supportare la rasterizzazione, la trasformazione, l'illuminazione e l'ombreggiatura nell'hardware. |
|
Il dispositivo supporta curve quintic Bézier e B-splines. |
|
Il dispositivo supporta patch rettangolari e triangolari. |
|
Quando questa funzionalità del dispositivo è impostata, l'architettura hardware non richiede la memorizzazione nella cache di informazioni e le patch non memorizzate (handle zero) verranno disegnate in modo efficiente come quelle memorizzate nella cache. Si noti che l'impostazione D3DDEVCAPS_RTPATCHHANDLEZERO non significa che è possibile disegnare una patch con handle zero. Una patch handle-zero può sempre essere disegnata se questo limite è impostato o meno. |
|
Il dispositivo esegue il texturing da pool di memoria separati. |
|
Il dispositivo può recuperare trame dalla memoria video non locale. |
|
Il dispositivo può recuperare trame dalla memoria di sistema. |
|
Il dispositivo può recuperare trame dalla memoria del dispositivo. |
|
Il dispositivo può usare buffer dalla memoria di sistema per vertici trasformati e illuminati. |
|
Il dispositivo può usare buffer dalla memoria video per vertici trasformati e illuminati. |
PrimitiveMiscCaps
Tipo: DWORD
Funzionalità primitive del driver varie. Vedere D3DPMISCCAPS.
RasterCaps
Tipo: DWORD
Informazioni sulle funzionalità di disegno raster. Questo membro può essere uno o più dei flag seguenti.
Valore | Significato |
---|---|
|
Il dispositivo supporta il filtro anisotropico. |
|
Il dispositivo scorre correttamente il punto di vista dei colori. |
|
Il dispositivo può dither per migliorare la risoluzione dei colori. |
|
Il dispositivo supporta la distorsione della profondità legacy. Per la vera distorsione della profondità, vedere D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS. |
|
Il dispositivo supporta la nebbia basata sull'intervallo. Nella nebbia basata su intervallo, la distanza di un oggetto dal visualizzatore viene usata per calcolare gli effetti della nebbia, non la profondità dell'oggetto , ovvero la coordinata z, nella scena. |
|
Il dispositivo calcola il valore della nebbia facendo riferimento a una tabella di ricerca contenente valori di nebbia indicizzati alla profondità di un determinato pixel. |
|
Il dispositivo calcola il valore della nebbia durante l'operazione di illuminazione e interpola il valore della nebbia durante la rasterizzazione. |
|
Il dispositivo supporta le regolazioni di distorsioni a livello di dettaglio. Queste modifiche di pregiudizio consentono a un'applicazione di visualizzare una mappa mipmap più nitida o meno nitida di quanto normalmente sarebbe. Per altre informazioni sul livello di distorsione dei dettagli nelle mappe mipmap, vedere D3DSAMP_MIPMAPLODBIAS. |
|
Il dispositivo supporta l'attivazione e l'attivazione di multicampionamento tra IDirect3DDevice9::BeginScene e IDirect3DDevice9::EndScene (usando D3DRS_MULTISAMPLEANTIALIAS). |
|
Il dispositivo supporta test scissor. Vedere Test scissor (Direct3D 9). |
|
Il dispositivo esegue una vera distorsione della profondità basata su pendenza. Questo è in contrasto con il pregiudizio della profondità dello stile legacy. |
|
Il dispositivo supporta il buffer di profondità usando w. |
|
Il dispositivo supporta la nebbia basata su w. La nebbia basata su W viene usata quando viene specificata una matrice di proiezione di prospettiva, ma le proiezioni affine usano ancora la nebbia basata su z. Il sistema considera una matrice di proiezione che contiene un valore diverso da zero nell'elemento [3][4] come matrice di proiezione di prospettiva. |
|
Il dispositivo può eseguire la rimozione della superficie nascosta (HSR) senza richiedere all'applicazione di ordinare poligoni e senza richiedere l'allocazione di un buffer di profondità. Questo lascia più memoria video per le trame. Il metodo usato per eseguire HSR è dipendente dall'hardware ed è trasparente per l'applicazione.
L'HSR con buffer Z viene eseguito se non è associata alcuna superficie di buffer di profondità alla superficie di rendering e il test di confronto del buffer di profondità è abilitato, ovvero quando il valore di stato associato alla costante di enumerazione D3DRS_ZENABLE è impostato su TRUE. |
|
Il dispositivo supporta la nebbia basata su z. |
|
Il dispositivo può eseguire operazioni z-test. Questo esegue in modo efficace il rendering di una primitiva e indica se è stato eseguito il rendering di qualsiasi pixel z. |
ZCmpCaps
Tipo: DWORD
Funzionalità di confronto del buffer Z. Questo membro può essere uno o più dei flag seguenti.
SrcBlendCaps
Tipo: DWORD
Funzionalità di fusione di origine. Questo membro può essere uno o più dei flag seguenti. I valori RGBA dell'origine e della destinazione sono indicati dai sottoscritti s e d.)
Valore | Significato | |
---|---|---|
|
Il driver supporta sia D3DBLEND_BLENDFACTOR che D3DBLEND_INVBLENDFACTOR. Vedere D3DBLEND. | |
|
Il fattore di blend di origine è (1 - As, 1 - As, 1 - As) e il fattore di blend di destinazione è (As, As); la selezione di blend di destinazione viene sostituita. | |
|
Il driver supporta la modalità blend D3DBLEND_BOTHSRCALPHA. Questa modalità di fusione è obsoleta. Per altre informazioni, vedere D3DBLEND. | |
|
Il fattore blend è (A d, Ad, A d, Ad, A d, Ad). | |
|
Il fattore blend è (R d, Gd, Bd, Ad). | |
|
Il fattore di blend è (1 - A d, 1 - Ad, 1 - A d, 1- Ad). | |
|
Il fattore di blend è (1 - R d, 1 - Gd, 1- Bd, 1 - Ad). | |
|
Il fattore di blend è (1 - Come, 1 - Come, 1 - Come, 1 - As). | |
|
Il fattore di blend è (1 - Rs, 1 - Gs, 1 - Bs, 1 - As). | |
|
Il fattore blend è (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, non usato)). Vedere Fusione di destinazione di rendering.
|
|
|
Il fattore di blend è (1, 1, 1, 1). | |
|
Il fattore blend è (As, As, As, As). | |
|
Il fattore di blend è (f, f, f, 1); f = min(As, 1 - Ad). | |
|
Il fattore blend è (Rs, Gs, Bs, As). | |
|
Il fattore blend è (PSOutColor[1]r, PSOutColor[1]g, PSOutColor[1]b, non usato). Vedere Fusione di destinazione di rendering.
|
|
|
Il fattore di blend è (0, 0, 0, 0). |
DestBlendCaps
Tipo: DWORD
Funzionalità di fusione di destinazione. Questo membro può essere la stessa funzionalità definita per il membro SrcBlendCaps.
AlphaCmpCaps
Tipo: DWORD
Funzionalità di confronto di test alfa. Questo membro può includere gli stessi flag di funzionalità definiti per il membro ZCmpCaps. Se questo membro contiene solo la funzionalità D3DPCMPCAPS_ALWAYS o solo la funzionalità D3DPCMPCAPS_NEVER, il driver non supporta i test alfa. In caso contrario, i flag identificano i singoli confronti supportati per i test alfa.
ShadeCaps
Tipo: DWORD
Funzionalità di ombreggiatura delle operazioni. Si presuppone, in generale, che se un dispositivo supporta un determinato comando, supporta la modalità D3DSHADE_FLAT (come specificato nel tipo enumerato D3DSHADEMODE ). Questo flag specifica se il driver può supportare anche l'ombreggiatura gouraud e se i componenti di colore alfa sono supportati. Quando i componenti alfa non sono supportati, il valore alfa dei colori generato è implicitamente 255. Questo è il massimo possibile alfa ,ovvero il componente alfa è a intensità completa.
Il colore, le evidenziazioni speculari, la nebbia e gli interpolanti alfa di un triangolo hanno flag di funzionalità che un'applicazione può usare per scoprire come vengono implementate dal driver del dispositivo.
Questo membro può essere uno o più dei flag seguenti.
TextureCaps
Tipo: DWORD
Funzionalità di mapping di trame varie. Questo membro può essere uno o più dei flag seguenti.
Valore | Significato |
---|---|
|
Alfa in pixel di trama è supportato. |
|
Il dispositivo può disegnare alfa dalle tavolozze delle trame. |
|
Supporta trame del cubo. |
|
Il dispositivo richiede che le mappe della trama del cubo abbiano dimensioni specificate come poteri di due. |
|
Il dispositivo supporta trame del cubo mipmapped. |
|
Il dispositivo supporta trame mipmapped. |
|
Il dispositivo supporta trame del volume mipmapped. |
|
D3DPTEXTURECAPS_POW2 è impostato anche, supporta in modo condizionale l'uso di trame 2D con dimensioni che non sono poteri di due. Un dispositivo che espone questa funzionalità può usare tale trama se vengono soddisfatti tutti i requisiti seguenti.
Se questo flag non è impostato e D3DPTEXTURECAPS_POW2 non è impostato, il supporto incondizionato viene fornito per trame 2D con dimensioni che non sono poteri di due. Una trama che non è una potenza di due non può essere impostata in una fase che verrà letto in base a un calcolo shader (ad esempio il bem - ps e texm3x3 - istruzioni ps nelle versioni di pixel shader 1_0 su 1_3). Ad esempio, queste trame possono essere usate per archiviare le urte che verranno inserite in letture di trama, ma non le mappe dell'ambiente usate in texbem - ps, texbeml - ps e texm3x3spec - ps. Ciò significa che una trama con dimensioni che non sono poteri di due non possono essere risolti o campionati usando coordinate di trama calcolate all'interno dello shader. Questo tipo di operazione è noto come lettura dipendente e non può essere eseguito su questi tipi di trame. |
|
Il dispositivo non supporta un'operazione di ricerca dell'ambiente di urto proiettata in shader programmabili e fissi. |
|
La correzione della prospettiva è supportata. |
|
Se D3DPTEXTURECAPS_NONPOW2CONDITIONAL non è impostato, tutte le trame devono avere larghezze e altezze specificate come poteri di due. Questo requisito non si applica alle trame del cubo o alle trame del volume.
Se D3DPTEXTURECAPS_NONPOW2CONDITIONAL è impostato anche, supporta in modo condizionale l'uso di trame 2D con dimensioni che non sono poteri di due. Vedere D3DPTEXTURECAPS_NONPOW2CONDITIONAL descrizione. Se questo flag non è impostato e D3DPTEXTURECAPS_NONPOW2CONDITIONAL non è impostato, il supporto incondizionato viene fornito per trame 2D con dimensioni che non sono poteri di due. |
|
Supporta il flag di trasformazione trama D3DTTFF_PROJECTED. Quando applicato, il dispositivo divide le coordinate della trama trasformate in base all'ultima coordinata della trama. Se questa funzionalità è presente, la divisione proiettata si verifica per pixel. Se questa funzionalità non è presente, ma la divisione proiettata deve verificarsi comunque, viene eseguita in base a un vertice dal runtime Direct3D. |
|
Tutte le trame devono essere quadrate. |
|
Gli indici di trama non vengono ridimensionati in base alle dimensioni della trama prima dell'interpolazione. |
|
Il dispositivo supporta trame di volumi. |
|
Il dispositivo richiede che le mappe della trama del volume abbiano dimensioni specificate come poteri di due. |
TextureFilterCaps
Tipo: DWORD
Funzionalità di filtro trama per una trama. Le funzionalità di filtro per fase riflettono le modalità di filtro supportate per le fasi della trama durante l'esecuzione della fusione di più trame. Questo membro può essere qualsiasi combinazione dei flag di filtro trama per fase definiti in D3DPTFILTERCAPS.
CubeTextureFilterCaps
Tipo: DWORD
Funzionalità di filtro trama per una trama del cubo. Le funzionalità di filtro per fase riflettono le modalità di filtro supportate per le fasi della trama durante l'esecuzione della fusione di più trame. Questo membro può essere qualsiasi combinazione dei flag di filtro trama per fase definiti in D3DPTFILTERCAPS.
VolumeTextureFilterCaps
Tipo: DWORD
Funzionalità di filtro trama per una trama del volume. Le funzionalità di filtro per fase riflettono le modalità di filtro supportate per le fasi della trama durante l'esecuzione della fusione di più trame. Questo membro può essere qualsiasi combinazione dei flag di filtro trama per fase definiti in D3DPTFILTERCAPS.
TextureAddressCaps
Tipo: DWORD
Funzionalità di indirizzamento della trama per gli oggetti trama. Questo membro può essere uno o più dei flag seguenti.
VolumeTextureAddressCaps
Tipo: DWORD
Funzionalità di indirizzamento della trama per una trama del volume. Questo membro può essere uno o più dei flag definiti per il membro TextureAddressCaps.
LineCaps
Tipo: DWORD
Definisce le funzionalità per le primitive di disegno linea.
MaxTextureWidth
Tipo: DWORD
Larghezza massima della trama per questo dispositivo.
MaxTextureHeight
Tipo: DWORD
Altezza massima della trama per questo dispositivo.
MaxVolumeExtent
Tipo: DWORD
Valore massimo per una delle tre dimensioni (larghezza, altezza e profondità) di una trama del volume.
MaxTextureRepeat
Tipo: DWORD
Questo numero rappresenta l'intervallo massimo dei bit interi delle coordinate della trama post normalizzata. Una coordinata di trama viene archiviata come intero con segno a 32 bit usando 27 bit per archiviare la parte intero e 5 bit per la frazione a virgola mobile. L'indice intero massimo, 2²⁷, viene usato per determinare la coordinata massima della trama, a seconda del modo in cui l'hardware esegue il ridimensionamento delle coordinate della trama.
Alcuni hardware segnalano il limite di D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE. Per questo caso, il dispositivo disattiva le coordinate della trama in base alle dimensioni della trama fino a dopo l'interpolazione e l'applicazione della modalità di indirizzo della trama, quindi il numero di volte in cui è possibile eseguire il wrapping di una trama viene dato dal valore intero in MaxTextureRepeat.
In alcuni D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE hardware non è impostato e il dispositivo ridimensiona le coordinate della trama in base alle dimensioni della trama (usando il livello più alto di dettaglio) prima dell'interpolazione. Questo limita il numero di volte in cui è possibile eseguire il wrapping di una trama in MaxTextureRepeat/texture size.
Si supponga, ad esempio, che MaxTextureRepeat sia uguale a 32k e che la dimensione della trama sia 4k. Se l'hardware imposta D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, il numero di volte in cui è possibile eseguire il wrapping di una trama è uguale a MaxTextureRepeat, ovvero 32k in questo esempio. In caso contrario, il numero di volte in cui è possibile eseguire il wrapping di una trama è uguale a MaxTextureRepeat diviso per dimensioni della trama, ovvero 32k/4k in questo esempio.
MaxTextureAspectRatio
Tipo: DWORD
Rapporto di aspetto massimo della trama supportato dall'hardware, in genere una potenza di 2.
MaxAnisotropy
Tipo: DWORD
Valore massimo valido per lo stato della trama D3DSAMP_MAXANISOTROPY.
MaxVertexW
Tipo: float
Valore massimo di profondità basato su W supportato dal dispositivo.
GuardBandLeft
Tipo: float
Coordinata dello spazio dello schermo dell'area di ritaglio della banda di guardia. Le coordinate all'interno di questo rettangolo, ma all'esterno del rettangolo di visualizzazione vengono ritagliate automaticamente.
GuardBandTop
Tipo: float
Coordinata dello spazio dello schermo dell'area di ritaglio della banda di guardia. Le coordinate all'interno di questo rettangolo, ma all'esterno del rettangolo di visualizzazione vengono ritagliate automaticamente.
GuardBandRight
Tipo: float
Coordinata dello spazio dello schermo dell'area di ritaglio della banda di guardia. Le coordinate all'interno di questo rettangolo, ma all'esterno del rettangolo di visualizzazione vengono ritagliate automaticamente.
GuardBandBottom
Tipo: float
Coordinata dello spazio dello schermo dell'area di ritaglio della banda di guardia. Le coordinate all'interno di questo rettangolo, ma all'esterno del rettangolo di visualizzazione vengono ritagliate automaticamente.
ExtentsAdjust
Tipo: float
Numero di pixel per regolare il rettangolo di estensione verso l'esterno per supportare kernel antialiasing.
StencilCaps
Tipo: DWORD
Flag che specificano operazioni stencil-buffer supportate. Si presuppone che le operazioni Stencil siano valide per tutti e tre gli stati di rendering dell'operazione buffer stencil (D3DRS_STENCILFAIL, D3DRS_STENCILPASS e D3DRS_STENCILZFAIL).
Per altre informazioni, vedere D3DSTENCILCAPS.
FVFCaps
Tipo: DWORD
Funzionalità di formato dei vertici flessibili.
TextureOpCaps
Tipo: DWORD
Combinazione di flag che descrivono le operazioni di trama supportate da questo dispositivo. Vengono definiti i flag seguenti.
MaxTextureBlendStages
Tipo: DWORD
Numero massimo di fasi di fusione delle trame supportate nella pipeline di funzioni fisse. Questo valore è il numero di frullatori disponibili. Nella pipeline pixel programmabile corrisponde al numero di registri di trama univoci usati dalle istruzioni del pixel shader.
MaxSimultaneousTextures
Tipo: DWORD
Numero massimo di trame che possono essere associate contemporaneamente alle fasi del campionatore di pipeline a funzione fissa. Se la stessa trama è associata a due fasi del campionatore, viene conteggiato come due trame.
Questo valore non ha alcun significato nella pipeline programmabile in cui il numero di fasi del campionatore è determinato da ogni versione del pixel shader. Ogni versione del pixel shader determina anche il numero di istruzioni per la dichiarazione di trama. Vedi Pixel Shader.
VertexProcessingCaps
Tipo: DWORD
Funzionalità di elaborazione dei vertici. Per un determinato dispositivo fisico, questa funzionalità può variare tra i dispositivi Direct3D a seconda dei parametri forniti a CreateDevice. Vedere D3DVTXPCAPS.
MaxActiveLights
Tipo: DWORD
Numero massimo di luci che possono essere attive contemporaneamente. Per un determinato dispositivo fisico, questa funzionalità può variare tra i dispositivi Direct3D a seconda dei parametri forniti a CreateDevice.
MaxUserClipPlanes
Tipo: DWORD
Numero massimo di piani di ritaglio definiti dall'utente supportati. Questo membro può essere 0. Per un determinato dispositivo fisico, questa funzionalità può variare tra i dispositivi Direct3D a seconda dei parametri forniti a CreateDevice.
MaxVertexBlendMatrices
Tipo: DWORD
Numero massimo di matrici che questo dispositivo può applicare quando si esegue la fusione dei vertici multimatrix. Per un determinato dispositivo fisico, questa funzionalità può variare tra i dispositivi Direct3D a seconda dei parametri forniti a CreateDevice.
MaxVertexBlendMatrixIndex
Tipo: DWORD
Valore DWORD che specifica l'indice di matrice massimo che può essere indicizzato in usando gli indici per vertice. Il numero di matrici è MaxVertexBlendMatrixIndex + 1, ovvero la dimensione della tavolozza matrice. Se le normali sono presenti nei dati dei vertici che devono essere combinate per l'illuminazione, il numero di matrici è metà del numero specificato da questo flag di funzionalità. Se MaxVertexBlendMatrixIndex è impostato su zero, il driver non supporta la fusione dei vertici indicizzati. Se questo valore non è zero, l'intervallo valido di indici è zero tramite MaxVertexBlendMatrixIndex.
Un valore zero per MaxVertexBlendMatrixIndex indica che il driver non supporta le matrici indicizzate.
Quando viene usata l'elaborazione dei vertici software, è possibile usare 256 matrici per la fusione dei vertici indicizzati, con o senza fusione normale.
Per un determinato dispositivo fisico, questa funzionalità può variare tra i dispositivi Direct3D a seconda dei parametri forniti a CreateDevice.
MaxPointSize
Tipo: float
Dimensione massima di una primitiva punto. Se impostato su 1.0f, il dispositivo non supporta il controllo delle dimensioni del punto. L'intervallo è maggiore o uguale a 1,0f.
MaxPrimitiveCount
Tipo: DWORD
Numero massimo di primitive per ogni chiamata DrawPrimitive . I casi possibili sono due:
- Se MaxPrimitiveCount non è uguale a 0xffff, è possibile disegnare al massimo le primitive MaxPrimitiveCount con ogni chiamata di disegno.
- Tuttavia, se MaxPrimitiveCount è uguale a 0xffff, è comunque possibile disegnare al massimo la primitiva MaxPrimitiveCount, ma è anche possibile usare vertici univoci di MaxPrimitiveCount (poiché ogni primitiva può potenzialmente usare tre vertici diversi).
MaxVertexIndex
Tipo: DWORD
Dimensioni massime degli indici supportati per l'elaborazione dei vertici hardware. È possibile creare buffer di indice a 32 bit; Tuttavia, non sarà possibile eseguire il rendering con il buffer di indice, a meno che questo valore non sia maggiore di 0x0000FFFF.
MaxStreams
Tipo: DWORD
Numero massimo di flussi di dati simultanei per SetStreamSource. L'intervallo valido è compreso tra 1 e 16. Si noti che se questo valore è 0, il driver non è un driver Direct3D 9.
MaxStreamStride
Tipo: DWORD
Stride massimo per SetStreamSource.
VertexShaderVersion
Tipo: DWORD
Due numeri che rappresentano la versione principale e secondaria del vertex shader. Per altre informazioni sulle istruzioni supportate per ogni versione del vertex shader, vedere Version 1_x, Version 2_0, Version 2_0 Extended o Version 3_0.
MaxVertexShaderConst
Tipo: DWORD
Numero di registri vertex shader vertex shader riservati per le costanti.
PixelShaderVersion
Tipo: DWORD
Due numeri che rappresentano le versioni principali e secondarie del pixel shader. Per altre informazioni sulle istruzioni supportate per ogni versione del pixel shader, vedere Versione 1_x, versione 2_0, versione 2_0 estesa o versione 3_0.
PixelShader1xMaxValue
Tipo: float
Valore massimo del componente aritmetico del pixel shader. Questo valore indica l'intervallo interno di valori supportati per le operazioni di fusione dei colori pixel. All'interno dell'intervallo a cui segnalano, le implementazioni devono consentire ai dati di passare attraverso l'elaborazione pixel non modificata (non crittografata). In genere, il valore di questo membro è un valore assoluto. Ad esempio, 1.0 indica che l'intervallo è da -1.0 a 1 e 8.0 indica che l'intervallo è da -8.0 a 8.0. Il valore deve essere >= 1,0 per qualsiasi hardware che supporti pixel shader.
DevCaps2
Tipo: DWORD
Funzionalità del driver di dispositivo per la tassellatura adattiva. Per altre informazioni, vedere D3DDEVCAPS2
MaxNpatchTessellationLevel
TBD
Reserved5
TBD
MasterAdapterOrdinal
Tipo: UINT
Questo numero indica quale dispositivo è il master per questo subordinato. Questo numero viene ricavato dallo stesso spazio dei valori dell'adattatore.
Per il supporto multitesta, una testa verrà indicata dalla testa master e tutte le altre teste sulla stessa scheda saranno indicate teste subordinate. Se in un sistema sono presenti più adattatori multihead, il master e i relativi subordinati da un adattatore multihead vengono chiamati gruppo.
AdapterOrdinalInGroup
Tipo: UINT
Questo numero indica l'ordine in cui le teste fanno riferimento all'API. Il valore per l'adattatore master è sempre 0. Questi valori non corrispondono ai ordinali dell'adattatore. Si applicano solo alle teste all'interno di un gruppo.
NumberOfAdaptersInGroup
Tipo: UINT
Numero di adattatori in questo gruppo di adattatori (solo se master). Sarà 1 per gli adattatori convenzionali. Il valore sarà maggiore di 1 per l'adattatore master di una scheda multihead. Il valore sarà 0 per un adattatore subordinato di una scheda multihead. Ogni scheda può avere al massimo un master, ma può avere molti subordinati.
DeclTypes
Tipo: DWORD
Combinazione di uno o più tipi di dati contenuti in una dichiarazione di vertice. Vedere D3DDTCAPS.
NumSimultaneousRTs
Tipo: DWORD
Numero di destinazioni di rendering simultanee. Questo numero deve essere almeno uno.
StretchRectFilterCaps
Tipo: DWORD
Combinazione di costanti che descrivono le operazioni supportate da StretchRect. I flag che possono essere impostati in questo campo sono:
Costante | Descrizione |
---|---|
D3DPTFILTERCAPS_MINFPOINT | Il dispositivo supporta il filtro dei campioni di punti per i rettangoli di minimizzazione. Questo tipo di filtro viene richiesto chiamando StretchRect usando D3DTEXF_POINT. |
D3DPTFILTERCAPS_MAGFPOINT | Il dispositivo supporta il filtro dei campioni di punti per i rettangoli di ingrandimento. Questo tipo di filtro viene richiesto chiamando StretchRect usando D3DTEXF_POINT. |
D3DPTFILTERCAPS_MINFLINEAR | Il dispositivo supporta il filtro di interpolazione bilineare per i rettangoli di minificazione. Questo tipo di filtro viene richiesto chiamando StretchRect usando D3DTEXF_LINEAR. |
D3DPTFILTERCAPS_MAGFLINEAR | Il dispositivo supporta il filtro di interpolazione bilineare per i rettangoli di ingrandimento. Questo tipo di filtro viene richiesto chiamando StretchRect usando D3DTEXF_LINEAR. |
Per altre informazioni, vedere D3DTEXTUREFILTERTYPE e D3DTEXTUREFILTERTYPE.
VS20Caps
Tipo: D3DVSHADERCAPS2_0
Il dispositivo supporta la funzionalità estesa vertex shader versione 2_0. Vedere D3DVSHADERCAPS2_0.
PS20Caps
Tipo: D3DPSHADERCAPS2_0
Il dispositivo supporta la funzionalità estesa pixel shader versione 2_0. Vedere D3DPSHADERCAPS2_0.
VertexTextureFilterCaps
Tipo: DWORD
Il dispositivo supporta la funzionalità di filtro trama vertex shader. Vedere D3DPTFILTERCAPS.
MaxVShaderInstructionsExecuted
Tipo: DWORD
Numero massimo di istruzioni del vertex shader che possono essere eseguite quando si usa il controllo del flusso. Il numero massimo di istruzioni programmabili è MaxVertexShader30InstructionSlots.
MaxPShaderInstructionsExecuted
Tipo: DWORD
Numero massimo di istruzioni pixel shader che possono essere eseguite quando si usa il controllo del flusso. Il numero massimo di istruzioni programmabili è MaxPixelShader30InstructionSlots.
MaxVertexShader30InstructionSlots
Tipo: DWORD
Numero massimo di slot di istruzioni del vertex shader supportati. Il valore massimo che può essere impostato su questo limite è 32768. I dispositivi che supportano vs_3_0 sono necessari per supportare almeno 512 slot di istruzioni.
MaxPixelShader30InstructionSlots
Tipo: DWORD
Numero massimo di slot di istruzioni pixel shader supportati. Il valore massimo che può essere impostato su questo limite è 32768. I dispositivi che supportano ps_3_0 sono necessari per supportare almeno 512 slot di istruzioni.
Commenti
I membri MaxTextureBlendStages e MaxSimultaneousTextures potrebbero sembrare simili, ma contengono informazioni diverse. Il membro MaxTextureBlendStages contiene il numero totale di fasi di texture-blend supportate dal dispositivo corrente e il membro MaxSimultaneousTextures descrive quanti di queste fasi possono avere trame associate usando il metodo SetTexture .
Quando il driver riempie questa struttura, può impostare valori per le funzionalità del buffer di esecuzione, anche quando l'interfaccia usata per recuperare le funzionalità (ad esempio IDirect3DDevice9) non supporta i buffer eseguiti.
In generale, i problemi di prestazioni possono verificarsi se si usa una trama e quindi modificarla durante una scena. Assicurarsi che non venga eliminata alcuna trama utilizzata nel blocco BeginScene e EndScene corrente, a meno che non sia assolutamente necessario. Nel caso di utilizzo estremamente elevato della trama all'interno di una scena, i risultati non sono definiti. Ciò si verifica quando si modifica una trama usata nella scena e non è disponibile alcuna memoria trama di riserva. Per tali sistemi, il contenuto del buffer z diventa non valido in EndScene. Le applicazioni non devono chiamare UpdateSurface a o dal buffer back in questo tipo di hardware all'interno di una coppia BeginScene/EndScene. Inoltre, le applicazioni non devono provare ad accedere al buffer z se il flag di funzionalità D3DPRASTERCAPS_ZBUFFERLESSHSR è impostato. Infine, le applicazioni non devono bloccare il buffer indietro o il buffer z all'interno di una coppia BeginScene/EndScene.
I flag seguenti relativi alle trame mipmapped non sono supportati in Direct3D 9.
- D3DPTFILTERCAPS_LINEAR
- D3DPTFILTERCAPS_LINEARMIPLINEAR
- D3DPTFILTERCAPS_LINEARMIPNEAREST
- D3DPTFILTERCAPS_MIPNEAREST
- D3DPTFILTERCAPS_NEAREST
Requisiti
Intestazione | d3d9caps.h |