Информация об изменениях

Сообщение Re[2]: GDI+ - супер тормоз? от 28.10.2022 6:29

Изменено 28.10.2022 6:43 Marty

Re[2]: GDI+ - супер тормоз?
Здравствуйте, Pavel Dvorkin, Вы писали:

M>>Кто виноват и что делать?


PD>Для начала отрисовать их без GDI+, просто через RoundRect. Может, дело не в GDI+


На самом деле, у меня там не RoundRect'ы, а пути, которые я потом заполняю. Потому, что у меня фигуры могут быть не обязательно прямоугольники, а произвольные их слияния (буквой Г, например).
Интерфейс у меня написан для GDI и для GDI+, но простой GDI дуги закруглений неряшливо присует. Вот так выглядят тайминги отрисовки:

  С закруглениями
GDI+
DoPaint: 141ms
DoPaint: 172ms
DoPaint: 125ms
DoPaint: 125ms
DoPaint: 140ms
DoPaint: 125ms
DoPaint: 94ms
DoPaint: 125ms
DoPaint: 125ms
DoPaint: 125ms
DoPaint: 141ms
DoPaint: 125ms
DoPaint: 157ms
DoPaint: 140ms
DoPaint: 156ms
DoPaint: 93ms
DoPaint: 125ms
DoPaint: 141ms
DoPaint: 109ms

GDI
DoPaint: 16ms
DoPaint: 15ms
DoPaint: 16ms
DoPaint: 16ms
DoPaint: 16ms
DoPaint: 16ms
DoPaint: 16ms
DoPaint: 0ms
DoPaint: 0ms
DoPaint: 16ms
DoPaint: 15ms
DoPaint: 0ms
DoPaint: 16ms
DoPaint: 0ms
DoPaint: 16ms
DoPaint: 0ms
Re[2]: GDI+ - супер тормоз?
Здравствуйте, Pavel Dvorkin, Вы писали:

M>>Кто виноват и что делать?


PD>Для начала отрисовать их без GDI+, просто через RoundRect. Может, дело не в GDI+


На самом деле, у меня там не RoundRect'ы, а пути, которые я потом заполняю. Потому, что у меня фигуры могут быть не обязательно прямоугольники, а произвольные их слияния (буквой Г, например).
Интерфейс у меня написан для GDI и для GDI+, но простой GDI дуги закруглений неряшливо присует. Вот так выглядят тайминги отрисовки:

  С закруглениями
GDI+
DoPaint: 141ms
DoPaint: 172ms
DoPaint: 125ms
DoPaint: 125ms
DoPaint: 140ms
DoPaint: 125ms
DoPaint: 94ms
DoPaint: 125ms
DoPaint: 125ms
DoPaint: 125ms
DoPaint: 141ms
DoPaint: 125ms
DoPaint: 157ms
DoPaint: 140ms
DoPaint: 156ms
DoPaint: 93ms
DoPaint: 125ms
DoPaint: 141ms
DoPaint: 109ms

GDI
DoPaint: 16ms
DoPaint: 15ms
DoPaint: 16ms
DoPaint: 16ms
DoPaint: 16ms
DoPaint: 16ms
DoPaint: 16ms
DoPaint: 0ms
DoPaint: 0ms
DoPaint: 16ms
DoPaint: 15ms
DoPaint: 0ms
DoPaint: 16ms
DoPaint: 0ms
DoPaint: 16ms
DoPaint: 0ms



ЗЫ Хотел еще без закруглений тайминги померять, померял — для GDI — картина точно такая же — что есть дуги, что их нет, а GDI+ — так просто не проверить уже, потому что версия без закруглений всегда через GDI рисуется, надо уже в глубине ковыряться