[gimp] app: add temp-buf-total varaible to the dashboard
- From: Ell <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add temp-buf-total varaible to the dashboard
- Date: Fri, 22 Feb 2019 13:47:42 +0000 (UTC)
commit bb645bae1762d70158f7ff62fe349a02dcfc5b22
Author: Ell <ell_se yahoo com>
Date: Fri Feb 22 08:38:05 2019 -0500
app: add temp-buf-total varaible to the dashboard
Add a temp-buf-total variable to the dashboard's misc group,
showing the total size of all GimpTempBuf objects.
app/core/gimptempbuf.c | 23 +++++++++++++++++
app/core/gimptempbuf.h | 60 ++++++++++++++++++++++++---------------------
app/widgets/gimpdashboard.c | 17 +++++++++++++
3 files changed, 72 insertions(+), 28 deletions(-)
---
diff --git a/app/core/gimptempbuf.c b/app/core/gimptempbuf.c
index f06579ad67..0d84d779e2 100644
--- a/app/core/gimptempbuf.c
+++ b/app/core/gimptempbuf.c
@@ -53,6 +53,13 @@ typedef struct
G_STATIC_ASSERT (sizeof (LockData) <= LOCK_DATA_ALIGNMENT);
+/* local variables */
+
+static guintptr gimp_temp_buf_total_memsize = 0;
+
+
+/* public functions */
+
GimpTempBuf *
gimp_temp_buf_new (gint width,
gint height,
@@ -76,6 +83,9 @@ gimp_temp_buf_new (gint width,
temp->format = format;
temp->data = gegl_malloc ((gsize) width * height * bpp);
+ g_atomic_pointer_add (&gimp_temp_buf_total_memsize,
+ +gimp_temp_buf_get_memsize (temp));
+
return temp;
}
@@ -162,6 +172,10 @@ gimp_temp_buf_unref (GimpTempBuf *buf)
if (buf->ref_count < 1)
{
+ g_atomic_pointer_add (&gimp_temp_buf_total_memsize,
+ -gimp_temp_buf_get_memsize (buf));
+
+
if (buf->data)
gegl_free (buf->data);
@@ -426,3 +440,12 @@ gimp_gegl_buffer_get_temp_buf (GeglBuffer *buffer)
return g_object_get_data (G_OBJECT (buffer), "gimp-temp-buf");
}
+
+
+/* public functions (stats) */
+
+guint64
+gimp_temp_buf_get_total_memsize (void)
+{
+ return gimp_temp_buf_total_memsize;
+}
diff --git a/app/core/gimptempbuf.h b/app/core/gimptempbuf.h
index af4e8c4cf4..1569138345 100644
--- a/app/core/gimptempbuf.h
+++ b/app/core/gimptempbuf.h
@@ -19,45 +19,49 @@
#define __GIMP_TEMP_BUF_H__
-GimpTempBuf * gimp_temp_buf_new (gint width,
- gint height,
- const Babl *format) G_GNUC_WARN_UNUSED_RESULT;
-GimpTempBuf * gimp_temp_buf_new_from_pixbuf (GdkPixbuf *pixbuf,
- const Babl *f_or_null) G_GNUC_WARN_UNUSED_RESULT;
-GimpTempBuf * gimp_temp_buf_copy (const GimpTempBuf *src) G_GNUC_WARN_UNUSED_RESULT;
+GimpTempBuf * gimp_temp_buf_new (gint width,
+ gint height,
+ const Babl *format) G_GNUC_WARN_UNUSED_RESULT;
+GimpTempBuf * gimp_temp_buf_new_from_pixbuf (GdkPixbuf *pixbuf,
+ const Babl *f_or_null) G_GNUC_WARN_UNUSED_RESULT;
+GimpTempBuf * gimp_temp_buf_copy (const GimpTempBuf *src) G_GNUC_WARN_UNUSED_RESULT;
-GimpTempBuf * gimp_temp_buf_ref (GimpTempBuf *buf);
-void gimp_temp_buf_unref (GimpTempBuf *buf);
+GimpTempBuf * gimp_temp_buf_ref (GimpTempBuf *buf);
+void gimp_temp_buf_unref (GimpTempBuf *buf);
-GimpTempBuf * gimp_temp_buf_scale (const GimpTempBuf *buf,
- gint width,
- gint height) G_GNUC_WARN_UNUSED_RESULT;
+GimpTempBuf * gimp_temp_buf_scale (const GimpTempBuf *buf,
+ gint width,
+ gint height) G_GNUC_WARN_UNUSED_RESULT;
-gint gimp_temp_buf_get_width (const GimpTempBuf *buf);
-gint gimp_temp_buf_get_height (const GimpTempBuf *buf);
+gint gimp_temp_buf_get_width (const GimpTempBuf *buf);
+gint gimp_temp_buf_get_height (const GimpTempBuf *buf);
-const Babl * gimp_temp_buf_get_format (const GimpTempBuf *buf);
-void gimp_temp_buf_set_format (GimpTempBuf *buf,
- const Babl *format);
+const Babl * gimp_temp_buf_get_format (const GimpTempBuf *buf);
+void gimp_temp_buf_set_format (GimpTempBuf *buf,
+ const Babl *format);
-guchar * gimp_temp_buf_get_data (const GimpTempBuf *buf);
-gsize gimp_temp_buf_get_data_size (const GimpTempBuf *buf);
+guchar * gimp_temp_buf_get_data (const GimpTempBuf *buf);
+gsize gimp_temp_buf_get_data_size (const GimpTempBuf *buf);
-guchar * gimp_temp_buf_data_clear (GimpTempBuf *buf);
+guchar * gimp_temp_buf_data_clear (GimpTempBuf *buf);
-gpointer gimp_temp_buf_lock (const GimpTempBuf *buf,
- const Babl *format,
- GeglAccessMode access_mode) G_GNUC_WARN_UNUSED_RESULT;
-void gimp_temp_buf_unlock (const GimpTempBuf *buf,
- gconstpointer data);
+gpointer gimp_temp_buf_lock (const GimpTempBuf *buf,
+ const Babl *format,
+ GeglAccessMode access_mode) G_GNUC_WARN_UNUSED_RESULT;
+void gimp_temp_buf_unlock (const GimpTempBuf *buf,
+ gconstpointer data);
-gsize gimp_temp_buf_get_memsize (const GimpTempBuf *buf);
+gsize gimp_temp_buf_get_memsize (const GimpTempBuf *buf);
-GeglBuffer * gimp_temp_buf_create_buffer (GimpTempBuf *temp_buf) G_GNUC_WARN_UNUSED_RESULT;
-GdkPixbuf * gimp_temp_buf_create_pixbuf (GimpTempBuf *temp_buf) G_GNUC_WARN_UNUSED_RESULT;
+GeglBuffer * gimp_temp_buf_create_buffer (GimpTempBuf *temp_buf) G_GNUC_WARN_UNUSED_RESULT;
+GdkPixbuf * gimp_temp_buf_create_pixbuf (GimpTempBuf *temp_buf) G_GNUC_WARN_UNUSED_RESULT;
-GimpTempBuf * gimp_gegl_buffer_get_temp_buf (GeglBuffer *buffer);
+GimpTempBuf * gimp_gegl_buffer_get_temp_buf (GeglBuffer *buffer);
+/* stats */
+
+guint64 gimp_temp_buf_get_total_memsize (void);
+
#endif /* __GIMP_TEMP_BUF_H__ */
diff --git a/app/widgets/gimpdashboard.c b/app/widgets/gimpdashboard.c
index 45e9114b2c..52b7310359 100644
--- a/app/widgets/gimpdashboard.c
+++ b/app/widgets/gimpdashboard.c
@@ -59,6 +59,7 @@
#include "core/gimp-parallel.h"
#include "core/gimpasync.h"
#include "core/gimpbacktrace.h"
+#include "core/gimptempbuf.h"
#include "core/gimpwaitable.h"
#include "gimpactiongroup.h"
@@ -138,6 +139,7 @@ typedef enum
VARIABLE_MIPMAPED,
VARIABLE_ASYNC_RUNNING,
VARIABLE_SCRATCH_TOTAL,
+ VARIABLE_TEMP_BUF_TOTAL,
N_VARIABLES,
@@ -696,6 +698,18 @@ static const VariableInfo variables[] =
.type = VARIABLE_TYPE_SIZE,
.sample_func = gimp_dashboard_sample_gegl_stats,
.data = "scratch-total"
+ },
+
+ [VARIABLE_TEMP_BUF_TOTAL] =
+ { .name = "temp-buf-total",
+ /* Translators: "TempBuf" is a technical term referring to an internal
+ * GIMP data structure. It's probably OK to leave it untranslated.
+ */
+ .title = NC_("dashboard-variable", "TempBuf"),
+ .description = N_("Total size of temporary buffers"),
+ .type = VARIABLE_TYPE_SIZE,
+ .sample_func = gimp_dashboard_sample_function,
+ .data = gimp_temp_buf_get_total_memsize
}
};
@@ -897,6 +911,9 @@ static const GroupInfo groups[] =
{ .variable = VARIABLE_SCRATCH_TOTAL,
.default_active = TRUE
},
+ { .variable = VARIABLE_TEMP_BUF_TOTAL,
+ .default_active = TRUE
+ },
{}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]