rename Resource -> ResourceKey

This commit is contained in:
jacob 2025-10-24 07:32:28 -05:00
parent fc9aff7f06
commit a6f31e4fae
17 changed files with 78 additions and 78 deletions

View File

@ -679,7 +679,7 @@ Struct(ResourceStore)
u64 hash; u64 hash;
}; };
Struct(Resource) Struct(ResourceKey)
{ {
u64 hash; u64 hash;
}; };
@ -692,9 +692,9 @@ Struct(Resource)
#if LanguageIsC #if LanguageIsC
Struct(VertexShader) { Resource resource; }; Struct(VertexShader) { ResourceKey resource; };
Struct(PixelShader) { Resource resource; }; Struct(PixelShader) { ResourceKey resource; };
Struct(ComputeShader) { Resource resource; }; Struct(ComputeShader) { ResourceKey resource; };
# define VSDecl(name) extern VertexShader name; # define VSDecl(name) extern VertexShader name;
# define PSDecl(name) extern PixelShader name; # define PSDecl(name) extern PixelShader name;

View File

@ -7,7 +7,7 @@ typedef ExitFuncDef(ExitFunc);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ @hookdecl Swap hooks //~ @hookdecl Swap hooks
b32 IsSwappingIn(void); b32 IsSwappedIn(void);
b32 IsSwappingOut(void); b32 IsSwappingOut(void);
String SwappedStateFromName(Arena *arena, String name); String SwappedStateFromName(Arena *arena, String name);

View File

