libc: BGI Фаза 2c — floodfill/pieslice/sector
floodfill — скан-строчная заливка области до границы (self-bracket чтение: корректно, но медленно; raw-оптимизация в TODO). pieslice/sector — залитые сектора круга/эллипса: границу (центр→дуга→ центр) прогоняем через _bgi_poly_edge и заливаем min/max по строкам, как fillpoly (для >180° возможен перелив — упрощение). Проверено в MAME (tests/bgitest): floodfill круга, круговая диаграмма, штрих-сектор. Доки/справочник/память обновлены (Ф2a-c готовы; Ф2d = images/viewport/ text-style/line-style — осталось). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -121,6 +121,18 @@ void fillpoly(int numpoints, const int *polypoints);
|
||||
/* fillellipse — залитый эллипс (полуоси xradius,yradius). */
|
||||
void fillellipse(int x, int y, int xradius, int yradius);
|
||||
|
||||
/* floodfill — заливка области, содержащей (x,y), текущим стилем до
|
||||
* границы цвета border. Заливка сплошная цветом заливки (паттерн в
|
||||
* floodfill пока не применяется — упрощение). */
|
||||
void floodfill(int x, int y, int border);
|
||||
|
||||
/* pieslice — залитый сектор круга; sector — эллиптический сектор.
|
||||
* Контур (дуга + два радиуса) тек. цветом, нутро — стилем заливки.
|
||||
* Для секторов >180° возможен перелив в «выемку» (min/max по строке). */
|
||||
void pieslice(int x, int y, int stangle, int endangle, int radius);
|
||||
void sector(int x, int y, int stangle, int endangle,
|
||||
int xradius, int yradius);
|
||||
|
||||
/* ---- Текст ------------------------------------------------------- *
|
||||
* Шрифт 8×8 (системный). Рисуется текущим цветом на фоновом. */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user