libc: BGI Фаза 2d-3 — settextstyle (масштаб и направление текста)
settextstyle/gettextsettings/textwidth/textheight: DEFAULT_FONT 8×8, целочисленный масштаб 1..10, HORIZ/VERT (поворот 90° CCW), прозрачный фон. Свой scaled-рендер (_bgi_draw_scaled) читает глиф через leaf _bgi_font_rows (interleaved системный шрифт) и рисует блоки size×size raw в одной W3-скобке. outtext/outtextxy переведены на него. Проверено в MAME (tests/bgitest): размеры 1..4 + вертикальный текст. Доки обновлены (Ф2d-1/2/3 готовы; осталось viewport/клиппинг). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+14
-7
@@ -46,13 +46,20 @@ outtext/outtextxy. initgraph грузит EGA-палитру 0..15. Пакет
|
||||
- 2c: floodfill (scanline span; медленный — self-bracket чтение, но
|
||||
корректный), pieslice, sector.
|
||||
|
||||
**Фаза 2d (осталось):** getimage/putimage/imagesize (COPY/XOR/AND/OR/
|
||||
NOT_PUT), setviewport/clearviewport + клиппинг, settextstyle/textwidth/
|
||||
textheight (размеры/направление), setlinestyle, setactivepage/
|
||||
setvisualpage (2 страницы в gfx уже есть), setaspectratio (пиксели
|
||||
320×256 неквадратные — круги визуально эллиптичны), setfillpattern
|
||||
(USER_FILL). Оптимизации: floodfill на raw-чтении; ellipse/arc в одной
|
||||
W3-сессии. Потом drv16 + sprinter_gfx16.lib (--gfx 16).
|
||||
**Фаза 2d-1/2/3 ГОТОВЫ (2026-07-08, MAME tests/bgitest):**
|
||||
- 2d-1: getimage/putimage/imagesize (COPY/XOR/OR/AND/NOT_PUT), raw-блит
|
||||
в одной W3-скобке (_gfx_getpixel256_raw).
|
||||
- 2d-2: setlinestyle/getlinesettings (SOLID/DOTTED/CENTER/DASHED/USERBIT
|
||||
+ NORM/THICK) — line/lineto/linerel/rectangle/drawpoly.
|
||||
- 2d-3: settextstyle/gettextsettings/textwidth/textheight — масштаб
|
||||
1..10, HORIZ/VERT, прозрачный фон (свой scaled-рендер поверх 8×8).
|
||||
|
||||
**Фаза 2d (осталось):** setviewport/clearviewport + клиппинг (инвазивно —
|
||||
трогает все примитивы), settextjustify, setaspectratio (пиксели 320×256
|
||||
неквадратные — круги визуально эллиптичны), setfillpattern (USER_FILL),
|
||||
setactivepage/setvisualpage (2 страницы в gfx уже есть). Оптимизации:
|
||||
floodfill на raw-чтении; ellipse/arc в одной W3-сессии. Потом drv16 +
|
||||
sprinter_gfx16.lib (--gfx 16).
|
||||
Acceptance: типичная BGI-программа переносится без существенных
|
||||
правок. Референс: Turbo C 2.x BGIDEMO.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user