]> cairo-surface-observer 3 CAIRO Library cairo-surface-observer Functions cairo_surface_t * cairo_surface_create_observer () cairo_status_t cairo_surface_observer_add_fill_callback () cairo_status_t cairo_surface_observer_add_finish_callback () cairo_status_t cairo_surface_observer_add_flush_callback () cairo_status_t cairo_surface_observer_add_glyphs_callback () cairo_status_t cairo_surface_observer_add_mask_callback () cairo_status_t cairo_surface_observer_add_paint_callback () cairo_status_t cairo_surface_observer_add_stroke_callback () void (*cairo_surface_observer_callback_t) () double cairo_surface_observer_elapsed () cairo_status_t cairo_surface_observer_print () Types and Values #defineCAIRO_HAS_OBSERVER_SURFACE enumcairo_surface_observer_mode_t Description Functions cairo_surface_create_observer () cairo_surface_create_observer cairo_surface_t * cairo_surface_create_observer (cairo_surface_t *target, cairo_surface_observer_mode_t mode); Create a new surface that exists solely to watch another is doing. In the process it will log operations and times, which are fast, which are slow, which are frequent, etc. The mode parameter can be set to either CAIRO_SURFACE_OBSERVER_NORMAL or CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS, to control whether or not the internal observer should record operations. Parameters target an existing surface for which the observer will watch mode sets the mode of operation (normal vs. record) Returns a pointer to the newly allocated surface. The caller owns the surface and should call cairo_surface_destroy() when done with it. This function always returns a valid pointer, but it will return a pointer to a "nil" surface if other is already in an error state or any other error occurs. Since: 1.12 cairo_surface_observer_add_fill_callback () cairo_surface_observer_add_fill_callback cairo_status_t cairo_surface_observer_add_fill_callback (cairo_surface_t *abstract_surface, cairo_surface_observer_callback_t func, void *data); cairo_surface_observer_add_finish_callback () cairo_surface_observer_add_finish_callback cairo_status_t cairo_surface_observer_add_finish_callback (cairo_surface_t *abstract_surface, cairo_surface_observer_callback_t func, void *data); cairo_surface_observer_add_flush_callback () cairo_surface_observer_add_flush_callback cairo_status_t cairo_surface_observer_add_flush_callback (cairo_surface_t *abstract_surface, cairo_surface_observer_callback_t func, void *data); cairo_surface_observer_add_glyphs_callback () cairo_surface_observer_add_glyphs_callback cairo_status_t cairo_surface_observer_add_glyphs_callback (cairo_surface_t *abstract_surface, cairo_surface_observer_callback_t func, void *data); cairo_surface_observer_add_mask_callback () cairo_surface_observer_add_mask_callback cairo_status_t cairo_surface_observer_add_mask_callback (cairo_surface_t *abstract_surface, cairo_surface_observer_callback_t func, void *data); cairo_surface_observer_add_paint_callback () cairo_surface_observer_add_paint_callback cairo_status_t cairo_surface_observer_add_paint_callback (cairo_surface_t *abstract_surface, cairo_surface_observer_callback_t func, void *data); cairo_surface_observer_add_stroke_callback () cairo_surface_observer_add_stroke_callback cairo_status_t cairo_surface_observer_add_stroke_callback (cairo_surface_t *abstract_surface, cairo_surface_observer_callback_t func, void *data); cairo_surface_observer_callback_t () cairo_surface_observer_callback_t void (*cairo_surface_observer_callback_t) (cairo_surface_t *observer, cairo_surface_t *target, void *data); cairo_surface_observer_elapsed () cairo_surface_observer_elapsed double cairo_surface_observer_elapsed (cairo_surface_t *surface); cairo_surface_observer_print () cairo_surface_observer_print cairo_status_t cairo_surface_observer_print (cairo_surface_t *surface, cairo_write_func_t write_func, void *closure); Types and Values CAIRO_HAS_OBSERVER_SURFACE CAIRO_HAS_OBSERVER_SURFACE #define CAIRO_HAS_OBSERVER_SURFACE 1 enum cairo_surface_observer_mode_t cairo_surface_observer_mode_t Whether operations should be recorded. Members CAIRO_SURFACE_OBSERVER_NORMAL no recording is done CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS operations are recorded Since: 1.12