rename Resource -> ResourceKey
This commit is contained in:
parent
fc9aff7f06
commit
a6f31e4fae
@ -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;
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -112,7 +112,7 @@ void TrueRand(String buffer)
|
|||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
//~ Swap hooks
|
//~ Swap hooks
|
||||||
|
|
||||||
b32 IsSwappingIn(void)
|
b32 IsSwappedIn(void)
|
||||||
{
|
{
|
||||||
return HotSwappingIsEnabled;
|
return HotSwappingIsEnabled;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
20
src/pp/pp.c
20
src/pp/pp.c
@ -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);
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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"));
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user