vladimir wrote:Great suggestions! Some comments, at least from my point of view. I don't know how well this will work on the forums -- it would be good to get someone from Apple and Opera at least to chime in about their implementations, and I don't know if they're following the forums -- but we'll see.
I hope they will come as well. I thought the forums were more user friendly (with ability to edit posts, and read more than one message at once), and thus we could have feedback from more people.
vladimir wrote:Resetting the clipping path would be straightforward; a resetClip() method could be done. union/replace/subtract/xor could be hard, though; certainly for mozilla to implement it, we'd have to rasterize the clip and track it separately, and convert drawing operations with a complex clip into rendering to a temporary surface and a mask by the clip surface.
resetClip() would be much appreciated. For the clipping path, it can actually mainly be "emulated" with globalCompositeOperation, wich is already implemented. Applications could use a hidden canvas as a temporary buffer, and then copy it to the actual canvas, but it would be significantly more overhead to use (and probably way slower).
Isn't there a way for implementations to reuse the code of globalCompositeOperation to do this with clipping paths? (even if new operations are not as efficient as the simple union, it would still be better than emulating them

)
vladimir wrote:Something that could alleviate the need for union/etc. would be to allow the setting of an even-odd fill rule instead of winding. This would let you do things like clip to the region left behind by punching a circle into a rectangle, which would be hard to do right now.
Hm yes, though you cannot add something then substract something else with that, am i wrong?
Or do you mean that a single path could use different fill rules for each of its subpath?
vladimir wrote:I don't really have an opinion on this, but in what situations is reading the current color desirable? If the particular app needs to know the current color it can always track it itself; it seems like it would be simpler for apps that need this functionality to do that tracking than to change the spec.
I don't know.

But the current way it is right now feels overly complex, especially for a specification that aims to be simple. If a way to read colors is provided, and it is complex enough that there is a need to keep track of it by hand, then there is no point.

Also, we can hope that few applications have already implemented parsing rgba/#... from that property yet, so maybe changing what it returns to be an array would not break too many things? (and anyway if they had implemented it, updating to support the array way as well should be easier than the other way).
vladimir wrote:Sure, we could do that. What do you mean by orientation, though?
Sorry, i wanted to say the angle of the last subpath at the last point. Err... the angle of the tangent to the last subpath command drawn at the last point drawn. It's not mandatory, but it somehow makes sense to provide it if we give a way to retrieve the position of the last point. I thought the implementation is already able to calculate that because of the need for miter limits and such, so it would not be too complex as well.
We agree about transformations

Also, a getTransformMatrix() method would be nice too.

vladimir wrote:Yeah, drawString really needs to be done; I keep meaning to propose a spec based on some stuff that I discussed with hixie a few months ago, but haven't had a chance to yet. Maybe in a few weeks.
Well, you probably know way better than me about that, so i'll leave that to you.
