OROCHI
 
Loading...
Searching...
No Matches
GxSysResource Class Reference

リソース管理システムクラス More...

#include <GxSysResource.h>

Inheritance diagram for GxSysResource:
Collaboration diagram for GxSysResource:

Public Member Functions

初期化
 GxSysResource (void)
 コンストラクタ
 
 ~GxSysResource (void) override
 デストラクタ
 
b32 initialize (const GxClassBase *pInitialInformation=nullptr) override
 初期化
 
void terminate (void) override
 終了
 
- Public Member Functions inherited from GxSysBase
template<typename T >
T * getModule (void) const
 モジュールを取得
 
 GxSysBase (void)
 デフォルトコンストラクタ
 
 ~GxSysBase (void) override
 デストラクタ
 
b32 isLocked (void)
 クリティカルセクションのロック状態を確認する
 
void sleep (f32 time)
 スリープ(スクリプト用)
 
- Public Member Functions inherited from GxClassBase
constexpr GxClassBase (void)
 コンストラクタ
 
constexpr GxClassBase (const GxClassBase &base)
 コピーコンストラクタ
 
 ~GxClassBase (void) override
 デストラクタ
 
- Public Member Functions inherited from GxClassBaseRoot
constexpr GxClassBaseRoot (void)
 コンストラクタ
 
constexpr GxClassBaseRoot (const GxClassBaseRoot &)
 コピーコンストラクタ
 
virtual ~GxClassBaseRoot (void)
 デストラクタ
 
constexpr GxClassBaseRootoperator= (const GxClassBaseRoot &)
 代入演算子
 
virtual GxRttigetRtti (void) const =0
 Rttiの取得
 
virtual GX_FORCE_INLINE const GxTypedObjectgetDefaultObject (void)
 デフォルトオブジェクトを取得
 
GX_FORCE_INLINE b32 isDefaultObject (void)
 デフォルトオブジェクト判定
 
- Public Member Functions inherited from SingletonBase< GxSysResource >
 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
 実行
 
GxResBasecreateAndLoadResource (const GxRttiResource &resRtti, GX_CSTR path, LOAD_MODE loadMode=LOAD_MODE::SYNC, void *pCreateCallbackWork=nullptr)
 リソース作成 + 読み込み (Rtti + リソースパス指定)
 
GxResBasecreateAndLoadBackground (const GxRttiResource &resRtti, GX_CSTR path, void *pCreateCallbackWork=nullptr)
 リソース作成 + バックグラウンド読み込み (Rtti + リソースパス指定)
 
GxResBasecreateAndSetResource (const GxRttiResource &resRtti, GX_CSTR path, GxMemoryStream &stream, LOAD_MODE loadMode=LOAD_MODE::SYNC, void *pCreateCallbackWork=nullptr)
 リソース作成 + データ割り当て
 
GxResBasecreateResource (const GxRttiResource &resRtti, GX_CSTR path, void *pCreateCallbackWork=nullptr)
 リソース作成
 
GxResBasecreateResource (const GxRttiResource &resRtti, GX_CSTR path, b32 &isNewCreate, void *pCreateCallbackWork=nullptr)
 リソース作成 (新規作成チェック付き)
 
GX_FORCE_INLINE GxSysResource::LOAD_RESULT loadResourceFromStreamLoopHole (GxResBase &resource, GxStream &stream, u32 size)
 指定ストリームからのリソース生成
 
GxResBasecreateAndLoadResource (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)
 ファイルをメモリに直接読み込む
 
GxResBasecreateAndSetResourceFromFileImage (const GxRttiResource &resRtti, GX_CSTR path, void *pLoadBuffer, u32 dataSize, LOAD_MODE loadMode=LOAD_MODE::SYNC, void *pCreateCallbackWork=nullptr)
 メモリ上のデータからリソースを作成
 
constexpr GxSysResourceAsyncLoadBasegetResourceAsyncLoadManager (void) const
 非同期リソース読み込み管理を取得
 
