[gtk+] gsk: Add a way to reset profiler counters
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gsk: Add a way to reset profiler counters
- Date: Tue, 26 Sep 2017 01:04:34 +0000 (UTC)
commit cfbd6b4b994f58997c0ee1b44ff9325648ecf660
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Sep 25 20:58:10 2017 -0400
gsk: Add a way to reset profiler counters
It is often useful to count things per-frame, and reset
the counter afterwards.
gsk/gskprofiler.c | 26 +++++++++++++++++++++++++-
gsk/gskprofilerprivate.h | 3 +++
2 files changed, 28 insertions(+), 1 deletions(-)
---
diff --git a/gsk/gskprofiler.c b/gsk/gskprofiler.c
index bc73010..be83d66 100644
--- a/gsk/gskprofiler.c
+++ b/gsk/gskprofiler.c
@@ -207,6 +207,26 @@ gsk_profiler_counter_inc (GskProfiler *profiler,
}
void
+gsk_profiler_counter_set (GskProfiler *profiler,
+ GQuark counter_id,
+ gint64 value)
+{
+ NamedCounter *counter;
+
+ g_return_if_fail (GSK_IS_PROFILER (profiler));
+
+ counter = gsk_profiler_get_counter (profiler, counter_id);
+ if (counter == NULL)
+ {
+ g_critical ("No counter '%s' (id:%d) found; did you forget to call gsk_profiler_add_counter()?",
+ g_quark_to_string (counter_id), counter_id);
+ return;
+ }
+
+ counter->value = value;
+}
+
+void
gsk_profiler_counter_add (GskProfiler *profiler,
GQuark counter_id,
gint64 increment)
@@ -217,7 +237,11 @@ gsk_profiler_counter_add (GskProfiler *profiler,
counter = gsk_profiler_get_counter (profiler, counter_id);
if (counter == NULL)
- return;
+ {
+ g_critical ("No counter '%s' (id:%d) found; did you forget to call gsk_profiler_add_counter()?",
+ g_quark_to_string (counter_id), counter_id);
+ return;
+ }
counter->value += increment;
}
diff --git a/gsk/gskprofilerprivate.h b/gsk/gskprofilerprivate.h
index e30a810..ca0f445 100644
--- a/gsk/gskprofilerprivate.h
+++ b/gsk/gskprofilerprivate.h
@@ -25,6 +25,9 @@ void gsk_profiler_counter_inc (GskProfiler *profiler,
void gsk_profiler_counter_add (GskProfiler *profiler,
GQuark counter_id,
gint64 increment);
+void gsk_profiler_counter_set (GskProfiler *profiler,
+ GQuark counter_id,
+ gint64 value);
void gsk_profiler_timer_begin (GskProfiler *profiler,
GQuark timer_id);
gint64 gsk_profiler_timer_end (GskProfiler *profiler,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]