## X11 Texture From Pixmap

X11 Texture From Pixmap — Functions for creating and manipulating 2D meta textures derived from X11 pixmaps.

## Functions

CoglBool | cogl_is_texture_pixmap_x11 ()
CoglTexturePixmapX11 * | cogl_texture_pixmap_x11_new ()
void | cogl_texture_pixmap_x11_update_area ()
CoglBool | cogl_texture_pixmap_x11_is_using_tfp_extension ()
void | cogl_texture_pixmap_x11_set_damage_object ()

## Types and Values

| CoglTexturePixmapX11
enum | CoglTexturePixmapX11ReportLevel

## Description

These functions allow high-level meta textures (See the CoglMetaTexture interface) that derive their contents from an X11 pixmap.

## Functions

### cogl_is_texture_pixmap_x11 ()

    CoglBool
    cogl_is_texture_pixmap_x11 (void *object);

Checks whether `object` points to a CoglTexturePixmapX11 instance.

#### Parameters

object | A pointer to a CoglObject |

#### Returns

`TRUE` if the object is a CoglTexturePixmapX11, and `FALSE` otherwise

Since: 1.4

Stability Level: Unstable

### cogl_texture_pixmap_x11_new ()

    CoglTexturePixmapX11 *
    cogl_texture_pixmap_x11_new (CoglContext *context,
                                 uint32_t pixmap,
                                 CoglBool automatic_updates,
                                 CoglError **error);

Creates a texture that contains the contents of `pixmap` . If `automatic_updates` is `TRUE` then Cogl will attempt to listen for damage events on the pixmap and automatically update the texture when it changes.

#### Parameters

context | A CoglContext |
pixmap | A X11 pixmap ID |
automatic_updates | Whether to automatically copy the contents of the pixmap to the texture. |
error | A CoglError for exceptions |

#### Returns

a new CoglTexturePixmapX11 instance

Since: 1.10

Stability Level: Unstable

### cogl_texture_pixmap_x11_update_area ()

    void
    cogl_texture_pixmap_x11_update_area (CoglTexturePixmapX11 *texture,
                                         int x,
                                         int y,
                                         int width,
                                         int height);

Forces an update of the given `texture` so that it is refreshed with the contents of the pixmap that was given to `cogl_texture_pixmap_x11_new()`.

#### Parameters

texture | A CoglTexturePixmapX11 instance |
x | x coordinate of the area to update |
y | y coordinate of the area to update |
width | width of the area to update |
height | height of the area to update |

Since: 1.4

Stability Level: Unstable

### cogl_texture_pixmap_x11_is_using_tfp_extension ()

    CoglBool
    cogl_texture_pixmap_x11_is_using_tfp_extension
                                   (CoglTexturePixmapX11 *texture);

Checks whether the given `texture` is using the GLX_EXT_texture_from_pixmap or similar extension to copy the contents of the pixmap to the texture. This extension is usually implemented as zero-copy operation so it implies the updates are working efficiently.

#### Parameters

texture | A CoglTexturePixmapX11 instance |

#### Returns

`TRUE` if the texture is using an efficient extension and `FALSE` otherwise

Since: 1.4

Stability Level: Unstable

### cogl_texture_pixmap_x11_set_damage_object ()

    void
    cogl_texture_pixmap_x11_set_damage_object
                                   (CoglTexturePixmapX11 *texture,
                                    uint32_t damage,
                                    CoglTexturePixmapX11ReportLevel report_level);

Sets the damage object that will be used to track automatic updates to the `texture` . Damage tracking can be disabled by passing 0 for `damage` . Otherwise this damage will replace the one used if `TRUE` was passed for automatic_updates to `cogl_texture_pixmap_x11_new()`.

Note that Cogl will subtract from the damage region as it processes damage events.

#### Parameters

texture | A CoglTexturePixmapX11 instance |
damage | A X11 Damage object or 0 |
report_level | The report level which describes how to interpret the damage events. This should match the level that the damage object was created with. |

Since: 1.4

Stability Level: Unstable

## Types and Values

### CoglTexturePixmapX11

    typedef struct _CoglTexturePixmapX11 CoglTexturePixmapX11;

### enum CoglTexturePixmapX11ReportLevel

#### Members

COGL_TEXTURE_PIXMAP_X11_DAMAGE_RAW_RECTANGLES |  |
COGL_TEXTURE_PIXMAP_X11_DAMAGE_DELTA_RECTANGLES |  |
COGL_TEXTURE_PIXMAP_X11_DAMAGE_BOUNDING_BOX |  |
COGL_TEXTURE_PIXMAP_X11_DAMAGE_NON_EMPTY |  |