Я разобрался в чём дело с заливкой. Всё из-за того, что ломаная линия должна состоять из непрерывных отрезков. Для этого команда Move To делается лишь 1 раз. И Line To сама устанавливает позицию пера на новом месте.

Правильно так:
## Код:
```
C.cairo_move_to(ctx, pts[0].x, pts[0].y);
FOR i := 1 TO n-1 DO
   C.cairo_line_to(ctx, pts[i].x, pts[i].y)
END;
```


Однако (из-за антиалиасинга?) получается вот такой результат:Вложение:
cairo-fill.png [ 15.16 КБ | Просмотров: 21715 ]


На данный момент с Cairo реализована только отрисовка ломаных линий. Сплайны Безье остались пока в WinAPI.
Вложение:HostCairo-v0.1.zip[22.81 КБ]
Скачиваний: 738
