mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-13 10:36:35 +00:00
docs(config): mark target_fps legacy; describe what Vegas scroll_delay does
- General tab "Scroll Frame Rate" (target_fps) is labelled legacy: after the sports_scroll fix nothing in core scrolling reads it. The field and its API validation stay so saved configs and plugins that read global_config['target_fps'] keep working. CONFIG_REFERENCE says the same. - Vegas frame_based_scrolling/scroll_delay were described as frame-count stepping at ~50 FPS. Neither steps nor sets a frame rate: frame-based mode converts the speed to px per scroll_delay, clamps it to 0.1-5, and still advances by elapsed time, so the applied speed is clamp(scroll_speed * scroll_delay, 0.1, 5) / scroll_delay px/s. The config comments, render_pipeline comment and CONFIG_REFERENCE rows now say so. No behaviour change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -155,9 +155,14 @@ class VegasModeConfig:
|
||||
target_fps: int = 125 # Target frame rate
|
||||
buffer_ahead: int = 2 # Number of plugins to buffer ahead
|
||||
|
||||
# Scroll behavior
|
||||
# Scroll behavior. Neither key steps the scroll or sets a frame rate:
|
||||
# motion is always by elapsed time at scroll_speed px/s. With
|
||||
# frame_based_scrolling the speed is first converted to px per
|
||||
# scroll_delay and clamped to 0.1-5 (ScrollHelper.set_scroll_speed), so
|
||||
# the speed actually applied is clamp(scroll_speed * scroll_delay, 0.1, 5)
|
||||
# / scroll_delay -- at the 0.02 default, speeds under 5 px/s run at 5.
|
||||
frame_based_scrolling: bool = True
|
||||
scroll_delay: float = 0.02 # 50 FPS effective scroll updates
|
||||
scroll_delay: float = 0.02 # only feeds the clamp above; not a frame period
|
||||
|
||||
# Dynamic duration
|
||||
dynamic_duration_enabled: bool = True
|
||||
|
||||
@@ -127,12 +127,14 @@ class RenderPipeline:
|
||||
self.scroll_helper.set_sub_pixel_scrolling(self.config.smooth_scroll)
|
||||
|
||||
# Config scroll_speed is always pixels per second, but ScrollHelper
|
||||
# interprets it differently based on frame_based_scrolling mode:
|
||||
# - Frame-based: pixels per frame step
|
||||
# - Time-based: pixels per second
|
||||
# takes it in different units depending on frame_based_scrolling:
|
||||
# - Frame-based: pixels per scroll_delay seconds (clamped to 0.1-5)
|
||||
# - Time-based: pixels per second (clamped to 1-500)
|
||||
# Both modes then advance by elapsed time; frame-based mode does not
|
||||
# step. So frame-based with scroll_delay only adds the clamp: the
|
||||
# applied speed is clamp(scroll_speed * scroll_delay, 0.1, 5) /
|
||||
# scroll_delay px/s.
|
||||
if self.config.frame_based_scrolling:
|
||||
# Convert pixels/second to pixels/frame
|
||||
# pixels_per_frame = pixels_per_second * seconds_per_frame
|
||||
pixels_per_frame = self.config.scroll_speed * self.config.scroll_delay
|
||||
self.scroll_helper.set_scroll_speed(pixels_per_frame)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user