## 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);
    CoglTexture *       meta_shaped_texture_get_texture     (MetaShapedTexture *stex);
    void                meta_shaped_texture_set_mask_texture
                                                            (MetaShapedTexture *stex,
                                                             CoglTexture *mask_texture);
    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, AtkImplementorIface and MetaCullable.

## 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 `unobscured_region` and the damage area. If `unobscured_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_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_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]