The Texture Interface

The Texture Interface — Fuctions for creating and manipulating textures

Functions

Types and Values

Description

Cogl allows creating and manipulating textures using a uniform API that tries to hide all the various complexities of creating, loading and manipulating textures.

Functions

cogl_is_texture ()

gboolean
cogl_is_texture (void *object);

Gets whether the given object references a texture object.

Parameters

object

A CoglObject pointer

 

Returns

TRUE if the handle references a texture, and FALSE otherwise


cogl_texture_get_width ()

unsigned int
cogl_texture_get_width (CoglTexture *texture);

Queries the width of a cogl texture.

Returns

the width of the GPU side texture in pixels


cogl_texture_get_height ()

unsigned int
cogl_texture_get_height (CoglTexture *texture);

Queries the height of a cogl texture.

Returns

the height of the GPU side texture in pixels


cogl_texture_get_format ()

CoglPixelFormat
cogl_texture_get_format (CoglTexture *texture);

Queries the CoglPixelFormat of a cogl texture.

Returns

the CoglPixelFormat of the GPU side texture


cogl_texture_is_sliced ()

gboolean
cogl_texture_is_sliced (CoglTexture *texture);

Queries if a texture is sliced (stored as multiple GPU side tecture objects).

Returns

TRUE if the texture is sliced, FALSE if the texture is stored as a single GPU texture


cogl_texture_get_data ()

int
cogl_texture_get_data (CoglTexture *texture,
                       CoglPixelFormat format,
                       unsigned int rowstride,
                       guint8 *data);

Copies the pixel data from a cogl texture to system memory.

Don't pass the value of cogl_texture_get_rowstride() as the rowstride argument, the rowstride should be the rowstride you want for the destination data buffer not the rowstride of the source texture

Parameters

format

the CoglPixelFormat to store the texture as.

 

rowstride

the rowstride of data in bytes or pass 0 to calculate from the bytes-per-pixel of format multiplied by the texture width.

 

data

memory location to write the texture 's contents, or NULL to only query the data size through the return value.

 

Returns

the size of the texture data in bytes


cogl_texture_set_region ()

gboolean
cogl_texture_set_region (CoglTexture *texture,
                         int src_x,
                         int src_y,
                         int dst_x,
                         int dst_y,
                         unsigned int dst_width,
                         unsigned int dst_height,
                         int width,
                         int height,
                         CoglPixelFormat format,
                         unsigned int rowstride,
                         const guint8 *data);

Sets the pixels in a rectangular subregion of texture from an in-memory buffer containing pixel data.

The region set can't be larger than the source data

Parameters

src_x

upper left coordinate to use from source data.

 

src_y

upper left coordinate to use from source data.

 

dst_x

upper left destination horizontal coordinate.

 

dst_y

upper left destination vertical coordinate.

 

dst_width

width of destination region to write. (Must be less than or equal to width )

 

dst_height

height of destination region to write. (Must be less than or equal to height )

 

width

width of source data buffer.

 

height

height of source data buffer.

 

format

the CoglPixelFormat used in the source buffer.

 

rowstride

rowstride of source buffer (computed from width if none specified)

 

data

the actual pixel data.

 

Returns

TRUE if the subregion upload was successful, and FALSE otherwise

Types and Values

CoglTexture

typedef struct _CoglTexture CoglTexture;

enum CoglTextureType

Constants representing the underlying hardware texture type of a CoglTexture.

Members

COGL_TEXTURE_TYPE_2D

A CoglTexture2D

 

COGL_TEXTURE_TYPE_3D

A CoglTexture3D

 

COGL_TEXTURE_TYPE_RECTANGLE

A CoglTextureRectangle

 

Since 1.10

Stability Level: Unstable