[directfb] Unbounded operators are unsupported.

Currently the emulation of Porter-Duff operators does not correctly
handle the unbounded operators.
This commit is contained in:
Chris Wilson 2008-10-20 22:31:17 +01:00
parent 1f35f31c4e
commit ae9d17c015

View file

@ -720,6 +720,10 @@ _directfb_prepare_composite (cairo_directfb_surface_t *dst,
DFBSurfaceBlendFunction dblend;
const cairo_color_t *color;
/* XXX Unbounded operators are not handled correctly */
if (! _cairo_operator_bounded_by_source (op))
return CAIRO_INT_STATUS_UNSUPPORTED;
if (! _directfb_get_operator (op, &sblend, &dblend))
return CAIRO_INT_STATUS_UNSUPPORTED;
@ -1097,6 +1101,9 @@ _cairo_directfb_surface_fill_rectangles (void *abstract_surface
"%s( dst=%p, op=%d, color=%p, rects=%p, n_rects=%d ).\n",
__FUNCTION__, dst, op, color, rects, n_rects);
if (! _cairo_operator_bounded_by_source (op))
return CAIRO_INT_STATUS_UNSUPPORTED;
if (! _directfb_get_operator (op, &sblend, &dblend))
return CAIRO_INT_STATUS_UNSUPPORTED;
@ -1714,8 +1721,11 @@ _cairo_directfb_surface_show_glyphs (void *abstract_dst,
return CAIRO_INT_STATUS_UNSUPPORTED;
}
/* XXX Unbounded operators are not handled correctly */
if (! _cairo_operator_bounded_by_mask (op))
return CAIRO_INT_STATUS_UNSUPPORTED;
if (! _cairo_operator_bounded_by_source (op))
return CAIRO_INT_STATUS_UNSUPPORTED;
if (! _directfb_get_operator (op, &sblend, &dblend) ||
sblend == DSBF_DESTALPHA || sblend == DSBF_INVDESTALPHA)