cairo_surface_t * _cairo_test_no_traps_compositor_surface_create (cairo_content_t content, int width, int height) { return test_compositor_surface_create (no_traps_compositor_get(), content, width, height); }
static const cairo_compositor_t * no_spans_compositor_get (void) { static cairo_spans_compositor_t compositor; if (compositor.base.delegate == NULL) { _cairo_spans_compositor_init (&compositor, no_traps_compositor_get()); //compositor.acquire = acquire; //compositor.release = release; compositor.fill_boxes = fill_boxes; //compositor.check_composite_boxes = check_composite_boxes; compositor.composite_boxes = composite_boxes; //compositor.check_span_renderer = check_span_renderer; compositor.renderer_init = span_renderer_init; compositor.renderer_fini = span_renderer_fini; } return &compositor.base; }
static const cairo_compositor_t * no_spans_compositor_get (void) { static cairo_atomic_once_t once = CAIRO_ATOMIC_ONCE_INIT; static cairo_spans_compositor_t compositor; if (_cairo_atomic_init_once_enter(&once)) { _cairo_spans_compositor_init (&compositor, no_traps_compositor_get()); //compositor.acquire = acquire; //compositor.release = release; compositor.fill_boxes = fill_boxes; //compositor.check_composite_boxes = check_composite_boxes; compositor.composite_boxes = composite_boxes; //compositor.check_span_renderer = check_span_renderer; compositor.renderer_init = span_renderer_init; compositor.renderer_fini = span_renderer_fini; _cairo_atomic_init_once_leave(&once); } return &compositor.base; }