constexpr GxSysResourceAsyncLoadBasegetResourceBackgroundLoadManager (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)
 リソースルートパス初期化
 
GxResBasecreateResourceRoutine (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 GxResourceFileTablegetResourceFileTable (void) const
 リソースファイルテーブルポインタ取得
 
const GxResourceFileTablegetResourceFileTable (const GxResBase &resource) const
 対象リソースファイルテーブル取得
 
const GxResourceFileTablegetResourceFileTable (const GX_CSTR srcResourcePath) const
 対象リソースファイルテーブル取得(パス指定)
 
const GxResourceFileFiltergetResourceFilterTable (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 GxResBasegetResource (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 GxDataResourceGuidgetDataResourceGuid (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 Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 
- Static Public Member Functions inherited from SingletonBase< GxSysResource >
static GX_FORCE_INLINE GxSysResourcegetSingleton (void)
 参照を取得
 
static constexpr GxSysResourcegetSingletonPointer (void)
 ポインタを取得
 
- Protected Types inherited from GxSysBase
enum class  LOCK_TYPE { SEQUENTIAL_THREAD_SAFE , THREAD_SAFE }
 ロックタイプ More...
 
- Protected Member Functions inherited from GxSysBase
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)
 モジュールを削除
 

Detailed Description

リソース管理システムクラス

Member Enumeration Documentation

◆ LOAD_MODE

enum class GxSysResource::LOAD_MODE
strong

リソース読み込みモード

Enumerator
SYNC 

同期読み込み

ASYNC 

非同期読み込み

◆ LOAD_RESULT

enum class GxSysResource::LOAD_RESULT
strong

リソース読み込み結果

Enumerator
CANCELED 

キャンセル

ERROR_ 

エラー

OK 

成功

◆ PATH_TYPE

enum class GxSysResource::PATH_TYPE
strong

リソースパスタイプ

Enumerator
NONE 

リソース指定パスではない

ORIGINAL 

オリジナルリソースパス

FINALIZED_COMMON 

ハードウェア共通ファイナライズリソースパス

FINALIZED_NATIVE 

ハードウェア固有ファイナライズリソースパス

MAX 

リソースパスタイプ数

Member Function Documentation

◆ analyseResourcePath()

void GxSysResource::analyseResourcePath ( GX_CSTR path,
PATH_TYPE * pType,
s32 * pRootPosition,
u32 * pRootLength )
staticprotected

リソースパス解析

Parameters
path[in] 解析パス
pType[out] パスタイプ格納先 (※nullptrの場合格納しない)
pRootPosition[out] ルートパス位置格納先 (※nullptrの場合格納しない)
pRootLength[out] ルートパス長格納先 (※nullptrの場合格納しない)
Here is the call graph for this function:

◆ callbackLoadStart()

void GxSysResource::callbackLoadStart ( void * pUser,
GX_HANDLE requestHandle )
staticprotected

リソースファイル非同期読み込み開始コールバック関数

Parameters
pUser[in,out] 対象リソースポインタ
requestHandle[in] 非同期ファイルアクセスハンドル
Here is the call graph for this function:

◆ cancelResource()

void GxSysResource::cancelResource ( GxResBase * pResource)

リソース非同期ロードキャンセル

Parameters
pResource[in] 対象リソース
Here is the call graph for this function:

◆ createAndLoadBackground()

GxResBase * GxSysResource::createAndLoadBackground ( const GxRttiResource & resRtti,
GX_CSTR path,
void * pCreateCallbackWork = nullptr )

リソース作成 + バックグラウンド読み込み (Rtti + リソースパス指定)

Parameters
resRtti[in] 作成リソースRtti
path[in] 作成リソースパス
pCreateCallbackWork[in,out] 生成時コールバック関数受け渡しワーク
Returns
作成リソースポインタ (nullptrの場合:作成失敗)
Note
強制非同期読み込みされます。
Here is the call graph for this function:

◆ createAndLoadResource() [1/2]

GxResBase * GxSysResource::createAndLoadResource ( const GxRttiResource & resRtti,
GX_CSTR fullPath,
u64 resId,
LOAD_MODE loadMode = LOAD_MODE::SYNC )

リソース作成 + 読み込み (フルパス指定) + リソースID (getResourceId() で生成可能) ファイナライズのチェックは行われないため、予めファイナライズリソースを作成しておく必要がある リソースID は getReplacePath() を考慮しません。実装している場合は注意してください。

Parameters
resRtti[in] 読み込みリソースRtti
fullPath[in] 作成リソースパス
resId[in] 読み込みリソースID
loadMode[in] 読み込みモード
Returns
作成リソースポインタ(nullptrの場合:作成失敗)
Here is the call graph for this function:

◆ createAndLoadResource() [2/2]

GxResBase * GxSysResource::createAndLoadResource ( const GxRttiResource & resRtti,
GX_CSTR path,
LOAD_MODE loadMode = LOAD_MODE::SYNC,
void * pCreateCallbackWork = nullptr )

リソース作成 + 読み込み (Rtti + リソースパス指定)

Parameters
resRtti[in] 作成リソースRtti
path[in] 作成リソースパス
loadMode[in] 読み込みモード
pCreateCallbackWork[in,out] 生成時コールバック関数受け渡しワーク
Returns
作成リソースポインタ (nullptrの場合:作成失敗)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createAndSetResource()

GxResBase * GxSysResource::createAndSetResource ( const GxRttiResource & resRtti,
GX_CSTR path,
GxMemoryStream & stream,
LOAD_MODE loadMode = LOAD_MODE::SYNC,
void * pCreateCallbackWork = nullptr )

リソース作成 + データ割り当て

Parameters
resRtti[in] 作成リソースRtti
path[in] 作成リソースパス
stream[in,out] データ割り当て元メモリストリーム
loadMode[in] リソース割り当てモード
pCreateCallbackWork[in,out] 生成時コールバック関数受け渡しワーク
Returns
作成リソースポインタ (nullptrの場合:作成失敗)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createAndSetResourceFromFileImage()

GxResBase * GxSysResource::createAndSetResourceFromFileImage ( const GxRttiResource & resRtti,
GX_CSTR path,
void * pLoadBuffer,
u32 dataSize,
LOAD_MODE loadMode = LOAD_MODE::SYNC,
void * pCreateCallbackWork = nullptr )

メモリ上のデータからリソースを作成

Parameters
resRtti[in] 作成するリソースRtti
path[in] ファイルパス
pLoadBuffer[in] 読み込んだメモリ
dataSize[in] ファイルサイズ
loadMode[in] 読み込みモード
pCreateCallbackWork[in] 作成時コールバック引数
Returns
作成したリソース
Here is the call graph for this function:

◆ createResource() [1/2]

GxResBase * GxSysResource::createResource ( const GxRttiResource & resRtti,
GX_CSTR path,
b32 & isNewCreate,
void * pCreateCallbackWork = nullptr )

リソース作成 (新規作成チェック付き)

Parameters
resRtti[in] 作成リソースRtti
path[in] 作成リソースパス
isNewCreate[in] 新規作成フラグ格納先
pCreateCallbackWork[in,out] 生成時コールバック関数受け渡しワーク
Returns
作成リソースポインタ (nullptrの場合:作成失敗)
Here is the call graph for this function:

◆ createResource() [2/2]

GxResBase * GxSysResource::createResource ( const GxRttiResource & resRtti,
GX_CSTR path,
void * pCreateCallbackWork = nullptr )

リソース作成

Parameters
resRtti[in] 作成リソースRtti
path[in] 作成リソースパス
pCreateCallbackWork[in,out] 生成時コールバック関数受け渡しワーク
Returns
作成リソースポインタ (nullptrの場合:作成失敗)
Here is the caller graph for this function:

◆ createResourceRoutine()

GxResBase * GxSysResource::createResourceRoutine ( const GxRttiResource & resRtti,
GX_CSTR original,
GX_CSTR replace,
b32 * pIsNewCreate,
void * pCreateCallbackWork )
protected

リソース作成内部ルーチン

Parameters
resRtti[in] 作成リソースRtti
original[in] オリジナルリソースパス
replace[in] 置き換えリソースパス
pIsNewCreate[out] 新規作成フラグ格納先 (0:新規作成 1:重複作成)
pCreateCallbackWork[in,out] 生成時コールバック関数受け渡しワーク
Returns
作成リソースポインタ (nullptrの場合:作成失敗)
Here is the call graph for this function:

◆ getConvertPath() [1/2]

void GxSysResource::getConvertPath ( GxString & dst,
const GxResBase & resource ) const

対象リソース変換先出力パス取得 (リソース指定)

Parameters
dst[out] 取得パス格納先
resource[in] 対象リソース
Here is the call graph for this function:

◆ getConvertPath() [2/2]

void GxSysResource::getConvertPath ( GxString & dst,
const GxRttiResource & resRtti,
GX_CSTR resourcePath ) const

対象リソース変換先出力パス取得 (Rtti + リソースパス指定)

Parameters
dst[out] 取得パス格納先
resRtti[in] 対象リソースRtti
resourcePath[in] 対象リソースパス
Here is the call graph for this function:

◆ getDisableFinalizeIgnoreOriginalFlag()

GX_FORCE_INLINE const b32 GxSysResource::getDisableFinalizeIgnoreOriginalFlag ( void ) const

オリジナル参照とタイムスタンプ比較を無視して、強制的にファイナライズを無効化しているかのフラグを取得

Returns
無効化ならtrue

◆ getFinalizedCommonPath()

void GxSysResource::getFinalizedCommonPath ( GxString & dst,
GX_CSTR path )
static

ハードウェア共通ファイナライズパス取得

対象パスと同一階層に相当するハードウェア共通ファイナライズリソースパスを取得します。

Parameters
dst[out] パス格納先
path[in] 対象パス
Here is the call graph for this function:

◆ getFinalizedNativePath()

void GxSysResource::getFinalizedNativePath ( GxString & dst,
GX_CSTR path )
static

ハードウェア固有ファイナライズパス取得

対象パスと同一階層に相当するハードウェア固有ファイナライズリソースパスを取得します。

Parameters
dst[out] パス格納先
path[in] 対象パス
Here is the call graph for this function:

◆ getFinalizeResourcePath()

void GxSysResource::getFinalizeResourcePath ( GxString & dst,
const GxResBase & resource )
protected

ファイナライズリソースパス取得

Parameters
dst[out] 取得フルパス格納先
resource[in] 対象リソース
Here is the call graph for this function:

◆ getFullPath() [1/2]

void GxSysResource::getFullPath ( GxString & dst,
const GxResBase & resource ) const

対象リソースフルパス取得 (リソース指定)

Parameters
dst[out] 取得フルパス格納先
resource[in] 対象リソース
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFullPath() [2/2]

void GxSysResource::getFullPath ( GxString & dst,
const GxRttiResource & resRtti,
GX_CSTR resourcePath ) const

対象リソースフルパス取得 (Rtti + リソースパス指定)

Parameters
dst[out] 取得フルパス格納先
resRtti[in] 対象リソースRtti
resourcePath[in] 対象リソースパス
Here is the call graph for this function:

◆ getLoadPath()

void GxSysResource::getLoadPath ( GxString & dst,
const GxRttiResource & resRtti,
GX_CSTR resourcePath )
protected

ロードファイルパス取得

Parameters
dst[out] ロードリソースパス格納先
resRtti[in] リソースRtti
resourcePath[in] リソースパス
Here is the call graph for this function:

◆ getMasterPath() [1/2]

void GxSysResource::getMasterPath ( GxString & dst,
const GxResBase & resource ) const

対象リソースマスターパス取得 (リソース指定)

Parameters
dst[out] 取得パス格納先
resource[in] 対象リソース
Here is the call graph for this function:

◆ getMasterPath() [2/2]

void GxSysResource::getMasterPath ( GxString & dst,
const GxRttiResource & resRtti,
GX_CSTR resourcePath ) const

対象リソースマスターパス取得 (Rtti + リソースパス指定)

Parameters
dst[out] 取得パス格納先
resRtti[in] 対象リソースRtti
resourcePath[in] 対象リソースパス
Here is the call graph for this function:

◆ getOptimizeAsyncloadThreadAssignment()

GX_FORCE_INLINE const b32 GxSysResource::getOptimizeAsyncloadThreadAssignment ( void ) const

非同期ロード時にリソースのスレッド分配をより効率化する

Returns
振り分けるならtrue

◆ getOptimizeTBNRemakeRange()

GX_FORCE_INLINE const f32 GxSysResource::getOptimizeTBNRemakeRange ( void ) const

モデルをファイナライズするときのTBNの再計算で利用する閾値を取得

Returns
閾値

◆ getOptimizeVertexCache()

GX_FORCE_INLINE const b32 GxSysResource::getOptimizeVertexCache ( void ) const

頂点キャッシュ最適化のためのインデックスソートを行うかどうかを取得

Returns
行うならtrue

◆ getOriginalPath()

void GxSysResource::getOriginalPath ( GxString & dst,
GX_CSTR path )
static

オリジナルリソースパス取得

対象パスと同一階層に相当するオリジナルリソースパスを取得します

Parameters
dst[out] パス格納先
path[in] 対象パス
Note
etc) path = ../finalized/hoge/hoge → dst = ../original/hoge/hoge
Here is the call graph for this function:

◆ getReplaceOriginalPath()

void GxSysResource::getReplaceOriginalPath ( GxString & dstPath,
const GxRttiResource & resRtti,
GX_CSTR srcPath )
virtual

置き換え元のパスを取得

Parameters
dstPath[out] 置き換え元のパス
resRtti[in] リソースRTTI
srcPath[in] 置き換え後のパス
Here is the call graph for this function:

◆ getReplacePath()

void GxSysResource::getReplacePath ( GxString & dstPath,
const GxRttiResource & resRtti,
GX_CSTR srcPath ) const
virtual

置き換えパスを取得

Parameters
dstPath[out] 置き換え後のパス
resRtti[in] リソースRTTI
srcPath[in] 置き換え前のパス
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getResource()

GX_FORCE_INLINE GxResBase * GxSysResource::getResource ( u32 index)

登録済みリソース取得 (インデックス指定)

Parameters
index[in] 取得リソースインデックス
Returns
指定インデックス対象リソース
Note
マルチスレッド対応
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getResourceFileTable() [1/3]

const GxResourceFileTable * GxSysResource::getResourceFileTable ( const GX_CSTR srcResourcePath) const

対象リソースファイルテーブル取得(パス指定)

Parameters
srcResourcePath[in] 対象リソースのパス
Returns
対象ファイルテーブル情報 (nullptrの場合:取得失敗)

◆ getResourceFileTable() [2/3]

const GxResourceFileTable * GxSysResource::getResourceFileTable ( const GxResBase & resource) const

対象リソースファイルテーブル取得

Parameters
resource[in] 対象リソース
Returns
対象ファイルテーブル情報 (nullptrの場合:取得失敗)
Here is the call graph for this function:

◆ getResourceFileTable() [3/3]

GX_FORCE_INLINE const GxResourceFileTable * GxSysResource::getResourceFileTable ( void ) const

リソースファイルテーブルポインタ取得

Returns
リソースファイルテーブルポインタ

◆ getResourceFilterTable()

GX_FORCE_INLINE const GxResourceFileFilter * GxSysResource::getResourceFilterTable ( void ) const

リソースフィルタテーブルポインタ取得

Returns
リソースフィルタテーブルポインタ

◆ getResourceId()

u64 GxSysResource::getResourceId ( const GxRttiResource & resRtti,
GX_CSTR resourcePath )
static

リソースID生成

Parameters
resRtti[in] ID作成リソースRtti
resourcePath[in] ID作成リソースパス
Returns
リソースID
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getResourceNum()

GX_FORCE_INLINE u32 GxSysResource::getResourceNum ( void )

登録済みリソース数取得

Returns
登録済みリソース数
Note
マルチスレッド対応
Here is the call graph for this function:

◆ getResourcePath()

void GxSysResource::getResourcePath ( GxString & dst,
GX_CSTR path,
b32 isDeleteExtension = true )
static

リソースパス取得 (フルパス指定)

Parameters
dst[out] 取得リソースパス格納先
path[in] 取得元パス
isDeleteExtension[in] 拡張子除去フラグ (default: true)
Note
リソースパス = リソースルートパスからの相対パス (拡張子なし)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRootPath() [1/2]

GX_CSTR GxSysResource::getRootPath ( const GxResBase & resource) const

対象リソースルートパス取得 (リソース指定)

Parameters
resource[in] 対象リソース
Returns
対象リソースルートパス
Here is the call graph for this function:

◆ getRootPath() [2/2]

GX_CSTR GxSysResource::getRootPath ( const GxRttiResource & resRtti) const

対象リソースルートパス取得 (Rtti指定)

Parameters
resRtti[in] 対象リソースRtti
Returns
対象リソースルートパス
Here is the call graph for this function:

◆ getSeparateShaderConfig()

GX_FORCE_INLINE const b32 GxSysResource::getSeparateShaderConfig ( void ) const

シェーダコンフィグファイルを各プラットフォームごとに分けるかどうかを取得

Returns
変えるならtrue

◆ initialize()

b32 GxSysResource::initialize ( const GxClassBase * pInitialInformation = nullptr)
overridevirtual

初期化

Parameters
pInitialInformation[in] 初期化情報
Returns
成功ならtrue

Reimplemented from GxSysBase.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initializeArchiveSearchOrder()

void GxSysResource::initializeArchiveSearchOrder ( const s16 * pArchiveSearchOrderTable = nullptr)

アーカイブ検索順テーブルの作成。 初期化変数 GxResourceInitialInformation::_pArchiveSearchOrderArray のテーブルを実行時に変更したい 場合に使用する。 使用する場合は lockAsyncLoad() 中に呼ぶ必要がある。 アーカイブがオープンされているかを考慮しているため、openArchiveFile() と組み合わせる場合は openArchiveFile() を一通り呼んだ後に1回呼ぶ必要がある。

Parameters
pArchiveSearchOrderTable[in] アーカイブ検索順テーブル

◆ initializeResourceRootPath()

b32 GxSysResource::initializeResourceRootPath ( const GxResourceInitialInformation * pInitialInformation = nullptr)
protected

リソースルートパス初期化

Parameters
pInitialInformation[in] 初期化情報
Returns
成功ならtrue

◆ isExistFile() [1/2]

GX_FORCE_INLINE b32 GxSysResource::isExistFile ( const GxResBase & resource) const

リソースファイル存在チェック (リソース指定)

Parameters
resource[in] 対象リソース
Returns
存在するならtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isExistFile() [2/2]

GX_FORCE_INLINE b32 GxSysResource::isExistFile ( const GxRttiResource & resRtti,
GX_CSTR resourcePath ) const

リソースファイル存在チェック (リソースRtti + リソースパス指定)

Parameters
resRtti[in] 対象リソースRtti
resourcePath[in] 対象リソースパス
Returns
存在するならtrue
Here is the call graph for this function:

◆ isExistFileFromMasterResource()

b32 GxSysResource::isExistFileFromMasterResource ( const GxRttiResource & resRtti,
GX_CSTR resourcePath,
b32 isCheckArchiveOnly = false,
s16 targetArchiveId = -1 ) const

マスターリソース内でのリソースファイル存在チェック (リソースRtti + リソースパス指定)

Parameters
resRtti[in] 対象リソースRtti
resourcePath[in] 対象リソースパス
isCheckArchiveOnly[in] 検索対象をアーカイブのみとするか(falseの場合は非アーカイブリソースも検索対象とする)
targetArchiveId[in] 対象アーカイブID (負数の場合:全アーカイブから探索,デフォルトで-1)
Returns
存在するならtrue
Here is the call graph for this function:

◆ isExistResource()

GX_FORCE_INLINE b32 GxSysResource::isExistResource ( const GxRttiResource & resRtti,
GX_CSTR resourcePath )

メモリ上のリソース存在チェック (リソースRtti + リソースパス指定)

Parameters
resRtti[in] 対象リソースRtti
resourcePath[in] 対象リソースパス
Returns
存在するならtrue
Here is the call graph for this function:

◆ isFinalizedCommonPath()

b32 GxSysResource::isFinalizedCommonPath ( GX_CSTR path)
static

ハードウェア共通ファイナライズパス判定

Parameters
path[in] 判定パス
Returns
対象パスはハードウェア共通ファイナライズリソースパスならtrue

◆ isFinalizedNativePath()

b32 GxSysResource::isFinalizedNativePath ( GX_CSTR path)
static

ハードウェア固有ファイナライズパス判定

Parameters
path[in] 判定パス
Returns
対象パスはハードウェア固有ファイナライズリソースパスならtrue

◆ isOriginalPath()

b32 GxSysResource::isOriginalPath ( GX_CSTR path)
static

オリジナルリソースパス判定

判定パスがオリジナルリソースパスかどうかを判定します。

Parameters
path[in] 判定パス
Returns
対象パスがオリジナルリソースパスならtrue

◆ isSkipSearchFileTableTargetName()

b32 GxSysResource::isSkipSearchFileTableTargetName ( GX_CSTR fileName,
const GxResourceFileFilter * pFileFilterTable = nullptr )
protected

リソースファイルテーブル探索スキップ判定

Parameters
fileName[in] 対象ファイル名
pFileFilterTable[in] ファイルフィルタテーブル
Returns
スキップするならtrue
Note
".svn" 等の '.' 開始パスは無視する。
Here is the call graph for this function:

◆ loadFileImage()

void * GxSysResource::loadFileImage ( const GxRttiResource & resRtti,
GX_CSTR path,
u32 & dataSize,
GxAllocatorList::ALLOCATOR_TYPE allocator = GxAllocatorList::ALLOCATOR_TYPE::TEMPORARY )

ファイルをメモリに直接読み込む

Parameters
resRtti[in] 読み込むファイルのリソースRtti
path[in] ファイルパス
dataSize[out] ファイルサイズ
allocator[in] 使用するアロケータ
Returns
読み込んだメモリ
Here is the call graph for this function:

◆ loadResourceAsync()

GxSysResource::LOAD_RESULT GxSysResource::loadResourceAsync ( GxResBase & resource,
void * pCreateCallbackWork = nullptr )
protected

リソース読み込み (非同期)

Parameters
resource[in,out] 読み込み先リソース
pCreateCallbackWork[in] 作成時コールバック引数
Returns
読み込み結果 (LOAD_RESULT定義参照)
Note
非同期リソース読み込み用のメソッド。
Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadResourceFileAsync()

GxSysResource::LOAD_RESULT GxSysResource::loadResourceFileAsync ( GxResBase & resource,
GxFile & file,
u32 offset,
u32 size )
protected

リソースファイル非同期読み込み処理 (リソース非同期読み込み処理内サブルーチン)

Parameters
resource[in,out] 読み込み先リソース
file[in,out] 読み込みファイル
offset[in] 読み込み開始シーク位置
size[in] 読み込みサイズ
Returns
読み込み結果 (LOAD_RESULT定義参照)
Here is the call graph for this function:

◆ loadResourceFromStream()

GxSysResource::LOAD_RESULT GxSysResource::loadResourceFromStream ( GxResBase & resource,
GxStream & stream,
u32 size = 0 )
protected

リソース読み込み (from ストリーム)

Parameters
resource[in,out] 読み込み先リソース
stream[in,out] 読み込み元ストリーム
size[in] 読み込みサイズ (0の場合:ストリーム残り全部)
Returns
読み込み結果 (LOAD_RESULT定義参照)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadResourceSync()

GxSysResource::LOAD_RESULT GxSysResource::loadResourceSync ( GxResBase & resource,
void * pCreateCallbackWork = nullptr )
protected

リソース読み込み (同期)

Parameters
resource[in,out] 読み込みリソース
pCreateCallbackWork[in] 作成時コールバック引数
Returns
読み込み結果 (LOAD_RESULT定義参照)
Here is the call graph for this function:

◆ openArchiveFile()

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();

Parameters
base[in] 基点となるディレクトリパス
pResourceFileTable[in] リソースファイルテーブル
archiveId[in] 読み込むアーカイブID
Returns
成功ならtrue
Here is the call graph for this function:

◆ registerResource()

void GxSysResource::registerResource ( GxResBase * pResource)

リソース登録

Parameters
pResource[in] 対象リソース

◆ reloadResource()

b32 GxSysResource::reloadResource ( GxResBase * pResource,
LOAD_MODE loadMode = LOAD_MODE::SYNC )

リソース再読み込み

Parameters
pResource[in] 対象リソース
loadMode[in] 読み込みモード
Returns
成功ならtrue
Note
ロード完了していないリソース (isUsable() == true でないリソース) に対しての動作は不定です
Here is the call graph for this function:

◆ searchResourceFileTableTargetLoop()

b32 GxSysResource::searchResourceFileTableTargetLoop ( GX_CSTR rootPath,
const GxResourceFileTable & fileTableElement,
const GxResourceFileFilter * pFileFilterTable,
const GxRttiResource * pRttiTarget,
RESOURCE_FILE_TABLE_SEARCH_CALLBACK function,
void * pArgument )

リソースファイルテーブル探索処理ループ

Parameters
rootPath[in] 探索対象ルートパス
fileTableElement[in] 探索対象リソースファイル情報
pFileFilterTable[in] 除外ファイルフィルタテーブル
pRttiTarget[in] 指定RTTI(nullptrなら全て)
function[in] リソース到達時呼び出しコールバック関数
pArgument[in] 呼び出し元ユーザ定義ポインタ
Returns
成功ならtrue
Here is the call graph for this function:

◆ setOnTerminateCallback()

void GxSysResource::setOnTerminateCallback ( void(* pFunction )(u32))

ターミネートコールバック 非同期読み込みスレッド終了直前にスレッド関数内で呼ばれるコールバック 引数は並列化のインデックス(0 から)

Parameters
pFunction[in] コールバック関数

◆ setResourceRootPath()

void GxSysResource::setResourceRootPath ( GX_CSTR path = nullptr)

リソースルートパス設定 (※カレントディレクトリからの相対パス)

Parameters
path[in] リソースルートパス (※カレントディレクトリからの相対パス、nullptrの場合は再セットする)
Here is the call graph for this function:

◆ terminate()

void GxSysResource::terminate ( void )
overridevirtual

終了

Reimplemented from GxSysBase.

Here is the caller graph for this function:

◆ unregisterResource()

void GxSysResource::unregisterResource ( GxResBase * pResource)

リソース破棄

Parameters
pResource[in] 対象リソース
Here is the caller graph for this function:

◆ update()

void GxSysResource::update ( void )
overridevirtual

実行

Reimplemented from GxSysBase.

Here is the caller graph for this function:

◆ waitForLoadComplete()

b32 GxSysResource::waitForLoadComplete ( GxResBase * pResource)
protected

読み込み完了までブロックする。

Parameters
pResource[in] リソース
Returns
読み込み完了ならtrue
Here is the call graph for this function:

The documentation for this class was generated from the following files: