Cogl.Texture2DSliced
Description: Reference for Cogl.Texture2DSliced

### 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 (See the `CoglMetaTexture` interface) 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.

#### Ancestors

- CoglTexture
- GObject

#### 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 (17)

###### 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_get_components

Queries what components the given `texture` stores internally as set via cogl_texture_set_components().

###### cogl_texture_get_context

No description available.

###### cogl_texture_get_data

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

###### cogl_texture_get_format

No description available.

###### 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

No description available.

###### 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`.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Properties

##### Properties inherited from CoglTexture (5)

###### Cogl.Texture:context

No description available.

###### Cogl.Texture:format

No description available.

###### Cogl.Texture:height

No description available.

###### Cogl.Texture:loader

No description available.

###### Cogl.Texture:width

No description available.

#### 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.

#### Class structure

    struct CoglTexture2DSlicedClass {
      /* no available fields */
    }

No description available.