Эффективный рендеринг холста во Flutter - PullRequest
0 голосов
/ 16 июня 2020

Я пытался разработать приложение для рисования, и все примеры кода, включая код из The Boring Flutter Development Show, не очень хорошо подходят для реального использования.

Основная проблема в том, что CustomPaint рисовать слишком дорого и перерисовывать aws каждую точку, каждый кадр. И поскольку точки увеличиваются, время рендеринга приложения flutter на кадр значительно увеличивается

Со времени, которое я потратил на поиск решения этой проблемы, я нашел эти

  1. RepaintBoundary : Растрирует слои

  2. Пользовательский виджет с использованием SingleChildRenderObjectWidget и RenderProxyBox: должен реализовывать метод рисования и не передавать контроллер

Я не думаю, что какое-либо из вышеперечисленных решений подходит для моих нужд: плавные операции рисования холста без повторного рисования. Я даже попытался упростить точки, и это не сработало из-за внутреннего механизма CustomPaint

. Если бы был способ передать холст в качестве виджета и прикрепить контроллер, это было бы легко сохраните захваченные точки и используйте базовые c операции холста, такие как canvas.drawPath() или canvas.drawLine(), очень эффективно

Любое предложение будет полезным. Спасибо!

...