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:
2026-07-08 16:18:48 +03:00
parent b26560c409
commit 657c6d2955
16 changed files with 210 additions and 45 deletions
+17
View File
@@ -0,0 +1,17 @@
/*
* _bgi_font_rows (drv256) — 8 байт строк глифа символа c.
* Шрифт системный, interleaved: offset = row*256 + char (MSB-first),
* см. memory/sprinter_font_format. Грузится лениво (_gfx_font_ensure).
*/
#include "../_bgi.h"
#include "../../gfx/_gfx.h"
void _bgi_font_rows(unsigned char c, uint8_t *rows8)
{
const uint8_t *f;
int r;
_gfx_font_ensure();
f = _gfx_font_ptr;
for (r = 0; r < 8; r++)
rows8[r] = f[r * 256 + c];
}