11
votes

Obtenez le modèle de carte graphique?

Je me demandais comment puis-je obtenir le modèle / marque de carte graphique à partir du code en particulier à partir de DirectX 9.0C (à partir du code C ++).


0 commentaires

5 Réponses :


7
votes

au moment de l'exécution, vous pouvez interroger le modèle d'appareil et le fournisseur:

  • in OpenGL, utilisez la commande Glgetstring (GL_Vendor) ou GL_Renderer ou GL_Version pour obtenir les informations que vous après.

  • dans DirectX 9, il apparaît que l'info est dans le système Microsoft Config, et est interrogé à partir de la base de données de périphériques. C'est la section 3 de ce document, qui a également exemple de code: http : //msdn.microsoft.com/en-us/library/bb204848 (vs.85) .aspx En utilisant le même système, vous pouvez obtenir de telles informations que la quantité de RAM La carte vidéo a, le numéro de pilote, etc.


0 commentaires

2
votes

Jetez un coup d'œil à Chapitre 2. Direct3D de mon livre The Direct3D Graphics Pipeline . Voir la section 2.12, identifiant un périphérique particulier.


0 commentaires

0
votes

Vous pouvez utiliser API "DirecX Diagnostic Tool", comme dans l'échantillon DXDIAGOutput de DX SDK http://msdn.microsoft.com/fr -US / Bibliothèque / EE416986% 28V = VS.85% 29.aspx


0 commentaires

10
votes

Le moyen le plus simple dans DirectX passe par IDIRECT3D9 :: getAdapterIdentifier .

Il suffit de créer un d3daDapter_identifIfer9 objet, transmettez-y un pointeur pour obteniridentifier. DirectX remplit la description de la carte graphique comme une chaîne dans le champ Description. Il comprend également des informations sur le périphérique d'affichage que la carte est et quelle version du pilote que vous avez.

Vous obtenez quelque chose comme ceci:

  • Description: "Nvidia Geforce GTX 570"
  • DISPOSITIF: "\. \ DISPLAY1"
  • pilote: "nvd3dum.dll"

2 commentaires

Merci obtenu les informations dont j'avais besoin et très utile, je ne sais pas pourquoi ce n'est pas la réponse acceptée.


... parce que c'est trois ans plus tard. :)



0
votes
IDirect3D9* d3dobject = Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS d3dpresent;
memset(&d3dpresent, 0, sizeof(D3DPRESENT_PARAMETERS));
d3dpresent.Windowed = TRUE;
d3dpresent.SwapEffect = D3DSWAPEFFECT_DISCARD;
UINT adaptercount = d3dobject->GetAdapterCount();
D3DADAPTER_IDENTIFIER9* adapters = (D3DADAPTER_IDENTIFIER9*)malloc(sizeof(D3DADAPTER_IDENTIFIER9) * adaptercount);

for (int i = 0; i < adaptercount; i++)
{
      d3dobject->GetAdapterIdentifier(i, 0, &(adapters[i]));
}
Then get the description of adapters (adapters->Description)

1 commentaires

Vous n'avez pas besoin de d3dpresent_paramètres ici. Il est utilisé pour la création de périphérique dans D3D9. Adaptateur Info est disponible sans elle.