Class
CoglTexture2DSliced
Description [src]
final class Cogl.Texture2DSliced : Cogl.Texture
{
/* No available fields */
}
Functions for creating and manipulating 2D meta textures that may internally be comprised of multiple 2D textures with power-of-two sizes.
These functions allow high-level meta textures to be allocated that may internally be comprised of multiple 2D texture “slices” with power-of-two sizes.
This API can be useful when working with GPUs that don’t have native support for non-power-of-two textures or if you want to load a texture that is larger than the GPUs maximum texture size limits.
The algorithm for slicing works by first trying to map a virtual size to the next larger power-of-two size and then seeing how many wasted pixels that would result in. For example if you have a virtual texture that’s 259 texels wide, the next pot size = 512 and the amount of waste would be 253 texels. If the amount of waste is above a max-waste threshold then we would next slice that texture into one that’s 256 texels and then looking at how many more texels remain unallocated after that we choose the next power-of-two size. For the example of a 259 texel image that would mean having a 256 texel wide texture, leaving 3 texels unallocated so we’d then create a 4 texel wide texture - now there is only one texel of waste. The algorithm continues to slice the right most textures until the amount of waste is less than or equal to a specified max-waste threshold. The same logic for slicing from left to right is also applied from top to bottom.
Constructors
cogl_texture_2d_sliced_new_from_bitmap
Creates a new CoglTexture2DSliced
texture based on data residing
in a bitmap.
cogl_texture_2d_sliced_new_with_size
Creates a CoglTexture2DSliced
that may internally be comprised of
1 or more CoglTexture2D
textures depending on GPU limitations.
For example if the GPU only supports power-of-two sized textures
then a sliced texture will turn a non-power-of-two size into a
combination of smaller power-of-two sized textures. If the
requested texture size is larger than is supported by the hardware
then the texture will be sliced into smaller textures that can be
accessed by the hardware.
Instance methods
Methods inherited from CoglTexture (18)
cogl_texture_allocate
Explicitly allocates the storage for the given texture
which
allows you to be sure that there is enough memory for the
texture and if not then the error can be handled gracefully.
cogl_texture_foreach_in_region
Allows you to manually iterate the low-level textures that define a
given region of a high-level CoglTexture
.
cogl_texture_get_components
Queries what components the given texture
stores internally as set
via cogl_texture_set_components().
cogl_texture_get_context
cogl_texture_get_data
Copies the pixel data from a cogl texture to system memory.
cogl_texture_get_format
cogl_texture_get_gl_texture
Queries the GL handles for a GPU side texture through its CoglTexture
.
cogl_texture_get_height
Queries the height of a cogl texture.
cogl_texture_get_premultiplied
Queries the pre-multiplied alpha status for internally stored red,
green and blue components for the given texture
as set by cogl_texture_set_premultiplied().
cogl_texture_get_width
Queries the width of a cogl texture.
cogl_texture_is_get_data_supported
cogl_texture_is_sliced
Queries if a texture is sliced (stored as multiple GPU side tecture objects).
cogl_texture_set_auto_mipmap
Sets whether the texture will automatically update the smaller mipmap levels after any part of level 0 is updated. The update will only occur whenever the texture is used for drawing with a texture filter that requires the lower mipmap levels. An application should disable this if it wants to upload its own data for the other levels. By default auto mipmapping is enabled.
cogl_texture_set_components
Affects the internal storage format for this texture by specifying what components will be required for sampling later.
cogl_texture_set_data
texture
a CoglTexture
.
Sets all the pixels for a given mipmap level
by copying the pixel
data pointed to by the data
argument into the given texture
.
cogl_texture_set_premultiplied
Affects the internal storage format for this texture by specifying whether red, green and blue color components should be stored as pre-multiplied alpha values.
cogl_texture_set_region
Sets the pixels in a rectangular subregion of texture
from an in-memory
buffer containing pixel data.
cogl_texture_set_region_from_bitmap
Copies a specified source region from bitmap
to the position
(src_x
, src_y
) of the given destination texture handle
.
Properties
Properties inherited from CoglTexture (6)
Cogl.Texture:context
Cogl.Texture:format
Cogl.Texture:height
Cogl.Texture:is-primitive
Cogl.Texture:loader
Cogl.Texture:width
Signals
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.