[whatwg] Canvas draw quality

David Hyatt hyatt at apple.com
Fri Oct 20 22:47:53 PDT 2006

Except with something like canvas, people are going to care about the  
precise pixel-level details of the rendering.  We can't handwave  
these details away using vague terminology like low-quality or high- 
quality, where the user agent is free to decide what those terms  
mean.  If we do that, then we risk not having interoperability  
between browsers.


On Oct 20, 2006, at 10:44 PM, Andrew Fedoniouk wrote:

> Dave, various implementations use different libraries/approaches  
> for the Graphics.
> Way of tuning parameters and their set can be different. I think  
> that it is simply not possible
> to generalize them all. At least something generic like  
> preference=quality/speed switch makes real sense.
> Technically it is better to allow to get two Graphics instances for  
> the same canvas and use
> them at the same time if really needed. In any case 2D and 3D  
> graphics shall coexist on the same surface.
> So why not 2D and 2D-fast ?
> In any case it is up to UA to provide multiple implementation for  
> different values of contextID.
> contextID as a string is there in purpose I belive. That is the one.
> Andrew Fedoniouk.
> http://terrainformatica.com
> ----- Original Message -----
> From: David Hyatt
> To: Andrew Fedoniouk
> Cc: Benjamin Joffe ; whatwg at whatwg.org
> Sent: Friday, October 20, 2006 10:12 PM
> Subject: Re: [whatwg] Canvas draw quality
> I don't think a totally different context is a good idea.   
> Sometimes you want to mix antialiased and non-antialiased modes.
> The API in CG is part of the graphics state...
> CGContextSetShouldAntialias
> I don't think an API like this should be vague about what it's  
> doing... e.g., just using vague terms like "quality."  We should  
> say what we mean... antialiasing for example.
> dave
> On Oct 20, 2006, at 10:01 PM, Andrew Fedoniouk wrote:
>> ----- Original Message -----
>> From: Benjamin Joffe
>> To: whatwg at whatwg.org
>> Sent: Friday, October 20, 2006 9:09 PM
>> Subject: [whatwg] Canvas draw quality
>> I would like to see a property added to the 2d canvas context that  
>> would allow quality to be lowered for drawing functions. Normally  
>> any time a shape is drawn, pixels close to the boundary are made  
>> semi transparent to make it look smooth, this is usually  
>> favourable but I have had a need to draw shapes and lines with  
>> pixel sharp boundaries in the same way as Java normally does. I  
>> would imagine that with the setting enabled, only the integer part  
>> of linewidth would be used. This setting would also affect drawing  
>> images, making them have no blurring or approximating when scaled  
>> or rotated.
>> This could easily be implemented without affecting old scripts,  
>> making a property such as lowQuality = true; (default false). Or  
>> perhaps allowing more control: a float from 0 (low quality) to 1  
>> (high quality), and interperating null as 1 for backwards  
>> compatibility.
>> This property could also be handy in instaces where both fill()  
>> and stroke() are being called. Low quality could be used on the  
>> fill() to improve performace while stroke() could be used with  
>> high quality so it still draws smoothly.
>> I think that the best way is just to define different values for  
>> the context ID:
>> DOMObject getContext(in DOMString contextID);
>> Something like "2D" and "2D-fast" or "2D-simple".
>> Another option would be to add one optional parameter to the  
>> getContext() function.
>> I doubt that someone will need to switch it in the middle of  
>> drawing so
>> having such switch as an attribute is redundant.
>> Andrew Fedoniouk.
>> http://terrainformatica.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20061020/64802693/attachment-0001.htm>

More information about the whatwg mailing list