From: Robert Bragg Date: Thu, 2 Apr 2009 10:50:44 +0000 (+0100) Subject: [cogl] handle_automatic_blend_enable(): consider layers with invalid textures X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=04ebd6be44d7641abc73a80f61606178f1861e66;p=profile%2Fivi%2Fclutter.git [cogl] handle_automatic_blend_enable(): consider layers with invalid textures A layer object may be instantiated when setting a combine mode, but before a texture is associated. (e.g. this is done by the pango renderer) if this is the case we shouldn't call cogl_texture_get_format() with an invalid cogl handle. This patch skips over layers without a texture handle when determining if any textures have an alpha channel. --- diff --git a/clutter/cogl/common/cogl-material.c b/clutter/cogl/common/cogl-material.c index 47fdc81..bd8eb0c 100644 --- a/clutter/cogl/common/cogl-material.c +++ b/clutter/cogl/common/cogl-material.c @@ -100,6 +100,12 @@ handle_automatic_blend_enable (CoglMaterial *material) for (tmp = material->layers; tmp != NULL; tmp = tmp->next) { CoglMaterialLayer *layer = tmp->data; + + /* NB: A layer may have a combine mode set on it but not yet have an + * associated texture. */ + if (!layer->texture) + continue; + if (cogl_texture_get_format (layer->texture) & COGL_A_BIT) material->flags |= COGL_MATERIAL_FLAG_ENABLE_BLEND; }