Как оптимизировать рендеринг?

Здраствуйте, я пишу программу на SFML и C# (официальная привязка), сама программа это текстовый редактор (редактор кода, по типу саблайма), пишу для саморазвития если так можно назвать, я столкнулся с такой проблемой, при рендеринге большом количестве объектов (RectangleShape, Text) сильно нагружается процессор, вместо того что бы создавать каждый раз новые объекты я начал использовать одни объекты для таких частей как line-text, line-bg, gutter-text и тд, но все равно при изменении текста в объекте (Text) кэша, идет перерасчет всех точек и это занимает очень много времени, это не заметно при количестве строк > 400.
Дальше я решил перерисовывать все только при определеных событиях, но сами понимаете при вводе текста перерисовка вызывается часто и все равно просадки есть.

Подскажите или хотя бы намекните в какую сторону копать для решения этих проблем.
Тот код который я хотел показать не вмещается в рамки ограничений вопроса, по этому я предсиавлю ссылку на проект
GitHub
  • Вопрос задан
  • 195 просмотров
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019
Bigdata Engineer
Зачем пользователю видеть 400 строк на экране? Да их столько туда не влезает.
Ответ написан
@AlexHell
в винде давным давно есть оптимизация для GUI как раз - перерендеринг (инвалидация) только отдельных изменившихся элементов, скажем одно текстовое поле перерендерится (и CPU и GPU), а потом прилепляется к закешированной текстуре (где все остальные неизмененные GUI)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы