material: Adds _cogl_material_get_layer_texture
authorRobert Bragg <robert@linux.intel.com>
Tue, 12 Oct 2010 11:35:47 +0000 (12:35 +0100)
committerRobert Bragg <robert@linux.intel.com>
Tue, 26 Oct 2010 12:06:54 +0000 (13:06 +0100)
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.

clutter/cogl/cogl/cogl-material-private.h
clutter/cogl/cogl/cogl-material.c

index a113349..e57b792 100644 (file)
@@ -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);
 
index e02396d..905e0e5 100644 (file)
@@ -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)