From 4b484d6496b77112177b791925d3e13fcb27be96 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Thu, 2 Apr 2009 11:50:44 +0100 Subject: [PATCH] [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. --- common/cogl-material.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/common/cogl-material.c b/common/cogl-material.c index 47fdc81d8..bd8eb0c38 100644 --- a/common/cogl-material.c +++ b/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; }