X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=metrics.h;h=69afafb9b69b5cf6f164dba37d4042dbda4e4092;hb=b0e640a505171550746af20e940076c579a0e638;hp=7baa9cb5aeb25cc460c29ec7b782f5d2bf96f4b4;hpb=3d421696b9e6cc28f590204fb290f775330e78e8;p=fips diff --git a/metrics.h b/metrics.h index 7baa9cb..69afafb 100644 --- a/metrics.h +++ b/metrics.h @@ -22,6 +22,8 @@ #ifndef METRICS_H #define METRICS_H +#include "metrics-info.h" + typedef enum { METRICS_OP_ACCUM, @@ -52,9 +54,10 @@ typedef enum typedef struct metrics metrics_t; -/* Create a new metrics_t object for tracking metrics. */ +/* Create a new metrics_t object for tracking metrics, given the + * pre-initialized metrics_info_t* describing available counters. */ metrics_t * -metrics_create (void); +metrics_create (metrics_info_t *info); /* Free all internal resources of a metrics_t * @@ -78,11 +81,11 @@ metrics_destroy (metrics_t *metrics); * current program (as set with metrics_set_current_program). */ void -metrics_counter_start (void); +metrics_counter_start (metrics_t *metrics); /* Stop accumulating GPU time (stops the most-recently started counter) */ void -metrics_counter_stop (void); +metrics_counter_stop (metrics_t *metrics); /* Set a metrics_op_t value to indicate what kind of operation is * being performed. @@ -97,13 +100,13 @@ metrics_counter_stop (void); * METRICS_OP_SHADER + shader_program_number to this function. */ void -metrics_set_current_op (metrics_op_t op); +metrics_set_current_op (metrics_t *metrics, metrics_op_t op); /* Return the current metrics_op_t value, (the value most-recently-set * with a call to metrics_set_current_op). */ metrics_op_t -metrics_get_current_op (void); +metrics_get_current_op (metrics_t *metrics); /* Should be called at the end of every function wrapper for a * function that ends a frame, (glXSwapBuffers and similar). @@ -112,7 +115,7 @@ metrics_get_current_op (void); * generate a timing report, then emits that report. */ void -metrics_end_frame (void); +metrics_end_frame (metrics_t *metrics); /* Process outstanding metrics requests, accumulating results. * @@ -126,6 +129,6 @@ metrics_end_frame (void); * measured. */ void -metrics_collect_available (void); +metrics_collect_available (metrics_t *metrics); #endif