Skip to main content

draw_background_image

Function draw_background_image 

Source
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%)。