54 lines
1.1 KiB
C
54 lines
1.1 KiB
C
////////////////////////////////
|
|
//~ Resource cache types
|
|
|
|
Struct(ResourceEntry)
|
|
{
|
|
ResourceEntry *next;
|
|
ResourceEntry *next_in_bin;
|
|
|
|
u64 hash;
|
|
String name;
|
|
String data;
|
|
};
|
|
|
|
Struct(ResourceEntryBin)
|
|
{
|
|
ResourceEntry *first;
|
|
ResourceEntry *last;
|
|
};
|
|
|
|
////////////////////////////////
|
|
//~ State types
|
|
|
|
#define NumResourceEntryBins 4096
|
|
|
|
Struct(SharedResourceState)
|
|
{
|
|
ResourceEntry *first_entry;
|
|
ResourceEntry *last_entry;
|
|
u64 entries_count;
|
|
ResourceEntryBin bins[NumResourceEntryBins];
|
|
} extern shared_resource_state;
|
|
|
|
////////////////////////////////
|
|
//~ Startup
|
|
|
|
void InitResourceSystem(u64 archive_strings_count, String *archive_strings);
|
|
|
|
////////////////////////////////
|
|
//~ Resource operations
|
|
|
|
b32 IsResourceNil(Resource resource);
|
|
Resource ResourceFromStore(ResourceStore *store, String name);
|
|
|
|
////////////////////////////////
|
|
//~ Resource cache operations
|
|
|
|
ResourceEntry *ResourceEntryFromHash(u64 hash);
|
|
|
|
////////////////////////////////
|
|
//~ Resource data operations
|
|
|
|
String DataFromResource(Resource resource);
|
|
String NameFromResource(Resource resource);
|