Structure D3DCAPS9 (d3d9caps.h)
Représente les fonctionnalités du matériel exposé via l’objet Direct3D.
Syntaxe
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;
Membres
DeviceType
Type : D3DDEVTYPE
Membre du type énuméré D3DDEVTYPE , qui identifie le type de ressources utilisé pour le traitement des sommets.
AdapterOrdinal
Type : UINT
Adaptateur sur lequel cet appareil Direct3D a été créé. Cet ordinal est valide uniquement pour passer aux méthodes de l’interface IDirect3D9 qui a créé cet appareil Direct3D. L’interface IDirect3D9 peut toujours être récupérée en appelant GetDirect3D.
Caps
Type : DWORD
La fonctionnalité spécifique au pilote suivante.
Valeur | Signification | |
---|---|---|
|
Le matériel d’affichage est capable de retourner la ligne d’analyse actuelle. | |
|
Le pilote d’affichage prend en charge un DDI de superposition qui permet de vérifier les fonctionnalités de superposition. Pour plus d’informations sur la DDI de superposition, consultez Superposition DDI.
|
Caps2
Type : DWORD
Fonctionnalités spécifiques aux pilotes identifiées dans D3DCAPS2.
Caps3
Type : DWORD
Fonctionnalités spécifiques au pilote identifiées dans D3DCAPS3.
PresentationIntervals
Type : DWORD
Masque de bits des valeurs représentant les intervalles d’échange de présentation disponibles.
CursorCaps
Type : DWORD
Masque de bits indiquant quelle prise en charge matérielle est disponible pour les curseurs. Direct3D 9 ne définit pas les fonctionnalités de curseur de fusion alpha.
DevCaps
Type : DWORD
Indicateurs identifiant les fonctionnalités de l’appareil.
Valeur | Signification |
---|---|
|
L’appareil prend en charge les fentes des textures de mémoire système aux textures de mémoire vidéo non locales. |
|
L’appareil peut mettre en file d’attente les commandes de rendu après un retournement de page. Les applications ne modifient pas leur comportement si cet indicateur est défini ; cette fonctionnalité signifie que l’appareil est relativement rapide. |
|
L’appareil peut prendre en charge au moins un pilote compatible DirectX 5. |
|
L’appareil peut prendre en charge au moins un pilote compatible DirectX 7. |
|
L’appareil exporte un hal IDirect3DDevice9::D rawPrimitive-aware. |
|
L’appareil peut utiliser des mémoires tampons d’exécution à partir de la mémoire système. |
|
L’appareil peut utiliser des mémoires tampons d’exécution à partir de la mémoire vidéo. |
|
L’appareil a une accélération matérielle pour la rastérisation de scène. |
|
L’appareil peut prendre en charge la transformation et l’éclairage dans le matériel. |
|
L’appareil prend en charge N correctifs. |
|
L’appareil peut prendre en charge la rastérisation, la transformation, l’éclairage et l’ombrage dans le matériel. |
|
L’appareil prend en charge les courbes de Bézier quintiques et les courbes B-spline. |
|
L’appareil prend en charge les correctifs rectangulaires et triangulaires. |
|
Lorsque cette fonctionnalité d’appareil est définie, l’architecture matérielle ne nécessite aucune mise en cache d’informations, et les correctifs non mis en cache (gérer zéro) sont dessinés aussi efficacement que ceux mis en cache. Notez que la définition de D3DDEVCAPS_RTPATCHHANDLEZERO ne signifie pas qu’un correctif avec handle zéro peut être dessiné. Un patch handle-zero peut toujours être dessiné, que cette limite soit définie ou non. |
|
L’appareil effectue un texturage à partir de pools de mémoires distincts. |
|
L’appareil peut récupérer des textures à partir de la mémoire vidéo non locale. |
|
L’appareil peut récupérer des textures de la mémoire système. |
|
L’appareil peut récupérer des textures de la mémoire de l’appareil. |
|
L’appareil peut utiliser des mémoires tampons de la mémoire système pour les sommets transformés et éclairés. |
|
L’appareil peut utiliser des mémoires tampons de la mémoire vidéo pour les sommets transformés et éclairés. |
PrimitiveMiscCaps
Type : DWORD
Fonctionnalités primitives de pilote diverses. Consultez D3DPMISCCAPS.
RasterCaps
Type : DWORD
Informations sur les fonctionnalités de dessin raster. Ce membre peut être un ou plusieurs des indicateurs suivants.
Valeur | Signification |
---|---|
|
L’appareil prend en charge le filtrage anisotrope. |
|
L’appareil itère correctement la perspective des couleurs. |
|
L’appareil peut tergiverser pour améliorer la résolution des couleurs. |
|
L’appareil prend en charge le biais de profondeur hérité. Pour connaître le vrai biais de profondeur, consultez D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS. |
|
L’appareil prend en charge le brouillard basé sur la plage. Dans le brouillard basé sur la plage, la distance d’un objet par rapport à la visionneuse est utilisée pour calculer les effets de brouillard, et non la profondeur de l’objet (autrement dit, la coordonnée z) dans la scène. |
|
L’appareil calcule la valeur de brouillard en faisant référence à une table de recherche contenant des valeurs de brouillard indexées sur la profondeur d’un pixel donné. |
|
L’appareil calcule la valeur de brouillard pendant l’opération d’éclairage et interpole la valeur du brouillard pendant la rastérisation. |
|
L’appareil prend en charge les ajustements de biais de niveau de détail. Ces ajustements de biais permettent à une application de rendre un mipmap plus net ou moins net qu’il ne le ferait normalement. Pour plus d’informations sur le biais de niveau de détail dans les mipmaps, consultez D3DSAMP_MIPMAPLODBIAS. |
|
L’appareil prend en charge le basculement du multiéchantillonnage entre IDirect3DDevice9::BeginScene et IDirect3DDevice9::EndScene (à l’aide de D3DRS_MULTISAMPLEANTIALIAS). |
|
L’appareil prend en charge le test de ciseaux. Voir Scissor Test (Direct3D 9). |
|
L’appareil effectue un vrai biais de profondeur basé sur l’échelle de pente. Cela contraste avec le biais de profondeur de style hérité. |
|
L’appareil prend en charge la mise en mémoire tampon en profondeur à l’aide de w. |
|
L’appareil prend en charge le brouillard w. Le brouillard W est utilisé lorsqu’une matrice de projection de perspective est spécifiée, mais les projections affines utilisent toujours le brouillard basé sur z. Le système considère une matrice de projection qui contient une valeur différente de zéro dans l’élément [3][4] comme une matrice de projection de perspective. |
|
L’appareil peut effectuer la suppression de surface masquée (HSR) sans exiger que l’application trie des polygones et sans nécessiter l’allocation d’une mémoire tampon de profondeur. Cela laisse plus de mémoire vidéo pour les textures. La méthode utilisée pour effectuer le HSR dépend du matériel et est transparente pour l’application.
Le HSR sans mémoire tampon Z est effectué si aucune surface de mémoire tampon de profondeur n’est associée à la surface cible de rendu et si le test de comparaison de mémoire tampon de profondeur est activé (autrement dit, lorsque la valeur d’état associée à la constante d’énumération D3DRS_ZENABLE est définie sur TRUE). |
|
L’appareil prend en charge le brouillard basé sur z. |
|
L’appareil peut effectuer des opérations z-test. Cela restitue efficacement une primitive et indique si des pixels z ont été rendus. |
ZCmpCaps
Type : DWORD
Fonctionnalités de comparaison des mémoires tampons Z. Ce membre peut être un ou plusieurs des indicateurs suivants.
SrcBlendCaps
Type : DWORD
Fonctionnalités de fusion de sources. Ce membre peut être un ou plusieurs des indicateurs suivants. (Les valeurs RGBA de la source et de la destination sont indiquées par les indices s et d.)
Valeur | Signification | |
---|---|---|
|
Le pilote prend en charge les D3DBLEND_BLENDFACTOR et les D3DBLEND_INVBLENDFACTOR. Consultez D3DBLEND. | |
|
Le facteur de fusion source est (1 - As, 1 - As, 1 - As) et le facteur de fusion de destination est (As, As, As, As) ; la sélection de fusion de destination est remplacée. | |
|
Le pilote prend en charge le mode de fusion D3DBLEND_BOTHSRCALPHA. (Ce mode de fusion est obsolète. Pour plus d’informations, consultez D3DBLEND.) | |
|
Le facteur de fusion est (Ad, Ad, A d, Ad, Ad). | |
|
Le facteur de fusion est (Rd, Gd, Bd, Ad). | |
|
Le facteur de fusion est (1 - Ad, 1 - Ad, 1 - Ad, 1 - Ad). | |
|
Le facteur de fusion est (1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad). | |
|
Le facteur de fusion est (1 - As, 1 - As, 1 - As, 1 - As). | |
|
Le facteur de fusion est (1 - Rs, 1 - Gs, 1 - Bs, 1 - As). | |
|
Le facteur de fusion est (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, non utilisé)). Consultez Fondu cible de rendu.
|
|
|
Le facteur de fusion est (1, 1, 1, 1). | |
|
Le facteur de fusion est (As, As, As, As). | |
|
Le facteur de fusion est (f, f, f, 1) ; f = min(As, 1 - Ad). | |
|
Le facteur de fusion est (Rs, Gs, Bs, As). | |
|
Le facteur de fusion est (PSOutColor[1]r, PSOutColor[1]g, PSOutColor[1]b, non utilisé). Consultez Fondu cible de rendu.
|
|
|
Le facteur de fusion est (0, 0, 0, 0). |
DestBlendCaps
Type : DWORD
Fonctionnalités de fusion de destination. Ce membre peut être les mêmes fonctionnalités que celles définies pour le membre SrcBlendCaps.
AlphaCmpCaps
Type : DWORD
Fonctionnalités de comparaison des tests alpha. Ce membre peut inclure les mêmes indicateurs de capacité définis pour le membre ZCmpCaps. Si ce membre contient uniquement la fonctionnalité D3DPCMPCAPS_ALWAYS ou uniquement la fonctionnalité D3DPCMPCAPS_NEVER, le pilote ne prend pas en charge les tests alpha. Sinon, les indicateurs identifient les comparaisons individuelles prises en charge pour les tests alpha.
ShadeCaps
Type : DWORD
Fonctionnalités des opérations d’ombrage. Il est supposé, en général, que si un appareil prend en charge une commande donnée, il prend en charge le mode D3DSHADE_FLAT (comme spécifié dans le type énuméré D3DSHADEMODE ). Cet indicateur spécifie si le pilote peut également prendre en charge l’ombrage Gouraud et si les composants de couleur alpha sont pris en charge. Lorsque les composants alpha ne sont pas pris en charge, la valeur alpha des couleurs générées est implicitement 255. Il s’agit de l’alpha maximum possible (autrement dit, le composant alpha est à pleine intensité).
La couleur, les surbrillances spéculaires, le brouillard et les interpolants alpha d’un triangle ont chacun des indicateurs de capacité qu’une application peut utiliser pour savoir comment ils sont implémentés par le pilote de périphérique.
Ce membre peut être un ou plusieurs des indicateurs suivants.
TextureCaps
Type : DWORD
Fonctionnalités diverses de mappage de textures. Ce membre peut être un ou plusieurs des indicateurs suivants.
Valeur | Signification |
---|---|
|
Alpha en pixels de texture est pris en charge. |
|
L’appareil peut dessiner de l’alpha à partir de palettes de textures. |
|
Prend en charge les textures de cube. |
|
L’appareil nécessite que les cartes de texture de cube aient des dimensions spécifiées en tant que puissances de deux. |
|
L’appareil prend en charge les textures de cube mipmapped. |
|
L’appareil prend en charge les textures mipmapped. |
|
L’appareil prend en charge les textures de volume mipmapped. |
|
D3DPTEXTURECAPS_POW2 est également défini, prend en charge conditionnellement l’utilisation de textures 2D avec des dimensions qui ne sont pas des puissances de deux. Un appareil qui expose cette fonctionnalité peut utiliser une telle texture si toutes les conditions suivantes sont remplies.
Si cet indicateur n’est pas défini et que D3DPTEXTURECAPS_POW2 ne l’est pas non plus, une prise en charge inconditionnelle est fournie pour les textures 2D avec des dimensions qui ne sont pas des puissances de deux. Une texture qui n’est pas une puissance de deux ne peut pas être définie à un stade qui sera lu sur la base d’un calcul de nuanceur (comme les instructions bem - ps et texm3x3 - ps dans les nuanceurs de pixels versions 1_0 à 1_3). Par exemple, ces textures peuvent être utilisées pour stocker des bosses qui seront alimentées dans les lectures de texture, mais pas les cartes d’environnement utilisées dans texbem - ps, texbeml - ps et texm3x3spec - ps. Cela signifie qu’une texture dont les dimensions ne sont pas des puissances de deux ne peut pas être traitée ou échantillonnée à l’aide de coordonnées de texture calculées dans le nuanceur. Ce type d’opération est appelé lecture dépendante et ne peut pas être effectué sur ces types de textures. |
|
L’appareil ne prend pas en charge une opération de recherche d’environnement de bosse projetée dans les nuanceurs de fonction programmables et fixes. |
|
Le texturing de correction de perspective est pris en charge. |
|
Si D3DPTEXTURECAPS_NONPOW2CONDITIONAL n’est pas défini, toutes les textures doivent avoir des largeurs et des hauteurs spécifiées comme des puissances de deux. Cette exigence ne s’applique pas aux textures de cube ou aux textures de volume.
Si D3DPTEXTURECAPS_NONPOW2CONDITIONAL est également défini, prend en charge conditionnellement l’utilisation de textures 2D avec des dimensions qui ne sont pas des puissances de deux. Consultez D3DPTEXTURECAPS_NONPOW2CONDITIONAL description. Si cet indicateur n’est pas défini et que D3DPTEXTURECAPS_NONPOW2CONDITIONAL ne l’est pas non plus, une prise en charge inconditionnelle est fournie pour les textures 2D avec des dimensions qui ne sont pas des puissances de deux. |
|
Prend en charge l’indicateur de transformation de texture D3DTTFF_PROJECTED. Lorsqu’il est appliqué, l’appareil divise les coordonnées de texture transformées par la dernière coordonnée de texture. Si cette fonctionnalité est présente, la division projective se produit par pixel. Si cette fonctionnalité n’est pas présente, mais que la division projective doit se produire de toute façon, elle est effectuée par sommet par le runtime Direct3D. |
|
Toutes les textures doivent être carrées. |
|
Les index de texture ne sont pas mis à l’échelle en fonction de la taille de texture avant l’interpolation. |
|
L’appareil prend en charge les textures de volume. |
|
L’appareil nécessite que les cartes de texture de volume aient des dimensions spécifiées comme des puissances de deux. |
TextureFilterCaps
Type : DWORD
Fonctionnalités de filtrage de texture pour une texture. Les fonctionnalités de filtrage par étape reflètent les modes de filtrage pris en charge pour les phases de texture lors de l’exécution d’un mélange de plusieurs textures. Ce membre peut être n’importe quelle combinaison des indicateurs de filtrage de texture par étape définis dans D3DPTFILTERCAPS.
CubeTextureFilterCaps
Type : DWORD
Fonctionnalités de filtrage de texture pour une texture de cube. Les fonctionnalités de filtrage par étape reflètent les modes de filtrage pris en charge pour les phases de texture lors de l’exécution d’un mélange de plusieurs textures. Ce membre peut être n’importe quelle combinaison des indicateurs de filtrage de texture par étape définis dans D3DPTFILTERCAPS.
VolumeTextureFilterCaps
Type : DWORD
Fonctionnalités de filtrage de texture pour une texture de volume. Les fonctionnalités de filtrage par étape reflètent les modes de filtrage pris en charge pour les phases de texture lors de l’exécution d’un mélange de plusieurs textures. Ce membre peut être n’importe quelle combinaison des indicateurs de filtrage de texture par étape définis dans D3DPTFILTERCAPS.
TextureAddressCaps
Type : DWORD
Fonctionnalités d’adressage de texture pour les objets de texture. Ce membre peut être un ou plusieurs des indicateurs suivants.
VolumeTextureAddressCaps
Type : DWORD
Fonctionnalités d’adressage de texture pour une texture de volume. Ce membre peut être un ou plusieurs des indicateurs définis pour le membre TextureAddressCaps.
LineCaps
Type : DWORD
Définit les fonctionnalités pour les primitives de dessin de traits.
MaxTextureWidth
Type : DWORD
Largeur de texture maximale pour cet appareil.
MaxTextureHeight
Type : DWORD
Hauteur de texture maximale pour cet appareil.
MaxVolumeExtent
Type : DWORD
Valeur maximale pour l’une des trois dimensions (largeur, hauteur et profondeur) d’une texture de volume.
MaxTextureRepeat
Type : DWORD
Ce nombre représente la plage maximale des bits entiers des coordonnées de texture post-normalisées. Une coordonnée de texture est stockée sous la forme d’un entier signé 32 bits à l’aide de 27 bits pour stocker la partie entière et de 5 bits pour la fraction à virgule flottante. L’index entier maximal, 2²⁷, est utilisé pour déterminer la coordonnée de texture maximale, en fonction de la façon dont le matériel effectue la mise à l’échelle des coordonnées de texture.
Certains matériels signalent la limite D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE. Dans ce cas, l’appareil reporte la mise à l’échelle des coordonnées de texture par la taille de texture jusqu’à ce qu’après l’interpolation et l’application du mode d’adresse de texture, de sorte que le nombre de fois où une texture peut être encapsulée est donné par la valeur entière dans MaxTextureRepeat.
Moins souhaitable, sur certains D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE matériel n’est pas défini et l’appareil met à l’échelle les coordonnées de texture en fonction de la taille de texture (en utilisant le niveau de détail le plus élevé) avant l’interpolation. Cela limite le nombre de fois où une texture peut être encapsulée à maxTextureRepeat/taille de texture.
Par exemple, supposons que MaxTextureRepeat est égal à 32k et que la taille de la texture est de 4k. Si les jeux matériels D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, le nombre de fois où une texture peut être encapsulée est égal à MaxTextureRepeat, qui est de 32 000 dans cet exemple. Sinon, le nombre de fois qu’une texture peut être encapsulée est égal à MaxTextureRepeat divisé par taille de texture, qui est de 32 000/4 000 dans cet exemple.
MaxTextureAspectRatio
Type : DWORD
Rapport d’aspect de texture maximal pris en charge par le matériel, généralement une puissance de 2.
MaxAnisotropy
Type : DWORD
Valeur valide maximale pour l’état D3DSAMP_MAXANISOTROPY de l’étape de texture.
MaxVertexW
Type : float
Valeur de profondeur W maximale prise en charge par l’appareil.
GuardBandLeft
Type : float
Coordonnées d’espace d’écran de la zone de découpage de bande de protection. Les coordonnées à l’intérieur de ce rectangle, mais à l’extérieur du rectangle de la fenêtre d’affichage, sont automatiquement clippées.
GuardBandTop
Type : float
Coordonnées d’espace d’écran de la zone de découpage de bande de protection. Les coordonnées à l’intérieur de ce rectangle, mais à l’extérieur du rectangle de la fenêtre d’affichage, sont automatiquement clippées.
GuardBandRight
Type : float
Coordonnées d’espace d’écran de la zone de découpage de bande de protection. Les coordonnées à l’intérieur de ce rectangle, mais à l’extérieur du rectangle de la fenêtre d’affichage, sont automatiquement clippées.
GuardBandBottom
Type : float
Coordonnées d’espace d’écran de la zone de découpage de bande de protection. Les coordonnées à l’intérieur de ce rectangle, mais à l’extérieur du rectangle de la fenêtre d’affichage, sont automatiquement clippées.
ExtentsAdjust
Type : float
Nombre de pixels pour ajuster le rectangle d’étendues vers l’extérieur pour prendre en charge les noyaux anti-attirail.
StencilCaps
Type : DWORD
Indicateurs spécifiant les opérations de mémoire tampon de gabarit prises en charge. Les opérations de gabarit sont supposées être valides pour les trois états de rendu des opérations de mémoire tampon (D3DRS_STENCILFAIL, D3DRS_STENCILPASS et D3DRS_STENCILZFAIL).
Pour plus d’informations, consultez D3DSTENCILCAPS.
FVFCaps
Type : DWORD
Fonctionnalités de format de vertex flexibles.
TextureOpCaps
Type : DWORD
Combinaison d’indicateurs décrivant les opérations de texture prises en charge par cet appareil. Les indicateurs suivants sont définis.
MaxTextureBlendStages
Type : DWORD
Nombre maximal d’étapes de fusion de textures prises en charge dans le pipeline de fonctions fixes. Cette valeur est le nombre de mélangeurs disponibles. Dans le pipeline de pixels programmables, cela correspond au nombre de registres de texture uniques utilisés par les instructions du nuanceur de pixels.
MaxSimultaneousTextures
Type : DWORD
Nombre maximal de textures pouvant être simultanément liées aux étapes de l’échantillonneur de pipeline à fonction fixe. Si la même texture est liée à deux étapes de l’échantillonneur, elle compte comme deux textures.
Cette valeur n’a aucune signification dans le pipeline programmable où le nombre d’étapes de l’échantillonneur est déterminé par chaque version du nuanceur de pixels. Chaque version du nuanceur de pixels détermine également le nombre d’instructions de déclaration de texture. Consultez Nuanceurs de pixels.
VertexProcessingCaps
Type : DWORD
Fonctionnalités de traitement des vertex. Pour un appareil physique donné, cette fonctionnalité peut varier d’un appareil Direct3D à l’autre en fonction des paramètres fournis à CreateDevice. Consultez D3DVTXPCAPS.
MaxActiveLights
Type : DWORD
Nombre maximal de lumières pouvant être actives simultanément. Pour un appareil physique donné, cette fonctionnalité peut varier d’un appareil Direct3D à l’autre en fonction des paramètres fournis à CreateDevice.
MaxUserClipPlanes
Type : DWORD
Nombre maximal de plans de découpage définis par l’utilisateur pris en charge. Ce membre peut être 0. Pour un appareil physique donné, cette fonctionnalité peut varier d’un appareil Direct3D à l’autre en fonction des paramètres fournis à CreateDevice.
MaxVertexBlendMatrices
Type : DWORD
Nombre maximal de matrices que cet appareil peut appliquer lors de l’exécution d’un mélange de vertex multimatrix. Pour un appareil physique donné, cette fonctionnalité peut varier d’un appareil Direct3D à l’autre en fonction des paramètres fournis à CreateDevice.
MaxVertexBlendMatrixIndex
Type : DWORD
Valeur DWORD qui spécifie l’index de matrice maximal dans lequel peut être indexé à l’aide des index par vertex. Le nombre de matrices est MaxVertexBlendMatrixIndex + 1, qui correspond à la taille de la palette de matrices. Si des normales sont présentes dans les données de vertex qui doivent être fusionnées pour l’éclairage, le nombre de matrices correspond à la moitié du nombre spécifié par cet indicateur de fonctionnalité. Si MaxVertexBlendMatrixIndex est défini sur zéro, le pilote ne prend pas en charge le mélange de vertex indexés. Si cette valeur n’est pas égale à zéro, la plage d’index valide est égale à zéro via MaxVertexBlendMatrixIndex.
Une valeur zéro pour MaxVertexBlendMatrixIndex indique que le pilote ne prend pas en charge les matrices indexées.
Lorsque le traitement des vertex logiciels est utilisé, 256 matrices peuvent être utilisées pour le mélange de vertex indexé, avec ou sans fusion normale.
Pour un appareil physique donné, cette fonctionnalité peut varier d’un appareil Direct3D à l’autre en fonction des paramètres fournis à CreateDevice.
MaxPointSize
Type : float
Taille maximale d’une primitive de point. S’il est défini sur 1.0f, l’appareil ne prend pas en charge le contrôle de la taille des points. La plage est supérieure ou égale à 1,0f.
MaxPrimitiveCount
Type : DWORD
Nombre maximal de primitives pour chaque appel DrawPrimitive . Il existe deux cas :
- Si MaxPrimitiveCount n’est pas égal à 0xffff, vous pouvez dessiner au maximum des primitives MaxPrimitiveCount à chaque appel de tirage.
- Toutefois, si MaxPrimitiveCount est égal à 0xffff, vous pouvez toujours dessiner au maximum maxPrimitiveCount primitive, mais vous pouvez également utiliser uniquement des sommets uniques MaxPrimitiveCount (car chaque primitive peut potentiellement utiliser trois sommets différents).
MaxVertexIndex
Type : DWORD
Taille maximale des index pris en charge pour le traitement du vertex matériel. Il est possible de créer des mémoires tampons d’index 32 bits ; Toutefois, vous ne pourrez pas effectuer un rendu avec la mémoire tampon d’index, sauf si cette valeur est supérieure à 0x0000FFFF.
MaxStreams
Type : DWORD
Nombre maximal de flux de données simultanés pour SetStreamSource. La plage valide est comprise entre 1 et 16. Notez que si cette valeur est 0, le pilote n’est pas un pilote Direct3D 9.
MaxStreamStride
Type : DWORD
Foulée maximale pour SetStreamSource.
VertexShaderVersion
Type : DWORD
Deux nombres qui représentent le nuanceur de vertex main et les sous-versions. Pour plus d’informations sur les instructions prises en charge pour chaque version du nuanceur de vertex, consultez Version 1_x, Version 2_0, Version 2_0 Étendue ou Version 3_0.
MaxVertexShaderConst
Type : DWORD
Nombre de registres de nuanceur de vertex réservés aux constantes.
PixelShaderVersion
Type : DWORD
Deux nombres qui représentent le nuanceur de pixels main et les sous-versions. Pour plus d’informations sur les instructions prises en charge pour chaque version du nuanceur de pixels, consultez Version 1_x, Version 2_0, Version 2_0 Étendue ou Version 3_0.
PixelShader1xMaxValue
Type : float
Valeur maximale du composant arithmétique du nuanceur de pixels. Cette valeur indique la plage interne de valeurs prise en charge pour les opérations de fusion de couleurs de pixels. Dans la plage à laquelle elles font rapport, les implémentations doivent permettre aux données de passer par le traitement des pixels sans modification (sansclamped). Normalement, la valeur de ce membre est une valeur absolue. Par exemple, un 1.0 indique que la plage est comprise entre -1.0 et 1, et un 8.0 indique que la plage est comprise entre -8.0 et 8.0. La valeur doit être >= 1.0 pour tout matériel prenant en charge les nuanceurs de pixels.
DevCaps2
Type : DWORD
Fonctionnalités de pilote de périphérique pour la mise en place adaptative. Pour plus d’informations, consultez D3DDEVCAPS2
MaxNpatchTessellationLevel
TBD
Reserved5
TBD
MasterAdapterOrdinal
Type : UINT
Ce nombre indique quel appareil est le master pour ce subordonné. Ce nombre provient du même espace que les valeurs de l’adaptateur.
Pour le support multi-tête, une tête est désignée comme master tête, et toutes les autres têtes sur le même carte sont désignées têtes subordonnées. Si plusieurs adaptateurs multipoints sont présents dans un système, le master et ses subordonnés d’une carte multi-tête sont appelés un groupe.
AdapterOrdinalInGroup
Type : UINT
Ce nombre indique l’ordre dans lequel les têtes sont référencées par l’API. La valeur de l’adaptateur master est toujours 0. Ces valeurs ne correspondent pas aux ordinaux de l’adaptateur. Elles s’appliquent uniquement aux têtes d’un groupe.
NumberOfAdaptersInGroup
Type : UINT
Nombre d’adaptateurs dans ce groupe d’adaptateurs (uniquement si master). Ce sera 1 pour les adaptateurs conventionnels. La valeur est supérieure à 1 pour l’adaptateur master d’un carte multipoint. La valeur est 0 pour un adaptateur subordonné d’un carte multipoint. Chaque carte peut avoir au maximum un master, mais peut avoir de nombreux subordonnés.
DeclTypes
Type : DWORD
Combinaison d’un ou plusieurs types de données contenus dans une déclaration de vertex. Consultez D3DDTCAPS.
NumSimultaneousRTs
Type : DWORD
Nombre de cibles de rendu simultanées. Ce nombre doit être au moins un.
StretchRectFilterCaps
Type : DWORD
Combinaison de constantes qui décrivent les opérations prises en charge par StretchRect. Les indicateurs qui peuvent être définis dans ce champ sont les suivants :
Constant | Description |
---|---|
D3DPTFILTERCAPS_MINFPOINT | L’appareil prend en charge le filtrage d’exemples de points pour réduire les rectangles. Ce type de filtre est demandé en appelant StretchRect à l’aide de D3DTEXF_POINT. |
D3DPTFILTERCAPS_MAGFPOINT | L’appareil prend en charge le filtrage d’exemples de points pour agrandir les rectangles. Ce type de filtre est demandé en appelant StretchRect à l’aide de D3DTEXF_POINT. |
D3DPTFILTERCAPS_MINFLINEAR | L’appareil prend en charge le filtrage d’interpolation biligne pour la minification des rectangles. Ce type de filtre est demandé en appelant StretchRect à l’aide de D3DTEXF_LINEAR. |
D3DPTFILTERCAPS_MAGFLINEAR | L’appareil prend en charge le filtrage d’interpolation bilinéaire pour agrandir les rectangles. Ce type de filtre est demandé en appelant StretchRect à l’aide de D3DTEXF_LINEAR. |
Pour plus d’informations, consultez D3DTEXTUREFILTERTYPE et D3DTEXTUREFILTERTYPE.
VS20Caps
Type : D3DVSHADERCAPS2_0
L’appareil prend en charge la fonctionnalité étendue du nuanceur de vertex version 2_0. Voir D3DVSHADERCAPS2_0.
PS20Caps
Type : D3DPSHADERCAPS2_0
L’appareil prend en charge la fonctionnalité étendue du nuanceur de pixels version 2_0. Voir D3DPSHADERCAPS2_0.
VertexTextureFilterCaps
Type : DWORD
L’appareil prend en charge la fonctionnalité de filtre de texture du nuanceur de vertex. Consultez D3DPTFILTERCAPS.
MaxVShaderInstructionsExecuted
Type : DWORD
Nombre maximal d’instructions de nuanceur de vertex qui peuvent être exécutées lors de l’utilisation du contrôle de flux. Le nombre maximal d’instructions pouvant être programmées est MaxVertexShader30InstructionSlots.
MaxPShaderInstructionsExecuted
Type : DWORD
Nombre maximal d’instructions de nuanceur de pixels qui peuvent être exécutées lors de l’utilisation du contrôle de flux. Le nombre maximal d’instructions pouvant être programmées est MaxPixelShader30InstructionSlots.
MaxVertexShader30InstructionSlots
Type : DWORD
Nombre maximal d’emplacements d’instruction de nuanceur de vertex pris en charge. La valeur maximale pouvant être définie sur cette limite est 32768. Les appareils qui prennent en charge vs_3_0 doivent prendre en charge au moins 512 emplacements d’instruction.
MaxPixelShader30InstructionSlots
Type : DWORD
Nombre maximal d’emplacements d’instruction du nuanceur de pixels pris en charge. La valeur maximale pouvant être définie sur cette limite est 32768. Les appareils qui prennent en charge ps_3_0 doivent prendre en charge au moins 512 emplacements d’instruction.
Notes
Les membres MaxTextureBlendStages et MaxSimultaneousTextures peuvent sembler similaires, mais ils contiennent des informations différentes. Le membre MaxTextureBlendStages contient le nombre total d’étapes de fusion de textures prises en charge par l’appareil actuel, et le membre MaxSimultaneousTextures décrit le nombre de ces étapes qui peuvent avoir des textures liées à celles-ci à l’aide de la méthode SetTexture .
Lorsque le pilote remplit cette structure, il peut définir des valeurs pour les fonctionnalités de mémoire tampon d’exécution, même lorsque l’interface utilisée pour récupérer les fonctionnalités (par exemple , IDirect3DDevice9) ne prend pas en charge les mémoires tampons d’exécution.
En général, des problèmes de performances peuvent se produire si vous utilisez une texture et que vous la modifiez ensuite au cours d’une scène. Vérifiez qu’aucune texture utilisée dans le bloc BeginScene et EndScene actuel n’est supprimée, sauf si cela est absolument nécessaire. Dans le cas d’une utilisation extrêmement élevée des textures au sein d’une scène, les résultats ne sont pas définis. Cela se produit lorsque vous modifiez une texture que vous avez utilisée dans la scène et qu’aucune mémoire de texture de rechange n’est disponible. Pour ces systèmes, le contenu de la mémoire tampon z devient non valide à EndScene. Les applications ne doivent pas appeler UpdateSurface vers ou depuis la mémoire tampon d’arrière-garde sur ce type de matériel à l’intérieur d’une paire BeginScene/EndScene. En outre, les applications ne doivent pas essayer d’accéder à la mémoire tampon z si l’indicateur de fonctionnalité D3DPRASTERCAPS_ZBUFFERLESSHSR est défini. Enfin, les applications ne doivent pas verrouiller la mémoire tampon d’arrière-plan ou la mémoire tampon z à l’intérieur d’une paire BeginScene/EndScene.
Les indicateurs suivants concernant les textures mipmapped ne sont pas pris en charge dans Direct3D 9.
- D3DPTFILTERCAPS_LINEAR
- D3DPTFILTERCAPS_LINEARMIPLINEAR
- D3DPTFILTERCAPS_LINEARMIPNEAREST
- D3DPTFILTERCAPS_MIPNEAREST
- D3DPTFILTERCAPS_NEAREST
Spécifications
En-tête | d3d9caps.h |