The screenshot/streamed-frame offscreen render path hardcoded
_asciiLigaturesAvailable = NO, so ASCII programming ligatures
(-> => != etc.) never appeared in screenshots even when the
profile enabled them and the font supported them. Compute the
value the same way the onscreen path does, and defer the
offscreen helper's didFinishSetup until after it is computed so
the corrected value (and zippy state) propagates to the
attributed string builder.
Also pin isRetina/antiAliasedShift to the render scale in
renderLinesToImage: (it was only done in renderImageWithLines:),
so stroke weight does not depend on window state.
Cleanup:
- Fold renderLinesToImage: and the renderImageWithLines: family
into one shared renderOffscreenImageForLines:... core so the
bitmap/context/transform/draw scaffolding has a single copy.
The duplication is what let the isRetina fix land in only one
method.
- Extract computeAsciiLigaturesAvailable so the onscreen and
offscreen paths share one definition of ligature availability.