@ -44,14 +44,14 @@ void InitResourceSystem(u64 archive_strings_count, String *archive_strings)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Resource helpers //~ Resource helpers
b32 IsResourceNil(Resource resource) b32 IsResourceNil(ResourceKey resource)
{ {
return resource.hash == 0; return resource.hash == 0;
} }
Resource ResourceFromStore(ResourceStore *store, String name) ResourceKey ResourceKeyFromStore(ResourceStore *store, String name)
{ {
Resource result = ZI; ResourceKey result = ZI;
result.hash = HashFnv64(store->hash, name); result.hash = HashFnv64(store->hash, name);
return result; return result;
} }
@ -78,7 +78,7 @@ ResourceEntry *ResourceEntryFromHash(u64 hash)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Resource operations //~ Resource operations
String DataFromResource(Resource resource) String DataFromResource(ResourceKey resource)
{ {
String result = ZI; String result = ZI;
ResourceEntry *entry = ResourceEntryFromHash(resource.hash); ResourceEntry *entry = ResourceEntryFromHash(resource.hash);
@ -89,7 +89,7 @@ String DataFromResource(Resource resource)
return result; return result;
} }
String NameFromResource(Resource resource) String NameFromResource(ResourceKey resource)
{ {
String result = ZI; String result = ZI;
ResourceEntry *entry = ResourceEntryFromHash(resource.hash); ResourceEntry *entry = ResourceEntryFromHash(resource.hash);

View File

@ -38,8 +38,8 @@ void InitResourceSystem(u64 archive_strings_count, String *archive_strings);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Resource operations //~ Resource operations
b32 IsResourceNil(Resource resource); b32 IsResourceNil(ResourceKey resource);
Resource ResourceFromStore(ResourceStore *store, String name); ResourceKey ResourceKeyFromStore(ResourceStore *store, String name);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Resource cache operations //~ Resource cache operations
@ -49,5 +49,5 @@ ResourceEntry *ResourceEntryFromHash(u64 hash);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Resource data operations //~ Resource data operations
String DataFromResource(Resource resource); String DataFromResource(ResourceKey resource);
String NameFromResource(Resource resource); String NameFromResource(ResourceKey resource);

View File

@ -112,7 +112,7 @@ void TrueRand(String buffer)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Swap hooks //~ Swap hooks
b32 IsSwappingIn(void) b32 IsSwappedIn(void)
{ {
return HotSwappingIsEnabled; return HotSwappingIsEnabled;
} }

View File

@ -25,7 +25,7 @@ JobDef(F_Load, sig, _)
0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF 0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
}; };
Resource resource = sig->resource; ResourceKey resource = sig->resource;
String name = NameFromResource(resource); String name = NameFromResource(resource);
f32 point_size = sig->point_size; f32 point_size = sig->point_size;
AC_Asset *asset = sig->asset; AC_Asset *asset = sig->asset;
@ -163,7 +163,7 @@ JobDef(F_Load, sig, _)
//~ Font load operations //~ Font load operations
/* Returns the asset from the asset cache */ /* Returns the asset from the asset cache */
AC_Asset *F_LoadAsset(Resource resource, f32 point_size, b32 wait) AC_Asset *F_LoadAsset(ResourceKey resource, f32 point_size, b32 wait)
{ {
__prof; __prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
@ -200,7 +200,7 @@ AC_Asset *F_LoadAsset(Resource resource, f32 point_size, b32 wait)
return asset; return asset;
} }
F_Font *F_LoadFontAsync(Resource resource, f32 point_size) F_Font *F_LoadFontAsync(ResourceKey resource, f32 point_size)
{ {
__prof; __prof;
AC_Asset *asset = F_LoadAsset(resource, point_size, 0); AC_Asset *asset = F_LoadAsset(resource, point_size, 0);
@ -208,7 +208,7 @@ F_Font *F_LoadFontAsync(Resource resource, f32 point_size)
return f; return f;
} }
F_Font *F_LoadFontWait(Resource resource, f32 point_size) F_Font *F_LoadFontWait(ResourceKey resource, f32 point_size)
{ {
__prof; __prof;
AC_Asset *asset = F_LoadAsset(resource, point_size, 1); AC_Asset *asset = F_LoadAsset(resource, point_size, 1);

View File

@ -48,14 +48,14 @@ Struct(F_Run)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Font load job //~ Font load job
JobDecl(F_Load, { AC_Asset *asset; f32 point_size; Resource resource; }); JobDecl(F_Load, { AC_Asset *asset; f32 point_size; ResourceKey resource; });
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Font load operations //~ Font load operations
AC_Asset *F_LoadAsset(Resource resource, f32 point_size, b32 wait); AC_Asset *F_LoadAsset(ResourceKey resource, f32 point_size, b32 wait);
F_Font *F_LoadFontAsync(Resource resource, f32 point_size); F_Font *F_LoadFontAsync(ResourceKey resource, f32 point_size);
F_Font *F_LoadFontWait(Resource resource, f32 point_size); F_Font *F_LoadFontWait(ResourceKey resource, f32 point_size);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Run operations //~ Run operations

View File

@ -21,7 +21,7 @@ void GPU_StartupUtils(void)
/* Upload noise */ /* Upload noise */
{ {
Vec3I32 noise_size = VEC3I32(128, 128, 64); Vec3I32 noise_size = VEC3I32(128, 128, 64);
Resource noise_resource = ResourceFromStore(&GPU_Resources, Lit("noise_128x128x64_16.dat")); ResourceKey noise_resource = ResourceKeyFromStore(&GPU_Resources, Lit("noise_128x128x64_16.dat"));
String noise_res_data = DataFromResource(noise_resource); String noise_res_data = DataFromResource(noise_resource);
if (noise_res_data.len != noise_size.x * noise_size.y * noise_size.z * 2) if (noise_res_data.len != noise_size.x * noise_size.y * noise_size.z * 2)
{ {

View File

@ -34,7 +34,7 @@ void StartupUser(void)
g->world_to_render_xf = XformIdentity; g->world_to_render_xf = XformIdentity;
/* Init from swap */ /* Init from swap */
if (IsSwappingIn()); if (IsSwappedIn());
{ {
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
String swap_str = SwappedStateFromName(scratch.arena, Lit("pp_user")); String swap_str = SwappedStateFromName(scratch.arena, Lit("pp_user"));
@ -349,7 +349,7 @@ void DrawDebugConsole(i32 level, b32 minimized)
g->console_logs_height = 0; g->console_logs_height = 0;
i64 now_ns = TimeNs(); i64 now_ns = TimeNs();
F_Font *font = F_LoadFontAsync(ResourceFromStore(&GameResources, Lit("font/fixedsys.ttf")), 12.0f); F_Font *font = F_LoadFontAsync(ResourceKeyFromStore(&GameResources, Lit("font/fixedsys.ttf")), 12.0f);
if (font) if (font)
{ {
Lock lock = LockE(&g->console_logs_mutex); Lock lock = LockE(&g->console_logs_mutex);
@ -1184,7 +1184,7 @@ void UpdateUser(P_Window *window)
if (!IsValidAndActive(ent)) continue; if (!IsValidAndActive(ent)) continue;
//if (S_IsNil(ent->sprite)) continue; //if (S_IsNil(ent->sprite)) continue;
Resource sprite = ent->sprite; ResourceKey sprite = ent->sprite;
Entity *parent = EntityFromId(g->ss_blended, ent->parent); Entity *parent = EntityFromId(g->ss_blended, ent->parent);
@ -1274,7 +1274,7 @@ void UpdateUser(P_Window *window)
if (HasProp(ent, Prop_TileChunk)) if (HasProp(ent, Prop_TileChunk))
{ {
Vec2I32 chunk_index = ent->tile_chunk_index; Vec2I32 chunk_index = ent->tile_chunk_index;
Resource tile_sprite = ResourceFromStore(&GameResources, Lit("sprite/tile.ase")); ResourceKey tile_sprite = ResourceKeyFromStore(&GameResources, Lit("sprite/tile.ase"));
S_Texture *tile_texture = S_TextureFromResourceAsync(tile_sprite); S_Texture *tile_texture = S_TextureFromResourceAsync(tile_sprite);
if (tile_texture->loaded) if (tile_texture->loaded)
{ {
@ -1506,7 +1506,7 @@ void UpdateUser(P_Window *window)
#if 0 #if 0
/* Draw contact info */ /* Draw contact info */
{ {
F_Font *disp_font = F_LoadFontAsync(ResourceFromStore(&GameResources, Lit("font/fixedsys.ttf")), 12.0f); F_Font *disp_font = F_LoadFontAsync(ResourceKeyFromStore(&GameResources, Lit("font/fixedsys.ttf")), 12.0f);
if (disp_font) if (disp_font)
{ {
f32 offset_px = 10; f32 offset_px = 10;
@ -1628,7 +1628,7 @@ void UpdateUser(P_Window *window)
#if 0 #if 0
/* Test info */ /* Test info */
{ {
F_Font *disp_font = F_LoadFontAsync(ResourceFromStore(&GameResources, Lit("font/fixedsys.ttf")), 12.0f); F_Font *disp_font = F_LoadFontAsync(ResourceKeyFromStore(&GameResources, Lit("font/fixedsys.ttf")), 12.0f);
if (disp_font) if (disp_font)
{ {
f32 offset_px = 10; f32 offset_px = 10;
@ -1781,7 +1781,7 @@ void UpdateUser(P_Window *window)
{ {
__profn("Draw crosshair"); __profn("Draw crosshair");
Vec2 crosshair_pos = g->ui_cursor; Vec2 crosshair_pos = g->ui_cursor;
Resource crosshair = ResourceFromStore(GameResources, Lit("sprite/crosshair.ase")); ResourceKey crosshair = ResourceKeyFromStore(GameResources, Lit("sprite/crosshair.ase"));
S_Texture *t = S_TextureFromResourceAsync(crosshair); S_Texture *t = S_TextureFromResourceAsync(crosshair);
Vec2 size = VEC2(t->width, t->height); Vec2 size = VEC2(t->width, t->height);
Xform xf = XformFromTrs(TRS(.t = crosshair_pos, .s = size)); Xform xf = XformFromTrs(TRS(.t = crosshair_pos, .s = size));
@ -1800,7 +1800,7 @@ void UpdateUser(P_Window *window)
} }
else else
{ {
S_Texture *t = S_TextureFromResourceAsync(ResourceFromStore(GameResources, Lit("sprite/crosshair.ase"))); S_Texture *t = S_TextureFromResourceAsync(ResourceKeyFromStore(GameResources, Lit("sprite/crosshair.ase")));
Vec2 size = VEC2(t->width, t->height); Vec2 size = VEC2(t->width, t->height);
Rect cursor_clip = RectFromVec2(g->ui_screen_offset, g->ui_size); Rect cursor_clip = RectFromVec2(g->ui_screen_offset, g->ui_size);
cursor_clip.pos = AddVec2(cursor_clip.pos, MulVec2(size, 0.5f)); cursor_clip.pos = AddVec2(cursor_clip.pos, MulVec2(size, 0.5f));
@ -2015,7 +2015,7 @@ void UpdateUser(P_Window *window)
Entity *ent = hovered_ent; Entity *ent = hovered_ent;
Vec2 pos = AddVec2(g->ui_cursor, VEC2(15, 15)); Vec2 pos = AddVec2(g->ui_cursor, VEC2(15, 15));
F_Font *font = F_LoadFontAsync(ResourceFromStore(&GameResources, Lit("font/fixedsys.ttf")), 12.0f); F_Font *font = F_LoadFontAsync(ResourceKeyFromStore(&GameResources, Lit("font/fixedsys.ttf")), 12.0f);
if (font) if (font)
{ {
TempArena temp = BeginTempArena(scratch.arena); TempArena temp = BeginTempArena(scratch.arena);
@ -2127,7 +2127,7 @@ void UpdateUser(P_Window *window)
if (g->debug_draw) if (g->debug_draw)
{ {
__profn("Draw debug info"); __profn("Draw debug info");
F_Font *font = F_LoadFontAsync(ResourceFromStore(&GameResources, Lit("font/fixedsys.ttf")), 12.0f); F_Font *font = F_LoadFontAsync(ResourceKeyFromStore(&GameResources, Lit("font/fixedsys.ttf")), 12.0f);
if (font) if (font)
{ {
TempArena temp = BeginTempArena(scratch.arena); TempArena temp = BeginTempArena(scratch.arena);

View File

@ -247,7 +247,7 @@ Struct(Entity)
//- Sprite //- Sprite
Resource sprite; ResourceKey sprite;
String sprite_span_name; String sprite_span_name;
u32 sprite_tint; u32 sprite_tint;
Vec3 sprite_emittance; Vec3 sprite_emittance;

View File

@ -36,7 +36,7 @@ void ResetSimAccel(Snapshot *ss, SimAccel *accel)
Entity *SpawnTestSmg(Entity *parent) Entity *SpawnTestSmg(Entity *parent)
{ {
Entity *e = AcquireSyncSrc(parent); Entity *e = AcquireSyncSrc(parent);
e->sprite = ResourceFromStore(&GameResources, Lit("sprite/gun.ase")); e->sprite = ResourceKeyFromStore(&GameResources, Lit("sprite/gun.ase"));
EnableProp(e, Prop_Attached); EnableProp(e, Prop_Attached);
e->attach_slice = Lit("attach.wep"); e->attach_slice = Lit("attach.wep");
@ -52,7 +52,7 @@ Entity *SpawnTestSmg(Entity *parent)
Entity *SpawnTestLauncher(Entity *parent) Entity *SpawnTestLauncher(Entity *parent)
{ {
Entity *e = AcquireSyncSrc(parent); Entity *e = AcquireSyncSrc(parent);
e->sprite = ResourceFromStore(&GameResources, Lit("sprite/gun.ase")); e->sprite = ResourceKeyFromStore(&GameResources, Lit("sprite/gun.ase"));
EnableProp(e, Prop_Attached); EnableProp(e, Prop_Attached);
e->attach_slice = Lit("attach.wep"); e->attach_slice = Lit("attach.wep");
@ -68,7 +68,7 @@ Entity *SpawnTestLauncher(Entity *parent)
Entity *SpawnTestChucker(Entity *parent) Entity *SpawnTestChucker(Entity *parent)
{ {
Entity *chucker = AcquireSyncSrc(parent); Entity *chucker = AcquireSyncSrc(parent);
chucker->sprite = ResourceFromStore(&GameResources, Lit("sprite/gun.ase")); chucker->sprite = ResourceKeyFromStore(&GameResources, Lit("sprite/gun.ase"));
EnableProp(chucker, Prop_Attached); EnableProp(chucker, Prop_Attached);
chucker->attach_slice = Lit("attach.wep"); chucker->attach_slice = Lit("attach.wep");
@ -119,12 +119,12 @@ Entity *SpawnTestEmployee(Entity *parent)
{ {
EnableProp(e, Prop_Test); EnableProp(e, Prop_Test);
e->sprite = ResourceFromStore(&GameResources, Lit("sprite/tim.ase")); e->sprite = ResourceKeyFromStore(&GameResources, Lit("sprite/tim.ase"));
e->mass_unscaled = 10; e->mass_unscaled = 10;
e->inertia_unscaled = 5; e->inertia_unscaled = 5;
} }
//e->sprite = ResourceFromStore(GameResources, Lit("sprite/box_rounded.ase")); //e->sprite = ResourceKeyFromStore(GameResources, Lit("sprite/box_rounded.ase"));
//e->sprite_span_name = Lit("idle.unarmed"); //e->sprite_span_name = Lit("idle.unarmed");
//e->sprite_span_name = Lit("idle.one_handed"); //e->sprite_span_name = Lit("idle.one_handed");
e->sprite_span_name = Lit("idle.two_handed"); e->sprite_span_name = Lit("idle.two_handed");
@ -257,7 +257,7 @@ void SpawnTestEntities2(Entity *parent, Vec2 pos)
Xform xf = XformFromTrs(TRS(.t = pos, .r = rot, .s = size)); Xform xf = XformFromTrs(TRS(.t = pos, .r = rot, .s = size));
SetXform(e, xf); SetXform(e, xf);
e->sprite = ResourceFromStore(&GameResources, Lit("sprite/tile.ase")); e->sprite = ResourceKeyFromStore(&GameResources, Lit("sprite/tile.ase"));
e->layer = Layer_Shoulders; e->layer = Layer_Shoulders;
//e->sprite_tint = Alpha32F(Color_Blue, 0.75); //e->sprite_tint = Alpha32F(Color_Blue, 0.75);
@ -299,7 +299,7 @@ void SpawnTestEntities2(Entity *parent, Vec2 pos)
Xform xf = XformFromTrs(.t = pos, .r = r, .s = size); Xform xf = XformFromTrs(.t = pos, .r = r, .s = size);
SetXform(e, xf); SetXform(e, xf);
e->sprite = ResourceFromStore(GameResources, Lit("sprite/bullet.ase")); e->sprite = ResourceKeyFromStore(GameResources, Lit("sprite/bullet.ase"));
e->sprite_collider_slice = Lit("shape"); e->sprite_collider_slice = Lit("shape");
e->layer = Layer_Shoulders; e->layer = Layer_Shoulders;
@ -327,7 +327,7 @@ void SpawnTestEntities3(Entity *parent, Vec2 pos)
Xform xf = XformFromTrs(TRS(.t = pos, .r = r, .s = size)); Xform xf = XformFromTrs(TRS(.t = pos, .r = r, .s = size));
SetXform(e, xf); SetXform(e, xf);
e->sprite = ResourceFromStore(&GameResources, Lit("sprite/box.ase")); e->sprite = ResourceKeyFromStore(&GameResources, Lit("sprite/box.ase"));
e->layer = Layer_Shoulders; e->layer = Layer_Shoulders;
e->sprite_tint = Color_Red; e->sprite_tint = Color_Red;
@ -350,8 +350,8 @@ void SpawnTestEntities4(Entity *parent, Vec2 pos)
Xform xf = XformFromTrs(TRS(.t = pos, .r = r, .s = size)); Xform xf = XformFromTrs(TRS(.t = pos, .r = r, .s = size));
SetXform(e, xf); SetXform(e, xf);
//e->sprite = ResourceFromStore(GameResources, Lit("sprite/box.ase")); //e->sprite = ResourceKeyFromStore(GameResources, Lit("sprite/box.ase"));
e->sprite = ResourceFromStore(&GameResources, Lit("sprite/tile.ase")); e->sprite = ResourceKeyFromStore(&GameResources, Lit("sprite/tile.ase"));
e->layer = Layer_Shoulders; e->layer = Layer_Shoulders;
EnableProp(e, Prop_LightTest); EnableProp(e, Prop_LightTest);
@ -380,7 +380,7 @@ void SpawnTestTile(Snapshot *world, Vec2 world_pos)
SetXform(e, xf); SetXform(e, xf);
e->layer = Layer_Walls; e->layer = Layer_Walls;
e->sprite = ResourceFromStore(GameResources, Lit("sprite/tile.ase")); e->sprite = ResourceKeyFromStore(GameResources, Lit("sprite/tile.ase"));
e->sprite_tint = Color_Red; e->sprite_tint = Color_Red;
S_Sheet *sheet = S_SheetFromResource(e->sprite); S_Sheet *sheet = S_SheetFromResource(e->sprite);
@ -783,7 +783,7 @@ CollisionCallbackFuncDef(OnEntityCollision, data, step_ctx)
{ {
Xform xf = XformFromTrs(TRS(.t = point, .r = RandF64FromState(&step_ctx->rand, 0, Tau))); Xform xf = XformFromTrs(TRS(.t = point, .r = RandF64FromState(&step_ctx->rand, 0, Tau)));
Entity *decal = AcquireSyncSrc(root); Entity *decal = AcquireSyncSrc(root);
decal->sprite = ResourceFromStore(&GameResources, Lit("sprite/blood.ase")); decal->sprite = ResourceKeyFromStore(&GameResources, Lit("sprite/blood.ase"));
decal->sprite_tint = Rgba32F(1, 1, 1, 0.25f); decal->sprite_tint = Rgba32F(1, 1, 1, 0.25f);
decal->layer = Layer_FloorDecals; decal->layer = Layer_FloorDecals;
SetXform(decal, xf); SetXform(decal, xf);
@ -1359,7 +1359,7 @@ void StepSim(SimStepCtx *ctx)
if (!HasProp(ent, Prop_Attached)) continue; if (!HasProp(ent, Prop_Attached)) continue;
Entity *parent = EntityFromId(world, ent->parent); Entity *parent = EntityFromId(world, ent->parent);
Resource parent_sprite = parent->sprite; ResourceKey parent_sprite = parent->sprite;
S_Sheet *parent_sheet = S_SheetFromResource(parent_sprite); S_Sheet *parent_sheet = S_SheetFromResource(parent_sprite);
Xform parent_sprite_xf = parent->sprite_local_xform; Xform parent_sprite_xf = parent->sprite_local_xform;
@ -1450,7 +1450,7 @@ void StepSim(SimStepCtx *ctx)
{ {
if (primary_triggered) if (primary_triggered)
{ {
Resource sprite = ent->sprite; ResourceKey sprite = ent->sprite;
u32 animation_frame = ent->animation_frame; u32 animation_frame = ent->animation_frame;
S_Sheet *sheet = S_SheetFromResource(sprite); S_Sheet *sheet = S_SheetFromResource(sprite);
Xform sprite_local_xform = ent->sprite_local_xform; Xform sprite_local_xform = ent->sprite_local_xform;
@ -1477,7 +1477,7 @@ void StepSim(SimStepCtx *ctx)
bullet->local_collider.points[0] = VEC2(0, 0); bullet->local_collider.points[0] = VEC2(0, 0);
bullet->local_collider.count = 1; bullet->local_collider.count = 1;
#else #else
bullet->sprite = ResourceFromStore(GameResources, Lit("sprite/bullet.ase")); bullet->sprite = ResourceKeyFromStore(GameResources, Lit("sprite/bullet.ase"));
bullet->sprite_collider_slice = Lit("shape"); bullet->sprite_collider_slice = Lit("shape");
#endif #endif
} }
@ -1499,7 +1499,7 @@ void StepSim(SimStepCtx *ctx)
{ {
if (primary_triggered) if (primary_triggered)
{ {
Resource sprite = ent->sprite; ResourceKey sprite = ent->sprite;
u32 animation_frame = ent->animation_frame; u32 animation_frame = ent->animation_frame;
S_Sheet *sheet = S_SheetFromResource(sprite); S_Sheet *sheet = S_SheetFromResource(sprite);
Xform sprite_local_xform = ent->sprite_local_xform; Xform sprite_local_xform = ent->sprite_local_xform;

View File

@ -5,7 +5,7 @@ JobDef(SND_Load, sig, UNUSED id)
{ {
__prof; __prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
Resource resource = sig->resource; ResourceKey resource = sig->resource;
String name = NameFromResource(resource); String name = NameFromResource(resource);
AC_Asset *asset = sig->asset; AC_Asset *asset = sig->asset;
SND_SoundFlag flags = sig->flags; SND_SoundFlag flags = sig->flags;
@ -80,7 +80,7 @@ JobDef(SND_Load, sig, UNUSED id)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Load sound //~ Load sound
AC_Asset *SND_LoadAsset(Resource resource, SND_SoundFlag flags, b32 wait) AC_Asset *SND_LoadAsset(ResourceKey resource, SND_SoundFlag flags, b32 wait)
{ {
__prof; __prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
@ -117,7 +117,7 @@ AC_Asset *SND_LoadAsset(Resource resource, SND_SoundFlag flags, b32 wait)
return asset; return asset;
} }
SND_Sound *SND_LoadSoundAsync(Resource resource, SND_SoundFlag flags) SND_Sound *SND_LoadSoundAsync(ResourceKey resource, SND_SoundFlag flags)
{ {
__prof; __prof;
AC_Asset *asset = SND_LoadAsset(resource, flags, 0); AC_Asset *asset = SND_LoadAsset(resource, flags, 0);
@ -125,7 +125,7 @@ SND_Sound *SND_LoadSoundAsync(Resource resource, SND_SoundFlag flags)
return sound; return sound;
} }
SND_Sound *SND_LoadSoundWait(Resource resource, SND_SoundFlag flags) SND_Sound *SND_LoadSoundWait(ResourceKey resource, SND_SoundFlag flags)
{ {
__prof; __prof;
AC_Asset *asset = SND_LoadAsset(resource, flags, 1); AC_Asset *asset = SND_LoadAsset(resource, flags, 1);

View File

@ -19,7 +19,7 @@ Struct(SND_Sound)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Sound load operations //~ Sound load operations
JobDecl(SND_Load, { SND_SoundFlag flags; AC_Asset *asset; Resource resource; }); JobDecl(SND_Load, { SND_SoundFlag flags; AC_Asset *asset; ResourceKey resource; });
AC_Asset *SND_LoadAsset(Resource resource, SND_SoundFlag flags, b32 wait); AC_Asset *SND_LoadAsset(ResourceKey resource, SND_SoundFlag flags, b32 wait);
SND_Sound *SND_LoadSoundAsync(Resource resource, SND_SoundFlag flags); SND_Sound *SND_LoadSoundAsync(ResourceKey resource, SND_SoundFlag flags);
SND_Sound *SND_LoadSoundWait(Resource resource, SND_SoundFlag flags); SND_Sound *SND_LoadSoundWait(ResourceKey resource, SND_SoundFlag flags);

View File

@ -9,7 +9,7 @@ JobDef(S_LoadTexture, sig, _)
{ {
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
S_Entry *entry = sig->entry; S_Entry *entry = sig->entry;
Resource resource = entry->resource; ResourceKey resource = entry->resource;
b32 ok = 1; b32 ok = 1;
S_Texture *texture = &entry->texture; S_Texture *texture = &entry->texture;
texture->valid = 1; texture->valid = 1;
@ -98,7 +98,7 @@ JobDef(S_LoadSheet, sig, _)
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
Arena *perm = PermArena(); Arena *perm = PermArena();
S_Entry *entry = sig->entry; S_Entry *entry = sig->entry;
Resource resource = entry->resource; ResourceKey resource = entry->resource;
b32 ok = 1; b32 ok = 1;
S_Sheet *sheet = &entry->sheet; S_Sheet *sheet = &entry->sheet;
sheet->valid = 1; sheet->valid = 1;
@ -283,7 +283,7 @@ JobDef(S_LoadSheet, sig, _)
//~ Cache //~ Cache
/* TODO: Per-fiber L1 cache */ /* TODO: Per-fiber L1 cache */
S_Entry *S_FetchEntry(Resource resource, JobPool pool, S_FetchFlag flags) S_Entry *S_FetchEntry(ResourceKey resource, JobPool pool, S_FetchFlag flags)
{ {
S_SharedState *g = &S_shared_state; S_SharedState *g = &S_shared_state;
S_Entry *entry = 0; S_Entry *entry = 0;
@ -349,14 +349,14 @@ S_Entry *S_FetchEntry(Resource resource, JobPool pool, S_FetchFlag flags)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Sprite data retrieval operations //~ Sprite data retrieval operations
S_Texture *S_TextureFromResource(Resource resource) S_Texture *S_TextureFromResource(ResourceKey resource)
{ {
S_Entry *entry = S_FetchEntry(resource, JobPool_Inherit, S_FetchFlag_Texture); S_Entry *entry = S_FetchEntry(resource, JobPool_Inherit, S_FetchFlag_Texture);
YieldOnFence(&entry->texture_ready_fence, 1); YieldOnFence(&entry->texture_ready_fence, 1);
return &entry->texture; return &entry->texture;
} }
S_Texture *S_TextureFromResourceAsync(Resource resource) S_Texture *S_TextureFromResourceAsync(ResourceKey resource)
{ {
S_Texture *result = &S_NilTexture; S_Texture *result = &S_NilTexture;
S_Entry *entry = S_FetchEntry(resource, JobPool_Inherit, S_FetchFlag_Texture); S_Entry *entry = S_FetchEntry(resource, JobPool_Inherit, S_FetchFlag_Texture);
@ -367,14 +367,14 @@ S_Texture *S_TextureFromResourceAsync(Resource resource)
return result; return result;
} }
S_Sheet *S_SheetFromResource(Resource resource) S_Sheet *S_SheetFromResource(ResourceKey resource)
{ {
S_Entry *entry = S_FetchEntry(resource, JobPool_Inherit, S_FetchFlag_Sheet); S_Entry *entry = S_FetchEntry(resource, JobPool_Inherit, S_FetchFlag_Sheet);
YieldOnFence(&entry->sheet_ready_fence, 1); YieldOnFence(&entry->sheet_ready_fence, 1);
return &entry->sheet; return &entry->sheet;
} }
S_Sheet *S_SheetFromResourceAsync(Resource resource) S_Sheet *S_SheetFromResourceAsync(ResourceKey resource)
{ {
S_Sheet *result = &S_NilSheet; S_Sheet *result = &S_NilSheet;
S_Entry *entry = S_FetchEntry(resource, JobPool_Inherit, S_FetchFlag_Sheet); S_Entry *entry = S_FetchEntry(resource, JobPool_Inherit, S_FetchFlag_Sheet);

View File

@ -108,7 +108,7 @@ Struct(S_Entry)
Atomic32 texture_touched; Atomic32 texture_touched;
Atomic32 sheet_touched; Atomic32 sheet_touched;
Resource resource; ResourceKey resource;
Fence texture_ready_fence; Fence texture_ready_fence;
Fence sheet_ready_fence; Fence sheet_ready_fence;
}; };
@ -146,16 +146,16 @@ Enum(S_FetchFlag)
S_FetchFlag_Sheet = (1 << 1), S_FetchFlag_Sheet = (1 << 1),
}; };
S_Entry *S_FetchEntry(Resource resource, JobPool pool, S_FetchFlag flags); S_Entry *S_FetchEntry(ResourceKey resource, JobPool pool, S_FetchFlag flags);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Sprite data retrieval operations //~ Sprite data retrieval operations
S_Texture *S_TextureFromResource(Resource resource); S_Texture *S_TextureFromResource(ResourceKey resource);
S_Texture *S_TextureFromResourceAsync(Resource resource); S_Texture *S_TextureFromResourceAsync(ResourceKey resource);
S_Sheet *S_SheetFromResource(Resource resource); S_Sheet *S_SheetFromResource(ResourceKey resource);
S_Sheet *S_SheetFromResourceAsync(Resource resource); S_Sheet *S_SheetFromResourceAsync(ResourceKey resource);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Sheet access operations //~ Sheet access operations

View File

@ -6,16 +6,16 @@ UI_SharedState UI_shared_state = ZI;
void UI_Startup(void) void UI_Startup(void)
{ {
/* Prefetch default font */ /* Prefetch default font */
Resource default_font = UI_GetDefaultFontResource(); ResourceKey default_font = UI_GetDefaultFontResource();
F_LoadFontAsync(default_font, 12); F_LoadFontAsync(default_font, 12);
} }
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Font helpers //~ Font helpers
Resource UI_GetDefaultFontResource(void) ResourceKey UI_GetDefaultFontResource(void)
{ {
return ResourceFromStore(&UI_Resources, Lit("font/default.ttf")); return ResourceKeyFromStore(&UI_Resources, Lit("font/default.ttf"));
} }
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////

View File

@ -42,7 +42,7 @@ Struct(UI_Size)
x(TextColor, u32) \ x(TextColor, u32) \
x(Tint, u32) \ x(Tint, u32) \
x(Border, f32) \ x(Border, f32) \
x(Font, Resource) \ x(Font, ResourceKey) \
x(FontSize, u32) \ x(FontSize, u32) \
x(TextPadding, f32) \ x(TextPadding, f32) \
x(Rounding, f32) \ x(Rounding, f32) \
@ -125,7 +125,7 @@ Struct(UI_Box)
f32 text_padding; f32 text_padding;
f32 rounding; f32 rounding;
Resource font_resource; ResourceKey font_resource;
f32 font_size; f32 font_size;
//- Layout data //- Layout data
@ -196,7 +196,7 @@ void UI_Startup(void);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Font helpers //~ Font helpers
Resource UI_GetDefaultFontResource(void); ResourceKey UI_GetDefaultFontResource(void);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Key helpers //~ Key helpers