mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-04-23 00:30:47 +02:00
Remove _cairo_surface_composite_trapezoids_as_polygon()
The function computed the composite rectangles wrong and was only used in a gl fallback anyway. So instead of trying to fix it, just remove it and make sure gl doesn't fallback.
This commit is contained in:
parent
1e003fce8f
commit
550335efed
4 changed files with 0 additions and 113 deletions
|
|
@ -985,20 +985,6 @@ _cairo_gl_surface_composite_trapezoids (cairo_operator_t op,
|
|||
if (! _cairo_gl_operator_is_supported (op))
|
||||
return UNSUPPORTED ("unsupported operator");
|
||||
|
||||
if (_cairo_surface_check_span_renderer (op,pattern,&dst->base, antialias)) {
|
||||
status =
|
||||
_cairo_surface_composite_trapezoids_as_polygon (&dst->base,
|
||||
op, pattern,
|
||||
antialias,
|
||||
src_x, src_y,
|
||||
dst_x, dst_y,
|
||||
width, height,
|
||||
traps, num_traps,
|
||||
clip_region);
|
||||
if (status != CAIRO_INT_STATUS_UNSUPPORTED)
|
||||
return status;
|
||||
}
|
||||
|
||||
status = _cairo_gl_get_traps_pattern (dst,
|
||||
dst_x, dst_y, width, height,
|
||||
traps, num_traps, antialias,
|
||||
|
|
|
|||
|
|
@ -186,16 +186,4 @@ _cairo_surface_composite_polygon (cairo_surface_t *surface,
|
|||
cairo_polygon_t *polygon,
|
||||
cairo_region_t *clip_region);
|
||||
|
||||
cairo_private cairo_status_t
|
||||
_cairo_surface_composite_trapezoids_as_polygon (cairo_surface_t *surface,
|
||||
cairo_operator_t op,
|
||||
const cairo_pattern_t *pattern,
|
||||
cairo_antialias_t antialias,
|
||||
int src_x, int src_y,
|
||||
int dst_x, int dst_y,
|
||||
int width, int height,
|
||||
cairo_trapezoid_t *traps,
|
||||
int num_traps,
|
||||
cairo_region_t *clip_region);
|
||||
|
||||
#endif /* CAIRO_SPANS_PRIVATE_H */
|
||||
|
|
|
|||
|
|
@ -84,81 +84,6 @@ _cairo_surface_composite_polygon (cairo_surface_t *surface,
|
|||
return status;
|
||||
}
|
||||
|
||||
cairo_status_t
|
||||
_cairo_surface_composite_trapezoids_as_polygon (cairo_surface_t *surface,
|
||||
cairo_operator_t op,
|
||||
const cairo_pattern_t *pattern,
|
||||
cairo_antialias_t antialias,
|
||||
int src_x, int src_y,
|
||||
int dst_x, int dst_y,
|
||||
int width, int height,
|
||||
cairo_trapezoid_t *traps,
|
||||
int num_traps,
|
||||
cairo_region_t *clip_region)
|
||||
{
|
||||
cairo_span_renderer_t *renderer;
|
||||
cairo_scan_converter_t *converter;
|
||||
cairo_composite_rectangles_t rects;
|
||||
cairo_status_t status;
|
||||
|
||||
rects.source.x = src_x;
|
||||
rects.source.y = src_y;
|
||||
rects.source.width = width;
|
||||
rects.source.height = height;
|
||||
|
||||
rects.mask.x = dst_x;
|
||||
rects.mask.y = dst_y;
|
||||
rects.mask.width = width;
|
||||
rects.mask.height = height;
|
||||
|
||||
rects.bounded.x = dst_x;
|
||||
rects.bounded.y = dst_y;
|
||||
rects.bounded.width = width;
|
||||
rects.bounded.height = height;
|
||||
|
||||
rects.unbounded = rects.bounded;
|
||||
|
||||
rects.is_bounded = _cairo_operator_bounded_by_either (op);
|
||||
|
||||
converter = _create_scan_converter (CAIRO_FILL_RULE_WINDING,
|
||||
antialias,
|
||||
&rects);
|
||||
status = converter->status;
|
||||
if (unlikely (status))
|
||||
goto CLEANUP_CONVERTER;
|
||||
|
||||
while (num_traps--) {
|
||||
status = converter->add_edge (converter,
|
||||
&traps->left.p1, &traps->left.p2,
|
||||
traps->top, traps->bottom, 1);
|
||||
if (unlikely (status))
|
||||
goto CLEANUP_CONVERTER;
|
||||
|
||||
status = converter->add_edge (converter,
|
||||
&traps->right.p1, &traps->right.p2,
|
||||
traps->top, traps->bottom, -1);
|
||||
if (unlikely (status))
|
||||
goto CLEANUP_CONVERTER;
|
||||
|
||||
traps++;
|
||||
}
|
||||
|
||||
renderer = _cairo_surface_create_span_renderer (op, pattern, surface,
|
||||
antialias, &rects,
|
||||
clip_region);
|
||||
status = converter->generate (converter, renderer);
|
||||
if (unlikely (status))
|
||||
goto CLEANUP_RENDERER;
|
||||
|
||||
status = renderer->finish (renderer);
|
||||
|
||||
CLEANUP_RENDERER:
|
||||
renderer->destroy (renderer);
|
||||
CLEANUP_CONVERTER:
|
||||
converter->destroy (converter);
|
||||
return status;
|
||||
}
|
||||
|
||||
static void
|
||||
_cairo_nil_destroy (void *abstract)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1973,18 +1973,6 @@ _cairo_surface_composite_trapezoids (cairo_operator_t op,
|
|||
int ntraps,
|
||||
cairo_region_t *clip_region);
|
||||
|
||||
cairo_private cairo_status_t
|
||||
_cairo_surface_composite_trapezoids_as_polygon (cairo_surface_t *surface,
|
||||
cairo_operator_t op,
|
||||
const cairo_pattern_t *pattern,
|
||||
cairo_antialias_t antialias,
|
||||
int src_x, int src_y,
|
||||
int dst_x, int dst_y,
|
||||
int width, int height,
|
||||
cairo_trapezoid_t *traps,
|
||||
int num_traps,
|
||||
cairo_region_t *clip_region);
|
||||
|
||||
cairo_private cairo_span_renderer_t *
|
||||
_cairo_surface_create_span_renderer (cairo_operator_t op,
|
||||
const cairo_pattern_t *pattern,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue