Repository navigation
feature: edgeDepth, smoothing and snapAbove added to PictureEffect - #149
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Hi @Gohnnyman, thanks, this is exactly the shape we hoped for: one topic, two files, on main, and five tests that read as what the controls do. The edge depth on the existing area ranges, and the 8.8 state that keeps fractions of a step between pictures, are both nicely done. Your branch allows maintainer edits, so we'll add one commit for the remaining points and merge:
One thing for later, on our side: the smoothing state is sized per grid cell, so a backlight frame keeps state for the empty middle too. Sizing it by the lit lights needs a list of a layer's lit cells, which is core work of ours. As you noted, Thanks again! |
The smoothing eases each light by time rather than by tick, so it settles at the same speed whatever the source's frame rate or the board's. **Light domain** - `smoothing` is a half-life (20 ms to about 4 s): each tick measures the time since the last, and `easeToward` applies `halfLifeKeep`; a step below one 8.8 count still moves one, so a light arrives. - The edge reach is its own step, `reachEdge`, which keeps `fillRanges` within the complexity limit. - The help: edgeDepth's no longer says a deeper edge costs more reads (an area is sampled at a stride) and credits Hyperion's 8%; American spelling; the control lines and guides within the catalog's 80 characters and 40 words. **Tests** - One half-life closes half the gap, ten short steps land where one long step does, and a light arrives exactly while no time passed moves nothing. **Docs/CI** - `help.json` regenerated for the new control lines. Checks: build_desktop and --tests, test_desktop (2586), check_code --module PictureEffect (0 findings), check_docgen (0 errors), check_prose, check_specs pass. The generated metrics stay out, as the contribution rules ask. **Reviews** - 🧑 ewowi on MoonModules#149: smoothing by time, the edgeDepth help, the spelling, the Hyperion credit → done in this commit.
What's new
Extends
PictureEffect's area sampling with the border-strip part of #138.edgeDepth— the outermost lights reach this far into the picture instead of their own sliver at the edgesmoothing— each light eases toward its new colour over several pictures, which settles a noisy sourcesnapAbove— a move bigger than this lands whole, so a cut stays a cutedgeDepth0 as a no-op, exact convergence, a snapped cut, and no smoothing following tick-for-tickNote
smoothingandsnapAboveare almost no-op at this point as these settings could only be observed on dynamic changes.Right now
PictureServicedoesn't implement Video/USB MJPEG source, but when It'll be added, these setting will take effect