示例#1
0
void
gimp_histogram_unref (GimpHistogram *histogram)
{
  g_return_if_fail (histogram != NULL);

  histogram->ref_count--;

  if (histogram->ref_count == 0)
    {
      gimp_histogram_clear_values (histogram);
      g_slice_free (GimpHistogram, histogram);
    }
}
示例#2
0
static gboolean
gimp_histogram_editor_validate (GimpHistogramEditor *editor)
{
  if (! editor->valid && editor->histogram)
    {
      if (editor->drawable)
        gimp_drawable_calculate_histogram (editor->drawable, editor->histogram);
      else
        gimp_histogram_clear_values (editor->histogram);

      gimp_histogram_editor_info_update (editor);

      editor->valid = TRUE;
    }

  return editor->valid;
}
示例#3
0
static void
gimp_histogram_alloc_values (GimpHistogram *histogram,
                             gint           bytes)
{
  if (bytes + 1 != histogram->n_channels)
    {
      gimp_histogram_clear_values (histogram);

      histogram->n_channels = bytes + 1;

      histogram->values = g_new0 (gdouble, histogram->n_channels * 256);
    }
  else
    {
      memset (histogram->values,
              0, histogram->n_channels * 256 * sizeof (gdouble));
    }
}