[前へ] [目次へ] [次へ]

CacheBitmap (ネイティブクラス)


このクラスは素材キャッシュのビットマップを扱うクラスです。

このクラスで扱うビットマップはFGLの素材キャッシュ機構に接続されています。
このクラスのビットマップオブジェクトは同じ名前のキャッシュに接続している
全てのオブジェクトで共有され、画像の内容を編集できません。
また、接続しているオブジェクトがなくなっても、一定時間メモリ上に維持されており、
再度該当素材へのアクセスがあった場合は再使用されます。
メモリ上に存在しない素材へのアクセスがあった場合、
素材キャッシュ機構は自動的に該当する画像ファイルを読み込みます。

FGL素材キャッシュ機構は pic/use-base フォルダ以下の画像ファイルを指定した場合、
同フォルダにある base.webp をベース画像として自動的に合成します。
この時、画像サイズはベース画像と指定画像の大きい方になり、
ベース画像の上に指定画像をLayer描画モードで合成したものが指定画像として読み込まれます。

●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   implements INativeBitmap
          GetWidth
          GetHeight
          GetWidthExtractIndexed
          GetHeightExtractIndexed
          (C++レベルキャスト)IFGESBitmap


●クラスメソッド

名前概要
public操作メソッド PreLoad素材キャッシュに指定した画像を先読みします
public取得メソッド GetBitmapCacheSize素材キャッシュの使用量を取得します
public操作メソッド BorderCacheRelease素材キャッシュ内の最近使っていない素材を解放します

●クラスメンバメソッド

名前概要
public操作メソッド Connect素材キャッシュに接続します
public操作メソッド DisConnect素材キャッシュから切断します
public操作メソッド Lock接続している素材キャッシュをロックします
public操作メソッド UnLock接続している素材キャッシュのロックを解除します
public操作メソッド EnableFillMap高速描画のための塗り潰しマップを有効化します
public取得メソッドconst GetWidth素材キャッシュの横幅を取得します
public取得メソッドconst GetHeight素材キャッシュの縦幅を取得します
public取得メソッドconst GetWidthExtractIndexed素材キャッシュの横幅を取得します
public取得メソッドconst GetHeightExtractIndexed素材キャッシュの縦幅を取得します
public取得メソッドconst GetCacheName素材キャッシュの名前を取得します

●クラス共有変数

   このクラスはクラス共有変数を持っていません。

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_CACHEBITMAP
クラス名: FGES_CacheBitmap



CacheBitmap::PreLoad

public static Bool PreLoad( INativeString target_name, INativeBool? fillmap_enable=NULL)

   素材キャッシュ機構に指定した画像を先読みさせます。
   このメソッドはメモリ上から自動的に解放された画像をリロードさせるためにも使用できます。
   このメソッドによるロードはバックグラウンドロードスレッド(ネイティブスレッド)で非同期に行われるため、
   ロード処理の完了を待たずにこのメソッドから処理が戻ります。
   
   fillmap_enable は指定した素材キャッシュがこの呼び出しで初めて使用された場合のみ参照されます。
   指定した素材キャッシュが既に使用されていた場合、この引数は無視されます。
   
   バックグラウンドロードスレッドが動作している間、
   本線での画像および効果音のロード処理速度は低下します。
   実際に使うまでの時間が2フレームに満たない場合や本線でロード処理を行う必要がある場合は、
   このメソッドを使用しない方が実際の処理速度が速くなる可能性があります。
   
   拡張子を指定しない場合、picフォルダ以下のPNG形式の画像を読み込みます。
   この時、サブフォルダのパスは含むことができます。
   また、素材ファイルにアクセスできない場合はエラーメッセージが表示されます。
   
   ファイル名の最後に ? 区切りで追加オプションを指定することができます。
   追加オプションを指定した場合、オプションの設定値毎に異なるキャッシュが生成されます。
   現在、以下のオプションが使用できます。(パラメータのあるものは書式の先頭1文字がオプションの種類を示します)
