power_play/src/base/base_resource.h

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