power_play/src/base/base_resource.h

44 lines
934 B
C

////////////////////////////////////////////////////////////
//~ Resource types
Struct(ResourceEntry)
{
ResourceEntry *next;
ResourceEntry *next_in_bin;
u64 hash;
String name;
String data;
};
Struct(ResourceEntryBin)
{
ResourceEntry *first;
ResourceEntry *last;
};
Struct(ResourceCtx)
{
u64 entries_count;
ResourceEntry *first_entry;
ResourceEntry *last_entry;
ResourceEntryBin bins[4096];
};
////////////////////////////////////////////////////////////
//~ Bootstrap
void BootstrapResources(u64 archive_strings_count, String *archive_strings);
////////////////////////////////////////////////////////////
//~ Resource ops
//- Helpers
b32 IsResourceNil(ResourceKey resource);
ResourceKey ResourceKeyFromStore(ResourceStore *store, String name);
ResourceEntry *ResourceEntryFromHash(u64 hash);
//- Data lookup
String DataFromResource(ResourceKey resource);
String NameFromResource(ResourceKey resource);