RenderPipeline クラス
RenderObjectツリーの未処理レイアウトと未処理描画をフレーム単位で実行します。
名前空間: FloatSoda.Core
アセンブリ: FloatSoda.dll
public class RenderPipeline継承したメンバー
Section titled “継承したメンバー”object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()
Dirty状態のRenderObjectを深さ順に処理し、現在このパイプラインに所属するノードだけを更新します。
NodesNeedingLayout
Section titled “NodesNeedingLayout”次回のレイアウトフラッシュを待つRenderObjectの一覧を取得します。
public List<RenderObject> NodesNeedingLayout { get; }プロパティの値
Section titled “プロパティの値”レイアウト中に新たなDirtyノードが登録された場合は、一覧が空になるまで同じフラッシュ内で処理します。
NodesNeedingPaint
Section titled “NodesNeedingPaint”次回の描画フラッシュを待つRenderObjectの一覧を取得します。
public List<RenderObject> NodesNeedingPaint { get; }プロパティの値
Section titled “プロパティの値”描画フラッシュ開始時に一覧は消去され、処理中に新たにDirtyとなったノードは次回の描画対象になります。
OnNeedVisualUpdate
Section titled “OnNeedVisualUpdate”次フレームで視覚更新が必要になったときに呼び出す処理を取得します。
public required Action OnNeedVisualUpdate { get; init; }プロパティの値
Section titled “プロパティの値”Dirtyリストが空の状態から更新が予約された際に、フレーム処理を起動するために使用します。
RenderView
Section titled “RenderView”このパイプラインが管理するRenderObjectツリーのルートを取得または設定します。
public required RenderView RenderView { get; set; }プロパティの値
Section titled “プロパティの値”設定したルートは直ちにこのパイプラインへ接続されます。
FlushLayout()
Section titled “FlushLayout()”レイアウトがDirtyなノードを祖先から子孫の順に再レイアウトします。
public void FlushLayout()処理によって追加されたDirtyノードも、待機一覧が空になるまで同じ呼び出し内で処理します。
FlushPaint()
Section titled “FlushPaint()”描画がDirtyなノードを祖先から子孫の順に再描画します。
public void FlushPaint()開始時点の待機一覧を消去して処理するため、処理中に追加されたDirtyノードは次回の描画フラッシュで処理されます。
RequestVisualUpdate()
Section titled “RequestVisualUpdate()”視覚更新が必要であることをフレーム管理側へ通知します。
public void RequestVisualUpdate()この呼び出し自体はレイアウトや描画を実行せず、次フレームの更新を予約します。