コード例 #1
0
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);
}
コード例 #2
0
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;
}
コード例 #3
0
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;
}