gsk: Add a way to reset profiler counters

It is often useful to count things per-frame, and reset
the counter afterwards.
This commit is contained in:
Matthias Clasen 2017-09-25 20:58:10 -04:00
parent b1e98d106d
commit cfbd6b4b99
2 changed files with 28 additions and 1 deletions

View File

@ -206,6 +206,26 @@ gsk_profiler_counter_inc (GskProfiler *profiler,
gsk_profiler_counter_add (profiler, counter_id, 1);
}
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,
@ -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;
}

View File

@ -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,