Tak.
Pplu zastanawia się, dlaczego programy działają wolniej, gdy system działa z wieloma monitorami .
Cóż, po pierwsze, oczywiście, gdy masz więcej niż jeden monitor, na ekranie jest więcej rzeczy, które system może śledzić. Z tego samego powodu programy działają wolniej na dużym monitorze niż na małym.
A jeśli jest tylko jeden monitor, wówczas funkcje takie, jak MonitorFromPoint
flaga, stają się trywialne
MONITOR_DEFAULTTONEAREST
, ponieważ gdy jest tylko jeden monitor, odpowiadanie na pytania typu „Jaki monitor jest najbliżej tego punktu”? staje się bardzo łatwe.
Jeśli dwa monitory nie mają tych samych wymiarów, połączenie dwóch monitorów nie będzie prostokątne, co utrudnia przycinanie w stosunku do połączenia wszystkich monitorów.
Podejrzewam jednak, że duża kara za kopnięcia wielu monitorów wystąpi, jeśli popełnisz błąd, ustawiając monitory na różne formaty kolorów, na przykład, jeśli ustawisz jeden monitor na format 565, a drugi na 24bpp.
Jeśli dwa monitory nie używają tego samego formatu kolorów, wówczas programy będą zmuszone do korzystania z DIB zamiast DDB w bitmapach ekranowych, w przypadku, gdy okno zostanie przeniesione do okna o innym formacie kolorów (lub gorzej, jest ustawione tak, aby osiadło dwa monitory o różnych formatach kolorów). Zasadniczo programy wymagają tylko DIB „najgorszego przypadku”; na przykład, jeśli jeden monitor ma 555, a drugi 565, to wystarczy DIB 565. W praktyce jednak większość programów po prostu wraca do DIB 24bpp lub 32bpp, gdy ma do czynienia z monitorami o różnych formatach kolorów.
(Pytasz, czy wszystkie monitory mają ten sam format kolorów, dzwoniąc
GetSystemMetrics(SM_SAMEDISPLAYFORMAT)
).
Ponieważ konwersja formatu ma miejsce, gdy DIB jest podłączony do urządzenia o innym formacie kolorów, wymuszenie na programie zachowania bitmap, ponieważ DIB oznacza, że dla co najmniej jednego z monitorów (i prawdopodobnie obu), przejdziesz konwersja formatu, gdy ta DIB jest rysowana na ekranie. Istnieje również kilka różnych optymalizacji, które są wyłączone, gdy nie wszystkie monitory używają tego samego formatu kolorów, ponieważ koszt korzystania z DIB przewyższa oszczędności wynikające z optymalizacji.
Jeśli jeszcze tego nie zrobiłeś, przejdź do ustawień wyświetlania i sprawdź, czy wszystkie monitory mają tę samą głębię kolorów. Jeśli tego nie zrobisz, stracisz dużą klasę optymalizacji graficznych.