- From: Philip Taylor <excors+whatwg@gmail.com>
- Date: Tue, 13 Mar 2007 16:59:03 +0000
On 12/03/07, ddailey <ddailey at zoominternet.net> wrote: > I would like to believe that Canvas is useful, but being both naive and > stubborn, I don't yet see why. > > In reading through the WHATWG draft, there are about N things that it seems > to be talking about. I see N-2 of those as redundant with the SVG specs. The > two components that jump out at me as missing from SVG are getImageData and > putImageData -- the former being used, as I understand it, by Opera and > perhaps others, to interrogate pixel values and to gather rectangular > sub-bitmaps. Both of these are things that it would be nice (for me) if SVG > had. The other N-2 things are already present in SVG, in addition to N*5 > other things that are not in Canvas. I think performance may be a worthwhile consideration: you can probably emulate nearly all of the canvas capabilities in SVG, but it wouldn't be fast enough for a number of interesting (though not unarguably useful) applications. Benjamin Joffe's Canvascape [1] (particularly the textured version), my Canvex [2], Matt Westcott's Canvastastic [3], etc, are pushing slightly beyond the limits of acceptable performance - but they do actually work, and I've seen nothing comparable in the SVG world (although perhaps that's just because I haven't been looking?) As far as I'm aware, SVG isn't well suited to this because of the immediate vs retained mode concepts - you'd have to destroy and rebuild the document structure every frame, unless you do something crazy to minimise the number of document changes between frames (and then you probably get unpredictable performance and unpleasant positive feedback effects). There's a better match with the canvas on polyhedra.org [4] compared to some SVG 3D [5], where only vertex coordinates need to change each frame, but that's a relatively limited situation. > In the meantime asking browser developers to implement both SVG and Canvas > (given what looks like a high percentage of overlap in function) just seems > like a way to artificially pump up staffing levels on browser development > projects. Mozilla's canvas implementation is only about three thousand lines of code, while there seems to be ten times as much in its (incomplete) SVG implementation. Much of the canvas code is just glue around the existing 2D graphics library, which is (I believe) shared by the SVG renderer and (from Firefox 3) the rest of the browser's graphics system - so it fits in fairly easily with the technology that browsers have to have anyway. [1] http://www.abrahamjoffe.com.au/ben/canvascape/ [2] http://canvex.lazyilluminati.com/ [3] http://matt.west.co.tt/category/javascript/canvastastic/ [4] http://polyhedra.org/poly/ [5] http://www.treebuilder.de/default.asp?file=206524.xml -- Philip Taylor excors at gmail.com
Received on Tuesday, 13 March 2007 09:59:03 UTC