pub(super) fn draw_background_image(
screen: &Screen,
img: &DecodedImage,
el: &RenderElement,
x0_rect: i32,
y0_rect: i32,
eff_w: i32,
eff_h: i32,
clip_s: &Option<ClipShape>,
attachment_shift_y: i32,
origin_shift_x: i32,
origin_shift_y: i32,
origin_w: i32,
origin_h: i32,
layer_override: Option<(BgSizeMode, BgRepeatMode, BgRepeatMode, f32, f32)>,
)Expand description
計算量: O(Wd×Hd × R) — Wd,Hd は描画先サイズ、R は
background-repeat によるタイル数(no-repeat なら 1)。
1 ピクセルごとに元画像をサンプリングして拡縮するため、 元画像のサイズには依存せず描画先の面積で決まる。 拡縮結果はキャッシュしていないので毎フレーム再計算になる。
実測: sugi-lab.net の 1 フレームで 33〜47 tick(paint の約 14%)。