リソース管理システムクラス More...
#include <GxSysResource.h>
Public Member Functions | |
初期化 | |
GxSysResource (void) | |
コンストラクタ | |
~GxSysResource (void) override | |
デストラクタ | |
b32 | initialize (const GxClassBase *pInitialInformation=nullptr) override |
初期化 | |
void | terminate (void) override |
終了 | |
![]() | |
template<typename T > | |
T * | getModule (void) const |
モジュールを取得 | |
GxSysBase (void) | |
デフォルトコンストラクタ | |
~GxSysBase (void) override | |
デストラクタ | |
b32 | isLocked (void) |
クリティカルセクションのロック状態を確認する | |
void | sleep (f32 time) |
スリープ(スクリプト用) | |
![]() | |
constexpr | GxClassBase (void) |
コンストラクタ | |
constexpr | GxClassBase (const GxClassBase &base) |
コピーコンストラクタ | |
~GxClassBase (void) override | |
デストラクタ | |
![]() | |
constexpr | GxClassBaseRoot (void) |
コンストラクタ | |
constexpr | GxClassBaseRoot (const GxClassBaseRoot &) |
コピーコンストラクタ | |
virtual | ~GxClassBaseRoot (void) |
デストラクタ | |
constexpr GxClassBaseRoot & | operator= (const GxClassBaseRoot &) |
代入演算子 | |
virtual GxRtti & | getRtti (void) const =0 |
Rttiの取得 | |
virtual GX_FORCE_INLINE const GxTypedObject * | getDefaultObject (void) |
デフォルトオブジェクトを取得 | |
GX_FORCE_INLINE b32 | isDefaultObject (void) |
デフォルトオブジェクト判定 | |
![]() | |
SingletonBase (void) | |
コンストラクタ | |
~SingletonBase (void) | |
デストラクタ | |
Protected Attributes | |
メンバ変数 | |
GxSysResourceRegister | _resourceRegisterManager |
リソース登録管理 | |
GxSysResourceCallback | _resourceCallbackManager |
コールバック管理 | |
GxSysResourceAsyncLoadBase * | _resourceAsyncLoadManager |
非同期ロード管理 | |
GxSysResourceAsyncLoadBase * | _resourceBackgroundLoadManager |
裏読みロード管理 | |
GxSysResourceArchive | _resourceArchiveManager |
アーカイブ管理 | |
GxCriticalSection | _loadStateCriticalSection |
ロード開始状態用クリティカルセクション | |
GxResourceFileTable * | _pResourceFileTable |
リソースファイルテーブル | |
GxResourceFileFilter * | _pResourceFileFilter |
リソースファイルフィルタ | |
s16 * | _pArchiveSearchOrder |
アーカイブ検索順テーブル | |
b32 | _optimizeVertexCache |
頂点キャッシュ最適化のためのインデックスソートを行う | |
b32 | _enableExistOriginalDataFlag |
リソースの読み込み時にオリジナルデータの有無をチェックするか否か(trueでチェックを行う) | |
b32 | _disableFinalizeIgnoreOriginalFlag |
オリジナル参照とタイムスタンプ比較を無視して、強制的にファイナライズを無効化。(すでにファイナライズがある前提) | |
b32 | _separeteShaderConfig |
各プラットフォームでシェーダコンフィグファイルを分ける | |
GX_SYSRESOURCE_ERROR_FUNCTION | _pUserErrorFunction |
ユーザー定義のエラーコールバック | |
u32 | _fileDecodeChunkSizeMax |
圧縮リソースファイル展開用の最大チャンクサイズ | |
GxString | _resourceRootPath |
リソース全体ルートパス | |
GxString | _originalRootPath |
オリジナルリソースルートパス | |
GxString | _finalizedCommonRootPath |
ハードウェア共通ファイナライズリソースルートパス | |
GxString | _finalizedNativeRootPath |
ハードウェア固有ファイナライズリソースルートパス | |
GxString | _masterRootPath |
マスターリソースルートパス | |
f32 | _optimizeTBNRemakeRange |
モデルをファイナライズするときのTBNの再計算で利用する閾値(デフォルトは0.1f) | |
u32 | _motionSequenceLineMax |
モーションシーケンスのラインの最大数 | |
b32 | _optimizeAsyncloadThreadAssignment |
非同期ロード時にリソースのスレッド分配をより効率化する | |
GxDataResourceGuid | _dataResourceGuid |
リソースのGUID管理データ | |
定義 | |
enum class | LOAD_MODE { SYNC = 0 , ASYNC } |
リソース読み込みモード More... | |
enum class | LOAD_RESULT { CANCELED = -2 , ERROR_ = -1 , OK = 0 } |
リソース読み込み結果 More... | |
enum class | PATH_TYPE { NONE = -1 , ORIGINAL = 0 , FINALIZED_COMMON , FINALIZED_NATIVE , MAX } |
リソースパスタイプ More... | |
typedef b32(*) | RESOURCE_FILE_TABLE_SEARCH_CALLBACK(const GxRttiResource &resRtti, GX_CSTR resourcePath, void *pArgument) |
対象リソースファイル情報探索コールバック | |
class | GxSysResourceRegister |
class | GxSysResourceCallback |
class | GxSysResourceAsyncLoadBase |
class | GxSysResourceAsyncLoad |
class | GxSysResourceAsyncLoadMulti |
class | GxSysResourceAsyncLoadMultiWithSharedQueue |
class | GxSysResourceArchive |
class | GxResBase |
static GX_CSTR | RESOURCE_ORIGINAL_ROOT_NAME = "original" |
オリジナルリソースパスルート名 | |
static GX_CSTR | RESOURCE_FINALIZED_COMMON_ROOT_NAME = "finalizedCommon" |
ハードウェア共通ファイナライズリソースパスルート名 | |
操作 | |
void | update (void) override |
実行 | |
GxResBase * | createAndLoadResource (const GxRttiResource &resRtti, GX_CSTR path, LOAD_MODE loadMode=LOAD_MODE::SYNC, void *pCreateCallbackWork=nullptr) |
リソース作成 + 読み込み (Rtti + リソースパス指定) | |
GxResBase * | createAndLoadBackground (const GxRttiResource &resRtti, GX_CSTR path, void *pCreateCallbackWork=nullptr) |
リソース作成 + バックグラウンド読み込み (Rtti + リソースパス指定) | |
GxResBase * | createAndSetResource (const GxRttiResource &resRtti, GX_CSTR path, GxMemoryStream &stream, LOAD_MODE loadMode=LOAD_MODE::SYNC, void *pCreateCallbackWork=nullptr) |
リソース作成 + データ割り当て | |
GxResBase * | createResource (const GxRttiResource &resRtti, GX_CSTR path, void *pCreateCallbackWork=nullptr) |
リソース作成 | |
GxResBase * | createResource (const GxRttiResource &resRtti, GX_CSTR path, b32 &isNewCreate, void *pCreateCallbackWork=nullptr) |
リソース作成 (新規作成チェック付き) | |
GX_FORCE_INLINE GxSysResource::LOAD_RESULT | loadResourceFromStreamLoopHole (GxResBase &resource, GxStream &stream, u32 size) |
指定ストリームからのリソース生成 | |
GxResBase * | createAndLoadResource (const GxRttiResource &resRtti, GX_CSTR fullPath, u64 resId, LOAD_MODE loadMode=LOAD_MODE::SYNC) |
void * | loadFileImage (const GxRttiResource &resRtti, GX_CSTR path, u32 &dataSize, GxAllocatorList::ALLOCATOR_TYPE allocator=GxAllocatorList::ALLOCATOR_TYPE::TEMPORARY) |
ファイルをメモリに直接読み込む | |
GxResBase * | createAndSetResourceFromFileImage (const GxRttiResource &resRtti, GX_CSTR path, void *pLoadBuffer, u32 dataSize, LOAD_MODE loadMode=LOAD_MODE::SYNC, void *pCreateCallbackWork=nullptr) |
メモリ上のデータからリソースを作成 | |
constexpr GxSysResourceAsyncLoadBase * | getResourceAsyncLoadManager (void) const |
非同期リソース読み込み管理を取得 | |
constexpr GxSysResourceAsyncLoadBase * | getResourceBackgroundLoadManager (void) const |
非同期リソース裏読み込み管理を取得 | |
void | cancelResource (GxResBase *pResource) |
リソース非同期ロードキャンセル | |
GX_FORCE_INLINE void | lockAsyncLoad (void) |
非同期ロードを一時停止(現在処理中のファイル読み込みが終わるまでブロックされる) | |
GX_FORCE_INLINE void | unlockAsyncLoad (void) |
非同期ロードを再開(lockAsyncLoad() と対で使用すること) | |
b32 | reloadResource (GxResBase *pResource, LOAD_MODE loadMode=LOAD_MODE::SYNC) |
リソース再読み込み | |
void | registerResource (GxResBase *pResource) |
リソース登録 | |
void | unregisterResource (GxResBase *pResource) |
リソース破棄 | |
void | stopAsyncLoadSystem (void) |
リソース非同期ロードシステム停止 | |
b32 | openArchiveFile (GX_CSTR base, const GxResourceFileTable *pResourceFileTable, s16 archiveId) |
constexpr u32 | getArchiveFileMax (void) const |
アーカイブファイルの管理数の上限を取得 | |
GX_FORCE_INLINE b32 | isArchiveOpened (s16 archiveId) const |
アーカイブファイルがオープンしているか調べる | |
void | initializeArchiveSearchOrder (const s16 *pArchiveSearchOrderTable=nullptr) |
void | setOnTerminateCallback (void(*func)(u32)) |
b32 | searchResourceFileTableTargetLoop (GX_CSTR rootPath, const GxResourceFileTable &fileTableElement, const GxResourceFileFilter *pFileFilterTable, const GxRttiResource *pRttiTarget, RESOURCE_FILE_TABLE_SEARCH_CALLBACK function, void *pArgument) |
リソースファイルテーブル探索処理ループ | |
static void | analyseResourcePath (GX_CSTR path, PATH_TYPE *pType, s32 *pRootPosition, u32 *pRootLength) |
リソースパス解析 | |
static void | callbackLoadStart (void *pUser, GX_HANDLE requestHandle) |
リソースファイル非同期読み込み開始コールバック関数 | |
b32 | initializeResourceRootPath (const GxResourceInitialInformation *pInitialInformation=nullptr) |
リソースルートパス初期化 | |
GxResBase * | createResourceRoutine (const GxRttiResource &resRtti, GX_CSTR original, GX_CSTR replace, b32 *pIsNewCreate, void *pCreateCallbackWork) |
リソース作成内部ルーチン | |
LOAD_RESULT | loadResourceSync (GxResBase &resource, void *pCreateCallbackWork=nullptr) |
リソース読み込み (同期) | |
LOAD_RESULT | loadResourceAsync (GxResBase &resource, void *pCreateCallbackWork=nullptr) |
リソース読み込み (非同期) | |
LOAD_RESULT | loadResourceFromStream (GxResBase &resource, GxStream &stream, u32 size=0) |
リソース読み込み (from ストリーム) | |
LOAD_RESULT | loadResourceFileAsync (GxResBase &resource, GxFile &file, u32 offset, u32 size) |
リソースファイル非同期読み込み処理 (リソース非同期読み込み処理内サブルーチン) | |
b32 | waitForLoadComplete (GxResBase *pResource) |
読み込み完了までブロックする。 | |
void | getLoadPath (GxString &dst, const GxRttiResource &resRtti, GX_CSTR resourcePath) |
ロードファイルパス取得 | |
void | getFinalizeResourcePath (GxString &dst, const GxResBase &resource) |
ファイナライズリソースパス取得 | |
b32 | isSkipSearchFileTableTargetName (GX_CSTR fileName, const GxResourceFileFilter *pFileFilterTable=nullptr) |
リソースファイルテーブル探索スキップ判定 | |
アクセサ | |
constexpr GX_CSTR | getResourceRootPath (void) const |
リソースルートパス取得 (※カレントディレクトリからの相対パス) | |
void | setResourceRootPath (GX_CSTR path=nullptr) |
リソースルートパス設定 (※カレントディレクトリからの相対パス) | |
constexpr GX_CSTR | getOriginalRootPath (void) const |
オリジナルリソースルートパス取得 | |
constexpr GX_CSTR | getFinalizedCommonRootPath (void) const |
ハードウェア共通ファイナライズリソースルートパス取得 | |
constexpr GX_CSTR | getFinalizedNativeRootPath (void) const |
ハードウェア固有ファイナライズリソースルートパス取得 | |
constexpr GX_CSTR | getMasterRootPath (void) const |
マスタールートパス取得 | |
virtual void | getReplaceOriginalPath (GxString &dstPath, const GxRttiResource &, GX_CSTR srcPath) |
置き換え元のパスを取得 | |
virtual void | getReplacePath (GxString &dstPath, const GxRttiResource &, GX_CSTR srcPath) const |
置き換えパスを取得 | |
virtual GX_FORCE_INLINE b32 | isRegisteredNonReplacedPath (GX_CSTR &, GX_CSTR &) const |
置き換え元のパスを登録 | |
GX_CSTR | getRootPath (const GxResBase &resource) const |
対象リソースルートパス取得 (リソース指定) | |
GX_CSTR | getRootPath (const GxRttiResource &resRtti) const |
対象リソースルートパス取得 (Rtti指定) | |
void | getFullPath (GxString &dst, const GxResBase &resource) const |
対象リソースフルパス取得 (リソース指定) | |
void | getFullPath (GxString &dst, const GxRttiResource &resRtti, GX_CSTR resourcePath) const |
対象リソースフルパス取得 (Rtti + リソースパス指定) | |
void | getConvertPath (GxString &dst, const GxResBase &resource) const |
対象リソース変換先出力パス取得 (リソース指定) | |
void | getConvertPath (GxString &dst, const GxRttiResource &resRtti, GX_CSTR resourcePath) const |
対象リソース変換先出力パス取得 (Rtti + リソースパス指定) | |
void | getMasterPath (GxString &dst, const GxResBase &resource) const |
対象リソースマスターパス取得 (リソース指定) | |
void | getMasterPath (GxString &dst, const GxRttiResource &resRtti, GX_CSTR resourcePath) const |
対象リソースマスターパス取得 (Rtti + リソースパス指定) | |
const GxResourceFileTable * | getResourceFileTable (void) const |
リソースファイルテーブルポインタ取得 | |
const GxResourceFileTable * | getResourceFileTable (const GxResBase &resource) const |
対象リソースファイルテーブル取得 | |
const GxResourceFileTable * | getResourceFileTable (const GX_CSTR srcResourcePath) const |
対象リソースファイルテーブル取得(パス指定) | |
const GxResourceFileFilter * | getResourceFilterTable (void) const |
リソースフィルタテーブルポインタ取得 | |
GX_FORCE_INLINE void | setDisableFinalizeIgnoreOriginalFlag (b32 flag) |
オリジナル参照とタイムスタンプ比較を無視して、強制的にファイナライズを無効化しているかのフラグを設定 | |
const b32 | getDisableFinalizeIgnoreOriginalFlag (void) const |
オリジナル参照とタイムスタンプ比較を無視して、強制的にファイナライズを無効化しているかのフラグを取得 | |
const b32 | getOptimizeVertexCache (void) const |
頂点キャッシュ最適化のためのインデックスソートを行うかどうかを取得 | |
const b32 | getSeparateShaderConfig (void) const |
シェーダコンフィグファイルを各プラットフォームごとに分けるかどうかを取得 | |
const f32 | getOptimizeTBNRemakeRange (void) const |
モデルをファイナライズするときのTBNの再計算で利用する閾値を取得 | |
const b32 | getOptimizeAsyncloadThreadAssignment (void) const |
非同期ロード時にリソースのスレッド分配をより効率化する | |
GX_FORCE_INLINE b32 | isEmptyAsyncLoader (void) |
非同期ロードのリクエストキューが空かどうか | |
GX_FORCE_INLINE b32 | isEmptyBackgroundLoader (void) |
裏読みロードのリクエストキューが空かどうか | |
constexpr u32 | getMotionSequenceLineMax (void) const |
モーションシーケンスのラインの最大数を取得 | |
GX_FORCE_INLINE u32 | getResourceNum (void) |
登録済みリソース数取得 | |
GX_FORCE_INLINE GxResBase * | getResource (u32 index) |
登録済みリソース取得 (インデックス指定) | |
GX_FORCE_INLINE b32 | isExistFile (const GxResBase &resource) const |
リソースファイル存在チェック (リソース指定) | |
GX_FORCE_INLINE b32 | isExistFile (const GxRttiResource &resRtti, GX_CSTR resourcePath) const |
リソースファイル存在チェック (リソースRtti + リソースパス指定) | |
GX_FORCE_INLINE b32 | isExistResource (const GxRttiResource &resRtti, GX_CSTR resourcePath) |
メモリ上のリソース存在チェック (リソースRtti + リソースパス指定) | |
GX_FORCE_INLINE void | lockFromOutside (void) |
外部からのlock処理 | |
GX_FORCE_INLINE void | unlockFromOutside (void) |
外部からのunlock処理 | |
b32 | isExistFileFromMasterResource (const GxRttiResource &resRtti, GX_CSTR resourcePath, b32 isCheckArchiveOnly=false, s16 archiveID=-1) const |
マスターリソース内でのリソースファイル存在チェック (リソースRtti + リソースパス指定) | |
GX_FORCE_INLINE GxDataResourceGuid & | getDataResourceGuid (void) |
リソースのGUID管理データを取得 | |
static b32 | isOriginalPath (GX_CSTR path) |
オリジナルリソースパス判定 | |
static b32 | isFinalizedCommonPath (GX_CSTR path) |
ハードウェア共通ファイナライズパス判定 | |
static b32 | isFinalizedNativePath (GX_CSTR path) |
ハードウェア固有ファイナライズパス判定 | |
static void | getOriginalPath (GxString &dst, GX_CSTR path) |
オリジナルリソースパス取得 | |
static void | getFinalizedCommonPath (GxString &dst, GX_CSTR path) |
ハードウェア共通ファイナライズパス取得 | |
static void | getFinalizedNativePath (GxString &dst, GX_CSTR path) |
ハードウェア固有ファイナライズパス取得 | |
static void | getResourcePath (GxString &dst, GX_CSTR path, b32 isDeleteExtension=true) |
リソースパス取得 (フルパス指定) | |
static u64 | getResourceId (const GxRttiResource &resRtti, GX_CSTR resourcePath) |
リソースID生成 | |
Additional Inherited Members | |
![]() | |
static GX_FORCE_INLINE GxRtti & | __getStaticRtti (void) |
Rttiの取得 | |
![]() | |
static GX_FORCE_INLINE GxSysResource & | getSingleton (void) |
参照を取得 | |
static constexpr GxSysResource * | getSingletonPointer (void) |
ポインタを取得 | |
![]() | |
enum class | LOCK_TYPE { SEQUENTIAL_THREAD_SAFE , THREAD_SAFE } |
ロックタイプ More... | |
![]() | |
void | terminateGxModules (void) |
GXモジュールの終了処理 | |
void | lock (LOCK_TYPE type=LOCK_TYPE::THREAD_SAFE) |
クリティカルセクションに入る | |
void | unlock (LOCK_TYPE type=LOCK_TYPE::THREAD_SAFE) |
クリティカルセクションを出る | |
template<typename T > | |
T * | addModule (void) |
モジュールを作成 | |
template<typename T > | |
void | removeModule (void) |
モジュールを削除 | |
リソース管理システムクラス
|
strong |
|
strong |
|
strong |
|
staticprotected |
リソースパス解析
path | [in] 解析パス |
pType | [out] パスタイプ格納先 (※nullptrの場合格納しない) |
pRootPosition | [out] ルートパス位置格納先 (※nullptrの場合格納しない) |
pRootLength | [out] ルートパス長格納先 (※nullptrの場合格納しない) |
|
staticprotected |
リソースファイル非同期読み込み開始コールバック関数
pUser | [in,out] 対象リソースポインタ |
requestHandle | [in] 非同期ファイルアクセスハンドル |
void GxSysResource::cancelResource | ( | GxResBase * | pResource | ) |
リソース非同期ロードキャンセル
pResource | [in] 対象リソース |
GxResBase * GxSysResource::createAndLoadBackground | ( | const GxRttiResource & | resRtti, |
GX_CSTR | path, | ||
void * | pCreateCallbackWork = nullptr ) |
リソース作成 + バックグラウンド読み込み (Rtti + リソースパス指定)
resRtti | [in] 作成リソースRtti |
path | [in] 作成リソースパス |
pCreateCallbackWork | [in,out] 生成時コールバック関数受け渡しワーク |
GxResBase * GxSysResource::createAndLoadResource | ( | const GxRttiResource & | resRtti, |
GX_CSTR | fullPath, | ||
u64 | resId, | ||
LOAD_MODE | loadMode = LOAD_MODE::SYNC ) |
リソース作成 + 読み込み (フルパス指定) + リソースID (getResourceId() で生成可能) ファイナライズのチェックは行われないため、予めファイナライズリソースを作成しておく必要がある リソースID は getReplacePath() を考慮しません。実装している場合は注意してください。
resRtti | [in] 読み込みリソースRtti |
fullPath | [in] 作成リソースパス |
resId | [in] 読み込みリソースID |
loadMode | [in] 読み込みモード |
GxResBase * GxSysResource::createAndLoadResource | ( | const GxRttiResource & | resRtti, |
GX_CSTR | path, | ||
LOAD_MODE | loadMode = LOAD_MODE::SYNC, | ||
void * | pCreateCallbackWork = nullptr ) |
リソース作成 + 読み込み (Rtti + リソースパス指定)
resRtti | [in] 作成リソースRtti |
path | [in] 作成リソースパス |
loadMode | [in] 読み込みモード |
pCreateCallbackWork | [in,out] 生成時コールバック関数受け渡しワーク |
GxResBase * GxSysResource::createAndSetResource | ( | const GxRttiResource & | resRtti, |
GX_CSTR | path, | ||
GxMemoryStream & | stream, | ||
LOAD_MODE | loadMode = LOAD_MODE::SYNC, | ||
void * | pCreateCallbackWork = nullptr ) |
リソース作成 + データ割り当て
resRtti | [in] 作成リソースRtti |
path | [in] 作成リソースパス |
stream | [in,out] データ割り当て元メモリストリーム |
loadMode | [in] リソース割り当てモード |
pCreateCallbackWork | [in,out] 生成時コールバック関数受け渡しワーク |
GxResBase * GxSysResource::createAndSetResourceFromFileImage | ( | const GxRttiResource & | resRtti, |
GX_CSTR | path, | ||
void * | pLoadBuffer, | ||
u32 | dataSize, | ||
LOAD_MODE | loadMode = LOAD_MODE::SYNC, | ||
void * | pCreateCallbackWork = nullptr ) |
メモリ上のデータからリソースを作成
resRtti | [in] 作成するリソースRtti |
path | [in] ファイルパス |
pLoadBuffer | [in] 読み込んだメモリ |
dataSize | [in] ファイルサイズ |
loadMode | [in] 読み込みモード |
pCreateCallbackWork | [in] 作成時コールバック引数 |
GxResBase * GxSysResource::createResource | ( | const GxRttiResource & | resRtti, |
GX_CSTR | path, | ||
b32 & | isNewCreate, | ||
void * | pCreateCallbackWork = nullptr ) |
リソース作成 (新規作成チェック付き)
resRtti | [in] 作成リソースRtti |
path | [in] 作成リソースパス |
isNewCreate | [in] 新規作成フラグ格納先 |
pCreateCallbackWork | [in,out] 生成時コールバック関数受け渡しワーク |
GxResBase * GxSysResource::createResource | ( | const GxRttiResource & | resRtti, |
GX_CSTR | path, | ||
void * | pCreateCallbackWork = nullptr ) |
リソース作成
resRtti | [in] 作成リソースRtti |
path | [in] 作成リソースパス |
pCreateCallbackWork | [in,out] 生成時コールバック関数受け渡しワーク |
|
protected |
リソース作成内部ルーチン
resRtti | [in] 作成リソースRtti |
original | [in] オリジナルリソースパス |
replace | [in] 置き換えリソースパス |
pIsNewCreate | [out] 新規作成フラグ格納先 (0:新規作成 1:重複作成) |
pCreateCallbackWork | [in,out] 生成時コールバック関数受け渡しワーク |
対象リソース変換先出力パス取得 (リソース指定)
dst | [out] 取得パス格納先 |
resource | [in] 対象リソース |
void GxSysResource::getConvertPath | ( | GxString & | dst, |
const GxRttiResource & | resRtti, | ||
GX_CSTR | resourcePath ) const |
対象リソース変換先出力パス取得 (Rtti + リソースパス指定)
dst | [out] 取得パス格納先 |
resRtti | [in] 対象リソースRtti |
resourcePath | [in] 対象リソースパス |
GX_FORCE_INLINE const b32 GxSysResource::getDisableFinalizeIgnoreOriginalFlag | ( | void | ) | const |
オリジナル参照とタイムスタンプ比較を無視して、強制的にファイナライズを無効化しているかのフラグを取得
|
static |
ハードウェア共通ファイナライズパス取得
対象パスと同一階層に相当するハードウェア共通ファイナライズリソースパスを取得します。
dst | [out] パス格納先 |
path | [in] 対象パス |
|
static |
ハードウェア固有ファイナライズパス取得
対象パスと同一階層に相当するハードウェア固有ファイナライズリソースパスを取得します。
dst | [out] パス格納先 |
path | [in] 対象パス |
|
protected |
ファイナライズリソースパス取得
dst | [out] 取得フルパス格納先 |
resource | [in] 対象リソース |
対象リソースフルパス取得 (リソース指定)
dst | [out] 取得フルパス格納先 |
resource | [in] 対象リソース |
void GxSysResource::getFullPath | ( | GxString & | dst, |
const GxRttiResource & | resRtti, | ||
GX_CSTR | resourcePath ) const |
対象リソースフルパス取得 (Rtti + リソースパス指定)
dst | [out] 取得フルパス格納先 |
resRtti | [in] 対象リソースRtti |
resourcePath | [in] 対象リソースパス |
|
protected |
ロードファイルパス取得
dst | [out] ロードリソースパス格納先 |
resRtti | [in] リソースRtti |
resourcePath | [in] リソースパス |
対象リソースマスターパス取得 (リソース指定)
dst | [out] 取得パス格納先 |
resource | [in] 対象リソース |
void GxSysResource::getMasterPath | ( | GxString & | dst, |
const GxRttiResource & | resRtti, | ||
GX_CSTR | resourcePath ) const |
対象リソースマスターパス取得 (Rtti + リソースパス指定)
dst | [out] 取得パス格納先 |
resRtti | [in] 対象リソースRtti |
resourcePath | [in] 対象リソースパス |
GX_FORCE_INLINE const b32 GxSysResource::getOptimizeAsyncloadThreadAssignment | ( | void | ) | const |
非同期ロード時にリソースのスレッド分配をより効率化する
GX_FORCE_INLINE const f32 GxSysResource::getOptimizeTBNRemakeRange | ( | void | ) | const |
モデルをファイナライズするときのTBNの再計算で利用する閾値を取得
GX_FORCE_INLINE const b32 GxSysResource::getOptimizeVertexCache | ( | void | ) | const |
頂点キャッシュ最適化のためのインデックスソートを行うかどうかを取得
|
static |
オリジナルリソースパス取得
対象パスと同一階層に相当するオリジナルリソースパスを取得します
dst | [out] パス格納先 |
path | [in] 対象パス |
|
virtual |
置き換え元のパスを取得
dstPath | [out] 置き換え元のパス |
resRtti | [in] リソースRTTI |
srcPath | [in] 置き換え後のパス |
|
virtual |
置き換えパスを取得
dstPath | [out] 置き換え後のパス |
resRtti | [in] リソースRTTI |
srcPath | [in] 置き換え前のパス |
GX_FORCE_INLINE GxResBase * GxSysResource::getResource | ( | u32 | index | ) |
登録済みリソース取得 (インデックス指定)
index | [in] 取得リソースインデックス |
const GxResourceFileTable * GxSysResource::getResourceFileTable | ( | const GX_CSTR | srcResourcePath | ) | const |
対象リソースファイルテーブル取得(パス指定)
srcResourcePath | [in] 対象リソースのパス |
const GxResourceFileTable * GxSysResource::getResourceFileTable | ( | const GxResBase & | resource | ) | const |
対象リソースファイルテーブル取得
resource | [in] 対象リソース |
GX_FORCE_INLINE const GxResourceFileTable * GxSysResource::getResourceFileTable | ( | void | ) | const |
リソースファイルテーブルポインタ取得
GX_FORCE_INLINE const GxResourceFileFilter * GxSysResource::getResourceFilterTable | ( | void | ) | const |
リソースフィルタテーブルポインタ取得
|
static |
リソースID生成
resRtti | [in] ID作成リソースRtti |
resourcePath | [in] ID作成リソースパス |
GX_FORCE_INLINE u32 GxSysResource::getResourceNum | ( | void | ) |
登録済みリソース数取得
|
static |
リソースパス取得 (フルパス指定)
dst | [out] 取得リソースパス格納先 |
path | [in] 取得元パス |
isDeleteExtension | [in] 拡張子除去フラグ (default: true) |
GX_CSTR GxSysResource::getRootPath | ( | const GxResBase & | resource | ) | const |
対象リソースルートパス取得 (リソース指定)
resource | [in] 対象リソース |
GX_CSTR GxSysResource::getRootPath | ( | const GxRttiResource & | resRtti | ) | const |
対象リソースルートパス取得 (Rtti指定)
resRtti | [in] 対象リソースRtti |
GX_FORCE_INLINE const b32 GxSysResource::getSeparateShaderConfig | ( | void | ) | const |
シェーダコンフィグファイルを各プラットフォームごとに分けるかどうかを取得
|
overridevirtual |
初期化
pInitialInformation | [in] 初期化情報 |
Reimplemented from GxSysBase.
void GxSysResource::initializeArchiveSearchOrder | ( | const s16 * | pArchiveSearchOrderTable = nullptr | ) |
アーカイブ検索順テーブルの作成。 初期化変数 GxResourceInitialInformation::_pArchiveSearchOrderArray のテーブルを実行時に変更したい 場合に使用する。 使用する場合は lockAsyncLoad() 中に呼ぶ必要がある。 アーカイブがオープンされているかを考慮しているため、openArchiveFile() と組み合わせる場合は openArchiveFile() を一通り呼んだ後に1回呼ぶ必要がある。
pArchiveSearchOrderTable | [in] アーカイブ検索順テーブル |
|
protected |
リソースルートパス初期化
pInitialInformation | [in] 初期化情報 |
リソースファイル存在チェック (リソース指定)
resource | [in] 対象リソース |
GX_FORCE_INLINE b32 GxSysResource::isExistFile | ( | const GxRttiResource & | resRtti, |
GX_CSTR | resourcePath ) const |
リソースファイル存在チェック (リソースRtti + リソースパス指定)
resRtti | [in] 対象リソースRtti |
resourcePath | [in] 対象リソースパス |
b32 GxSysResource::isExistFileFromMasterResource | ( | const GxRttiResource & | resRtti, |
GX_CSTR | resourcePath, | ||
b32 | isCheckArchiveOnly = false, | ||
s16 | targetArchiveId = -1 ) const |
マスターリソース内でのリソースファイル存在チェック (リソースRtti + リソースパス指定)
resRtti | [in] 対象リソースRtti |
resourcePath | [in] 対象リソースパス |
isCheckArchiveOnly | [in] 検索対象をアーカイブのみとするか(falseの場合は非アーカイブリソースも検索対象とする) |
targetArchiveId | [in] 対象アーカイブID (負数の場合:全アーカイブから探索,デフォルトで-1) |
GX_FORCE_INLINE b32 GxSysResource::isExistResource | ( | const GxRttiResource & | resRtti, |
GX_CSTR | resourcePath ) |
メモリ上のリソース存在チェック (リソースRtti + リソースパス指定)
resRtti | [in] 対象リソースRtti |
resourcePath | [in] 対象リソースパス |
|
static |
ハードウェア共通ファイナライズパス判定
path | [in] 判定パス |
|
static |
ハードウェア固有ファイナライズパス判定
path | [in] 判定パス |
|
static |
オリジナルリソースパス判定
判定パスがオリジナルリソースパスかどうかを判定します。
path | [in] 判定パス |
|
protected |
リソースファイルテーブル探索スキップ判定
fileName | [in] 対象ファイル名 |
pFileFilterTable | [in] ファイルフィルタテーブル |
void * GxSysResource::loadFileImage | ( | const GxRttiResource & | resRtti, |
GX_CSTR | path, | ||
u32 & | dataSize, | ||
GxAllocatorList::ALLOCATOR_TYPE | allocator = GxAllocatorList::ALLOCATOR_TYPE::TEMPORARY ) |
ファイルをメモリに直接読み込む
resRtti | [in] 読み込むファイルのリソースRtti |
path | [in] ファイルパス |
dataSize | [out] ファイルサイズ |
allocator | [in] 使用するアロケータ |
|
protected |
リソース読み込み (非同期)
resource | [in,out] 読み込み先リソース |
pCreateCallbackWork | [in] 作成時コールバック引数 |
|
protected |
リソースファイル非同期読み込み処理 (リソース非同期読み込み処理内サブルーチン)
resource | [in,out] 読み込み先リソース |
file | [in,out] 読み込みファイル |
offset | [in] 読み込み開始シーク位置 |
size | [in] 読み込みサイズ |
|
protected |
リソース読み込み (from ストリーム)
resource | [in,out] 読み込み先リソース |
stream | [in,out] 読み込み元ストリーム |
size | [in] 読み込みサイズ (0の場合:ストリーム残り全部) |
|
protected |
リソース読み込み (同期)
resource | [in,out] 読み込みリソース |
pCreateCallbackWork | [in] 作成時コールバック引数 |
b32 GxSysResource::openArchiveFile | ( | GX_CSTR | base, |
const GxResourceFileTable * | pResourceFileTable, | ||
s16 | archiveId ) |
アーカイブファイルの読み込み base はディレクトリをフルパスで指定。nullptr の場合は master リソースから読み込み。 必ず非同期ロードを一時停止させてメインスレッド (SequentialThread) から呼び出し、 getGxSysResource()->lockAsyncLoad(); getGxSysResource()->openArchiveFile("/app0/DLC", table, 2); getGxSysResource()->initializeArchiveSearchOrder(customArcTable); getGxSysResource()->unlockAsyncLoad();
base | [in] 基点となるディレクトリパス |
pResourceFileTable | [in] リソースファイルテーブル |
archiveId | [in] 読み込むアーカイブID |
void GxSysResource::registerResource | ( | GxResBase * | pResource | ) |
リソース登録
pResource | [in] 対象リソース |
b32 GxSysResource::reloadResource | ( | GxResBase * | pResource, |
LOAD_MODE | loadMode = LOAD_MODE::SYNC ) |
リソース再読み込み
pResource | [in] 対象リソース |
loadMode | [in] 読み込みモード |
b32 GxSysResource::searchResourceFileTableTargetLoop | ( | GX_CSTR | rootPath, |
const GxResourceFileTable & | fileTableElement, | ||
const GxResourceFileFilter * | pFileFilterTable, | ||
const GxRttiResource * | pRttiTarget, | ||
RESOURCE_FILE_TABLE_SEARCH_CALLBACK | function, | ||
void * | pArgument ) |
リソースファイルテーブル探索処理ループ
rootPath | [in] 探索対象ルートパス |
fileTableElement | [in] 探索対象リソースファイル情報 |
pFileFilterTable | [in] 除外ファイルフィルタテーブル |
pRttiTarget | [in] 指定RTTI(nullptrなら全て) |
function | [in] リソース到達時呼び出しコールバック関数 |
pArgument | [in] 呼び出し元ユーザ定義ポインタ |
void GxSysResource::setOnTerminateCallback | ( | void(* | pFunction )(u32) | ) |
ターミネートコールバック 非同期読み込みスレッド終了直前にスレッド関数内で呼ばれるコールバック 引数は並列化のインデックス(0 から)
pFunction | [in] コールバック関数 |
void GxSysResource::setResourceRootPath | ( | GX_CSTR | path = nullptr | ) |
リソースルートパス設定 (※カレントディレクトリからの相対パス)
path | [in] リソースルートパス (※カレントディレクトリからの相対パス、nullptrの場合は再セットする) |
|
overridevirtual |
void GxSysResource::unregisterResource | ( | GxResBase * | pResource | ) |
リソース破棄
pResource | [in] 対象リソース |
|
overridevirtual |
読み込み完了までブロックする。
pResource | [in] リソース |