オプション書式概要
HSV変換V h s v画像にHSV変換を行います。各パラメータは10進整数で指定します。
HSL変換L h s l画像にHSL変換を行います。各パラメータは10進整数で指定します。
HSLY変換Y h s y画像にHSLY変換を行います。各パラメータは10進整数で指定します。
色変換T c r g b a画像に色変換を行います。cは16進整数で変換色、
r g b aは10進整数で各要素への影響力を指定します。
アルファマスク変換gsaグレースケール画像をアルファマスク画像化します。
このオプションを使うとA値は画像のG値で上書きされ、元々のA値は無視されます。
横再配置RH size cnt list横軸をsizeピクセル毎に分割し、listに基づいて再配置します。
分割数がcntを超えた場合、cnt分ごとに別の画像が収録されているものとして扱います。
listcnt分、0〜9とa〜zの文字列で指定し、
読込元画像のどの位置を割り当てるかを指定します。
縦再配置RV size cnt list縦軸をsizeピクセル毎に分割し、listに基づいて再配置します。
分割数がcntを超えた場合、cnt分ごとに別の画像が収録されているものとして扱います。
listcnt分、0〜9とa〜zの文字列で指定し、
読込元画像のどの位置を割り当てるかを指定します。
インデックスカラー化ind-g画像をFGS Indexed Bitmap化してメモリを節約します。
FGS Indexed Bitmap化の条件や制約はBitmap::GenerateIndexedBitmapを参照してください。
FGS Indexed Bitmap化できない場合は通常通り読み込みます。
   
戻り値:ロードの予約に成功すると真を返します。

INativeString target_name :先読みする素材ファイル名
INativeBool? fillmap_enable=NULL :真を指定すると塗り潰しマップを有効化します。
      空参照を指定した場合は偽として扱います。

先頭へ


CacheBitmap::GetBitmapCacheSize

public static Integer GetBitmapCacheSize()

   現在の画像素材キャッシュの使用量合計を取得します。
   この値はメモリ上に素材キャッシュとして保持しているピクセル数の合計です。

戻り値:現在の画像素材キャッシュの使用量合計(ピクセル単位)

先頭へ


CacheBitmap::BorderCacheRelease

public static Integer BorderCacheRelease( INativeInteger border_count)

   画像素材キャッシュとしてメモリ上に保持している画像のうち、
   ロックされておらず、 border_count フレーム以上参照されていない画像のメモリを解放します。
   この処理で解放された画像は次回参照時に自動的にリロードされます。

戻り値:この処理で解放された画像の数を返します。

INativeInteger border_count :解放条件となるフレーム数

先頭へ


CacheBitmap::INativeBitmap@@GetWidth

Integer INativeBitmap@@GetWidth()const

   接続している素材キャッシュ画像の横幅を返します。
   接続している素材キャッシュがない場合、0を返します。
   このメソッドはFGS Indexed Bitmapに対応していません。
   画像がFGS Indexed Bitmapである場合は GetWidthExtractIndexed を使用してください。

戻り値:接続している素材キャッシュ画像の横幅

先頭へ


CacheBitmap::INativeBitmap@@GetHeight

Integer INativeBitmap@@GetHeight()const

   接続している素材キャッシュ画像の縦幅を返します。
   接続している素材キャッシュがない場合、0を返します。
   このメソッドはFGS Indexed Bitmapに対応していません。
   画像がFGS Indexed Bitmapである場合は GetHeightExtractIndexed を使用してください。

戻り値:接続している素材キャッシュ画像の縦幅

先頭へ


CacheBitmap::INativeBitmap@@GetWidthExtractIndexed

Integer INativeBitmap@@GetWidthExtractIndexed()const

   接続している素材キャッシュ画像の横幅を返します。
   接続している素材キャッシュがない場合、0を返します。
   このメソッドは接続している素材キャッシュ画像がFGS Indexed Bitmapである場合、
   通常のビットマップ画像に展開した時の横幅を返します。
   保持している画像がFGS Indexed Bitmapでない場合は単に画像の横幅を返します。

戻り値:接続している素材キャッシュ画像の横幅

先頭へ


