On Thu, Jan 30, 2014 at 2:14 PM, Joe Gregorio <[email protected]> wrote:

>
>
>
> On Mon, Jan 27, 2014 at 9:28 PM, Rik Cabanier <[email protected]> wrote:
>
>> On Mon, Jan 27, 2014 at 3:15 PM, Joe Gregorio <[email protected]>wrote:
>>
>>> Agreed on the complexity and the interactions. Unfortunately dropping
>>> all of them but addPath does seem to leave
>>> Path with a hole in functionality since CanvasRenderingContext2D has
>>> both a fillText() and strokeText(). How about simplifying
>>> to just these two add* methods:
>>>
>>>   void addPath(Path path, SVGMatrix? transformation);
>>>   void addText(DOMString text, SVGMatrix? transformation, unrestricted
>>> double x, unrestricted double y, optional unrestricted double maxWidth);
>>>
>>> Note the removal of the CanvasDrawingStyles from addText.
>>>
>>
>> Unfortunately, that doesn't really help.
>>  For instance, let's say you request the path for the letter 'o'. It's
>> represented by 2 closed paths.
>> What winding rule should you use when you fill that path? Should the
>> paths be oriented so you have to use a NZO fill or so you can use any
>> winding rule?
>>
>> What happens if the path for a letter intersect with another path (or
>> another letter)?
>>
>
> OK, I'm convinced that's going to be not very useful for filling if there
> aren't some
> guarantees about the winding of the resulting path, which is a hard
> problem.
> So I'm fine with just sticking to addPath, which I think was your original
> proposal ;-)
>
>   void addPath(Path path, SVGMatrix? transformation);
>

Thanks Joe!
Some people were unhappy with the SVGMatrix in the argument list but unless
we have something better soon, it's fine to implement. (We can always use a
union later)

Ian, could you remove the other APIs from the spec:

void addPathByStrokingPath(Path path, CanvasDrawingStyles styles,
SVGMatrix? transformation);
void addText(DOMString text, CanvasDrawingStyles styles, SVGMatrix?
transformation, unrestricted double x, unrestricted double y, optional
unrestricted double maxWidth);
void addPathByStrokingText(DOMString text, CanvasDrawingStyles styles,
SVGMatrix? transformation, unrestricted double x, unrestricted double y,
optional unrestricted double maxWidth);
void addText(DOMString text, CanvasDrawingStyles styles, SVGMatrix?
transformation, Path path, optional unrestricted double maxWidth);
void addPathByStrokingText(DOMString text, CanvasDrawingStyles styles,
SVGMatrix? transformation, Path path, optional unrestricted double
maxWidth);

No one has implemented them and they are confusing the browser vendors.
Until we have support for shapes, the output of these methods won't be
stable.

Reply via email to