ClutterTexture

ClutterTexture — An actor for displaying and manipulating images.

Synopsis




enum                ClutterTextureFlags;
ClutterActor*       clutter_texture_new                 (void);
ClutterActor*       clutter_texture_new_from_pixbuf     (GdkPixbuf *pixbuf);
#define             CLUTTER_TEXTURE_ERROR
enum                ClutterTextureError;
gboolean            clutter_texture_set_from_rgb_data   (ClutterTexture *texture,
                                                         const guchar *data,
                                                         gboolean has_alpha,
                                                         gint width,
                                                         gint height,
                                                         gint rowstride,
                                                         gint bpp,
                                                         ClutterTextureFlags flags,
                                                         GError **error);
gboolean            clutter_texture_set_from_yuv_data   (ClutterTexture *texture,
                                                         const guchar *data,
                                                         gint width,
                                                         gint height,
                                                         ClutterTextureFlags flags,
                                                         GError **error);
gboolean            clutter_texture_set_pixbuf          (ClutterTexture *texture,
                                                         GdkPixbuf *pixbuf,
                                                         GError **error);
GdkPixbuf*          clutter_texture_get_pixbuf          (ClutterTexture *texture);
void                clutter_texture_get_base_size       (ClutterTexture *texture,
                                                         gint *width,
                                                         gint *height);
void                clutter_texture_bind_tile           (ClutterTexture *texture,
                                                         gint index_);
void                clutter_texture_get_n_tiles         (ClutterTexture *texture,
                                                         gint *n_x_tiles,
                                                         gint *n_y_tiles);
void                clutter_texture_get_x_tile_detail   (ClutterTexture *texture,
                                                         gint x_index,
                                                         gint *pos,
                                                         gint *size,
                                                         gint *waste);
void                clutter_texture_get_y_tile_detail   (ClutterTexture *texture,
                                                         gint y_index,
                                                         gint *pos,
                                                         gint *size,
                                                         gint *waste);
gboolean            clutter_texture_has_generated_tiles (ClutterTexture *texture);
gboolean            clutter_texture_is_tiled            (ClutterTexture *texture);


Description

ClutterTexture is a base class for displaying and manipulating pixel buffer type data.

The clutter_texture_set_from_rgb_data() and clutter_texture_set_pixbuf() functions are used to copy image data into texture memory and subsequently realize the the texture.

If texture reads are supported by underlying GL implementation, unrealizing/hiding frees image data from texture memory moving to main system memory. Re-realizing then performs the opposite operation. This process allows basic management of commonly limited available texture memory.

Details

enum ClutterTextureFlags

typedef enum { /*< prefix=CLUTTER_TEXTURE >*/
    CLUTTER_TEXTURE_RGB_FLAG_BGR     = 1 << 1,
    CLUTTER_TEXTURE_RGB_FLAG_PREMULT = 1 << 2, /* FIXME: not handled */
    CLUTTER_TEXTURE_YUV_FLAG_YUV2    = 1 << 3

    /* FIXME: add compressed types ? */
} ClutterTextureFlags;

Flags for clutter_texture_set_from_rgb_data() and clutter_texture_set_from_rgb_data().

CLUTTER_TEXTURE_RGB_FLAG_BGR FIXME
CLUTTER_TEXTURE_RGB_FLAG_PREMULT FIXME
CLUTTER_TEXTURE_YUV_FLAG_YUV2 FIXME

Since 0.4


clutter_texture_new ()

ClutterActor*       clutter_texture_new                 (void);

Creates a new empty ClutterTexture object.

Returns : A newly created ClutterTexture object.

clutter_texture_new_from_pixbuf ()

ClutterActor*       clutter_texture_new_from_pixbuf     (GdkPixbuf *pixbuf);

Creates a new ClutterTexture object.

pixbuf : A GdkPixbuf
Returns : A newly created ClutterTexture object.

CLUTTER_TEXTURE_ERROR

#define CLUTTER_TEXTURE_ERROR   (clutter_texture_error_quark ())


enum ClutterTextureError

typedef enum {
  CLUTTER_TEXTURE_ERROR_OUT_OF_MEMORY,
  CLUTTER_TEXTURE_ERROR_NO_YUV
} ClutterTextureError;

Error enumeration for ClutterTexture

CLUTTER_TEXTURE_ERROR_OUT_OF_MEMORY OOM condition
CLUTTER_TEXTURE_ERROR_NO_YUV YUV operation attempted but no YUV support found

Since 0.4


clutter_texture_set_from_rgb_data ()

gboolean            clutter_texture_set_from_rgb_data   (ClutterTexture *texture,
                                                         const guchar *data,
                                                         gboolean has_alpha,
                                                         gint width,
                                                         gint height,
                                                         gint rowstride,
                                                         gint bpp,
                                                         ClutterTextureFlags flags,
                                                         GError **error);

