mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-13 02:26:37 +00:00
docs: withdraw the target_fps claim for sports_scroll; fix the Vegas speed formula
- SPORTS_UNIFICATION.md still presented honouring global target_fps as sports_scroll's added behaviour and its one user-visible gain; note that it was withdrawn because it had become a speed multiplier. - ADVANCED_FEATURES.md gave Vegas scrolling as (scroll_speed / target_fps) * elapsed; the real rule is scroll_speed px/s by elapsed time, through a 0.1-5 px per scroll_delay clamp when frame_based_scrolling is on. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -433,10 +433,14 @@ Vegas mode consists of four core components working together to provide smooth 1
|
|||||||
- **Frame Rate Control:** Precise timing to maintain 125 FPS
|
- **Frame Rate Control:** Precise timing to maintain 125 FPS
|
||||||
- **Pre-rendered Content:** Plugins pre-render during update()
|
- **Pre-rendered Content:** Plugins pre-render during update()
|
||||||
|
|
||||||
**Scroll Speed Calculation:**
|
**Scroll Speed Calculation:** motion is by elapsed time; `target_fps` paces
|
||||||
|
the render loop, not the speed.
|
||||||
```python
|
```python
|
||||||
pixels_per_frame = (scroll_speed / target_fps)
|
# frame_based_scrolling: false
|
||||||
scroll_position += pixels_per_frame * elapsed_time
|
scroll_position += scroll_speed * elapsed_time # scroll_speed in px/s
|
||||||
|
# frame_based_scrolling: true (the default) -- not stepping, just a clamp
|
||||||
|
applied = clamp(scroll_speed * scroll_delay, 0.1, 5) / scroll_delay
|
||||||
|
scroll_position += applied * elapsed_time
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Component Interactions
|
#### Component Interactions
|
||||||
|
|||||||
@@ -218,6 +218,14 @@ The one behavior the upstreamed version adds is native
|
|||||||
Part A threaded it through each copy by hand, and this makes that threading
|
Part A threaded it through each copy by hand, and this makes that threading
|
||||||
legacy compatibility rather than the mechanism.
|
legacy compatibility rather than the mechanism.
|
||||||
|
|
||||||
|
> **Superseded.** Once presentation became frame-locked (#545) the helper
|
||||||
|
> steps a fixed whole-pixel amount per presented frame and the panel presents
|
||||||
|
> at its own refresh, so honouring `target_fps` only turned it into a speed
|
||||||
|
> multiplier (60 doubled a scoreboard's speed, 200 halved it). `sports_scroll`
|
||||||
|
> no longer reads it: the crisp-speed ladder uses the panel refresh
|
||||||
|
> (`display_manager.refresh_hz`), and speed comes from
|
||||||
|
> `scroll_settings.scroll_speed` alone. See `docs/SCROLL_PERFORMANCE.md`.
|
||||||
|
|
||||||
## Phases
|
## Phases
|
||||||
|
|
||||||
B0–B3 are merged and shipping in core 3.2.0. Everything that remains is
|
B0–B3 are merged and shipping in core 3.2.0. Everything that remains is
|
||||||
@@ -464,8 +472,9 @@ After adoption plus the frozen legacy copies it was 10,610; removing the dead
|
|||||||
inline duplication (plugins #252) brought it to roughly 8,620. B6 would take it
|
inline duplication (plugins #252) brought it to roughly 8,620. B6 would take it
|
||||||
to about 3,300 including the shared core module — some 2,400 fewer than before
|
to about 3,300 including the shared core module — some 2,400 fewer than before
|
||||||
this project started. **Until B6 runs, the adoption is net negative on disk**,
|
this project started. **Until B6 runs, the adoption is net negative on disk**,
|
||||||
and its one delivered user-visible gain is that adopted plugins honour the
|
and its one delivered user-visible gain was that adopted plugins honoured the
|
||||||
global `target_fps` instead of hardcoding ~100 FPS.
|
global `target_fps` instead of hardcoding ~100 FPS (since withdrawn: see the
|
||||||
|
note under the B3 design above).
|
||||||
|
|
||||||
### Decision: stop adopting further modules until B6 closes
|
### Decision: stop adopting further modules until B6 closes
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user