xref: /aosp_15_r20/external/fonttools/Lib/fontTools/pens/cairoPen.py (revision e1fe3e4ad2793916b15cccdc4a7da52a7e1dd0e9)
1"""Pen to draw to a Cairo graphics library context."""
2
3from fontTools.pens.basePen import BasePen
4
5
6__all__ = ["CairoPen"]
7
8
9class CairoPen(BasePen):
10    """Pen to draw to a Cairo graphics library context."""
11
12    def __init__(self, glyphSet, context):
13        BasePen.__init__(self, glyphSet)
14        self.context = context
15
16    def _moveTo(self, p):
17        self.context.move_to(*p)
18
19    def _lineTo(self, p):
20        self.context.line_to(*p)
21
22    def _curveToOne(self, p1, p2, p3):
23        self.context.curve_to(*p1, *p2, *p3)
24
25    def _closePath(self):
26        self.context.close_path()
27