Repository navigation
chore(capture): keep charts and the feed still in scene pictures - #1268
Merged
Merged
Conversation
A picture's name carries a hash of its bytes and every clip made from it is rendered again when the name changes, so anything on screen that moves by itself costs clips. Charts were drawn relative to a running clock, the synthetic book drew new random quantities twenty times a second, news kept arriving, and the version in the status row changes with every release. In a scene run charts now read one held moment through chartdx::now_unix_ms, while code measuring elapsed time keeps the plain clock. The synthetic feed gets a still mode, MOON_SYNTH_STILL_AT_MS: no ticks, one book repeated, only the first news. The Core Status rows also follow a language change at once instead of up to a second later.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
A scene run photographs every screen for the site. Each picture's file name carries a hash of its bytes, and every clip made from a picture is rendered again when that name changes. Anything on screen that moves by itself therefore costs clips with no change to the interface.
Two whole runs differed on 95 of 221 screens. The main causes:
This PR removes those causes for a scene run only. Ordinary builds and the capture build started with no flags behave as before.
chartdx::now_unix_msis the one clock a chart places itself by. In a scene run it reads one held moment. Code measuring elapsed time (double click, recheck periods, the application-wide return to Live) readsmoon_chart::paint::now_unix_msas before.MOON_SYNTH_STILL_AT_MS: no ticks, one book sent repeatedly, only the first news, all stamped with that moment.cfg(uidoc)hook.The private overlay's half (the held values, and waiting until two pictures in a row match) is already in place. Without this PR it has no callers.
Notable decisions
pin_clockdocuments why, and reading the code confirmed it: double-click detection and panel refresh gates depend on time passing.MarketStore::apply_bookdrops a book for a market no chart has opened, so a single send left charts with no book.Known limitations
cfg(uidoc), apart from the Core Status bypass.Issues
None of the 64 open issues is touched by this change.
How to verify
fmt clean, clippy exit 0, 9138 tests green, on this tree rebased onto #1267, with MoonUI refreshed to master as CI does. The lock is not part of this PR.