## MetaShapedTexture

MetaShapedTexture — An actor to draw a masked texture.

## Synopsis

    struct              MetaShapedTexture;
    struct              MetaShapedTextureClass;
    ClutterActor *      meta_shaped_texture_new             (void);
    void                meta_shaped_texture_set_create_mipmaps
                                                            (MetaShapedTexture *stex,
                                                             gboolean create_mipmaps);
    gboolean            meta_shaped_texture_update_area     (MetaShapedTexture *stex,
                                                             int x,
                                                             int y,
                                                             int width,
                                                             int height,
                                                             cairo_region_t *unobscured_region);
    void                meta_shaped_texture_set_pixmap      (MetaShapedTexture *stex,
                                                             Pixmap pixmap);
    CoglTexture *       meta_shaped_texture_get_texture     (MetaShapedTexture *stex);
    void                meta_shaped_texture_set_mask_texture
                                                            (MetaShapedTexture *stex,
                                                             CoglTexture *mask_texture);
    void                meta_shaped_texture_set_clip_region (MetaShapedTexture *stex,
                                                             cairo_region_t *clip_region);
    cairo_surface_t *   meta_shaped_texture_get_image       (MetaShapedTexture *stex,
                                                             cairo_rectangle_int_t *clip);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----ClutterActor
                   +----MetaShapedTexture

## Implemented Interfaces

MetaShapedTexture implements ClutterContainer, ClutterScriptable, ClutterAnimatable and AtkImplementorIface.

## Description

## Details

### struct MetaShapedTexture

    struct MetaShapedTexture;

The MetaShapedTexture structure contains only private data and should be accessed using the provided API

### struct MetaShapedTextureClass

    struct MetaShapedTextureClass {
    };

### meta_shaped_texture_new ()

    ClutterActor *      meta_shaped_texture_new             (void);

### meta_shaped_texture_set_create_mipmaps ()

    void                meta_shaped_texture_set_create_mipmaps
                                                            (MetaShapedTexture *stex,
                                                             gboolean create_mipmaps);

### meta_shaped_texture_update_area ()

    gboolean            meta_shaped_texture_update_area     (MetaShapedTexture *stex,
                                                             int x,
                                                             int y,
                                                             int width,
                                                             int height,
                                                             cairo_region_t *unobscured_region);

Repairs the damaged area indicated by `x`, `y`, `width` and `height` and queues a redraw for the intersection `visibible_region` and the damage area. If `visibible_region` is `NULL` a redraw will always get queued.

`stex` : | MetaShapedTexture
`x` : | the x coordinate of the damaged area
`y` : | the y coordinate of the damaged area
`width` : | the width of the damaged area
`height` : | the height of the damaged area
`unobscured_region` : | The unobscured region of the window or `NULL` if there is no valid one (like when the actor is transformed or has a mapped clone)
Returns : | Whether a redraw have been queued or not

### meta_shaped_texture_set_pixmap ()

    void                meta_shaped_texture_set_pixmap      (MetaShapedTexture *stex,
                                                             Pixmap pixmap);

`stex` : | The MetaShapedTexture
`pixmap` : | The pixmap you want the stex to assume

### meta_shaped_texture_get_texture ()

    CoglTexture *       meta_shaped_texture_get_texture     (MetaShapedTexture *stex);

`stex` : | The MetaShapedTexture
Returns : | the unshaped texture. [transfer none]

### meta_shaped_texture_set_mask_texture ()

    void                meta_shaped_texture_set_mask_texture
                                                            (MetaShapedTexture *stex,
                                                             CoglTexture *mask_texture);

### meta_shaped_texture_set_clip_region ()

    void                meta_shaped_texture_set_clip_region (MetaShapedTexture *stex,
                                                             cairo_region_t *clip_region);

Provides a hint to the texture about what areas of the texture are not completely obscured and thus need to be painted. This is an optimization and is not supposed to have any effect on the output.

Typically a parent container will set the clip region before painting its children, and then unset it afterwards.

`stex` : | a MetaShapedTexture
`clip_region` : | the region of the texture that is visible and should be painted.

### meta_shaped_texture_get_image ()

    cairo_surface_t *   meta_shaped_texture_get_image       (MetaShapedTexture *stex,
                                                             cairo_rectangle_int_t *clip);

Flattens the two layers of the shaped texture into one ARGB32 image by alpha blending the two images, and returns the flattened image.

`stex` : | A MetaShapedTexture
`clip` : | A clipping rectangle, to help prevent extra processing. In the case that the clipping rectangle is partially or fully outside the bounds of the texture, the rectangle will be clipped.
Returns : | a new cairo surface to be freed with `cairo_surface_destroy()`. [transfer full]