Skip drawing the clock outline when it's invisible - #164
Merged
Merged
Conversation
With a solid background (the default) the outline stroke is transparent, but every redraw still combined a clip geometry and stroked the text. Skipping it cuts the clock's idle CPU by about 40% (4.6 to 2.7 ms per second measured live) with pixel-identical output in background and outline modes.
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.
With a solid background (the default), the outline stroke is transparent, but every redraw still built a clip geometry with
Geometry.Combineand stroked the text with it. This skips the outline when it can't be seen, and builds the clip only when it's actually drawn.Measured
Unchanged output
Rendered the clock with both builds and diffed the PNGs: 0 differing pixels with a background, with a thin outline, and with a thick outline.