diff --git a/engine/breeze/ui/ui.c b/engine/breeze/ui/ui.c index 202f9ac..2955fbb 100644 --- a/engine/breeze/ui/ui.c +++ b/engine/breeze/ui/ui.c @@ -116,6 +116,8 @@ BzUI *bzUICreate() { ui->borderStyles = bzArrayCreate(BzUIBorderStyle, 10); ui->spriteStyles = bzArrayCreate(BzUISpriteStyle, 10); + ui->currFrame = 0; + // 10kb should be enough ui->strArena = bzStackAllocCreate(10240); @@ -165,7 +167,6 @@ void bzUIBegin(BzUI *ui, i32 width, i32 height) { bzStackAllocReset(&ui->strArena); - ui->currFrame++; ui->root->lastFrame = ui->currFrame; ui->keyIdCount = 1; } @@ -349,7 +350,7 @@ static void pruneStale(BzUI *ui, BzUINode *node) { BzUINode *last = NULL; while (child != NULL) { - if (child->lastFrame != node->lastFrame) { + if (child->lastFrame != ui->currFrame) { BzUINode *next = child->next; if (child->prev) child->prev->next = next; @@ -479,6 +480,8 @@ void bzUIEnd(BzUI *ui) { calculatePositions(ui, ui->root, 0, 0); updateNodeInteraction(ui, ui->root, GetMousePosition()); renderNode(ui, ui->root); + + ui->currFrame++; } BzUIKey bzUIGetUniqueKey(BzUI *ui) {