CacheBitmap::INativeBitmap@@GetHeightExtractIndexed

Integer INativeBitmap@@GetHeightExtractIndexed()const

   接続している素材キャッシュ画像の縦幅を返します。
   接続している素材キャッシュがない場合、0を返します。
   このメソッドは接続している素材キャッシュ画像がFGS Indexed Bitmapである場合、
   通常のビットマップ画像に展開した時の縦幅を返します。
   保持している画像がFGS Indexed Bitmapでない場合は単に画像の縦幅を返します。

戻り値:接続している素材キャッシュ画像の縦幅

先頭へ


CacheBitmap::Connect

public Bool Connect( INativeString target_name, INativeBool? imm_load=NULL)

   このオブジェクトを指定した素材キャッシュに接続します。
   現在接続している素材キャッシュがある場合は自動的に切断されます。
   
   imm_load に空参照または真を指定し、指定した素材キャッシュがメモリ上にロードされていなかった場合、
   指定した素材キャッシュを即座にメモリ上にロードします。

   imm_load に偽を指定し、指定した素材キャッシュがメモリ上にロードされていなかった場合、素材ファイルのロードをしません。
   この場合、素材ファイルのロードは画像へのアクセスが要求された時点で行い、
   素材ファイルがロードできないことによるエラーはこのメソッドの呼び出し時点では検知できません。
   
   拡張子を指定しない場合、picフォルダ以下のPNG形式の画像を読み込みます。
   この時、サブフォルダのパスは含むことができます。
   また、素材ファイルにアクセスできない場合はエラーメッセージが表示されます。
   
   ファイル名の最後に ? 区切りで追加オプションを指定することができます。
   追加オプションを指定した場合、オプションの設定値毎に異なるキャッシュが生成されます。
   現在、以下のオプションが使用できます。(パラメータのあるものは書式の先頭1文字がオプションの種類を示します)
オプション書式概要
HSV変換V h s v画像にHSV変換を行います。各パラメータは10進整数で指定します。
HSL変換L h s l画像にHSL変換を行います。各パラメータは10進整数で指定します。
HSLY変換Y h s y画像にHSLY変換を行います。各パラメータは10進整数で指定します。
色変換T c r g b a画像に色変換を行います。cは16進整数で変換色、
r g b aは10進整数で各要素への影響力を指定します。
アルファマスク変換gsaグレースケール画像をアルファマスク画像化します。
このオプションを使うとA値は画像のG値で上書きされ、元々のA値は無視されます。
横再配置RH size cnt list横軸をsizeピクセル毎に分割し、listに基づいて再配置します。
分割数がcntを超えた場合、cnt分ごとに別の画像が収録されているものとして扱います。
listcnt分、0〜9とa〜zの文字列で指定し、
読込元画像のどの位置を割り当てるかを指定します。
縦再配置RV size cnt list縦軸をsizeピクセル毎に分割し、listに基づいて再配置します。
分割数がcntを超えた場合、cnt分ごとに別の画像が収録されているものとして扱います。
listcnt分、0〜9とa〜zの文字列で指定し、
読込元画像のどの位置を割り当てるかを指定します。
インデックスカラー化ind-g画像をFGS Indexed Bitmap化してメモリを節約します。
FGS Indexed Bitmap化の条件や制約はBitmap::GenerateIndexedBitmapを参照してください。
FGS Indexed Bitmap化できない場合は通常通り読み込みます。
   
   このメソッドで接続しただけでは、素材キャッシュ機構の自動的なメモリ解放は停止しません。
   ビットマップへのアクセスが一定時間なかった状態でアクセスした場合、ディスクからのリロードが発生し速度が低下します。
   自動的なメモリ解放を停止したい場合はさらに Lock を呼び出し、オブジェクトを維持してください。

戻り値:読み込みに成功すると真を返します。

INativeString target_name :接続する素材ファイル名
INativeBool? imm_load=NULL :真を指定すると即座に素材ファイルをロードします。
      空参照を指定した場合は真として扱います。

先頭へ


CacheBitmap::DisConnect

