LeoAndo / development-conference-memo

0 stars 0 forks source link

Introducing Impeller - Flutter's new rendering engine #348

Open LeoAndo opened 1 year ago

LeoAndo commented 1 year ago

https://io.google/2023/program/60b4bd9e-4159-473d-b031-edabb93d0e00/intl/ja/ https://www.youtube.com/watch?v=vd5NqS01rlA

LeoAndo commented 1 year ago

https://youtu.be/vd5NqS01rlA?t=29

スクリーンショット 2023-05-23 10 38 24

SkiaはFlutter用に設計されていない。

LeoAndo commented 1 year ago

https://youtu.be/vd5NqS01rlA?t=87

Flutterフレームワークではウィジェットのツリーはレンダリングオブジェクトのツリーによって支えられています。 レンダーオブジェクトにはウィジェットを実際にレイアウトしてペイントする方法に関する指示が含まれる。 これらの命令はエンジンに与えられ、表示リストと呼ばれる単純なコマンドの順序付きリストに保存される

スクリーンショット 2023-05-23 10 47 35
LeoAndo commented 1 year ago

https://youtu.be/vd5NqS01rlA?t=111

エンジンは利用可能なレンダラ(Impeller or Skia)のいずれかを使用して、この表示リストをSurface Textureまたは画面に表示できるピクセル値のグリッドに描画します。

スクリーンショット 2023-05-23 10 49 51 スクリーンショット 2023-05-23 10 50 01

表示リスト内の全てをレンダリングするために使用できるレンダリングパイプラインと呼ばれるもののコレクションをセットアップすることにより、GPUを活用します

レンダリングパイプラインを使用する前に、まず表示リストによって描画された全てのパスを取得し、それらを三角形のセットにTessellationする必要があります。

スクリーンショット 2023-05-23 11 09 28
LeoAndo commented 1 year ago

demo https://youtu.be/vd5NqS01rlA?t=645