Skip to main content

Module image

Module image 

Source

Structs§

ImageFetchReq 🔒
ImageLoadQueue 🔒

Constants§

MAX_IMAGE_WORKERS 🔒
同時に走らせる画像取得ワーカーの上限。

Statics§

IMAGE_QUEUE 🔒
IMG_PENDING 🔒
画像 src をキューに追加し、必要ならローダースレッドを起動する 取得待ちの画像枚数の写し。
IMG_RESULTS 🔒
取り込み待ちの完了件数の写し。
IMG_WORKERS 🔒
稼働中の画像ワーカー本数の写し(font_queue::worker_count と同じ理由)。
SHARED_IMAGES 🔒
デコード済み画像を src で引ける共有の置き場。

Functions§

clear_shared_images
ページを移ったら捨てる(image_cache の破棄と対で呼ぶ)。
decode_gif 🔒
GIF (87a/89a) デコーダ。先頭イメージフレームを RGBA で返す。 グローバル/ローカルパレット・LZW・透過(Graphic Control Extension)・インターレース対応。 アニメーションは先頭フレームのみ描画(静止画扱い)。
decode_image 🔒
enqueue_image 🔒
gif_interlace_rows 🔒
GIF インターレース行順を展開(4パス)
gif_lzw_decode 🔒
GIF の可変長 LZW デコード。出力はパレットインデックス列。
image_loader_thread 🔒
image_results_ready
デコード完了した画像が「取り込み待ち」で存在するか(エッジトリガ再描画用)。 旧実装は pending/thread_active も見ていたため、画像のロード待ちの間ずっと 全画面再描画が走り続け(画面が波打つ)原因になっていた。 完了結果がある時だけ true を返すことで、完了ごとに1回だけ再描画する。
pending_count 🔒
pump 🔒
溜まっている取得要求に対してワーカーを起こし直す。 理由は font_queue::pump と同じ(門が閉じている間の投入を拾い直す)。
share_image
共有の置き場へ登録する。取り込み側から呼ぶ。
shared_image
src からデコード済み画像を引く。無ければ None
skip_gif_subblocks 🔒
GIF サブブロック列を読み飛ばし、終端(0x00)の次位置を返す
store_results_len 🔒
results の件数を写す。ロックを持っている側から呼ぶ。
store_worker_count 🔒
稼働本数を写す。ロックを持っている側から呼ぶ。
svg_target_size 🔒
SVG をラスタライズする目標解像度(自然サイズ基準・上限512・最低1)を決める
worker_count 🔒