Uladzimir KarpenkaandClaude Opus 4.8 2a7bf8528a Cache SampleRateOverlay to a bitmap instead of redrawing per frame
The span-selector panel was rendered directly onto the spectrum canvas
every frame via DrawSelf, doing ~30 TextWidth + ~11 TextOut Canvas calls.
On Cocoa these text ops are very expensive (~10.6 ms/frame, ~30% of a
core) and dominated DrawSpectrum.

Render the panel once into a per-pixel-alpha cache bitmap and only
composite it over the spectrum each frame; rebuild only when state
changes (rate, hover, hidden, bounds). The cache is built with the
two-background method (render over black and white, derive straight
alpha + color) so layered semi-transparent button fills and antialiased
text composite over the live spectrum exactly as before.

Cuts the overlay phase from ~10.6 ms to ~0.2 ms per frame; DrawSpectrum
drops ~13.8 ms -> ~2.7 ms. Mirrors the caching VfoOverlay already uses.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-29 15:10:30 +03:00
2026-03-26 22:50:55 +03:00
2026-03-09 18:48:24 +03:00
2026-04-22 22:09:42 +03:00
2026-05-29 08:00:22 +03:00
2026-05-28 15:59:49 +03:00
2026-05-02 13:39:46 +03:00
2026-05-28 15:59:49 +03:00
2026-05-28 15:59:49 +03:00
2026-03-09 18:48:24 +03:00
2026-05-28 15:59:49 +03:00
2026-05-25 20:16:37 +03:00
2026-05-25 14:43:05 +03:00
2026-05-25 14:43:05 +03:00
2026-05-25 14:43:05 +03:00
2026-05-25 14:43:05 +03:00
2026-05-25 14:43:05 +03:00
2026-05-26 16:24:07 +03:00
2026-05-21 15:19:43 +03:00
2026-05-28 15:59:49 +03:00
2026-03-05 16:19:26 +03:00
2026-05-28 15:59:49 +03:00
2026-05-28 15:59:49 +03:00
2026-05-28 15:59:49 +03:00
2026-05-21 21:37:25 +03:00
2026-05-24 16:29:13 +03:00
2026-03-05 16:19:26 +03:00
S
Description
No description provided
Readme
12 MiB
Languages
Pascal 96.3%
Python 3%
Shell 0.6%