Sim.
Pplu se pergunta por que os programas são executados mais lentamente quando o sistema está sendo executado com vários monitores .
Bem, por um lado, é claro, quando você tem mais de um monitor, há mais coisas na tela para o sistema acompanhar. É a mesma razão pela qual os programas são executados mais lentamente em um monitor grande do que em um monitor pequeno.
E se houver apenas um monitor, funções como MonitorFromPoint
tornam-se triviais se o sinalizador for algo como
MONITOR_DEFAULTTONEAREST
, porque quando houver apenas um monitor, respondendo a perguntas como "Qual monitor está mais próximo deste ponto"? torna-se muito fácil.
Se seus dois monitores não tiverem as mesmas dimensões, a união dos dois monitores não será retangular, o que torna mais complicado o corte na união de todos os monitores.
Mas eu suspeito que a grande penalidade para vários monitores entra em ação se você cometer o erro de configurá-los para diferentes formatos de cores, por exemplo, se você definir um monitor para o formato 565 e outro para 24bpp.
Se os dois monitores não usarem o mesmo formato de cor, os programas serão forçados a usar DIBs em vez de DDBs para bitmaps de tela, caso uma janela seja movida para uma janela com um formato de cor diferente (ou pior, seja posicionado de forma que fique entre dois monitores com diferentes formatos de cores). Em princípio, os programas precisam apenas usar o DIB "pior dos casos"; por exemplo, se um monitor é 555 e o outro é 565, um DIB 565 será suficiente. Na prática, no entanto, a maioria dos programas volta a um DIB de 24bpp ou 32bpp quando confrontados com monitores com diferentes formatos de cores.
(Você pergunta se todos os monitores têm o mesmo formato de cor chamando
GetSystemMetrics(SM_SAMEDISPLAYFORMAT)
.)
Como uma conversão de formato ocorre quando um DIB é misturado a um dispositivo com um formato de cor diferente, forçar um programa a reter seus bitmaps como DIBs significa que, para pelo menos um dos monitores (e provavelmente ambos), você será submetido uma conversão de formato quando esse DIB é atraído para a tela. Existem também algumas otimizações diversas desativadas quando nem todos os monitores usam o mesmo formato de cor, porque o custo do uso de DIBs supera as economias da otimização.
Portanto, se você ainda não o fez, acesse as configurações de vídeo e verifique se todos os seus monitores estão na mesma profundidade de cor. Se você não fizer isso, uma grande classe de otimizações gráficas será perdida.