Voilà je cherche en C# un moyen de récupérer des informations sur le driver et sur la carte graphique de façon à déterminé les possibiliter avant de créer le device Irrlicht. Je cherche cela notamment pour assurer la meilleur optimisation de la résolution de mes application.
Hors ligne
Tu peux peut-être regarder de se côté là :
IrrlichtDevice* device = createDevice(driverType, core::dimension2d<s32>(640, 480));
if (device == 0)
return 1;
video::IVideoModeList* Liste = device->getVideoModeList();
core::dimension2d<s32> Res = Liste->getDesktopResolution();
//Res.Width Res.Height
Je sais pas comment cela se présente en C# mais je pense que c'est assez similaire.
@++
Hors ligne
Attention cependant, cette technique semble planter sous Linux avec Irrlicht 1.1 (plus avec la 1.2 il me semble).
A ta place, j'utiliserai plutôt la classe des Windows Forms dédiée à cela, c'est à dire je sais plus quoi mais je me souviens qu'elle existe et peut te donner le nombre d'écrans, leur résolution et tout le touti
Hors ligne
ok je vais continuer de chercher : me semblait aussi me souvenir qu'il y avait une classe winform pour ça mais impossible de mettre le curseur dessus.
Hors ligne
Screen ecran = Screen.PrimaryScreen;
ecran.Bounds.Height etc....
Hors ligne
Pour avoir la liste de toutes les résolutions supportées (sous Windows), tu peux utiliser la fonction EnumDisplaySettings de USER32.DLL.
Je m'en sers pour mes programmes, ça marche très bien.
Pour les trucs plus avancés (savoir si la carte supporte les pixels shaders, etc...), j'utilise IrrlichtDevice.VideoDriver.QueryFeature.
Cette dernière méthode est pas mal, elle permet aussi de "recommander" une config d'affichage par défaut pour les utilisateurs noob qui ne savent pas configurer leurs programmes tout seuls (par exemple, si la carte supporte les Pixel Shaders 3.0, on peut supposer qu'elle est récente, donc proposer par défaut une résolution de 1024x768 ou plus. Si elle ne supporte même pas les PM 1.0, c'est une vieillerie à régler par défaut en 640x480).
Hors ligne