[Webkit-unassigned] [Bug 31507] REGRESSION: [CAIRO] wrong drawing of Gradients and Patterns on texts

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Feb 27 12:41:49 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=31507





--- Comment #8 from Martin Robinson <mrobinson at webkit.org>  2011-02-27 12:41:49 PST ---
(In reply to comment #6)
> View in context: https://bugs.webkit.org/attachment.cgi?id=83948&action=review

Thanks for the suggestions.

> > Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:146
> > +    cairo_push_group(cr);
> 
> please add:
> cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);

Done!

> 
> > Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:173
> > +            reduceSourceByAlpha(cr, globalAlpha);
> 
> Maybe add a FIXME here to add a function for reducing color of gradients manually? As I said yesterday, you can create a new gradient pattern with the same colorstops reduced by global alpha.

Done!

> 
> > Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:180
> > +    }
> 
> I'd factor out lines 163-180 into a common function to be called from here and prepareForStroking.

Done!

> > Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:226
> > +    cairo_restore(cr);
> 
> Is this correct now that we do global alpha in setPlatformFill()?
> This should just be a cairo_fill(), no?

Since I passed in the NoAdjustment argument here, prepareForFilling didn't adjust the source patterns for global alpha. Since we can clip here, I think that cairo_paint_with_alpha might be faster here.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list