issues
search
tor4kichi
/
TsubameViewer
漫画・小説ビューア(Windows10 & 11/XboxOne/Xbox Series X & S)
GNU General Public License v3.0
15
stars
1
forks
source link
ImageViewerの画像表示実装を整理する
#92
Open
tor4kichi
opened
1 year ago
tor4kichi
commented
1 year ago
ImageViewerの要件
見開き表示と単品表示の切り替え
ページ送りの反転
画像キャッシュ
画像デコードとオリジナル画像表示の差し替え(ウィンドウサイズ以上の画像時、および拡大表示時)
前後移動時に読み込み済みを表示
画像一覧ページから選択した際のConnectedAnimation
実装が複雑になっている原因
画像キャッシュ
画像データをImageコントロールのSourceいセットしてXamlシステム側で描画させるなければGPUメモリに乗らない。
レイアウトシステム
ItemsControl+LayoutPanelによる自動レイアウトに乗っかるために表示画像用の配列を用意して画像読み込み処理などをそれに合わせている。
複雑さ解消の取り組み
画像キャッシュと表示を分けるため、レイアウトシステムを自前で管理する
Canvasベースで位置とサイズを計算する
キャッシュ生成対象をObservableCollection
として渡す
画像の表示位置情報をピクセル単位で指定させる
要件として見開き表示、単独表示、スライドスクロール(縦・横)などをやりたい
レイアウターを自前実装する?(現実的ではない…)
実装差し替えの流れ
旧実装はそっくりそのまま残す
ImageViewerの要件
実装が複雑になっている原因
画像キャッシュ
レイアウトシステム
複雑さ解消の取り組み
実装差し替えの流れ