Classes ImageCache - hikipuro/rpgmakermv_ref GitHub Wiki

ImageCache クラス

[クラス一覧]

(ver.1.6.2)

画像のキャッシュ管理

定義場所: rpg_core.js

関連項目

フィールド

名前 初期値 説明
limit number 10 * 1000 * 1000 (Static) キャッシュの最大サイズ (ビットマップの枚数x幅x高さ)
_items object {} キャッシュされた項目のリスト

注: ファイルサイズではなく、画像サイズでキャッシュを管理する

item

item の構造

変数名 説明
bitmap Bitmap キャッシュされたビットマップ
touch number 最後にアクセスされた時間 (Date.now() の値)
key string アクセスキー
reservationId number 予約番号

メソッド

名前 説明
initialize 初期化
add 項目を追加
get ビットマップを取得する
reserve ビットマップを予約する
releaseReservation ビットマップの予約を解除する
_truncateCache 最大サイズから溢れたビットマップを削除する
_mustBeHeld キャッシュから削除できるか確認する
isReady
getErrorBitmap エラー時のビットマップを取得する

initialize

定義: initialize()

初期化。コンストラクタから呼ばれる


add

定義: add(key, value)

項目を追加

  • _items[key] に item を追加する
引数 説明
key string アクセスキー
value Bitmap ビットマップ

get

定義: get(key)

ビットマップを取得する

  • _items[key] から bitmap を読み込む
  • _items[key] が存在しない場合は null を返す
引数 説明
key string アクセスキー

戻り値

(Bitmap)


reserve

定義: reserve(key, value, reservationId)

ビットマップを予約する

  • 予約されたビットマップはキャッシュから削除されない
引数 説明
key string アクセスキー
value Bitmap ビットマップ
reservationId number 予約番号

releaseReservation

定義: releaseReservation(reservationId)

ビットマップの予約を解除する

  • 予約番号に一致する全てのビットマップの予約を解除する
  • 予約を解除するとキャッシュから削除可能になる
引数 説明
reservationId number 予約番号

_truncateCache

定義: _truncateCache()

最大サイズから溢れたビットマップを削除する

  • _items の項目を新しいもの順に並び替える (touch を比較して並び替える)
  • 並び替えた配列を巡回する
    • 最大サイズ (limit) から width * height を引いていく
    • limit が 0 以下になった後に現れた、全ての予約済みでないビットマップをキャッシュから削除する

_mustBeHeld

定義: _mustBeHeld(item)

キャッシュから削除できるか確認する

  • item.bitmap.isRequestOnly() == true の項目は削除できる
  • item.reservationId が定義されている項目は削除できない
  • item.bitmap.isReady() == false の項目は削除できない
  • それ以外の項目は削除できる
引数 説明
item item キャッシュ項目

戻り値

(boolean)

  • 削除可能: false
  • 削除不可能: true

isReady

定義: isReady()


getErrorBitmap

定義: getErrorBitmap()

エラー時のビットマップを取得する

戻り値

(Bitmap)

  • エラー時のビットマップが見つかった場合: Bitmap
  • 見つからなかった場合: null