mirror of https://github.com/GNOME/gimp.git
app: add gimp_gegl_pyramid_get_memsize(), used by gimp_projection_get_memsize()
This commit is contained in:
parent
02c9dacc8f
commit
9f0fde1397
|
@ -304,6 +304,23 @@ gimp_gegl_buffer_get_memsize (GeglBuffer *buffer)
|
|||
return 0;
|
||||
}
|
||||
|
||||
gint64
|
||||
gimp_gegl_pyramid_get_memsize (GeglBuffer *buffer)
|
||||
{
|
||||
if (buffer)
|
||||
{
|
||||
const Babl *format = gegl_buffer_get_format (buffer);
|
||||
|
||||
/* The pyramid levels constitute a geometric sum with a ratio of 1/4. */
|
||||
return ((gint64) babl_format_get_bytes_per_pixel (format) *
|
||||
(gint64) gegl_buffer_get_width (buffer) *
|
||||
(gint64) gegl_buffer_get_height (buffer) * 1.33 +
|
||||
gimp_g_object_get_memsize (G_OBJECT (buffer)));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
gint64
|
||||
gimp_string_get_memsize (const gchar *string)
|
||||
{
|
||||
|
|
|
@ -53,6 +53,7 @@ gint64 gimp_g_value_get_memsize (GValue *value);
|
|||
gint64 gimp_g_param_spec_get_memsize (GParamSpec *pspec);
|
||||
|
||||
gint64 gimp_gegl_buffer_get_memsize (GeglBuffer *buffer);
|
||||
gint64 gimp_gegl_pyramid_get_memsize (GeglBuffer *buffer);
|
||||
|
||||
gint64 gimp_string_get_memsize (const gchar *string);
|
||||
gint64 gimp_parasite_get_memsize (GimpParasite *parasite,
|
||||
|
|
|
@ -296,7 +296,7 @@ gimp_projection_get_memsize (GimpObject *object,
|
|||
GimpProjection *projection = GIMP_PROJECTION (object);
|
||||
gint64 memsize = 0;
|
||||
|
||||
memsize += gimp_gegl_buffer_get_memsize (projection->priv->buffer);
|
||||
memsize += gimp_gegl_pyramid_get_memsize (projection->priv->buffer);
|
||||
|
||||
return memsize + GIMP_OBJECT_CLASS (parent_class)->get_memsize (object,
|
||||
gui_size);
|
||||
|
|
Loading…
Reference in New Issue