[ecs] Give registries a name

This makes debugging a little easier when there are multiple ECS
registries. Currently, the name parameter must be a stable pointer.
This commit is contained in:
Bill Currie 2023-12-28 16:08:40 +09:00
parent 1a5b421933
commit 4c704e9a2e
16 changed files with 19 additions and 17 deletions

View file

@ -78,6 +78,7 @@ typedef struct ecs_subpool_s {
} ecs_subpool_t;
typedef struct ecs_registry_s {
const char *name;
ecs_pool_t *comp_pools;
uint32_t *entities;
ecs_subpool_t *subpools;
@ -104,7 +105,7 @@ typedef struct ecs_system_s {
#define ECSINLINE GNU89INLINE inline
ecs_registry_t *ECS_NewRegistry (void);
ecs_registry_t *ECS_NewRegistry (const char *name);
void ECS_DelRegistry (ecs_registry_t *registry);
uint32_t ECS_RegisterComponents (ecs_registry_t *registry,
const component_t *components,

View file

@ -281,7 +281,7 @@ cl_create_views (void)
void
CL_Init_Screen (void)
{
__auto_type reg = ECS_NewRegistry ();
__auto_type reg = ECS_NewRegistry ("cl screen");
Canvas_InitSys (&cl_canvas_sys, reg);
if (con_module) {
__auto_type cd = con_module->data->console;

View file

@ -678,7 +678,7 @@ init (void)
nonl ();
server_reg = ECS_NewRegistry ();
server_reg = ECS_NewRegistry ("sv con");
server_base = ECS_RegisterComponents (server_reg, server_components,
server_comp_count);
view_base = ECS_RegisterComponents (server_reg, view_components,

View file

@ -35,9 +35,10 @@
#include "QF/ecs.h"
VISIBLE ecs_registry_t *
ECS_NewRegistry (void)
ECS_NewRegistry (const char *name)
{
ecs_registry_t *reg = calloc (1, sizeof (ecs_registry_t));
reg->name = name;
reg->components = (componentset_t) DARRAY_STATIC_INIT (32);
reg->next = Ent_Index (nullent);
return reg;

View file

@ -104,7 +104,7 @@ check_ent_components (const uint32_t *ents, uint32_t count, uint32_t comp,
int
main (void)
{
ecs_registry_t *reg = ECS_NewRegistry ();
ecs_registry_t *reg = ECS_NewRegistry ("components");
ECS_RegisterComponents (reg, test_components, test_num_components);
ECS_CreateComponentPools (reg);

View file

@ -884,7 +884,7 @@ test_build_hierarchy4 (void)
int
main (void)
{
test_reg = ECS_NewRegistry ();
test_reg = ECS_NewRegistry ("hierarchy");
ECS_RegisterComponents (test_reg, test_components, test_num_components);
ECS_CreateComponentPools (test_reg);

View file

@ -11,7 +11,7 @@
static int
test_new_del (void)
{
ecs_registry_t *reg = ECS_NewRegistry ();
ecs_registry_t *reg = ECS_NewRegistry ("new del");
if (!reg) {
printf ("could not create registry\n");
return 0;
@ -45,7 +45,7 @@ test_new_del (void)
static int
test_entities (void)
{
ecs_registry_t *reg = ECS_NewRegistry ();
ecs_registry_t *reg = ECS_NewRegistry ("entities");
uint32_t entities[NUM_ENTS];

View file

@ -140,7 +140,7 @@ check_obj_comps (ecs_registry_t *reg, uint32_t comp, uint32_t *expect)
int
main (void)
{
ecs_registry_t *reg = ECS_NewRegistry ();
ecs_registry_t *reg = ECS_NewRegistry ("subpool");
uint32_t base = ECS_RegisterComponents (reg, test_components,
test_num_components);
ECS_CreateComponentPools (reg);

View file

@ -610,7 +610,7 @@ puts("Hierarchy_SetTreeMode");
int
main (void)
{
test_reg = ECS_NewRegistry ();
test_reg = ECS_NewRegistry ("tree");
ECS_RegisterComponents (test_reg, test_components, test_num_components);
ECS_CreateComponentPools (test_reg);

View file

@ -475,7 +475,7 @@ RUA_GUI_Init (progs_t *pr, int secure)
PR_Resources_Register (pr, "Draw", res, bi_gui_clear, bi_gui_destroy);
PR_RegisterBuiltins (pr, builtins, res);
res->reg = ECS_NewRegistry ();
res->reg = ECS_NewRegistry ("rua gui");
Canvas_InitSys (&res->csys, res->reg);
res->tsys = (text_system_t) {
.reg = res->reg,

View file

@ -259,7 +259,7 @@ Scene_NewScene (scene_system_t *extra_systems)
{
scene_t *scene = calloc (1, sizeof (scene_t));
scene->reg = ECS_NewRegistry ();
scene->reg = ECS_NewRegistry ("scene");
ECS_RegisterComponents (scene->reg, scene_components, scene_comp_count);
for (auto extra = extra_systems; extra && extra->system; extra++) {
uint32_t base = ECS_RegisterComponents (scene->reg,

View file

@ -280,7 +280,7 @@ main (void)
{
int ret = 0;
test_sys.reg = ECS_NewRegistry ();
test_sys.reg = ECS_NewRegistry ("flow-size");
test_sys.base = ECS_RegisterComponents (test_sys.reg, test_components,
test_comp_count);
ECS_CreateComponentPools (test_sys.reg);

View file

@ -280,7 +280,7 @@ main (void)
{
int ret = 0;
test_sys.reg = ECS_NewRegistry ();
test_sys.reg = ECS_NewRegistry ("flow");
test_sys.base = ECS_RegisterComponents (test_sys.reg, test_components,
test_comp_count);
ECS_CreateComponentPools (test_sys.reg);

View file

@ -51,7 +51,7 @@ main (void)
{
int ret = 0;
ecs_system_t psg_sys = {
.reg = ECS_NewRegistry (),
.reg = ECS_NewRegistry ("passage"),
.base = ECS_RegisterComponents (psg_sys.reg, passage_components,
passage_comp_count),
};

View file

@ -217,7 +217,7 @@ R_Trails_Init (void)
{
Sys_Printf ("R_Trails_Init\n");
Sys_RegisterShutdown (trails_shutdown, 0);
auto reg = ECS_NewRegistry ();
auto reg = ECS_NewRegistry ("r_trails");
trails_system.reg = reg;
trails_system.base = ECS_RegisterComponents (reg, trails_components,
trails_comp_count);

View file

@ -394,7 +394,7 @@ BI_Graphics_Init (progs_t *pr)
IE_Set_Focus (event_handler_id);
Con_Load ("client");
__auto_type reg = ECS_NewRegistry ();
__auto_type reg = ECS_NewRegistry ("qwaq gr");
Canvas_InitSys (&canvas_sys, reg);
if (con_module) {
__auto_type cd = con_module->data->console;