From 293d68a0fbaf6c721aaed269ceff06bac5522e77 Mon Sep 17 00:00:00 2001 From: ostermine Date: Sat, 10 Oct 2026 03:49:12 +0300 Subject: [PATCH 1/2] call on_hud_render before rendering the frame Hud scripts update the first-person hand skeleton, blockwraps and animations in on_hud_render, which ran after renderFrame, so these changes were drawn one frame late. With fast camera rotation the hand visibly lagged and jittered behind the view. --- src/frontend/screens/LevelScreen.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/frontend/screens/LevelScreen.cpp b/src/frontend/screens/LevelScreen.cpp index 24ee44378..36448f47f 100644 --- a/src/frontend/screens/LevelScreen.cpp +++ b/src/frontend/screens/LevelScreen.cpp @@ -271,11 +271,11 @@ void LevelScreen::draw(float delta) { if (!hud->isPause()) { scripting::on_entities_render(engine.getTime().getDelta()); - } - renderer->renderFrame(ctx, camera, hudVisible, *postProcessing); - if (!hud->isPause()) { + // before the frame: changes made by hud scripts (hand skeleton, + // blockwraps, animations) must be rendered with the current camera scripting::on_frontend_render(); } + renderer->renderFrame(ctx, camera, hudVisible, *postProcessing); if (hudVisible) { hud->draw(ctx); From 40ff68aa8683bf6bd924301884051e3d5aa08df9 Mon Sep 17 00:00:00 2001 From: ostermine Date: Wed, 14 Oct 2026 00:30:08 +0300 Subject: [PATCH 2/2] remove comment --- src/frontend/screens/LevelScreen.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/frontend/screens/LevelScreen.cpp b/src/frontend/screens/LevelScreen.cpp index 36448f47f..e6f1a0d7e 100644 --- a/src/frontend/screens/LevelScreen.cpp +++ b/src/frontend/screens/LevelScreen.cpp @@ -271,8 +271,6 @@ void LevelScreen::draw(float delta) { if (!hud->isPause()) { scripting::on_entities_render(engine.getTime().getDelta()); - // before the frame: changes made by hud scripts (hand skeleton, - // blockwraps, animations) must be rendered with the current camera scripting::on_frontend_render(); } renderer->renderFrame(ctx, camera, hudVisible, *postProcessing);