mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-01-03 17:30:19 +01:00
gl/spans: Handle SOURCE operations with opaque sources.
SOURCE operations with an opaque are equivalent to OVER. This can prevent us from falling back in certain cases. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
4b6b28b5e8
commit
562cc8227f
1 changed files with 7 additions and 0 deletions
|
|
@ -431,6 +431,13 @@ _cairo_gl_span_renderer_init (cairo_abstract_span_renderer_t *_r,
|
|||
cairo_operator_t op = composite->op;
|
||||
cairo_int_status_t status;
|
||||
|
||||
if (op == CAIRO_OPERATOR_SOURCE) {
|
||||
if (! _cairo_pattern_is_opaque (&composite->source_pattern.base,
|
||||
&composite->source_sample_area))
|
||||
return CAIRO_INT_STATUS_UNSUPPORTED;
|
||||
op = CAIRO_OPERATOR_OVER;
|
||||
}
|
||||
|
||||
/* XXX earlier! */
|
||||
if (op == CAIRO_OPERATOR_CLEAR) {
|
||||
source = &_cairo_pattern_white.base;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue