A pegged knob gets room, and the exe stops looking packed - #28
Merged
Conversation
CHANGED: The track now grows past where the knob was left, not past the end it was pushed through. - A drag does not stop at the end, so a pegged bound sits out in the overshoot and the domain widens to hold it regardless; a fifth added to the old end landed inside that, and the knob came to rest against the very corner it had just been pushed through. CHANGED: The growth floor is one step at the row's own precision rather than a flat 1. - On an attack speed's `1.30 to 1.45` a flat 1 grew the track sevenfold in a single release and left the knob 87% of the way across it. CHANGED: Only the bound that was dragged grows the track, not one carried to an end by the other knob crossing it — which is what the comment above it already claimed.
Microsoft's cloud classifier scored an unsigned release as Trojan:Win32/Wacatac.B!ml — one verdict out of seventy-one engines. Until the binaries are signed the answer is a set of cheap signals, each of which is defensible on its own terms. ADDED: An application manifest, declaring `asInvoker` and the standard `supportedOS` block. - It declares no DPI awareness on purpose: SDL sets that at video init, and taking the decision away from SDL would move the overlay on a high-DPI display. ADDED: `/guard:cf` on MSVC builds. - `/CETCOMPAT` is deliberately not here: it is a promise about the whole image, statically linked SDL, curl and zlib included, and a wrong one crashes rather than degrading. ADDED: `scripts/bin2c.py`, which all three embedded assets now go through. CHANGED: The fonts, the UI glyphs and the icon are embedded as their own bytes instead of base85-encoded, stb_compress'd blobs. - An opaque high-entropy blob beside a routine that decodes it into a fresh buffer is a packer's shape. Unpacked, `.rdata` holds a TTF table directory and a PNG signature instead. - The executable comes out ~21KB smaller regardless: the icon sheds 34KB, the four faces add 13KB. `src/fontin_data.inc` grows to 653KB of generated source, which is the real cost. CHANGED: The embedded icon is the 128px master downscaled to 64. - It is only ever drawn at tray size or as a window icon; the master stays the source of the .ico, where the big entries are the ones Explorer uses. REMOVED: The base85 decoder in `src/icon.cpp`, and the font scripts' dependency on a configured build tree for ImGui's `binary_to_compressed_c.cpp`.
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.
Release notes
CHANGED: A range slider's knob dragged hard against either end now comes back with room to keep
going, instead of sticking to the corner and having to be dragged past the track again.
CHANGED: On a filter whose numbers have decimals, pegging a knob no longer flings it most of the
way across the track.
CHANGED: The Windows executable no longer packs its fonts and icon into compressed blobs it
unpacks at startup, and now declares itself to Windows the way a normal application does — both
to reduce the chance Microsoft Defender flags the unsigned download as malware.
Review notes
Microsoft's cloud classifier scored an unsigned release as
Trojan:Win32/Wacatac.B!ml— oneverdict out of seventy-one engines, the shape of a false positive. Until the binaries are signed
the answer is a set of cheap signals, each defensible on its own terms. The complementary half is
a WDSI false-positive report per release, which is not code and is not in here.
ADDED: An application manifest, declaring
asInvokerand the standardsupportedOSblock.away from SDL would move the overlay on a high-DPI display.
ADDED:
/guard:cfon MSVC builds./CETCOMPATis deliberately not here: it is a promise about the whole image, statically linkedSDL, curl and zlib included, and a wrong one crashes rather than degrading.
ADDED:
scripts/bin2c.py, which all three embedded assets now go through.CHANGED: The range slider's track grows past where the knob was left, not past the end it was
pushed through.
widens to hold it regardless; a fifth added to the old end landed inside that, and the knob came
to rest against the very corner it had just been pushed through. This is why the gesture read as
doing nothing at all.
CHANGED: The growth floor is one step at the row's own precision rather than a flat 1.
1.30 to 1.45a flat 1 grew the track sevenfold in a single release andleft the knob 87% of the way across it.
CHANGED: Only the bound that was dragged grows the track, not one carried to an end by the other
knob crossing it — which is what the comment above it already claimed.
CHANGED: The fonts, the UI glyphs and the icon are embedded as their own bytes instead of
base85-encoded, stb_compress'd blobs.
shape. Unpacked,
.rdataholds a TTF table directory and a PNG signature instead.src/fontin_data.incgrows to 653KB of generated source, which is the real cost.FontDataOwnedByAtlas = falsefor the embedded faces, as it already was formapped ones. That config must never reach
AddFontFromFileTTF, which allocates its own bufferand would then leak it.
CHANGED: The embedded icon is the 128px master downscaled to 64.
where the big entries are the ones Explorer uses.
REMOVED: The base85 decoder in
src/icon.cpp, and the font scripts' dependency on a configuredbuild tree for ImGui's
binary_to_compressed_c.cpp.Tested: suite green (19/19); Settings and the idle marker captured on Xvfb, so all four Fontin
faces and the glyph subset are confirmed rendering from the new arrays and the icon loads without
complaint. The slider's peg-growth was verified by replaying the release-frame arithmetic rather
than by driving a drag — the widget has no test coverage, since it needs ImGui and
ppc_corelinksnone — so it wants a hands-on check in game before this ships. The manifest and
/guard:cfareWindows-only and unbuildable here; CI is the check on those.
🤖 Generated with Claude Code