Oui.
Pplu se demande pourquoi les programmes s'exécutent plus lentement lorsque le système fonctionne avec plusieurs moniteurs .
Eh bien, pour une chose, bien sûr, lorsque vous avez plus d'un moniteur, il y a plus de choses à l'écran pour le système de garder une trace. C'est la même raison pour laquelle les programmes s'exécutent plus lentement sur un grand moniteur que sur un petit moniteur.
Et s'il n'y a qu'un seul moniteur, alors les fonctions comme MonitorFromPoint
deviennent triviales si le drapeau est quelque chose comme
MONITOR_DEFAULTTONEAREST
, parce que quand il n'y a qu'un seul moniteur, répondre à des questions comme "Quel moniteur est le plus proche de ce point"? devient très facile.
Si vos deux moniteurs n'ont pas les mêmes dimensions, alors l'union des deux moniteurs ne sera pas rectangulaire, ce qui compliquera l'écrêtage contre l'union de tous les moniteurs.
Mais je soupçonne que la grosse pénalité pour plusieurs moniteurs entre en jeu si vous faites l'erreur de régler vos moniteurs sur différents formats de couleur, par exemple, si vous définissez un moniteur au format 565 et un autre à 24 bpp.
Si les deux moniteurs n'utilisent pas le même format de couleur, les programmes seront obligés d'utiliser des DIB au lieu de DDB pour les bitmaps d'écran, au cas où une fenêtre est déplacée vers une fenêtre avec un format de couleur différent (ou pire, est positionnée de manière à chevaucher deux moniteurs avec différents formats de couleurs). En principe, les programmes doivent uniquement utiliser le DIB "pire des cas"; par exemple, si un moniteur est 555 et l'autre 565, alors un DIB 565 suffira. Dans la pratique, cependant, la plupart des programmes retombent simplement à un DIB 24bpp ou 32bpp lorsqu'ils sont confrontés à des moniteurs avec différents formats de couleurs.
(Vous demandez si tous les moniteurs ont le même format de couleur en appelant
GetSystemMetrics(SM_SAMEDISPLAYFORMAT)
.)
Étant donné qu'une conversion de format a lieu lorsqu'un DIB est blité sur un appareil avec un format de couleur différent, forcer un programme à conserver ses bitmaps en tant que DIB signifie que pour au moins l'un des moniteurs (et probablement les deux), vous allez subir une conversion de format lorsque cette DIB est dessinée à l'écran. Il existe également quelques optimisations diverses qui sont désactivées lorsque tous vos moniteurs n'utilisent pas le même format de couleur car le coût d'utilisation des DIB l'emporte sur les économies réalisées grâce à l'optimisation.
Donc, si vous ne l'avez pas déjà fait, allez dans vos paramètres d'affichage et vérifiez que vous réglez tous vos moniteurs sur la même profondeur de couleur. Si vous ne le faites pas, une grande classe d'optimisations graphiques est perdue.