On 10/11/16 12:13 PM, Sergey Bylokhov wrote:
On 11.10.16 21:54, Jim Graham wrote:
Additionally, for AA rendering, there is no such thing as
"setClip(someShape)" and "fill(sameShape)" being identical no matter how
much we predict which rules they may want because clips are inherently
non-AA and so the fuzzy pixels along the boundary of an AA shape will be
randomly clipped or included.

When all is said and done I feel (not very strongly) it would be best to
have clipping remain unaffected by the biasing of STROKE hints, but part
of that is driven by the fact that I think it can be fixed with a couple
of lines of code in SG2D/LoopPipe...

I guess a bottom line is that it is require an additional investigation. I am 
not exactly sure, but my expectation is
that fillRect(x,y,w,h)/drawImage(x,y,w,h) + setClip(x,y,w,h) should work in a 
similar way(covers the same pixels). And
the question should this behavior be exactly the same as fill(RectShape) + 
setClip(RectShape) is unclear (I am not sure
is it a critical issue or not)

In STROKE_PURE, setClip/fillRect/drawImage(x,y,w,h) should all hit the same pixels. I think we currently have a bug with drawImage() that needs to be investigated further, though. The fact that it overlaps with itself is problematic and likely an indication that it won't match fillRect() either.

Under STROKE_NORMALIZE, fillRect() and fill(Rect) are affected due to their relationship to drawRect()/fill(Rect). It's not clear if it should be identical to clipRect() and clip(Rect), though as I don't know where we'd have developers relying on that. In particular, damage repair would usually involve clip(dmgxywh) followed by fill(compxywh) and so they wouldn't necessarily need to match. drawImage() brings up additional questions.

For now I think we can ignore this issue for this fix, but I still have a question on the fix which I'll ask in response to webrev.04. We should file the "clipRect() vs clip(RectShape)" bug for follow-on work.

Right now I tried to fix overlapping, which produce visible artifacts and were 
considered as a bugs. The next issue
which I would like to fix is a overlapping of drawImage().

Yes, that bears investigation...

                        ...jim

Reply via email to