libc: BGI Фаза 2d-2 — setlinestyle (стили и толщина линий)

setlinestyle/getlinesettings: SOLID/DOTTED/CENTER/DASHED/USERBIT +
NORM/THICK. _bgi_styled_line — Брезенхэм с 16-битной маской (пропуск
пикселя по биту) и дублированием ±1 перпендикулярно оси для THICK;
SOLID+NORM идёт быстрым путём (accel _bgi_lineseg). line/lineto/linerel/
rectangle/drawpoly переведены на него. Проверено в MAME (tests/bgitest).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-08 16:14:03 +03:00
parent 25cb7ba554
commit b26560c409
14 changed files with 148 additions and 40 deletions
+9
View File
@@ -0,0 +1,9 @@
/* setlinestyle — задать стиль, пользовательскую маску и толщину линий. */
#include "_bgi.h"
void setlinestyle(int linestyle, unsigned upattern, int thickness)
{
_bgi_line_style = (uint8_t)linestyle;
_bgi_line_pattern = (uint16_t)upattern;
_bgi_line_thick = (thickness >= THICK_WIDTH) ? THICK_WIDTH : NORM_WIDTH;
}