ClutterTexture

ClutterTexture — An actor for displaying and manipulating images.

Synopsis




                    ClutterTexture;
                    ClutterTextureClass;
ClutterActor*       clutter_texture_new_from_pixbuf     (GdkPixbuf *pixbuf);
ClutterActor*       clutter_texture_new                 (void);
void                clutter_texture_set_from_data       (ClutterTexture *texture,
                                                         const guchar *data,
                                                         gboolean has_alpha,
                                                         gint width,
                                                         gint height,
                                                         gint rowstride,
                                                         gint bpp);
void                clutter_texture_set_pixbuf          (ClutterTexture *texture,
                                                         GdkPixbuf *pixbuf);
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);


Object Hierarchy


  GObject
   +----GInitiallyUnowned
         +----ClutterActor
               +----ClutterTexture

Properties


  "filter-quality"           gint                  : Read / Write / Construct
  "pixbuf"                   gpointer              : Read / Write
  "pixel-format"             gint                  : Read / Write / Construct Only
  "pixel-type"               gint                  : Read / Write / Construct Only
  "repeat-x"                 gboolean              : Read / Write / Construct
  "repeat-y"                 gboolean              : Read / Write / Construct
  "sync-size"                gboolean              : Read / Write / Construct
  "tile-waste"               gint                  : Read / Write / Construct Only
  "tiled"                    gboolean              : Read / Write / Construct Only

Signals


  "pixbuf-change"                                  : Run Last
  "size-change"                                    : Run Last

Description

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

The clutter_texture_set_from_data and clutter_texture_set_pixbuf are used to copy image data into texture memory and subsequently realize the the texture. 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

ClutterTexture

typedef struct _ClutterTexture ClutterTexture;

ClutterTexture has no publicly available members.


ClutterTextureClass

typedef struct {
  ClutterActorClass parent_class;

  void (*size_change)   (ClutterTexture *texture, 
		         gint            width, 
		         gint            height);
  void (*pixbuf_change) (ClutterTexture *texture);

  /* padding, for future expansion */
  void (*_clutter_texture1) (void);
  void (*_clutter_texture2) (void);
  void (*_clutter_texture3) (void);
  void (*_clutter_texture4) (void);
  void (*_clutter_texture5) (void);
  void (*_clutter_texture6) (void);
} ClutterTextureClass;


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_new ()

ClutterActor*       clutter_texture_new                 (void);

Creates a new empty ClutterTexture object.

Returns : A newly created ClutterTexture object.

clutter_texture_set_from_data ()

void                clutter_texture_set_from_data       (ClutterTexture *texture,
                                                         const guchar *data,
                                                         gboolean has_alpha,
                                                         gint width,
                                                         gint height,
                                                         gint rowstride,
                                                         gint bpp);

Sets ClutterTexture image data.

Since 0.2. This function is likely to change in future versions.

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 )

clutter_texture_set_pixbuf ()

void                clutter_texture_set_pixbuf          (ClutterTexture *texture,
                                                         GdkPixbuf *pixbuf);

Sets a ClutterTexture image data from a GdkPixbuf

texture : A ClutterTexture
pixbuf : A GdkPixbuf

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

Property Details

The "filter-quality" property

  "filter-quality"           gint                  : Read / Write / Construct

Values 0 and 1 current only supported, with 0being lower quality but fast, 1 being better quality but slower. ( Currently just maps to GL_NEAREST / GL_LINEAR ).

Allowed values: >= 0

Default value: 1


The "pixbuf" property

  "pixbuf"                   gpointer              : Read / Write

Pixbuf source for Texture.


The "pixel-format" property

  "pixel-format"             gint                  : Read / Write / Construct Only

GL texture pixel format used.

Allowed values: >= 0

Default value: 6408


The "pixel-type" property

  "pixel-type"               gint                  : Read / Write / Construct Only

GL texture pixel type used.

Allowed values: >= 0

Default value: 5121


The "repeat-x" property

  "repeat-x"                 gboolean              : Read / Write / Construct

Reapeat underlying pixbuf rather than scalein x direction. Currently UNWORKING.

Default value: FALSE


The "repeat-y" property

  "repeat-y"                 gboolean              : Read / Write / Construct

Reapeat underlying pixbuf rather than scalein y direction. Currently UNWORKING.

Default value: FALSE


The "sync-size" property

  "sync-size"                gboolean              : Read / Write / Construct

Auto sync size of actor to underlying pixbufdimentions.

Default value: TRUE


The "tile-waste" property

  "tile-waste"               gint                  : Read / Write / Construct Only

Max wastage dimention of a texture when using tiled textures. Bigger values use less textures, smaller values less texture memory. .

Allowed values: >= 0

Default value: 64


The "tiled" property

  "tiled"                    gboolean              : Read / Write / Construct Only

Enables the use of tiled GL textures to more efficiently use available texture memory.

Default value: TRUE

Signal Details

The "pixbuf-change" signal

void                user_function                      (ClutterTexture *texture,
                                                        gpointer        user_data)      : Run Last

The ::pixbuf-change signal is emitted each time the pixbuf used by texture changes.

texture : the texture which received the signal
user_data : user data set when the signal handler was connected.

The "size-change" signal

void                user_function                      (ClutterTexture *texture,
                                                        gint            width,
                                                        gint            height,
                                                        gpointer        user_data)      : Run Last

The ::size-change signal is emitted each time the size of the pixbuf used by texture changes. The new size is given as argument to the callback.

texture : the texture which received the signal
width : the width of the new texture
height : the height of the new texture
user_data : user data set when the signal handler was connected.