feat(control-station): add atomic recorded-session playback

This commit is contained in:
DCCONSTRUCTIONS
2026-07-17 17:51:24 +03:00
parent 007ff9fff2
commit e94c64eebd
35 changed files with 8907 additions and 302 deletions
+24 -6
View File
@@ -45,17 +45,34 @@
min-height: 0;
}
.rerun-viewport__canvas[data-presented="false"] {
visibility: hidden;
}
.recorded-session-preloaders {
position: fixed;
left: -10000px;
top: -10000px;
width: 1px;
height: 1px;
overflow: hidden;
opacity: 0;
pointer-events: none;
}
.rerun-viewport {
--rerun-tab-bar-height: 24px;
--rerun-native-chrome-height: 72px;
overflow: hidden;
}
/* Rerun WebViewer 0.34.1 draws its selected recording tab inside WASM.
The native panels are already disabled; crop only that fixed tab row. */
/* Rerun WebViewer 0.34.1 keeps three fixed 24px canvas rows even after its
panels are overridden: the native top row, recording tab and view tab.
They are drawn inside WASM and cannot be styled independently, so crop the
fixed native chrome while keeping the actual 3D viewport full-height. */
.rerun-viewport__canvas {
top: calc(-1 * var(--rerun-tab-bar-height));
top: calc(-1 * var(--rerun-native-chrome-height));
bottom: auto;
height: calc(100% + var(--rerun-tab-bar-height));
height: calc(100% + var(--rerun-native-chrome-height));
}
.rerun-viewport__canvas canvas {
@@ -65,8 +82,9 @@
}
.rerun-viewport:is([data-status="loading"], [data-status="error"])
.rerun-viewport__canvas > div {
.rerun-viewport__canvas {
visibility: hidden;
pointer-events: none;
}
.rerun-viewport__notice {