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:
@@ -58,6 +58,14 @@ void _bgi_ellipse_arc(int cx, int cy, int stangle, int endangle,
|
||||
/* Целочисленный sqrt (0..~32767) для fillellipse (_bgi_isqrt.c). */
|
||||
int _bgi_isqrt(int n);
|
||||
|
||||
/* ---- Состояние линий (_bgi_line_state.c) ------------------------- */
|
||||
extern uint8_t _bgi_line_style; /* SOLID_LINE..USERBIT_LINE */
|
||||
extern uint8_t _bgi_line_thick; /* 1 (NORM) или 3 (THICK) */
|
||||
extern uint16_t _bgi_line_pattern; /* маска для USERBIT_LINE */
|
||||
|
||||
/* Отрезок текущим стилем/толщиной линии (_bgi_styled_line.c). */
|
||||
void _bgi_styled_line(int x0, int y0, int x1, int y1, uint8_t color);
|
||||
|
||||
/* ---- Состояние заливки (_bgi_fill_state.c) ----------------------- */
|
||||
extern uint8_t _bgi_fill_pattern; /* *_FILL */
|
||||
extern uint8_t _bgi_fill_color;
|
||||
|
||||
Reference in New Issue
Block a user