# Backend requirements

List of features required from the 2D graphics library to implement a backend for `resvg`.

- Composition modes:
  - Clear
  - Darken
  - DestinationIn
  - DestinationOut
  - Lighten
  - Multiply
  - Screen
  - SourceAtop
  - SourceIn
  - SourceOut
  - SourceOver
  - Xor
- Filling:
  - With color
  - With linear or radial gradient
  - With pattern (texture/image)
  - Fill rules:
    - NonZero/Winding
    - EvenOdd/OddEven
  - Opacity
- Stroking:
  - With color
  - With linear or radial gradient
  - With pattern (texture/image)
  - Dasharray + Dashoffset
  - Miterlimit
  - Opacity
  - Width
  - LineCap: *butt*, *round* and *square*
  - LineJoin: *miter*, *round* and *bevel*
- Bézier paths:
  - Anti-aliasing
  - Required segments support:
    - MoveTo
    - LineTo
    - CurveTo (cubic)
    - ClosePath
