[whatwg] Still beating the drawString() dead horse...

Arve Bersvendsen arveb at opera.com
Tue Nov 14 05:53:36 PST 2006


On Tue, 14 Nov 2006 14:29:44 +0100, Stefan Haustein <sh at kobjects.org>  
wrote:

> Arve Bersvendsen wrote:
>> drawElement() is hardly unpractical, bloated or overkill, since it's  
>> actually probably the only way to get _somewhat_ predictable rendering  
>> of text, pioneered by almost 10 years of CSS. drawString() reintroduces  
>> the unpredictability of font and layout differences without attempting  
>> to solve any of the problem.
>
> Hi Arve,
>
> sometimes it is a good thing not to try to solve all problems at once,  
> in particular in API design.
>
> drawElement() is actually not any little bit more predictable than  
> drawString(). If you disagree, please be specific.

Let's see. CSS and an element interface provides:

1) Specified and predictable white-space handling
2) Specified and predictable font and font-size handling (fallbacks,  
relative and absolute sizes)
3) Specified and predictable line-height handling
4) Inline formatting
5) Color handling

A drawString would have to support all of these to be useful, and by that  
time you'll have reinvented more of CSS than you'd want to.

   var myEle = document.createElement('p');
   myEle.textContent("Hello \nWorld");
   // Or choose any other method of attaching style attributes to elements.
   myEle.style = "color: blue; white-space: pre; font-size: 12px;  
line-height: 2; width: 100px; height: 100px;"
   // ...
   myCanvas2dContext.drawImage(myEle.drawElement(),0,0)

Not too complicated.

-- 
Arve Bersvendsen, Opera Software ASA, http://www.opera.com/



More information about the whatwg mailing list