| Top |
| CoglBool | cogl_is_texture () |
| unsigned int | cogl_texture_get_width () |
| unsigned int | cogl_texture_get_height () |
| CoglPixelFormat | cogl_texture_get_format () |
| CoglBool | cogl_texture_is_sliced () |
| int | cogl_texture_get_data () |
| CoglBool | cogl_texture_set_data () |
| CoglBool | cogl_texture_set_region () |
Cogl allows creating and manipulating textures using a uniform API that tries to hide all the various complexities of creating, loading and manipulating textures.
CoglBool
cogl_is_texture (void *object);
Gets whether the given object references a texture object.
unsigned int
cogl_texture_get_width (CoglTexture *texture);
Queries the width of a cogl texture.
unsigned int
cogl_texture_get_height (CoglTexture *texture);
Queries the height of a cogl texture.
CoglPixelFormat
cogl_texture_get_format (CoglTexture *texture);
Queries the CoglPixelFormat of a cogl texture.
CoglBool
cogl_texture_is_sliced (CoglTexture *texture);
Queries if a texture is sliced (stored as multiple GPU side tecture objects).
int cogl_texture_get_data (CoglTexture *texture,CoglPixelFormat format,unsigned int rowstride,uint8_t *data);
Copies the pixel data from a cogl texture to system memory.
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 texturetexture |
a CoglTexture pointer. |
|
format |
the CoglPixelFormat to store the texture as. |
|
rowstride |
the rowstride of |
|
data |
memory location to write the |
CoglBool cogl_texture_set_data (CoglTexture *texture,CoglPixelFormat format,int rowstride,const uint8_t *data,int level,CoglError **error);
Sets all the pixels for a given mipmap level
by copying the pixel
data pointed to by the data
argument into the given texture
.
data
should point to the first pixel to copy corresponding
to the top left of the mipmap level
being set.
If rowstride
equals 0 then it will be automatically calculated
from the width of the mipmap level and the bytes-per-pixel for the
given format
.
A mipmap level
of 0 corresponds to the largest, base image of a
texture and level
1 is half the width and height of level 0. If
dividing any dimension of the previous level by two results in a
fraction then round the number down (floor()), but clamp to 1
something like this:
next_width = MAX (1, floor (prev_width));
You can determine the number of mipmap levels for a given texture like this:
n_levels = 1 + floor (log2 (max_dimension));
Where max_dimension is the larger of cogl_texture_get_width() and
cogl_texture_get_height().
It is an error to pass a level
number >= the number of levels that
texture
can have according to the above calculation.
texture has not previously been allocated then this
api can return FALSE and throw an exceptional error if there is
not enough memory to allocate storage for texture.format |
the CoglPixelFormat used in the source |
|
rowstride |
rowstride of the source |
|
data |
the source data, pointing to the first top-left pixel to set |
|
level |
The mipmap level to update (Normally 0 for the largest, base texture) |
|
error |
A CoglError to return exceptional errors |
CoglBool 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 uint8_t *data);
Sets the pixels in a rectangular subregion of texture
from an in-memory
buffer containing pixel data.
data
texture |
a CoglTexture. |
|
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 |
|
dst_height |
height of destination region to write. (Must be less
than or equal to |
|
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. |
Constants representing the underlying hardware texture type of a CoglTexture.
Since 1.10
Stability Level: Unstable