public Bool DisConnect()

   このオブジェクトを接続している素材キャッシュから切断します。
   このオブジェクトが素材キャッシュをロックしている場合、ロックは解除されます。
   
   接続している素材キャッシュがない場合、何もせず偽を返します。
   
戻り値:切断に成功すると真を返します。

先頭へ


CacheBitmap::Lock

public Bool Lock()

   このオブジェクトが接続している素材キャッシュをロックします。
   素材キャッシュをロックしているオブジェクトが存在する間は、
   素材キャッシュ機構は該当する素材キャッシュをメモリ上から解放しません。
   高速に表示する必要がある場合やゲーム中常時メモリ上に配置したい素材以外はロックすべきではありません。
   
   接続している素材キャッシュがない場合、例外を投入します。
   接続している素材キャッシュをこのオブジェクトが既にロックしている場合、何もせず真を返します。
   
戻り値:ロックに成功すると真を返します。

先頭へ


CacheBitmap::UnLock

public Bool UnLock()

   このオブジェクトが行っているロックを解除します。
   
   接続している素材キャッシュがない場合、例外を投入します。
   このオブジェクトがロックをしていない場合、何もせず真を返します。
   
戻り値:ロックの解除に成功すると真を返します。

先頭へ


CacheBitmap::EnableFillMap

public Bool EnableFillMap()

   このオブジェクトが接続している素材キャッシュの塗り潰しマップを有効化します。
   塗り潰しマップを有効化すると画像内の完全透明/完全不透明領域の情報が記憶され、
   Alpha/Layer による描画処理が高速化されます。

   塗り潰しマップの有効化自体にもある程度時間が掛かるため、
   完全透明や完全不透明の領域が多い画像を Alpha/Layer で描画する場合のみこのメソッドを使用すべきです。
   
戻り値:塗り潰しマップの有効化に成功すると真を返します。

先頭へ


CacheBitmap::GetWidth

public Integer GetWidth()const

   接続している素材キャッシュ画像の横幅を返します。
   接続している素材キャッシュがない場合、0を返します。
   このメソッドはFGS Indexed Bitmapに対応していません。
   画像がFGS Indexed Bitmapである場合は GetWidthExtractIndexed を使用してください。

戻り値:接続している素材キャッシュ画像の横幅

先頭へ


CacheBitmap::GetHeight

public Integer GetHeight()const

   接続している素材キャッシュ画像の縦幅を返します。
   接続している素材キャッシュがない場合、0を返します。
   このメソッドはFGS Indexed Bitmapに対応していません。
   画像がFGS Indexed Bitmapである場合は GetHeightExtractIndexed を使用してください。

戻り値:接続している素材キャッシュ画像の縦幅

先頭へ


CacheBitmap::GetWidthExtractIndexed

public Integer GetWidthExtractIndexed()const

   接続している素材キャッシュ画像の横幅を返します。
   接続している素材キャッシュがない場合、0を返します。
   このメソッドは接続している素材キャッシュ画像がFGS Indexed Bitmapである場合、
   通常のビットマップ画像に展開した時の横幅を返します。
   保持している画像がFGS Indexed Bitmapでない場合は単に画像の横幅を返します。

戻り値:接続している素材キャッシュ画像の横幅

先頭へ


CacheBitmap::GetHeightExtractIndexed

public Integer GetHeightExtractIndexed()const

   接続している素材キャッシュ画像の縦幅を返します。
   接続している素材キャッシュがない場合、0を返します。
   このメソッドは接続している素材キャッシュ画像がFGS Indexed Bitmapである場合、
   通常のビットマップ画像に展開した時の縦幅を返します。
   保持している画像がFGS Indexed Bitmapでない場合は単に画像の縦幅を返します。

戻り値:接続している素材キャッシュ画像の縦幅

先頭へ


CacheBitmap::GetCacheName

public String GetCacheName()const

   接続している素材キャッシュ画像の名前を返します。
   接続している素材キャッシュがない場合、空文字列を返します。

戻り値:接続している素材キャッシュ画像の名前か、なければ空文字列。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2022/06/01