## Tee surface

Tee surface — Redirect input to multiple surfaces

## Functions

cairo_surface_t * | cairo_tee_surface_create ()
void | cairo_tee_surface_add ()
cairo_surface_t * | cairo_tee_surface_index ()
void | cairo_tee_surface_remove ()

## Types and Values

#define | CAIRO_HAS_TEE_SURFACE

## Description

The "tee" surface supports redirecting all its input to multiple surfaces.

## Functions

### cairo_tee_surface_create ()

    cairo_surface_t *
    cairo_tee_surface_create (cairo_surface_t *primary);

Creates a new "tee" surface.

The `primary` surface is used when querying surface options, like font options and extents.

Operations performed on the tee surface will be replayed on any surface added to it.

#### Parameters

primary | the primary cairo_surface_t |

#### Returns

the newly created surface

Since: 1.10

### cairo_tee_surface_add ()

    void
    cairo_tee_surface_add (cairo_surface_t *abstract_surface,
                           cairo_surface_t *target);

Adds a new target surface to the list of replicas of a tee surface.

#### Parameters

abstract_surface | a cairo_tee_surface_t |
target | the surface to add |

Since: 1.10

### cairo_tee_surface_index ()

    cairo_surface_t *
    cairo_tee_surface_index (cairo_surface_t *abstract_surface,
                             unsigned int index);

Retrieves the replica surface at the given index.

The primary surface used to create the cairo_tee_surface_t is always set at the zero index.

#### Parameters

abstract_surface | a cairo_tee_surface_t |
index | the index of the replica to retrieve |

#### Returns

the surface at the given index

Since: 1.10

### cairo_tee_surface_remove ()

    void
    cairo_tee_surface_remove (cairo_surface_t *abstract_surface,
                              cairo_surface_t *target);

Removes the given surface from the list of replicas of a tee surface.

#### Parameters

abstract_surface | a cairo_tee_surface_t |
target | the surface to remove |

Since: 1.10

## Types and Values

### CAIRO_HAS_TEE_SURFACE

    #define CAIRO_HAS_TEE_SURFACE

Defined if the tee surface backend is available.

Since: 1.10

## See Also

cairo_surface_t