[Webkit-unassigned] [Bug 53055] REGRESSION: Rendering artifacts on a rotated, pattern filled shape

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Aug 24 23:40:17 PDT 2011


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





--- Comment #36 from Tim Horton <timothy_horton at apple.com>  2011-08-24 23:40:17 PST ---
(In reply to comment #35)
> (From update of attachment 105112 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=105112&action=review
> 
> because of the use of TransformationMatrix.
> 
> > Source/WebCore/ChangeLog:11
> > +        Introduce wkCGPatternCreateWithImageAndTransform, and make use of it
> > +        when tiling patterns in both directions. This helps to prevent
> > +        pixel-cracking along pattern tiling boundaries.
> 
> This won't have affect to other platforms. Is their a negative visual affect left on other platforms? If so I'd like to have a more general solution, that works for all ports.

This isn't something we can fix in a general way, it's basically working around a CoreGraphics bug (actually, a accuracy vs. performance tradeoff which has already been decided). It'll have to be fixed platform to platform, and I wouldn't be surprised to find that it already works on some platforms.

> > Source/WebCore/rendering/svg/SVGImageBufferTools.cpp:133
> > +    TransformationMatrix::DecomposedType decomposition;
> > +    TransformationMatrix tm = transform.toTransformationMatrix();
> > +    tm.decompose(decomposition);
> > +    decomposition.quaternionZ = 0.0;
> > +    tm.recompose(decomposition);
> > +    transform = tm.toAffineTransform();
> 
> Can't we port recompose and decompose to AffineTransform? If z = 0 anyway, it shouldn't be a big problem, but avoids creating a TransformationMatrix. IIRC AffineTransform uses floats while TransformationMatrix uses double (didn't check it). If so, we have unnecessary transformations float --> double --> float. Also TransformationMatrix needs 16 floating point numbers, while AffineTransform just needs 6.

Am I missing it (it's late!) or is there no function to decompose/recompose an AffineTranform? Also, it looks like they both use doubles.

> Btw. decomposition.quaternionZ = 0; .0 is superflous.

Sure.

-- 
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