On May 10, 2008, at 5:44 PM, Oliver Hunt wrote:

On May 10, 2008, at 4:53 PM, Vladimir Vukicevic wrote:

Another approach would be to not try to solve this in canvas at all, and instead specify that by default, all canvas elements are 96dpi, and provide authors a way to explicitly override this -- then using a combination of CSS Media Queries and other CSS, the exact dpi desired could be specified. (You can sort of do this today, given that the canvas width/height attributes are in CSS pixels, and that if CSS dimensions are present a canvas is scaled like an image... so canvas { width: 100px; height: 100px; } ... <canvas width="200" height="200"/> would give a 192dpi canvas today, no?)

Canvas was designed with the intent of allowing resolution independent, removing that intent in the name of a feature that is not used in the general case seems to be a fairly substantial step back from that goal. Unfortunately the "solution" of using a larger canvas scaled to fit a smaller region isn't a real solution. For lower resolution displays it results in higher memory usage and greater computational cost than is otherwise necessary, and for high dpi displays it results either the same issues as the low dpi case (if the canvas resolution is still too high) or it results in a lower resolution display than the display is capable of.

Eh? The resolution used should be whatever the appropriate resolution should be; I'm certainly not suggesting that everyone unilaterally create canvases with 2x pixel resolution, I'm saying that the features exist to allow authors to (dynamically) create a canvas at whatever the appropriate resolution is relative to CSS resolution. Canvas was designed to allow for programmatic 2D rendering for web content; resolution independence would certainly be nice, but it was never a goal of the canvas spec. In fact, the spec explicitly states that the "canvas element represents a resolution-dependent bitmap canvas".

    - Vlad

Reply via email to