/* * bgitest — демонстрация BGI-слоя graphics.h (режим 320×256×256). * * Собирается с `--gfx 256` (см. Makefile). Показывает примитивы * Фазы 1 (рамка/бары/линии/окружность/текст) и Фазы 2a * (эллипс/дуга/полигон) — визуальная проверка в MAME. */ #include int main(void) { int i, mx, my; /* треугольник для drawpoly (замкнут повтором первой точки). */ static const int tri[] = { 120, 244, 210, 244, 165, 210, 120, 244 }; initgraph(); mx = getmaxx(); /* 319 */ my = getmaxy(); /* 255 */ cleardevice(); setcolor(WHITE); rectangle(0, 0, mx, my); setcolor(YELLOW); outtextxy(96, 6, "SPRINTER BGI P2"); /* Палитровая полоса: 15 залитых баров цветами 1..15. */ for (i = 1; i <= 15; i++) { int x0 = 8 + (i - 1) * 20; setcolor(i); bar(x0, 22, x0 + 16, 40); } /* Окружность (Фаза 1). */ setcolor(LIGHTRED); circle(60, 120, 40); /* Полный эллипс (Фаза 2a). */ setcolor(LIGHTGREEN); ellipse(165, 120, 0, 360, 70, 40); /* Верхняя половина дуги (Фаза 2a). */ setcolor(LIGHTCYAN); arc(270, 140, 0, 180, 35); /* Треугольник через drawpoly (Фаза 2a). */ setcolor(LIGHTMAGENTA); drawpoly(4, tri); /* Веер линий слева. */ for (i = 150; i <= my - 6; i += 8) { setcolor(1 + ((i - 150) / 8) % 15); line(6, 175, 110, i); } setcolor(YELLOW); outtextxy(120, 190, "circle ellipse arc poly"); for (;;) { } /* держим картинку на экране */ }