1#ifndef SEAD_RESOURCEMGR_H_
2#define SEAD_RESOURCEMGR_H_
4#include <basis/seadAssert.h>
5#include <container/seadTList.h>
6#include <filedevice/seadFileDevice.h>
7#include <heap/seadDisposer.h>
8#include <heap/seadHeap.h>
9#include <prim/seadSafeString.h>
34 return mPtr ==
nullptr;
73 static_assert(
sizeof(
CreateArg) == 0x24,
"sead::ResourceMgr::CreateArg size mismatch");
104 static_assert(
sizeof(
LoadArg) == 0x2C,
"sead::ResourceMgr::LoadArg size mismatch");
131 SEAD_ASSERT_MSG(
false,
"loadWithoutDecomp failed: %s", arg.path.cstr());
146static_assert(
sizeof(
ResourceMgr) == 0x38,
"sead::ResourceMgr size mismatch");
Definition seadDecompressor.h:13
Definition seadFileDevice.h:56
Definition seadResource.h:66
Definition seadResourceMgr.h:45
void unregisterDecompressor(Decompressor *decompressor)
Definition seadResourceMgr.cpp:60
ResourcePtr tryLoadWithoutDecomp(const LoadArg &arg)
Definition seadResourceMgr.cpp:65
Decompressor * findDecompressor(const SafeString &ext)
DecompressorList mDecompList
Definition seadResourceMgr.h:142
ResourceMgr()
Definition seadResourceMgr.cpp:13
void unregisterFactory(ResourceFactory *factory)
Definition seadResourceMgr.cpp:55
void registerFactory(ResourceFactory *factory, const SafeString &name)
Definition seadResourceMgr.cpp:40
FactoryList mFactoryList
Definition seadResourceMgr.h:140
void registerDecompressor(Decompressor *decompressor, const SafeString &name)
Definition seadResourceMgr.cpp:47
ResourceFactory * findFactory(const SafeString &ext)
ResourceFactory * mNullResourceFactory
Definition seadResourceMgr.h:143
TList< Decompressor * > DecompressorList
Definition seadResourceMgr.h:109
ResourcePtr tryLoad(const LoadArg &arg, const SafeString &convert_ext, Decompressor *decomp)
Definition seadResourceMgr.cpp:86
ResourceList mPostCreateResourceList
Definition seadResourceMgr.h:141
TList< ResourceFactory * > FactoryList
Definition seadResourceMgr.h:107
~ResourceMgr()
Definition seadResourceMgr.cpp:31
ResourcePtr loadWithoutDecomp(const LoadArg &arg)
Definition seadResourceMgr.h:126
TList< Resource * > ResourceList
Definition seadResourceMgr.h:108
Definition seadResourceMgr.h:16
Resource * operator->()
Definition seadResourceMgr.h:27
operator Resource *()
Definition seadResourceMgr.h:23
Resource * mPtr
Definition seadResourceMgr.h:38
bool isNull() const
Definition seadResourceMgr.h:32
ResourcePtr(Resource *ptr)
Definition seadResourceMgr.h:18
const Resource & operator*() const
Definition seadResourceMgr.h:29
Resource & operator*()
Definition seadResourceMgr.h:26
operator const Resource *() const
Definition seadResourceMgr.h:24
const Resource * operator->() const
Definition seadResourceMgr.h:30
Definition seadResource.h:15
Definition seadTList.h:49
Definition seadAssert.h:44
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
#define SEAD_ASSERT_MSG(condition, format,...)
Definition seadAssert.h:33
#define SEAD_SINGLETON_DISPOSER(CLASS)
Definition seadDisposer.h:29
Definition seadResourceMgr.h:50
CreateArg()
Definition seadResourceMgr.h:51
u32 file_size
Definition seadResourceMgr.h:64
u8 * buffer
Definition seadResourceMgr.h:63
Heap * heap
Definition seadResourceMgr.h:69
s32 alignment
Definition seadResourceMgr.h:70
u32 buffer_size
Definition seadResourceMgr.h:65
bool need_unload
Definition seadResourceMgr.h:66
SafeString ext
Definition seadResourceMgr.h:68
ResourceFactory * factory
Definition seadResourceMgr.h:67
Definition seadResourceMgr.h:77
LoadArg()
Definition seadResourceMgr.h:78
FileDevice * device
Definition seadResourceMgr.h:100
u32 load_data_buffer_size
Definition seadResourceMgr.h:98
u8 * load_data_buffer
Definition seadResourceMgr.h:97
SafeString path
Definition seadResourceMgr.h:92
u32 div_size
Definition seadResourceMgr.h:101
Heap * load_data_heap
Definition seadResourceMgr.h:94
ResourceFactory * factory
Definition seadResourceMgr.h:99
s32 load_data_alignment
Definition seadResourceMgr.h:96
Heap * instance_heap
Definition seadResourceMgr.h:93
s32 instance_alignment
Definition seadResourceMgr.h:95