Так.
Pplu цікавиться, чому програми працюють повільніше, коли система працює з декількома моніторами .
Ну, для однієї речі, звичайно, коли у вас є більше одного монітора, на екрані є більше речей, за якими система може відслідковувати. Це та сама причина, що програми працюють повільніше на великому моніторі, ніж на маленькому.
А якщо є лише один монітор, то такі функції, як MonitorFromPoint
стають тривіальними, якщо прапор чимось схожий
MONITOR_DEFAULTTONEAREST
, бо коли є лише один монітор, відповідаючи на запитання типу "Який монітор найближчий до цієї точки"? стає дуже легко.
Якщо ваші два монітора не мають однакових розмірів, то з'єднання двох моніторів не буде прямокутним, що робить затискання проти об'єднання всіх моніторів складнішим.
Але я підозрюю, що велика кара за декілька моніторів починається, якщо ви помилитесь, встановивши монітори на різні кольорові формати, наприклад, якщо встановити один монітор у форматі 565, а інший - 24bpp.
Якщо два монітора не використовують один і той же кольоровий формат, тоді програми будуть змушені використовувати DIB замість DDB для екранних растрових зображень, у випадку, якщо вікно буде переміщене до вікна з іншим кольоровим форматом (або ще гірше, якщо воно розташується так, що воно простягається) два монітори з різними кольоровими форматами). У принципі, програмам потрібно використовувати лише "найгірший" DIB; Наприклад, якщо один монітор - 555, а інший - 565, то достатньо 565 DIB. На практиці, однак, більшість програм просто повертаються до 24bpp або 32bpp DIB, стикаючись з моніторами з різними кольоровими форматами.
(Ви запитуєте, чи всі монітори мають однаковий формат кольорів, зателефонувавши
GetSystemMetrics(SM_SAMEDISPLAYFORMAT)
.)
Оскільки конверсія формату відбувається, коли DIB наближається до пристрою з іншим кольоровим форматом, змушує програму зберігати свої растрові карти, оскільки DIB означає, що принаймні один з моніторів (і, ймовірно, обидва), ви збираєтесь пройти перетворення формату, коли ця DIB виводиться на екран. Існує також декілька різних оптимізацій, які вимикаються, коли не всі ваші монітори використовують однаковий кольоровий формат, оскільки вартість використання DIB перевищує економію від оптимізації.
Тож якщо ви ще цього не зробили, увійдіть у налаштування дисплея та перевірте, чи встановлено всі ваші монітори на однакову глибину кольору. Якщо цього не зробити, то великий клас графічних оптимізацій втрачається.