summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdel Gadllah <adel.gadllah@gmail.com>2013-07-03 18:51:53 +0200
committerRobert Bragg <robert@linux.intel.com>2013-10-12 14:39:44 +0100
commitac413ad1ee5a1c1fb04386339d06e05bc01a9636 (patch)
tree14a10c57f06c21bccd6571e2c862a5e092cb5c77
parentba5e5410babf705f53b591579c104181dd752bec (diff)
downloadcogl-ac413ad1ee5a1c1fb04386339d06e05bc01a9636.tar.gz
offscreen: Allocate the framebuffer in cogl_offscreen_new_to_texture_full
The API says that it should return NULL on failure but it does not do that due to the lazy allocation. Reviewed-by: Robert Bragg <robert@linux.intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=703174
-rw-r--r--cogl/cogl-framebuffer.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/cogl/cogl-framebuffer.c b/cogl/cogl-framebuffer.c
index 136ae860..c3e1fb78 100644
--- a/cogl/cogl-framebuffer.c
+++ b/cogl/cogl-framebuffer.c
@@ -615,6 +615,7 @@ _cogl_offscreen_new_to_texture_full (CoglTexture *texture,
int level_width;
int level_height;
CoglOffscreen *ret;
+ CoglError *error = NULL;
_COGL_RETURN_VAL_IF_FAIL (cogl_is_texture (texture), NULL);
_COGL_RETURN_VAL_IF_FAIL (level < _cogl_texture_get_n_levels (texture),
@@ -646,6 +647,13 @@ _cogl_offscreen_new_to_texture_full (CoglTexture *texture,
_cogl_texture_associate_framebuffer (texture, fb);
+ if (!cogl_framebuffer_allocate (ret, &error))
+ {
+ cogl_object_unref (offscreen);
+ cogl_error_free (error);
+ ret = NULL;
+ }
+
return ret;
}