diff --git a/engine/breeze/ui/ui.c b/engine/breeze/ui/ui.c index e4ac424..3a942a3 100644 --- a/engine/breeze/ui/ui.c +++ b/engine/breeze/ui/ui.c @@ -49,7 +49,7 @@ typedef struct BzUI { BzUINode *root; u64 currFrame; - u64 idCount; // Per-frame + u64 keyIdCount; // Per-frame } BzUI; BzUIKey bzUIKeyNull() { @@ -114,7 +114,7 @@ void bzUIBegin(BzUI *ui, i32 width, i32 height) { ui->currFrame++; ui->root->lastFrame = ui->currFrame; - ui->idCount = 1; + ui->keyIdCount = 1; } static Rectangle getNodeRect(const BzUINode *node) { @@ -381,6 +381,10 @@ void bzUIEnd(BzUI *ui) { renderNode(ui, ui->root); } +BzUIKey bzUIGetUniqueKey(BzUI *ui) { + return ui->keyIdCount++; +} + BzUINode *bzUINodeMake(BzUI *ui, BzUIKey key, BzUIFlags flags) { BzUINode *node = NULL; if (key != bzUIKeyNull()) diff --git a/engine/breeze/ui/ui.h b/engine/breeze/ui/ui.h index 22b6eff..6e5e4bf 100644 --- a/engine/breeze/ui/ui.h +++ b/engine/breeze/ui/ui.h @@ -119,6 +119,7 @@ void bzUIDestroy(BzUI *ui); void bzUIBegin(BzUI *ui, i32 width, i32 height); void bzUIEnd(BzUI *ui); +BzUIKey bzUIGetUniqueKey(BzUI *ui); BzUINode *bzUINodeMake(BzUI *ui, BzUIKey key, BzUIFlags flags);