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

Сообщение Re: GDI+ - супер тормоз? от 24.11.2022 13:20

Изменено 25.11.2022 9:20 Pauel

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

M>У меня через GDI+ рисуется порядка сотни прямоугольников с закругленными углами. Вот просто на глаз видно, как они медленно и печально появляются на экране. Произвел замер — время отрисовки колеблется от 50 мс до 250 мс. Это чудовищно долго. И не понятно, почему время отрисовки так скачет.


За такое время можно скачать картинку по хттп и нарисовать её жээсом.

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


10 лет назад у меня .net. system.drawing который под капотом GDI+ уверенно рисовал порядка 10..15тыс примитивов в секунду.
Это если без шрифтов. Со шрифтами намного меньше.

Покажи, что именно ты рисуешь.

Проблемы с гди+ возможны, и в странных местах — например, если логические координаты слишком большие или когда часть рендеринга идет мимо видимой области. Лучше отключить всё такое, включая клиппинг, и делать это самому. Тогда сюрпризов меньше будет.
Re: GDI+ - супер тормоз?
Здравствуйте, Marty, Вы писали:

M>У меня через GDI+ рисуется порядка сотни прямоугольников с закругленными углами. Вот просто на глаз видно, как они медленно и печально появляются на экране. Произвел замер — время отрисовки колеблется от 50 мс до 250 мс. Это чудовищно долго. И не понятно, почему время отрисовки так скачет.


За такое время можно скачать картинку по хттп и нарисовать её жээсом.

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


10 лет назад у меня .net. system.drawing который под капотом GDI+ уверенно рисовал порядка 10..15тыс примитивов в секунду.
Это если без шрифтов. Со шрифтами намного меньше.

Покажи, что именно ты рисуешь.

Проблемы с гди+ возможны, и в странных местах — например, если логические координаты слишком большие или когда часть рендеринга идет мимо видимой области. Лучше отключить всё такое, включая клиппинг, и делать это самому. Тогда сюрпризов меньше будет.

Для примера — если логическую область сделать в логических единицах от -50млн до +50млн, и попытаться нарисовать линию стилем dash от одного края, до другого не прямо, а наискосок, то рисование такой линии занимает секунды и линия может оказаться изогнутой на экране, т.е. пройдет совсем не там, куда бы она попала если стиль solid