Top | ![]() |
![]() |
![]() |
![]() |
Rectangle textures (non-normalized coordinates)Rectangle textures (non-normalized coordinates) — Functions for creating and manipulating rectangle textures for use with non-normalized coordinates. |
These functions allow low-level "rectangle" textures to be allocated.
These textures are never constrained to power-of-two sizes but they
also don't support having a mipmap and can only be wrapped with
COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE
.
The most notable difference between rectangle textures and 2D textures is that rectangle textures are sampled using un-normalized texture coordinates, so instead of using coordinates (0,0) and (1,1) to map to the top-left and bottom right corners of the texture you would instead use (0,0) and (width,height).
The use of non-normalized coordinates can be particularly convenient when writing glsl shaders that use a texture as a lookup table since you don't need to upload separate uniforms to map normalized coordinates to texels.
If you want to sample from a rectangle texture from GLSL you should use the sampler2DRect sampler type.
Applications wanting to use CoglTextureRectangle should first check
for the COGL_FEATURE_ID_TEXTURE_RECTANGLE
feature using
cogl_has_feature()
.
#define cogl_texture_rectangle_new_with_size
Allocates a new CoglRectangle texture with a given width
, height
and internal_format
. This texture is a low-level texture that
the GPU can sample from directly unlike high-level textures such
as CoglTexture2DSliced and CoglAtlasTexture.
COGL_FEATURE_ID_TEXTURE_RECTANGLE
feature
using cogl_has_feature()
.context |
A CoglContext pointer |
|
width |
The texture width to allocate |
|
height |
The texture height to allocate |
|
internal_format |
The desired internal texture format |
|
error |
An optional GError pointer for reporting exceptions |
A pointer to a newly allocated CoglRectangle texture
or if the size was too large or there wasn't enough memory
NULL
is returned and error
set.
Since 1.10
Stability Level: Unstable
#define cogl_is_texture_rectangle cogl_is_texture_rectangle_EXP
Gets whether the given object references an existing CoglTextureRectangle object.