summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Bragg <robert@linux.intel.com>2013-06-30 17:16:58 +0100
committerRobert Bragg <robert@linux.intel.com>2014-01-01 17:43:05 +0000
commit4868582812dbcd5125495b312d858f751fc31e9d (patch)
tree1143fc1f0e9e1b11ef1352c3d5d5878a5f0279f5
parent59f6fefc37524f492512a71b831760a218d9bb95 (diff)
downloadcogl-4868582812dbcd5125495b312d858f751fc31e9d.tar.gz
texture: allocate on slicing/hw repeat queries
The plan is to defer a lot more work in creating a texture until allocation time. This means that for some texture backends we might not know until after allocation whether the texture is sliced or can support hardware repeating. This makes sure we trigger an allocation if either of these are queried. Reviewed-by: Neil Roberts <neil@linux.intel.com>
-rw-r--r--cogl/cogl-texture.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/cogl/cogl-texture.c b/cogl/cogl-texture.c
index ec6b7100..515fb43a 100644
--- a/cogl/cogl-texture.c
+++ b/cogl/cogl-texture.c
@@ -185,6 +185,8 @@ cogl_texture_get_height (CoglTexture *texture)
CoglPixelFormat
cogl_texture_get_format (CoglTexture *texture)
{
+ if (!texture->allocated)
+ cogl_texture_allocate (texture, NULL);
return texture->vtable->get_format (texture);
}
@@ -246,6 +248,8 @@ _cogl_texture_get_level_size (CoglTexture *texture,
CoglBool
cogl_texture_is_sliced (CoglTexture *texture)
{
+ if (!texture->allocated)
+ cogl_texture_allocate (texture, NULL);
return texture->vtable->is_sliced (texture);
}
@@ -256,6 +260,8 @@ cogl_texture_is_sliced (CoglTexture *texture)
CoglBool
_cogl_texture_can_hardware_repeat (CoglTexture *texture)
{
+ if (!texture->allocated)
+ cogl_texture_allocate (texture, NULL);
return texture->vtable->can_hardware_repeat (texture);
}