1#ifndef SEAD_RESOURCE_H_
2#define SEAD_RESOURCE_H_
4#include <basis/seadNew.h>
5#include <container/seadTList.h>
6#include <heap/seadDisposer.h>
7#include <heap/seadHeap.h>
8#include <prim/seadBitFlag.h>
9#include <resource/seadDecompressor.h>
10#include <resource/seadResourceMgr.h>
26static_assert(
sizeof(
Resource) == 0x14,
"sead::Resource size mismatch");
43 void create(u8* data, u32 size, u32 buffer_size,
bool need_delete,
Heap* instance_heap);
62static_assert(
sizeof(
DirectResource) == 0x24,
"sead::DirectResource size mismatch");
90static_assert(
sizeof(
ResourceFactory) == 0x50,
"sead::ResourceFactory size mismatch");
129 return new(heap, alignment) T;
Definition seadDecompressor.h:13
Definition seadResource.h:94
Resource * tryCreate(const ResourceMgr::LoadArg &arg) override
Definition seadResource.cpp:76
DirectResourceFactoryBase()
Definition seadResource.h:96
virtual DirectResource * newResource_(Heap *heap, s32 alignment)=0
Resource * create(const ResourceMgr::CreateArg &arg) override
Definition seadResource.cpp:56
~DirectResourceFactoryBase() override
Definition seadResource.h:101
Resource * tryCreateWithDecomp(const ResourceMgr::LoadArg &arg, Decompressor *decomp) override
Definition seadResource.cpp:116
Definition seadResource.h:115
virtual DirectResource * newResource_(Heap *heap, s32 alignment)
Definition seadResource.h:127
virtual ~DirectResourceFactory()
Definition seadResource.h:122
DirectResourceFactory()
Definition seadResource.h:117
Definition seadResource.h:30
DirectResource()
Definition seadResource.cpp:18
u32 mRawSize
Definition seadResource.h:57
u8 * getData() const
Definition seadResource.h:45
virtual u32 getLoadDataAlignment()
Definition seadResource.h:37
~DirectResource() override
Definition seadResource.cpp:27
u32 mBufferSize
Definition seadResource.h:58
void create(u8 *data, u32 size, u32 buffer_size, bool need_delete, Heap *instance_heap)
Definition seadResource.cpp:33
u8 * mRawData
Definition seadResource.h:56
BitFlag32 mSettingFlag
Definition seadResource.h:59
u32 getSize() const
Definition seadResource.h:50
virtual void doCreate_(u8 *, u32, Heap *)
Definition seadResource.h:40
Definition seadSafeString.h:421
friend IDisposer::IDisposer()
Definition seadDisposer.h:12
Definition seadResource.h:66
FixedSafeString< 32 > mExt
Definition seadResource.h:87
virtual Resource * create(const ResourceMgr::CreateArg &arg)=0
ResourceFactory()
Definition seadResource.h:68
void setExt(const SafeString &ext)
Definition seadResource.h:81
virtual Resource * tryCreate(const ResourceMgr::LoadArg &arg)=0
virtual Resource * tryCreateWithDecomp(const ResourceMgr::LoadArg &arg, Decompressor *decomp)=0
~ResourceFactory() override
Definition seadResource.cpp:49
Definition seadResourceMgr.h:45
Definition seadResource.h:15
virtual void doPostCreate_()
Definition seadResource.h:23
virtual ~Resource()
Definition seadResource.cpp:14
Resource()
Definition seadResource.cpp:9
Definition seadAssert.h:44
BitFlag< u32 > BitFlag32
Definition seadBitFlag.h:125
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96
#define SEAD_RTTI_BASE(CLASS)
Definition seadRuntimeTypeInfo.h:75
Definition seadResourceMgr.h:50
Definition seadResourceMgr.h:77