[Cogl] [PATCH 06/13] texture: allocate on slicing/hw repeat queries

Robert Bragg robert at sixbynine.org
Wed Dec 11 10:31:27 PST 2013


From: Robert Bragg <robert at linux.intel.com>

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.
---
 cogl/cogl-texture.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/cogl/cogl-texture.c b/cogl/cogl-texture.c
index ec6b710..515fb43 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);
 }
 
-- 
1.8.3.1



More information about the Cogl mailing list