13GX_CORE_NAMESPACE_BEGIN()
15#define GX_SYS_RESOURCE_LOCK getGxSysResource()->lockFromOutside
16#define GX_SYS_RESOURCE_UNLOCK getGxSysResource()->unlockFromOutside
161 , _resourecRootPath(
"../../resource/")
171 , _disableSaveArchiveErr(false)
172 , _outputMultiPlatformArchiveTable(false)
173 , _disablePropertyChangedWarning(false)
175 , _disableIsExistMasterResErrMessage(false)
176 , _vertexHashMaxNum(32768)
177 , _outputArchiveInfo(false)
229 b32 _disableSaveArchiveErr;
230 b32 _outputMultiPlatformArchiveTable;
231 b32 _disablePropertyChangedWarning;
233 b32 _disableIsExistMasterResErrMessage;
234 u32 _vertexHashMaxNum;
235 b32 _outputArchiveInfo;
259 static constexpr u32 HASH_LINE_NUM = (1 << 8);
265 struct GxResourceInformation
273 constexpr void set(
GxResBase* pResource) { _pResource = pResource; }
275 constexpr void empty(
void) { _pResource =
nullptr; }
277 GX_FORCE_INLINE
b32 isEmpty(
void)
const {
return (_pResource ==
nullptr); }
328 void getResourceTableForProperty(
void* pValue, u32 index);
330 u32 getHashTableValue(u64 resourceId)
const;
339 GxResourceInformation _registerTable[HASH_LINE_NUM][HASH_ELEMENT_NUM];
340 u8 _registerCount[HASH_LINE_NUM];
436 virtual b32 initialize(u32 , u32 = GX_ASYNC_LOAD_THREAD_STACKSIZE, u32 = 1, s32 = GX_ASYNC_LOAD_THREAD_CPU_INDEX
451 GX_FORCE_INLINE
virtual void update(
void) {}
453 GX_FORCE_INLINE
virtual void clear(
void){}
481 GX_FORCE_INLINE
virtual GX_CSTR getAsyncLoadString(u32 = 0)
const {
return nullptr; }
483 GX_FORCE_INLINE
virtual GX_CSTR getAsyncLoadClassString(u32 = 0)
const {
return nullptr; }
485 GX_FORCE_INLINE
virtual void setAsyncLoadInfomation(
GxResBase* , u32 = 0) {}
494 void (*_onTerminateProc)(u32);
579 u32 asyncLoadThreadStackSize = GX_ASYNC_LOAD_THREAD_STACKSIZE,
581 s32 cpuIndex = GX_ASYNC_LOAD_THREAD_CPU_INDEX
596 void update(
void)
override;
598 void clear(
void)
override;
618 GX_FORCE_INLINE GX_CSTR getAsyncLoadString(u32 multiIndex = 0)
const override { GX_UNUSED(multiIndex);
return _asyncPath; }
620 GX_FORCE_INLINE GX_CSTR getAsyncLoadClassString(u32 multiIndex = 0)
const override { GX_UNUSED(multiIndex);
return _asyncClassName; }
622 void setAsyncLoadInfomation(
GxResBase* pResource, u32 multiIndex = 0)
override;
636 GX_CSTR _asyncClassName;
669 static constexpr s32 WAIT_INFINITY = -1;
691 GX_FORCE_INLINE
b32 waitStartEvent(s32 milliSecond = WAIT_INFINITY) {
return _startEvent.waitEvent(milliSecond); }
728 u32 asyncLoadThreadStackSize = GX_ASYNC_LOAD_THREAD_STACKSIZE,
730 s32 cpuIndex = GX_ASYNC_LOAD_THREAD_CPU_INDEX
745 void clear(
void)
override;
766 GX_FORCE_INLINE GX_CSTR getAsyncLoadString(u32 multiIndex = 0)
const override {
return (
_multiCount > multiIndex) ? _asyncPath[multiIndex] :
nullptr; }
769 GX_FORCE_INLINE GX_CSTR getAsyncLoadClassString(u32 multiIndex = 0)
const override {
return (
_multiCount > multiIndex) ? _asyncClassName[multiIndex] :
nullptr; }
771 void setAsyncLoadInfomation(
GxResBase* pResource, u32 multiIndex = 0)
override;
867 u32 asyncLoadThreadStackSize = GX_ASYNC_LOAD_THREAD_STACKSIZE,
869 s32 cpuIndex = GX_ASYNC_LOAD_THREAD_CPU_INDEX
884 void clear(
void)
override;
948 enum class ARCHIVE_ACCESSOR_COLUMN
956 static GX_CSTR ARCHIVE_FILE_BASE_NAME;
958 static GX_CSTR ARCHIVE_FILE_EXTENSION;
960 static GX_CSTR ARCHIVE_INDEX_RESOURCE_PATH;
984 b32 initialize(u32 archiveFileMax, u32 archiveLocalThreadFileMax,
986 const s16* pArchiveSearchOrderTable =
nullptr );
1010 static b32 createArchiveFile(s16 archiveId,
const GxArray& archiveFileList);
1012 static u32 getArchiveSize(s16 archiveId,
const GxArray& archiveFileList);
1024 static b32 writeArchiveOffsetTable(
GxStream& dstStream,
const GxArray& archiveFileList);
1036 u32
getIndex(s16 archiveId, u64 resourceId)
const;
1066 static void getArchiveDevInfoResourcePath(
GxString& dst, s16 archiveId);
1075 GxArchiveFile* _pArchiveFileArray;
1076 GxArchiveHeader* _pArchiveHeaderArray;
1077 GxArchiveOffsetInformation** _ppArchiveOffsetTableArray;
1081 u32 _archiveFileMax;
1082 u32 _archiveLocalThreadFileMax;
1083 s16* _pArchiveSearchOrder;
1150 struct GxFinalizeResourceInformation
1152 GX_OPERATOR_NEW_DELETE_USE_ARRAY(GxAllocatorList::ALLOCATOR_TYPE::DEVELOP);
1161 static GX_CSTR BOOT_ARGUMENT_SKIP_FINALIZE;
1164 static GX_CSTR BOOT_ARGUMENT_OUTPUT_ARCHIVE_INFO;
1190 void update(
void)
override;
1206 b32 isReference(
const GxRttiResource& resRtti, GX_CSTR path, GX_CSTR searchPath);
1209 GX_FORCE_INLINE GxSysResource::LOAD_RESULT loadResourceFromStreamLoopHole(GxResBase& resource, GxStream& stream, u32 size){ return loadResourceFromStream(resource, stream, size); }
1276 b32 isUpdateFinalizeResource(
const GxRttiResource& resRtti, GX_CSTR resourcePath)
const;
1289 GX_FORCE_INLINE u64 getLastWriteTime(
const GxResBase& resource)
const;
1291 GX_FORCE_INLINE u64 getLastWriteTime(
const GxRttiResource& resRtti, GX_CSTR resourcePath)
const;
1293 GX_FORCE_INLINE
b32 isOutputMultiPlatformArchiveTable(
void)
const {
return _outputMultiPlatformArchiveTable; }
1295 GX_FORCE_INLINE
b32 isDisablePropertyChangedWarning(
void)
const {
return _disablePropertyChangedWarning; }
1297 constexpr u32 getVertexHashMaxNum(
void)
const {
return _vertexHashMaxNum; }
1300 GX_FORCE_INLINE
virtual GxResBase* useTextureAsDummyWhenFileNotFound(
const GxRttiResource& , GX_CSTR ) {
return nullptr; };
1320 b32 isValidRttiResourceTree(
void)
const;
1322 void normalizeConfigRttiResourceTree(
void);
1355 b32 isSkipFinalizeBootArgument(
const GxRttiResource& resRtti, GX_CSTR resourcePath)
const;
1357 b32 isUpdateFinalizeResourceCheckTimestamp(
const GxRttiResource& resRtti, GX_CSTR resourcePath)
const;
1359 b32 isUpdateFinalizeResourceCheckInFile(
const GxRttiResource& resRtti, GX_CSTR resourcePath)
const;
1361 b32 updateFinalizeResource(
const GxRttiResource& resRtti, GX_CSTR resourcePath,
void* pCreateCallbackWork =
nullptr);
1364 b32 createResourceDirectory(
const GxRttiResource& resRtti, GX_CSTR resourcePath);
1376 static s32 _archiveErrorFileIndex;
1380 static void saveArchiveAccessError(
const GxRttiResource& resRtti, GX_CSTR resourcePath, s16 archiveId, u32 methodtype);
1399 static b32 callbackResourceFileTableCopyMasterData(
const GxRttiResource& resRtti, GX_CSTR resourcePath,
void* pArgument);
1401 static b32 callbackResourceFileTableFinalize(
const GxRttiResource& resRtti, GX_CSTR resourcePath,
void* pArgument);
1403 static b32 callbackResourceFileTableAddArchiveList(
const GxRttiResource& resRtti, GX_CSTR resourcePath,
void* pArgument);
1434 static void getNewFileName(GX_CSTR srcPath, GX_CSTR baseFileName, GX_CSTR fileExtension,
GxString& newFileName);
1436 static void getNewFolderName(GX_CSTR srcPath, GX_CSTR oldFolderName,
GxString& newFolderName);
1438 static b32 isDevelopPath(GX_CSTR path);
1453 static void getResourcePathWithRootName(
GxString& dst, GX_CSTR path,
b32 isDeleteExtension =
true);
1455 void getTemporaryPath(
GxString& dst);
1458 virtual void getReplaceOriginalPath(GxString& dstPath, const GxRttiResource&
, GX_CSTR srcPath);
1512 GX_CSTR getAsyncLoadString(u32 multiIndex = 0)
const;
1514 GX_CSTR getAsyncLoadClassString(u32 multiIndex = 0)
const;
1516 GX_CSTR getBackgroundLoadString(u32 multiIndex = 0)
const;
1518 GX_CSTR getBackgroundLoadClassString(u32 multiIndex = 0)
const;
1520 u32 getAsyncLoadMultiCount(
void)
const;
1522 u32 getBackgroundLoadMultiCount(
void)
const;
1524 GX_FORCE_INLINE
b32 isBootRom(
void)
const {
return _isBootRom; }
1526 GX_FORCE_INLINE
b32 isRunningFinalizeAll(
void)
const {
return (_allFinalizeTargetList.getCount() > 0); }
1528 constexpr u32 getFinalizeAllCount(
void)
const {
return _allFinalizeTargetList.getCount(); }
1530 constexpr u32 getFinalizeAllIndex(
void)
const {
return _allFinalizeTargetIndex; }
1532 constexpr GX_CSTR getFinalizeAllString(
void)
const {
return _allFinalizeString; }
1533#if defined(_WINDOWS) && GX_DEVELOP
1535 GX_FORCE_INLINE
b32 isFinalizeEndian(
GX_ENDIAN endian)
const {
return getEndian(_finalizePlatform) == endian; }
1537 GX_FORCE_INLINE
void setFinalizePlatform(GX_PLATFORM platform) { _finalizePlatform = platform;
setResourceRootPath(); }
1541 GX_FORCE_INLINE
void setTextureAsDummyWhenFileNotFound(
b32 enable) { _useDummyTextureWhenFileNotFound = enable; }
1543 GX_FORCE_INLINE
b32 isTextureAsDummyWhenFileNotFound(
void)
const {
return _useDummyTextureWhenFileNotFound; }
1602 GxArray _allFinalizeTargetList;
1603 u32 _allFinalizeTargetIndex;
1604 GX_CSTR _allFinalizeString;
1605 b32 _isAllFinalizeForce;
1606 b32 _isSkipFinalize;
1608#if defined(_WINDOWS) && GX_DEVELOP
1609 GX_PLATFORM _finalizePlatform;
1611 b32 _disableSaveArchiveErr;
1612 b32 _outputMultiPlatformArchiveTable;
1613 b32 _disablePropertyChangedWarning;
1615 b32 _useDummyTextureWhenFileNotFound;
1616 b32 _disableIsExistMasterResErrMessage;
1617 u32 _vertexHashMaxNum;
1618 volatile s32 _temporaryFileIndex;
1712GX_FORCE_INLINE GX_CSTR GxSysResource::getAsyncLoadString(u32 multiIndex)
const
1722GX_FORCE_INLINE GX_CSTR GxSysResource::getBackgroundLoadString(u32 multiIndex)
const
1732GX_FORCE_INLINE GX_CSTR GxSysResource::getAsyncLoadClassString(u32 multiIndex)
const
1741GX_FORCE_INLINE GX_CSTR GxSysResource::getBackgroundLoadClassString(u32 multiIndex)
const
1749GX_FORCE_INLINE u32 GxSysResource::getAsyncLoadMultiCount(
void)
const
1758GX_FORCE_INLINE u32 GxSysResource::getBackgroundLoadMultiCount(
void)
const
1831 return (
b32)(pResource !=
nullptr);
1840GX_FORCE_INLINE u64 GxSysResource::getLastWriteTime(
const GxResBase& resource)
const
1851GX_FORCE_INLINE u64 GxSysResource::getLastWriteTime(
const GxRttiResource& resRtti, GX_CSTR resourcePath)
const
1859GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
GX_ENDIAN
エンディアン定義
Definition GxDefine.h:220
void GxTypedObject
その他
Definition GxDefine.h:213
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
pThis threadMain(pThis->_pIn)
u32(* GX_SYSRESOURCE_ERROR_FUNCTION)(GX_CSTR message, GX_CSTR filePath, u32 rttiId, u32 value)
Definition GxSysResource.h:87
GX_ARCHIVE_PACKAGEMODE
アーカイブ用のパッケージング方式用列挙型
Definition GxSysResource.h:94
@ DEFAULT
ソートせずに名前順(デフォルト)
@ DOWN
リソースIDの下位32bitを元にした降順
@ UP
リソースIDの下位32bitを元にした昇順
ALLOCATOR_TYPE
アロケータ定義
Definition GxAllocator.h:355
配列クラス
Definition GxArray.h:18
オブジェクト基底クラス
Definition GxBase.h:88
virtual GxRtti & getRtti(void) const =0
Rttiの取得
クリティカルセクションクラス
Definition GxThread.h:20
リソースGUIDリストアクセスクラス
Definition GxDataResourceGuid.h:18
イベントクラス
Definition GxThread.h:132
b32 setEvent(void)
イベントを設定
Definition GxThread.cpp:268
b32 waitEvent(s32 milliSecond=-1)
イベント待機
Definition GxThread.cpp:291
ファイル管理クラス
Definition GxFile.h:157
static u64 getLastWriteTime(GX_CSTR path)
最終更新日時の取得
Definition GxFile.cpp:2058
static b32 isExist(GX_CSTR path)
ファイル存在チェック
Definition GxFile.cpp:1922
static b32 isDirectoryPath(GX_CSTR path, GX_CCHAR separator=DEFAULT_SEPARATOR)
ディレクトリパス判定
Definition GxFile.cpp:2226
ファイルストリームクラス
Definition GxStream.h:124
JSON解析用ノード
Definition GxJson.h:108
キュー (ロック不要)
Definition GxLockFreeQueue.h:19
static constexpr u32 VALUE_32
32
Definition GxMath.h:124
static constexpr u32 VALUE_256
256
Definition GxMath.h:127
static constexpr u32 VALUE_8
8
Definition GxMath.h:122
メモリストリームクラス
Definition GxStream.h:248
プロパティクラス
Definition GxProperty.h:48
リソース基底クラス
Definition GxResBase.h:23
constexpr GX_CSTR getPath(void) const
パス取得
Definition GxResBase.h:171
セルシートリソースクラス
Definition GxResCellSheet.h:19
実行時型情報クラス
Definition GxRtti.h:154
リソース実行時型情報クラス
Definition GxRttiResource.h:188
ストリーム基礎クラス
Definition GxStream.h:20
システム基底クラス
Definition GxSysBase.h:18
void unlock(LOCK_TYPE type=LOCK_TYPE::THREAD_SAFE)
クリティカルセクションを出る
Definition GxSysBase.cpp:123
void lock(LOCK_TYPE type=LOCK_TYPE::THREAD_SAFE)
クリティカルセクションに入る
Definition GxSysBase.cpp:94
リソースファイルアーカイブ管理クラス
Definition GxSysResource.h:908
void freeLocalThreadFile(s16 archiveId, GxFile *lsFile)
getLocalThreadFile()で取得したファイルをシステムに返す
Definition GxSysResource.cpp:2185
constexpr u32 getArchiveFileMax(void) const
アーカイブファイルが使用できる最大数。
Definition GxSysResource.h:1052
GxSysResourceArchive(void)
コンストラクタ
Definition GxSysResource.cpp:1422
b32 isArchiveOpened(s16 archiveId) const
アーカイブファイルがオープンしているか調べる
Definition GxSysResource.cpp:2229
void closeArchiveFile(s16 archiveId)
アーカイブファイルクローズ
Definition GxSysResource.cpp:1712
GxFile * getFile(s16 archiveId)
アーカイブファイル取得
Definition GxSysResource.cpp:2044
b32 initialize(u32 archiveFileMax, u32 archiveLocalThreadFileMax, const GxResourceFileTable *pResourceFileTable=nullptr, const s16 *pArchiveSearchOrderTable=nullptr)
初期化
Definition GxSysResource.cpp:1450
~GxSysResourceArchive(void) override
デストラクタ
Definition GxSysResource.cpp:1437
constexpr void update(void)
実行
Definition GxSysResource.h:997
void terminate(void)
終了
Definition GxSysResource.cpp:1523
const GxArchiveOffsetInformation * getOffsetInformation(s16 archiveId, u32 archiveIndex) const
アーカイブファイルオフセット情報取得
Definition GxSysResource.cpp:2025
void initializeArchiveSearchOrder(const s16 *pArchiveSearchOrderTable=nullptr)
アーカイブ検索順テーブルの作成。
Definition GxSysResource.cpp:1737
GxFile * getLocalThreadFile(s16 archiveId)
Definition GxSysResource.cpp:2095
GxFileStream * getLocalThreadFileStream(s16 archiveId, u32 archiveIndex, GxFile **retFile)
Definition GxSysResource.cpp:2065
static b32 readArchiveOffsetTable(GxStream &srcStream, GxArchiveOffsetInformation *pDstOffsetTable, u32 archiveCount)
アーカイブオフセットテーブル読み込み
Definition GxSysResource.cpp:2394
static constexpr u32 ARCHIVE_FILE_FOURCC
アーカイブファイルFOURCC
Definition GxSysResource.h:921
static void getArchiveIndexResourcePath(GxString &dst, s16 archiveId)
アーカイブファイル内インデックスリソースパス取得
Definition GxSysResource.cpp:2319
static b32 readArchiveHeader(GxStream &srcStream, GxArchiveHeader &dstHeader)
アーカイブヘッダー読み込み
Definition GxSysResource.cpp:2359
b32 openArchiveFile(GX_CSTR basePath, const GxResourceFileTable *pResourceFileTable, s16 archiveId)
アーカイブファイルオープン
Definition GxSysResource.cpp:1603
const GxResourceFileTable * getResourceFileTable(const GX_CSTR srcResourcePath) const
リソースパスからファイルテーブルを取得する
Definition GxSysResource.cpp:2244
void openAllArchiveFiles(GX_CSTR basePath, const GxResourceFileTable *pResourceFileTable)
アーカイブファイル群オープン(初期化時のみ内部使用)
Definition GxSysResource.cpp:1588
static void getArchiveFilePath(GxString &dst, s16 archiveId, GX_CSTR basePath)
アーカイブファイルパス取得
Definition GxSysResource.cpp:2289
constexpr u32 getArchiveLocalThreadFileMax(void) const
別スレッド同時アクセス作業用ファイル最大数
Definition GxSysResource.h:1054
static constexpr u32 FILE_ARCHIVE_SIZE_MAX
アーカイブファイル最大サイズ (4GB-1)
Definition GxSysResource.h:923
u32 getIndex(s16 archiveId, u64 resourceId) const
アーカイブファイル内インデックス取得
Definition GxSysResource.cpp:1995
非同期ロードスレッドクラス
Definition GxSysResource.h:517
GX_FORCE_INLINE b32 setStartEvent(void)
開始イベント開始
Definition GxSysResource.h:549
GxCriticalSection _pause
一時停止用
Definition GxSysResource.h:557
GX_FORCE_INLINE b32 waitStartEvent(s32 milliSecond=WAIT_INFINITY)
開始イベント待ち
Definition GxSysResource.h:547
static constexpr s32 WAIT_INFINITY
イベント待ち無限設定値
Definition GxSysResource.h:527
void threadMain(void *pArgument) override
スレッドメイン
Definition GxSysResource.cpp:809
GxEvent _startEvent
開始イベント
Definition GxSysResource.h:560
リソース非同期読み込み要求管理基本クラス
Definition GxSysResource.h:413
virtual b32 initialize(u32, u32=GX_ASYNC_LOAD_THREAD_STACKSIZE, u32=1, s32=GX_ASYNC_LOAD_THREAD_CPU_INDEX)
初期化
Definition GxSysResource.h:436
void setOnTerminateCallback(void(*pFunction)(u32))
Definition GxSysResource.cpp:637
GxSysResourceAsyncLoadBase(void)
コンストラクタ
Definition GxSysResource.cpp:597
virtual GX_FORCE_INLINE u32 getMultiCount(void) const
非同期読み込み並列化の数
Definition GxSysResource.h:468
virtual GX_FORCE_INLINE void unlockAsyncLoad(void)
非同期読み込みロック解除(必ず lockAsyncLoad() と対に使用すること)
Definition GxSysResource.h:466
~GxSysResourceAsyncLoadBase(void) override
デストラクタ
Definition GxSysResource.h:433
virtual GX_FORCE_INLINE void lockAsyncLoad(void)
非同期読み込みロック(読み込み中のファイルは終わるまでブロック)
Definition GxSysResource.h:464
virtual GX_FORCE_INLINE void clear(void)
クリア
Definition GxSysResource.h:453
virtual void terminate(void)
終了
Definition GxSysResource.h:442
virtual GX_FORCE_INLINE b32 request(GxResBase *)
リクエスト
Definition GxSysResource.h:457
virtual GX_FORCE_INLINE void update(void)
更新
Definition GxSysResource.h:451
void loadAsync(void *pObject)
非同期読み込みジョブ
Definition GxSysResource.cpp:606
virtual GX_FORCE_INLINE b32 isEmpty(void)
リクエストキューが空かどうか
Definition GxSysResource.h:455
リソース非同期読み込み要求管理クラス
Definition GxSysResource.h:503
b32 request(GxResBase *pResource) override
リクエスト
Definition GxSysResource.cpp:789
b32 initialize(u32 queueMax, u32 asyncLoadThreadStackSize=GX_ASYNC_LOAD_THREAD_STACKSIZE, u32 multiCount=1, s32 cpuIndex=GX_ASYNC_LOAD_THREAD_CPU_INDEX) override
初期化
Definition GxSysResource.cpp:680
GxSysResourceAsyncLoad(void)
コンストラクタ
Definition GxSysResource.cpp:654
~GxSysResourceAsyncLoad(void) override
デストラクタ
Definition GxSysResource.cpp:666
void update(void) override
更新
Definition GxSysResource.cpp:728
GxLockFreeQueue< GxResBase *, GxAllocatorList::ALLOCATOR_TYPE::SYSTEM > _requestQueue
リクエストキュー
Definition GxSysResource.h:631
b32 _isStopThread
非同期ロードスレッド停止要求フラグ
Definition GxSysResource.h:633
void terminate(void) override
終了
Definition GxSysResource.cpp:706
void lockAsyncLoad(void) override
非同期読み込みロック(読み込み中のファイルは終わるまでブロック)
Definition GxSysResource.cpp:864
void unlockAsyncLoad(void) override
非同期読み込みロック解除(必ず lockAsyncLoad() と対に使用すること)
Definition GxSysResource.cpp:872
void clear(void) override
クリア
Definition GxSysResource.cpp:744
b32 isEmpty(void) override
リクエストキューが空かどうか
Definition GxSysResource.cpp:758
GxAsyncLoadThread _thread
非同期ロードスレッド
Definition GxSysResource.h:632
非同期ロードスレッドクラス
Definition GxSysResource.h:659
GxEvent _startEvent
開始イベント
Definition GxSysResource.h:705
constexpr void setMultiIndex(u32 index)
マルチインデックスを設定
Definition GxSysResource.h:695
GX_FORCE_INLINE b32 setStartEvent(void)
開始イベント開始
Definition GxSysResource.h:693
u32 _multiIndex
マルチインデックス
Definition GxSysResource.h:706
GX_FORCE_INLINE b32 waitStartEvent(s32 milliSecond=WAIT_INFINITY)
開始イベント待ち
Definition GxSysResource.h:691
GxCriticalSection _pause
一時停止用
Definition GxSysResource.h:703
リソース非同期読み込み要求管理クラス(マルチリクエスト可能版)
Definition GxSysResource.h:646
u32 _multiCount
スレッド数
Definition GxSysResource.h:785
GX_FORCE_INLINE u32 getMultiCount(void) const override
非同期読み込み並列化の数(この実装ではスレッド数)
Definition GxSysResource.h:755
static constexpr u32 MAX_MULTI_PROCESS_COUNT
最大マルチ化数
Definition GxSysResource.h:712
void lockAsyncLoad(void) override
非同期読み込みロック(読み込み中のファイルは終わるまでブロック)
Definition GxSysResource.cpp:1134
GxSysResourceAsyncLoadMulti(void)
デフォルトコンストラクタ
Definition GxSysResource.cpp:895
GxLockFreeQueue< GxResBase *, GxAllocatorList::ALLOCATOR_TYPE::SYSTEM > _requestQueueMulti[MAX_MULTI_PROCESS_COUNT]
リクエストキュー(通常処理)
Definition GxSysResource.h:781
b32 initialize(u32 queueMax, u32 asyncLoadThreadStackSize=GX_ASYNC_LOAD_THREAD_STACKSIZE, u32 multiCount=4, s32 cpuIndex=GX_ASYNC_LOAD_THREAD_CPU_INDEX) override
初期化
Definition GxSysResource.cpp:927
GxCriticalSection _requestQueueCriticalSection
クリティカルセクション
Definition GxSysResource.h:780
void terminate(void) override
終了
Definition GxSysResource.cpp:965
b32 isEmpty(void) override
リクエストキューが空かどうか(全ての読み込みスレッドのキューが空かどうか)
Definition GxSysResource.cpp:1014
void unlockAsyncLoad(void) override
非同期読み込みロック解除(必ず lockAsyncLoad() と対に使用すること)
Definition GxSysResource.cpp:1145
void clear(void) override
クリア
Definition GxSysResource.cpp:997
~GxSysResourceAsyncLoadMulti(void) override
デストラクタ
Definition GxSysResource.cpp:910
b32 _isStopThread
非同期ロードスレッド停止要求フラグ
Definition GxSysResource.h:783
u32 _currentIndexOfMulti
カレントマルチインデックス
Definition GxSysResource.h:784
b32 request(GxResBase *pResource) override
リクエスト
Definition GxSysResource.cpp:1053
GxAsyncLoadThreadMulti * _threadMulti[MAX_MULTI_PROCESS_COUNT]
非同期ロードスレッド
Definition GxSysResource.h:782
非同期ロードスレッドクラス
Definition GxSysResource.h:810
constexpr void setRequestResource(GxResBase *pResource)
次の読み込みリソースを設定
Definition GxSysResource.h:840
GX_FORCE_INLINE b32 isWaitResource(void) const
Definition GxSysResource.h:837
GxAsyncLoadThreadMultiOpt(void)
コンストラクタ
Definition GxSysResource.h:827
リソース非同期読み込み要求管理クラス(シングルキューを振り分ける)
Definition GxSysResource.h:797
GxSysResourceAsyncLoadMultiWithSharedQueue(void)
コンストラクタ
Definition GxSysResource.cpp:1172
b32 request(GxResBase *pResource) override
リクエスト
Definition GxSysResource.cpp:1284
~GxSysResourceAsyncLoadMultiWithSharedQueue(void) override
デストラクタ
Definition GxSysResource.cpp:1179
b32 isEmpty(void) override
リクエストキューが空かどうか(全ての読み込みスレッドのキューが空かどうか)
Definition GxSysResource.cpp:1274
b32 initialize(u32 queueMax, u32 asyncLoadThreadStackSize=GX_ASYNC_LOAD_THREAD_STACKSIZE, u32 multiCount=4, s32 cpuIndex=GX_ASYNC_LOAD_THREAD_CPU_INDEX) override
初期化
Definition GxSysResource.cpp:1193
void clear(void) override
クリア
Definition GxSysResource.cpp:1260
GxLockFreeQueue< GxResBase *, GxAllocatorList::ALLOCATOR_TYPE::SYSTEM > _requestQueueSingle
リクエストキュー(_optThreadAlignment使用時)
Definition GxSysResource.h:899
void terminate(void) override
終了
Definition GxSysResource.cpp:1230
b32 getNextRequestResource(GxResBase **pResource)
登録情報取り出し
Definition GxSysResource.cpp:1323
リソースコールバック管理クラス
Definition GxSysResource.h:353
void clear(void)
クリア
Definition GxSysResource.cpp:556
~GxSysResourceCallback(void) override
デストラクタ
Definition GxSysResource.cpp:502
b32 initialize(void)
初期化
Definition GxSysResource.cpp:511
GxSysResourceCallback(void)
コンストラクタ
Definition GxSysResource.cpp:495
b32 request(GxResBase *pResource)
リクエスト
Definition GxSysResource.cpp:572
void terminate(void)
終了
Definition GxSysResource.cpp:520
void update(void)
実行
Definition GxSysResource.cpp:534
リソース管理システムクラス
Definition GxSysResource.h:1092
b32 initializeResourceRootPath(const GxResourceInitialInformation *pInitialInformation=nullptr)
リソースルートパス初期化
Definition GxSysResource.cpp:5528
PATH_TYPE
リソースパスタイプ
Definition GxSysResource.h:1131
@ FINALIZED_NATIVE
ハードウェア固有ファイナライズリソースパス
@ FINALIZED_COMMON
ハードウェア共通ファイナライズリソースパス
const b32 getDisableFinalizeIgnoreOriginalFlag(void) const
オリジナル参照とタイムスタンプ比較を無視して、強制的にファイナライズを無効化しているかのフラグを取得
Definition GxSysResource.h:1665
void getConvertPath(GxString &dst, const GxResBase &resource) const
対象リソース変換先出力パス取得 (リソース指定)
Definition GxSysResource.cpp:4221
GxString _originalRootPath
オリジナルリソースルートパス
Definition GxSysResource.h:1590
GxResBase * createResource(const GxRttiResource &resRtti, GX_CSTR path, void *pCreateCallbackWork=nullptr)
リソース作成
Definition GxSysResource.cpp:3275
static void getFinalizedCommonPath(GxString &dst, GX_CSTR path)
ハードウェア共通ファイナライズパス取得
Definition GxSysResource.cpp:3955
void getFinalizeResourcePath(GxString &dst, const GxResBase &resource)
ファイナライズリソースパス取得
Definition GxSysResource.cpp:5806
void setOnTerminateCallback(void(*func)(u32))
Definition GxSysResource.cpp:7330
b32 isExistFileFromMasterResource(const GxRttiResource &resRtti, GX_CSTR resourcePath, b32 isCheckArchiveOnly=false, s16 archiveID=-1) const
マスターリソース内でのリソースファイル存在チェック (リソースRtti + リソースパス指定)
Definition GxSysResource.cpp:4316
GxResBase * createAndLoadResource(const GxRttiResource &resRtti, GX_CSTR path, LOAD_MODE loadMode=LOAD_MODE::SYNC, void *pCreateCallbackWork=nullptr)
リソース作成 + 読み込み (Rtti + リソースパス指定)
Definition GxSysResource.cpp:2978
GX_FORCE_INLINE b32 isExistResource(const GxRttiResource &resRtti, GX_CSTR resourcePath)
メモリ上のリソース存在チェック (リソースRtti + リソースパス指定)
Definition GxSysResource.h:1823
u32 _fileDecodeChunkSizeMax
圧縮リソースファイル展開用の最大チャンクサイズ
Definition GxSysResource.h:1587
constexpr GX_CSTR getMasterRootPath(void) const
マスタールートパス取得
Definition GxSysResource.h:1424
GX_FORCE_INLINE void unlockAsyncLoad(void)
非同期ロードを再開(lockAsyncLoad() と対で使用すること)
Definition GxSysResource.h:1231
GX_FORCE_INLINE b32 isExistFile(const GxResBase &resource) const
リソースファイル存在チェック (リソース指定)
Definition GxSysResource.h:1797
b32 waitForLoadComplete(GxResBase *pResource)
読み込み完了までブロックする。
Definition GxSysResource.cpp:6426
LOAD_RESULT loadResourceSync(GxResBase &resource, void *pCreateCallbackWork=nullptr)
リソース読み込み (同期)
Definition GxSysResource.cpp:5825
constexpr GX_CSTR getFinalizedCommonRootPath(void) const
ハードウェア共通ファイナライズリソースルートパス取得
Definition GxSysResource.h:1420
constexpr GX_CSTR getResourceRootPath(void) const
リソースルートパス取得 (※カレントディレクトリからの相対パス)
Definition GxSysResource.h:1413
GX_FORCE_INLINE u32 getResourceNum(void)
登録済みリソース数取得
Definition GxSysResource.h:1770
LOAD_RESULT loadResourceFromStream(GxResBase &resource, GxStream &stream, u32 size=0)
リソース読み込み (from ストリーム)
Definition GxSysResource.cpp:6178
GX_SYSRESOURCE_ERROR_FUNCTION _pUserErrorFunction
ユーザー定義のエラーコールバック
Definition GxSysResource.h:1586
void setResourceRootPath(GX_CSTR path=nullptr)
リソースルートパス設定 (※カレントディレクトリからの相対パス)
Definition GxSysResource.cpp:3732
static void getResourcePath(GxString &dst, GX_CSTR path, b32 isDeleteExtension=true)
リソースパス取得 (フルパス指定)
Definition GxSysResource.cpp:4036
GX_FORCE_INLINE b32 isEmptyBackgroundLoader(void)
裏読みロードのリクエストキューが空かどうか
Definition GxSysResource.h:1505
virtual GX_FORCE_INLINE b32 isRegisteredNonReplacedPath(GX_CSTR &, GX_CSTR &) const
置き換え元のパスを登録
Definition GxSysResource.h:1462
const b32 getOptimizeAsyncloadThreadAssignment(void) const
非同期ロード時にリソースのスレッド分配をより効率化する
Definition GxSysResource.h:1701
GxResBase * createAndSetResource(const GxRttiResource &resRtti, GX_CSTR path, GxMemoryStream &stream, LOAD_MODE loadMode=LOAD_MODE::SYNC, void *pCreateCallbackWork=nullptr)
リソース作成 + データ割り当て
Definition GxSysResource.cpp:3170
GxString _masterRootPath
マスターリソースルートパス
Definition GxSysResource.h:1593
GX_FORCE_INLINE GxDataResourceGuid & getDataResourceGuid(void)
リソースのGUID管理データを取得
Definition GxSysResource.h:1564
b32 _optimizeAsyncloadThreadAssignment
非同期ロード時にリソースのスレッド分配をより効率化する
Definition GxSysResource.h:1597
GxDataResourceGuid _dataResourceGuid
リソースのGUID管理データ
Definition GxSysResource.h:1599
static void analyseResourcePath(GX_CSTR path, PATH_TYPE *pType, s32 *pRootPosition, u32 *pRootLength)
リソースパス解析
Definition GxSysResource.cpp:5451
constexpr u32 getMotionSequenceLineMax(void) const
モーションシーケンスのラインの最大数を取得
Definition GxSysResource.h:1508
constexpr GX_CSTR getOriginalRootPath(void) const
オリジナルリソースルートパス取得
Definition GxSysResource.h:1418
GX_FORCE_INLINE b32 isArchiveOpened(s16 archiveId) const
アーカイブファイルがオープンしているか調べる
Definition GxSysResource.h:1256
GxString _finalizedNativeRootPath
ハードウェア固有ファイナライズリソースルートパス
Definition GxSysResource.h:1592
GX_FORCE_INLINE void lockFromOutside(void)
外部からのlock処理
Definition GxSysResource.h:1630
GX_FORCE_INLINE void lockAsyncLoad(void)
非同期ロードを一時停止(現在処理中のファイル読み込みが終わるまでブロックされる)
Definition GxSysResource.h:1229
constexpr u32 getArchiveFileMax(void) const
アーカイブファイルの管理数の上限を取得
Definition GxSysResource.h:1254
GxResBase * createResourceRoutine(const GxRttiResource &resRtti, GX_CSTR original, GX_CSTR replace, b32 *pIsNewCreate, void *pCreateCallbackWork)
リソース作成内部ルーチン
Definition GxSysResource.cpp:5686
b32 reloadResource(GxResBase *pResource, LOAD_MODE loadMode=LOAD_MODE::SYNC)
リソース再読み込み
Definition GxSysResource.cpp:3611
u32 _motionSequenceLineMax
モーションシーケンスのラインの最大数
Definition GxSysResource.h:1596
GxCriticalSection _loadStateCriticalSection
ロード開始状態用クリティカルセクション
Definition GxSysResource.h:1577
constexpr GxSysResourceAsyncLoadBase * getResourceAsyncLoadManager(void) const
非同期リソース読み込み管理を取得
Definition GxSysResource.h:1223
LOAD_RESULT
リソース読み込み結果
Definition GxSysResource.h:1123
static b32 isOriginalPath(GX_CSTR path)
オリジナルリソースパス判定
Definition GxSysResource.cpp:3771
GxSysResourceRegister _resourceRegisterManager
リソース登録管理
Definition GxSysResource.h:1572
void terminate(void) override
終了
Definition GxSysResource.cpp:2857
static GX_CSTR RESOURCE_ORIGINAL_ROOT_NAME
オリジナルリソースパスルート名
Definition GxSysResource.h:1140
static void getFinalizedNativePath(GxString &dst, GX_CSTR path)
ハードウェア固有ファイナライズパス取得
Definition GxSysResource.cpp:3994
b32 searchResourceFileTableTargetLoop(GX_CSTR rootPath, const GxResourceFileTable &fileTableElement, const GxResourceFileFilter *pFileFilterTable, const GxRttiResource *pRttiTarget, RESOURCE_FILE_TABLE_SEARCH_CALLBACK function, void *pArgument)
リソースファイルテーブル探索処理ループ
Definition GxSysResource.cpp:7116
void cancelResource(GxResBase *pResource)
リソース非同期ロードキャンセル
Definition GxSysResource.cpp:3592
const f32 getOptimizeTBNRemakeRange(void) const
モデルをファイナライズするときのTBNの再計算で利用する閾値を取得
Definition GxSysResource.h:1692
static u64 getResourceId(const GxRttiResource &resRtti, GX_CSTR resourcePath)
リソースID生成
Definition GxSysResource.cpp:5517
GX_FORCE_INLINE void setDisableFinalizeIgnoreOriginalFlag(b32 flag)
オリジナル参照とタイムスタンプ比較を無視して、強制的にファイナライズを無効化しているかのフラグを設定
Definition GxSysResource.h:1490
void getMasterPath(GxString &dst, const GxResBase &resource) const
対象リソースマスターパス取得 (リソース指定)
Definition GxSysResource.cpp:4260
GxSysResourceCallback _resourceCallbackManager
コールバック管理
Definition GxSysResource.h:1573
LOAD_MODE
リソース読み込みモード
Definition GxSysResource.h:1116
GxString _resourceRootPath
リソース全体ルートパス
Definition GxSysResource.h:1589
f32 _optimizeTBNRemakeRange
モデルをファイナライズするときのTBNの再計算で利用する閾値(デフォルトは0.1f)
Definition GxSysResource.h:1595
LOAD_RESULT loadResourceFileAsync(GxResBase &resource, GxFile &file, u32 offset, u32 size)
リソースファイル非同期読み込み処理 (リソース非同期読み込み処理内サブルーチン)
Definition GxSysResource.cpp:6328
constexpr GX_CSTR getFinalizedNativeRootPath(void) const
ハードウェア固有ファイナライズリソースルートパス取得
Definition GxSysResource.h:1422
b32 _disableFinalizeIgnoreOriginalFlag
オリジナル参照とタイムスタンプ比較を無視して、強制的にファイナライズを無効化。(すでにファイナライズがある前提)
Definition GxSysResource.h:1584
static b32 isFinalizedCommonPath(GX_CSTR path)
ハードウェア共通ファイナライズパス判定
Definition GxSysResource.cpp:3786
void * loadFileImage(const GxRttiResource &resRtti, GX_CSTR path, u32 &dataSize, GxAllocatorList::ALLOCATOR_TYPE allocator=GxAllocatorList::ALLOCATOR_TYPE::TEMPORARY)
ファイルをメモリに直接読み込む
Definition GxSysResource.cpp:3469
const GxResourceFileFilter * getResourceFilterTable(void) const
リソースフィルタテーブルポインタ取得
Definition GxSysResource.h:1656
GxSysResourceAsyncLoadBase * _resourceAsyncLoadManager
非同期ロード管理
Definition GxSysResource.h:1574
GxSysResourceArchive _resourceArchiveManager
アーカイブ管理
Definition GxSysResource.h:1576
void unregisterResource(GxResBase *pResource)
リソース破棄
Definition GxSysResource.cpp:3677
static b32 isFinalizedNativePath(GX_CSTR path)
ハードウェア固有ファイナライズパス判定
Definition GxSysResource.cpp:3801
virtual void getReplacePath(GxString &dstPath, const GxRttiResource &, GX_CSTR srcPath) const
置き換えパスを取得
Definition GxSysResource.cpp:4141
void registerResource(GxResBase *pResource)
リソース登録
Definition GxSysResource.cpp:3661
b32 isSkipSearchFileTableTargetName(GX_CSTR fileName, const GxResourceFileFilter *pFileFilterTable=nullptr)
リソースファイルテーブル探索スキップ判定
Definition GxSysResource.cpp:7213
const b32 getSeparateShaderConfig(void) const
シェーダコンフィグファイルを各プラットフォームごとに分けるかどうかを取得
Definition GxSysResource.h:1683
b32 _enableExistOriginalDataFlag
リソースの読み込み時にオリジナルデータの有無をチェックするか否か(trueでチェックを行う)
Definition GxSysResource.h:1583
b32 openArchiveFile(GX_CSTR base, const GxResourceFileTable *pResourceFileTable, s16 archiveId)
Definition GxSysResource.cpp:3705
GxResourceFileTable * _pResourceFileTable
リソースファイルテーブル
Definition GxSysResource.h:1579
b32 _optimizeVertexCache
頂点キャッシュ最適化のためのインデックスソートを行う
Definition GxSysResource.h:1582
s16 * _pArchiveSearchOrder
アーカイブ検索順テーブル
Definition GxSysResource.h:1581
constexpr GxSysResourceAsyncLoadBase * getResourceBackgroundLoadManager(void) const
非同期リソース裏読み込み管理を取得
Definition GxSysResource.h:1225
GxResBase * createAndLoadBackground(const GxRttiResource &resRtti, GX_CSTR path, void *pCreateCallbackWork=nullptr)
リソース作成 + バックグラウンド読み込み (Rtti + リソースパス指定)
Definition GxSysResource.cpp:3126
void update(void) override
実行
Definition GxSysResource.cpp:2887
b32 _separeteShaderConfig
各プラットフォームでシェーダコンフィグファイルを分ける
Definition GxSysResource.h:1585
GxResBase * createAndSetResourceFromFileImage(const GxRttiResource &resRtti, GX_CSTR path, void *pLoadBuffer, u32 dataSize, LOAD_MODE loadMode=LOAD_MODE::SYNC, void *pCreateCallbackWork=nullptr)
メモリ上のデータからリソースを作成
Definition GxSysResource.cpp:3575
const b32 getOptimizeVertexCache(void) const
頂点キャッシュ最適化のためのインデックスソートを行うかどうかを取得
Definition GxSysResource.h:1674
GxSysResource(void)
コンストラクタ
Definition GxSysResource.cpp:2573
GX_FORCE_INLINE b32 isEmptyAsyncLoader(void)
非同期ロードのリクエストキューが空かどうか
Definition GxSysResource.h:1503
GX_FORCE_INLINE GxResBase * getResource(u32 index)
登録済みリソース取得 (インデックス指定)
Definition GxSysResource.h:1784
GX_FORCE_INLINE void unlockFromOutside(void)
外部からのunlock処理
Definition GxSysResource.h:1638
void getFullPath(GxString &dst, const GxResBase &resource) const
対象リソースフルパス取得 (リソース指定)
Definition GxSysResource.cpp:4195
b32(*) RESOURCE_FILE_TABLE_SEARCH_CALLBACK(const GxRttiResource &resRtti, GX_CSTR resourcePath, void *pArgument)
対象リソースファイル情報探索コールバック
Definition GxSysResource.h:1146
static void getOriginalPath(GxString &dst, GX_CSTR path)
オリジナルリソースパス取得
Definition GxSysResource.cpp:3916
LOAD_RESULT loadResourceAsync(GxResBase &resource, void *pCreateCallbackWork=nullptr)
リソース読み込み (非同期)
Definition GxSysResource.cpp:6011
GxResourceFileFilter * _pResourceFileFilter
リソースファイルフィルタ
Definition GxSysResource.h:1580
b32 initialize(const GxClassBase *pInitialInformation=nullptr) override
初期化
Definition GxSysResource.cpp:2624
GxString _finalizedCommonRootPath
ハードウェア共通ファイナライズリソースルートパス
Definition GxSysResource.h:1591
void initializeArchiveSearchOrder(const s16 *pArchiveSearchOrderTable=nullptr)
Definition GxSysResource.cpp:3723
~GxSysResource(void) override
デストラクタ
Definition GxSysResource.cpp:2613
static void callbackLoadStart(void *pUser, GX_HANDLE requestHandle)
リソースファイル非同期読み込み開始コールバック関数
Definition GxSysResource.cpp:6402
static GX_CSTR RESOURCE_FINALIZED_COMMON_ROOT_NAME
ハードウェア共通ファイナライズリソースパスルート名
Definition GxSysResource.h:1142
void getLoadPath(GxString &dst, const GxRttiResource &resRtti, GX_CSTR resourcePath)
ロードファイルパス取得
Definition GxSysResource.cpp:6453
GX_CSTR getRootPath(const GxResBase &resource) const
対象リソースルートパス取得 (リソース指定)
Definition GxSysResource.cpp:4157
void stopAsyncLoadSystem(void)
リソース非同期ロードシステム停止
Definition GxSysResource.cpp:3692
const GxResourceFileTable * getResourceFileTable(void) const
リソースファイルテーブルポインタ取得
Definition GxSysResource.h:1647
GxSysResourceAsyncLoadBase * _resourceBackgroundLoadManager
裏読みロード管理
Definition GxSysResource.h:1575
リソース登録管理クラス
Definition GxSysResource.h:246
GxResBase * findResource(u64 resourceId)
リソース探索
Definition GxSysResource.cpp:350
b32 registerResource(GxResBase *pResource)
リソース登録
Definition GxSysResource.cpp:268
u32 getResourceNum(void) const
リソース個数取得
Definition GxSysResource.cpp:448
GxSysResourceRegister(void)
コンストラクタ
Definition GxSysResource.cpp:257
GxResBase * getRegisterResource(u32 index)
指定インデックス登録リソース取得
Definition GxSysResource.cpp:385
b32 unregisterResource(GxResBase *pResource)
リソース解除
Definition GxSysResource.cpp:306
~GxSysResourceRegister(void) override
デストラクタ
Definition GxSysResource.h:300
スレッドクラス
Definition GxThread.h:177
シングルトン基礎クラス
Definition GxSingleton.h:19
static constexpr GxSysResource * getSingletonPointer(void)
Definition GxSingleton.h:59
Definition GxSysResource.h:59
GX_FORCE_INLINE b32 isEnd(void) const
終端判定
Definition GxSysResource.h:66
GX_CSTR _pFileName
フィルタ対象ファイル名(or ディレクトリ名) (※終端要素にはnullptrを設定する必要がある)
Definition GxSysResource.h:74
Definition GxSysResource.h:25
GX_CSTR _pResourcePath
リソースパス (※終端要素にはnullptrを設定する必要がある)
Definition GxSysResource.h:46
u16 _isHddInstall
HDDインストールフラグ (※予約)
Definition GxSysResource.h:48
GX_FORCE_INLINE b32 isEnd(void) const
終端判定
Definition GxSysResource.h:34
static GxResourceFileTable * allocArray(const GxResourceFileTable *pResourceFileTable, s16 archiveId)
Definition GxSysResource.cpp:198
s16 _archiveId
アーカイブID (※同一IDを1つのアーカイブとする。負数の場合は非アーカイブファイル)
Definition GxSysResource.h:47
GX_FORCE_INLINE b32 isDirectory(void) const
ディレクトリ指定判定
Definition GxSysResource.h:32
文字列型クラス
Definition GxString.h:18
GX_FORCE_INLINE GX_STR getString(void)
文字列取得
Definition GxString.h:165
32bitブーリアン
Definition GxDefine.h:173