Здравствуйте, 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 рисуется, надо уже в глубине ковыряться
ЗЫЫ SetSmoothingMode в GDI+ с различными режимами что-то никак не влияет ни на скорость, ни на качество отрисовки