From 1bed79d19a3e6add697955f9dfb5c21bfaf04c84 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Tue, 12 Oct 2010 12:35:47 +0100 Subject: [PATCH] material: Adds _cogl_material_get_layer_texture This is a counter part for _cogl_material_layer_get_texture which takes a layer index instead of a direct CoglMaterialLayer pointer. The aim is to phase out code that directly iterates the internal layer pointers of a material since the layer pointers can change if any property of any layer is changed making direct layer pointers very fragile. --- cogl/cogl-material-private.h | 4 ++++ cogl/cogl-material.c | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/cogl/cogl-material-private.h b/cogl/cogl-material-private.h index a113349fb..e57b79205 100644 --- a/cogl/cogl-material-private.h +++ b/cogl/cogl-material-private.h @@ -926,6 +926,10 @@ _cogl_material_layer_get_authority (CoglMaterialLayer *layer, CoglHandle _cogl_material_layer_get_texture (CoglMaterialLayer *layer); +CoglHandle +_cogl_material_get_layer_texture (CoglMaterial *material, + int layer_index); + typedef gboolean (*CoglMaterialInternalLayerCallback) (CoglMaterialLayer *layer, void *user_data); diff --git a/cogl/cogl-material.c b/cogl/cogl-material.c index e02396d4e..905e0e5fd 100644 --- a/cogl/cogl-material.c +++ b/cogl/cogl-material.c @@ -1970,6 +1970,15 @@ _cogl_material_layer_get_texture (CoglMaterialLayer *layer) return authority->texture; } +CoglHandle +_cogl_material_get_layer_texture (CoglMaterial *material, + int layer_index) +{ + CoglMaterialLayer *layer = + _cogl_material_get_layer (material, layer_index); + return _cogl_material_layer_get_texture (layer); +} + static void _cogl_material_prune_empty_layer_difference (CoglMaterial *layers_authority, CoglMaterialLayer *layer)