summaryrefslogtreecommitdiff
path: root/src/cairo-surface-observer-private.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-08-20 09:36:07 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-08-20 11:51:50 +0100
commit0efdc8d27e40c72b426407b83291a28e5553ffa7 (patch)
treec5d9155786b2f91d0af6c6d8f41b5d288491fad0 /src/cairo-surface-observer-private.h
parent713c8069bea1f2391679cbfa611727703a78eb7e (diff)
downloadcairo-0efdc8d27e40c72b426407b83291a28e5553ffa7.tar.gz
observer: record all operations and their timings
The immediate use of this is to print out the slowest operation of each type in a replayable manner. A continuing demonstration of how we may analyse traces... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-surface-observer-private.h')
-rw-r--r--src/cairo-surface-observer-private.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cairo-surface-observer-private.h b/src/cairo-surface-observer-private.h
index 9e1886842..d30a0e1e0 100644
--- a/src/cairo-surface-observer-private.h
+++ b/src/cairo-surface-observer-private.h
@@ -39,6 +39,7 @@
#include "cairoint.h" /* cairo_surface_backend_t */
#include "cairo-device-private.h"
+#include "cairo-recording-surface-private.h"
#include "cairo-surface-private.h"
struct stat {
@@ -74,6 +75,11 @@ typedef struct _cairo_observation_record cairo_observation_record_t;
typedef struct _cairo_device_observer cairo_device_observer_t;
struct _cairo_observation_record {
+ cairo_content_t target_content;
+ int target_width;
+ int target_height;
+
+ int index;
cairo_operator_t op;
int source;
int mask;
@@ -161,6 +167,9 @@ struct _cairo_observation {
cairo_observation_record_t slowest;
} glyphs;
+
+ cairo_array_t timings;
+ cairo_recording_surface_t *record;
};
struct _cairo_device_observer {