b26560c409
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>
18 lines
680 B
C
18 lines
680 B
C
/*
|
|
* drawpoly — ломаная по numpoints точкам (массив x0,y0,x1,y1,…),
|
|
* текущим цветом. Как в Turbo-C, контур НЕ замыкается автоматически:
|
|
* чтобы получить замкнутый полигон, повторите первую точку последней.
|
|
*/
|
|
#include "_bgi.h"
|
|
|
|
void drawpoly(int numpoints, const int *polypoints)
|
|
{
|
|
int i;
|
|
if (numpoints < 2) return;
|
|
for (i = 0; i < numpoints - 1; i++) {
|
|
_bgi_styled_line(polypoints[2 * i], polypoints[2 * i + 1],
|
|
polypoints[2 * i + 2], polypoints[2 * i + 3],
|
|
_bgi_fg);
|
|
}
|
|
}
|