Function
Coglmeta_texture_foreach_in_region
Declaration [src]
void
cogl_meta_texture_foreach_in_region (
CoglTexture* texture,
float tx_1,
float ty_1,
float tx_2,
float ty_2,
CoglPipelineWrapMode wrap_s,
CoglPipelineWrapMode wrap_t,
CoglMetaTextureCallback callback,
void* user_data
)
Description [src]
Allows you to manually iterate the low-level textures that define a
given region of a high-level CoglMetaTexture
.
For example cogl_texture_2d_sliced_new_with_size()
can be used to
create a meta texture that may slice a large image into multiple,
smaller power-of-two sized textures. These high level textures are
not directly understood by a GPU and so this API must be used to
manually resolve the underlying textures for drawing.
All high level textures (CoglAtlasTexture
, CoglSubTexture
,
CoglTexturePixmapX11
, and CoglTexture2DSliced
) can be handled
consistently using this interface which greately simplifies
implementing primitives that support all texture types.
For example if you use the cogl_rectangle()
API then Cogl will
internally use this API to resolve the low level textures of any
meta textures you have associated with CoglPipeline layers.
The low level drawing APIs such as cogl_primitive_draw()
don’t understand the CoglMetaTexture
interface and so it is your
responsibility to use this API to resolve all CoglPipeline textures
into low-level textures before drawing.
For each low-level texture that makes up part of the given region
of the meta_texture
, callback
is called specifying how the
low-level texture maps to the original region.
Parameters
texture
-
Type:
CoglTexture
An object implementing the
CoglMetaTexture
interface.The data is owned by the caller of the function. tx_1
-
Type:
float
The top-left x coordinate of the region to iterate.
ty_1
-
Type:
float
The top-left y coordinate of the region to iterate.
tx_2
-
Type:
float
The bottom-right x coordinate of the region to iterate.
ty_2
-
Type:
float
The bottom-right y coordinate of the region to iterate.
wrap_s
-
Type:
CoglPipelineWrapMode
The wrap mode for the x-axis.
wrap_t
-
Type:
CoglPipelineWrapMode
The wrap mode for the y-axis.
callback
-
Type:
CoglMetaTextureCallback
A
CoglMetaTextureCallback
pointer to be called for each low-level texture within the specified region. user_data
-
Type:
void*
A private pointer that is passed to
callback
.The argument can be NULL
.The data is owned by the caller of the function.