MetaShapedTexture

MetaShapedTexture — An actor to draw a masked texture.

Functions

Signals

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── ClutterActor
            ╰── MetaShapedTexture

Description

Functions

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.

Parameters

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);

Parameters

stex

The MetaShapedTexture

 

Returns

the unshaped texture.

[transfer none]


meta_shaped_texture_set_overlay_path ()

void
meta_shaped_texture_set_overlay_path (MetaShapedTexture *stex,
                                      cairo_region_t *overlay_region,
                                      cairo_path_t *overlay_path);

Parameters

stex

a MetaShapedTexture

 

overlay_region

A region containing the parts of the mask to overlay. All rectangles in this region are wiped clear to full transparency, and the overlay path is clipped to this region.

 

overlay_path

This path will be painted onto the mask texture with a fully opaque source. Due to the lack of refcounting in cairo_path_t, ownership of the path is assumed.

[transfer full]

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.

Parameters

stex

a MetaShapedTexture

 

clip_region

the region of the texture that is visible and should be painted.

 

meta_shaped_texture_set_opaque_region ()

void
meta_shaped_texture_set_opaque_region (MetaShapedTexture *stex,
                                       cairo_region_t *opaque_region);

As most windows have a large portion that does not require blending, we can easily turn off blending if we know the areas that do not require blending. This sets the region where we will not blend for optimization purposes.

Parameters

stex

a MetaShapedTexture

 

opaque_region

the region of the texture that can have blending turned off.

[transfer full]

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.

Parameters

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]


meta_shaped_texture_ensure_mask ()

void
meta_shaped_texture_ensure_mask (MetaShapedTexture *stex,
                                 cairo_region_t *shape_region,
                                 gboolean has_frame);

meta_shaped_texture_dirty_mask ()

void
meta_shaped_texture_dirty_mask (MetaShapedTexture *stex);

Signal Details

The “size-changed” signal

void
user_function (MetaShapedTexture *metashapedtexture,
               gpointer           user_data)

Flags: Run Last