static void p_delta_drawable(gint32 *val, gint32 val_from, gint32 val_to, gint32 total_steps, gdouble current_step)
{
    gint    l_nlayers;
    gint32 *l_layers_list;
    gint32  l_tmp_image_id;
    gint    l_idx, l_idx_from, l_idx_to;

    if((val_from < 0) || (val_to < 0))
    {
      return;
    }

    l_tmp_image_id = gimp_drawable_image_id(val_from);

    /* check if from and to values are both valid drawables within the same image */
    if ((l_tmp_image_id > 0) 
    &&  (l_tmp_image_id = gimp_drawable_image_id(val_to)))
    {
       l_idx_from = -1;
       l_idx_to   = -1;
       
       /* check the layerstack index of from and to drawable */
       l_layers_list = gimp_image_get_layers(l_tmp_image_id, &l_nlayers);
       for (l_idx = l_nlayers -1; l_idx >= 0; l_idx--)
       {
          if( l_layers_list[l_idx] == val_from ) l_idx_from = l_idx;
          if( l_layers_list[l_idx] == val_to )   l_idx_to   = l_idx;
          
          if((l_idx_from != -1) && (l_idx_to != -1))
          {
            /* OK found both index values, iterate the index (proceed to next layer) */
            p_delta_gint(&l_idx, l_idx_from, l_idx_to, total_steps, current_step);
            *val = l_layers_list[l_idx];
            break;
          }
       }
       g_free (l_layers_list);
    }
}
Beispiel #2
0
gint32
gimp_channel_get_image_id (gint32 channel_ID)
{
  return gimp_drawable_image_id (channel_ID);
}
Beispiel #3
0
gint32
gimp_layer_get_image_id (gint32 layer_ID)
{
  return gimp_drawable_image_id (layer_ID);
}