Files
Sprinter-SDCC/tests/bgitest/bgitest.c
T
snark13 b26560c409 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>
2026-07-08 16:14:03 +03:00

54 lines
1.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* bgitest — демонстрация BGI-слоя graphics.h (режим 320×256×256).
* Фаза 2d-2: setlinestyle (SOLID/DOTTED/CENTER/DASHED + THICK).
*/
#include <graphics.h>
int main(void)
{
int mx, my, i, y;
static const char *name[4] = { "SOLID", "DOTTED", "CENTER", "DASHED" };
initgraph();
mx = getmaxx();
my = getmaxy();
cleardevice();
setcolor(WHITE);
rectangle(0, 0, mx, my);
setcolor(YELLOW);
outtextxy(104, 6, "BGI linestyle");
/* Четыре стиля тонкой линией. */
for (i = 0; i < 4; i++) {
y = 40 + i * 22;
setcolor(WHITE);
outtextxy(12, y - 3, name[i]);
setcolor(LIGHTGREEN);
setlinestyle(i, 0, NORM_WIDTH);
line(80, y, 300, y);
}
/* Толстые версии тех же стилей. */
for (i = 0; i < 4; i++) {
y = 140 + i * 16;
setcolor(LIGHTCYAN);
setlinestyle(i, 0, THICK_WIDTH);
line(80, y, 300, y);
}
setcolor(WHITE);
outtextxy(12, 150, "THICK");
/* Прямоугольник пунктиром + диагонали. */
setcolor(LIGHTMAGENTA);
setlinestyle(DASHED_LINE, 0, NORM_WIDTH);
rectangle(20, 212, 130, 250);
line(20, 212, 130, 250);
setcolor(WHITE);
setlinestyle(SOLID_LINE, 0, NORM_WIDTH);
outtextxy(150, 228, "dashed rect");
for (;;) { }
}