### Navigation

- index
- modules |
- previous |
- Pycairo v1.10.0 documentation »

# Pycairo C API

This manual documents the API used by C and C++ programmers who want to write extension modules that use pycairo.

## To access the Pycairo C API

Example showing how to import the pycairo API:

    #include "py3cairo.h"

    PyMODINIT_FUNC
    PyInit_client(void)
    {
      PyObject *m;

      m = PyModule_Create(&clientmodule);
      if (m == NULL)
          return NULL;
      if (import_cairo() < 0)
          return NULL;
      /* additional initialization can happen here */
      return m;
    }

## Pycairo Objects

Objects:

    PycairoContext
    PycairoFontFace
    PycairoToyFontFace
    PycairoFontOptions
    PycairoMatrix
    PycairoPath
    PycairoPattern
    PycairoSolidPattern
    PycairoSurfacePattern
    PycairoGradient
    PycairoLinearGradient
    PycairoRadialGradient
    PycairoScaledFont
    PycairoSurface
    PycairoImageSurface
    PycairoPDFSurface
    PycairoPSSurface
    PycairoSVGSurface
    PycairoWin32Surface
    PycairoXCBSurface
    PycairoXlibSurface

## Pycairo Types

Types:

    PyTypeObject *Context_Type;
    PyTypeObject *FontFace_Type;
    PyTypeObject *ToyFontFace_Type;
    PyTypeObject *FontOptions_Type;
    PyTypeObject *Matrix_Type;
    PyTypeObject *Path_Type;
    PyTypeObject *Pattern_Type;
    PyTypeObject *SolidPattern_Type;
    PyTypeObject *SurfacePattern_Type;
    PyTypeObject *Gradient_Type;
    PyTypeObject *LinearGradient_Type;
    PyTypeObject *RadialGradient_Type;
    PyTypeObject *ScaledFont_Type;
    PyTypeObject *Surface_Type;
    PyTypeObject *ImageSurface_Type;
    PyTypeObject *PDFSurface_Type;
    PyTypeObject *PSSurface_Type;
    PyTypeObject *SVGSurface_Type;
    PyTypeObject *Win32Surface_Type;
    PyTypeObject *XCBSurface_Type;
    PyTypeObject *XlibSurface_Type;

## Functions

cairo_t * `PycairoContext_GET`(obj)

  get the C cairo_t * object out of the PycairoContext *obj

PyObject * `PycairoContext_FromContext`(cairo_t *ctx, PyTypeObject *type, PyObject *base)

PyObject * `PycairoFontFace_FromFontFace`(cairo_font_face_t *font_face)

PyObject * `PycairoFontOptions_FromFontOptions`(cairo_font_options_t *font_options)

PyObject * `PycairoMatrix_FromMatrix`(const cairo_matrix_t *matrix)

PyObject * `PycairoPath_FromPath`(cairo_path_t *path)

PyObject * `PycairoPattern_FromPattern`(cairo_pattern_t *pattern, PyObject *base)

PyObject * `PycairoScaledFont_FromScaledFont`(cairo_scaled_font_t *scaled_font)

PyObject * `PycairoSurface_FromSurface`(cairo_surface_t *surface, PyObject *base)

int `PycairoCheck_Status`(cairo_status_t status)

### Navigation

- index
- modules |
- previous |
- Pycairo v1.10.0 documentation »