44 lines
934 B
C
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);
|