X11 Texture From Pixmap

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

Functions

Types and Values

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 {
  CoglTexture _parent;

  CoglTexturePixmapStereoMode stereo_mode;
  CoglTexturePixmapX11 *left; /* Set only if stereo_mode=RIGHT */

  Pixmap pixmap;
  CoglTexture *tex;

  unsigned int depth;
  Visual *visual;

  XImage *image;

  XShmSegmentInfo shm_info;

  Damage damage;
  CoglTexturePixmapX11ReportLevel damage_report_level;
  CoglBool damage_owned;
  CoglDamageRectangle damage_rect;

  void *winsys;

  /* During the pre_paint method, this will be set to TRUE if we
     should use the winsys texture, otherwise we will use the regular
     texture */
  CoglBool use_winsys_texture;
} 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