Sets ClutterTexture image data.

texture : A ClutterTexture
data : Image data in RGB type colorspace.
has_alpha : Set to TRUE if image data has a alpha channel.
width : Width in pixels of image data.
height : Height in pixels of image data
rowstride : Distance in bytes between row starts.
bpp : bytes per pixel ( Currently only 4 supported )
flags : ClutterTextureFlags
error : FIXME.
Returns : TRUE on success, FALSE on failure. Since 0.4. This function is likely to change in future versions.

clutter_texture_set_from_yuv_data ()

gboolean            clutter_texture_set_from_yuv_data   (ClutterTexture *texture,
                                                         const guchar *data,
                                                         gint width,
                                                         gint height,
                                                         ClutterTextureFlags flags,
                                                         GError **error);

Sets a ClutterTexture from YUV image data. If an error occurred, FALSE is returned and error is set.

This function is likely to change in future versions.

texture : A ClutterTexture
data : Image data in RGB type colorspace.
width : Width in pixels of image data.
height : Height in pixels of image data
flags : ClutterTextureFlags
error : Return location for a GError, or NULL.
Returns : TRUE if the texture was successfully updated Since 0.4.

clutter_texture_set_pixbuf ()

gboolean            clutter_texture_set_pixbuf          (ClutterTexture *texture,
                                                         GdkPixbuf *pixbuf,
                                                         GError **error);

Sets a ClutterTexture image data from a GdkPixbuf. In case of failure, FALSE is returned and error is set.

texture : A ClutterTexture
pixbuf : A GdkPixbuf
error : Return location for a GError, or NULL
Returns : TRUE if the pixbuf was successfully set

Since 0.4


clutter_texture_get_pixbuf ()

GdkPixbuf*          clutter_texture_get_pixbuf          (ClutterTexture *texture);

Gets a GdkPixbuf representation of the ClutterTexture data. The created GdkPixbuf is not owned by the texture but the caller.

texture : A ClutterTexture
Returns : A GdkPixbuf

clutter_texture_get_base_size ()

void                clutter_texture_get_base_size       (ClutterTexture *texture,
                                                         gint *width,
                                                         gint *height);

Gets the size in pixels of the untransformed underlying texture pixbuf data.

texture : A ClutterTexture
width : Pointer to gint to be populated with width value if non NULL.
height : Pointer to gint to be populated with height value if non NULL.

clutter_texture_bind_tile ()

void                clutter_texture_bind_tile           (ClutterTexture *texture,
                                                         gint index_);

Proxys a call to glBindTexture a to bind an internal 'tile'.

This function is only useful for sub class implementations and never should be called by an application.

texture : A ClutterTexture
index_ : Tile index to bind

clutter_texture_get_n_tiles ()

void                clutter_texture_get_n_tiles         (ClutterTexture *texture,
                                                         gint *n_x_tiles,
                                                         gint *n_y_tiles);

Retreives internal tile dimentioning.

This function is only useful for sub class implementations and never should be called by an application.

texture : A ClutterTexture
n_x_tiles : Location to store number of tiles in horizonally axis
n_y_tiles : Location to store number of tiles in vertical axis

clutter_texture_get_x_tile_detail ()

void                clutter_texture_get_x_tile_detail   (ClutterTexture *texture,
                                                         gint x_index,
                                                         gint *pos,
                                                         gint *size,
                                                         gint *waste);

Retreives details of a tile on x axis.

This function is only useful for sub class implementations and never should be called by an application.

texture : A ClutterTexture
x_index : X index of tile to query
pos : Location to store tiles X position
size : Location to store tiles horizontal size in pixels
waste : Location to store tiles horizontal wastage in pixels

clutter_texture_get_y_tile_detail ()

void                clutter_texture_get_y_tile_detail   (ClutterTexture *texture,
                                                         gint y_index,
                                                         gint *pos,
                                                         gint *size,
                                                         gint *waste);

Retreives details of a tile on y axis.

This function is only useful for sub class implementations and never should be called by an application.

texture : A ClutterTexture
y_index : Y index of tile to query
pos : Location to store tiles Y position
size : Location to store tiles vertical size in pixels
waste : Location to store tiles vertical wastage in pixels

clutter_texture_has_generated_tiles ()

gboolean            clutter_texture_has_generated_tiles (ClutterTexture *texture);

Checks if ClutterTexture has generated underlying GL texture tiles.

This function is only useful for sub class implementations and never should be called by an application.

texture : A ClutterTexture
Returns : TRUE if texture has pregenerated GL tiles.

clutter_texture_is_tiled ()

gboolean            clutter_texture_is_tiled            (ClutterTexture *texture);

Checks if ClutterTexture is tiled.

This function is only useful for sub class implementations and never should be called by an application.

texture : A ClutterTexture
Returns : TRUE if texture is tiled