Windows 3.x High-Speed Communications Library and Tools.
Find a file
Scott Duensing 0ff633f605 Replace GDI rendering with font atlas and direct pixel writes
Build a monochrome font atlas at startup (BuildAtlas), then render
terminal cells by writing palette indices directly into 8bpp DIB row
buffers (RenderRow).  Each dirty row reaches the screen via a single
SetDIBitsToDevice call instead of ~12 GDI calls (TextOut, SetTextColor,
SetBkColor, BitBlt).  This reduces per-frame GDI overhead by ~10x,
targeting smooth playback of BBS door games on Win16.

Key changes:
- TTermCell FG/BG from TColor to Byte (palette index 0-15)
- Font atlas: render 256 CP437 glyphs into monochrome bitmap, extract
  per-glyph pixel masks via GetBitmapBits
- Per-row 8bpp DIB buffers via GlobalAlloc replace dual memory DCs
- RenderRow: zero-GDI atlas lookup + byte writes with cursor overlay
- FlipToScreen: ScrollDC on screen only, SetDIBitsToDevice per dirty row
- Text blink via FTextBlinkOn + re-render replaces dual-buffer phase swap
- Removed: CreateBuffers, DestroyBuffers, PaintLine, ClearBufRect,
  RedrawBuffers, DrawRow, FBufDC/FBufBmp/FBlinkPhase fields

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 23:21:22 -06:00
delphi Replace GDI rendering with font atlas and direct pixel writes 2026-02-26 23:21:22 -06:00
drivers Initial commit. 2026-02-23 20:53:02 -06:00
drv Optimize TKPAnsi rendering with batched TextOut and dirty row tracking 2026-02-26 21:15:51 -06:00
vbx VBX does not work. Moving to Delphi. 2026-02-25 22:06:08 -06:00
.gitattributes Initial commit. 2026-02-23 20:53:02 -06:00
.gitignore VBX does not work. Moving to Delphi. 2026-02-25 22:06:08 -06:00