| Clutter 0.4 Reference Manual | ||||
|---|---|---|---|---|
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);
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.
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
ClutterActor* clutter_texture_new (void);
Creates a new empty ClutterTexture object.
| Returns : | A newly created ClutterTexture object. |
ClutterActor* clutter_texture_new_from_pixbuf (GdkPixbuf *pixbuf);
Creates a new ClutterTexture object.
pixbuf : |
A GdkPixbuf |
| Returns : | A newly created ClutterTexture object. |
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
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. |
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.
|
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
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 |
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. |
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 |
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 |
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 |
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 |
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. |