All of these are excellent points, and exactly the sort of thing I would like to see us do in R2. We actually looked at a couple of existing libraries (libart and zodius, as I recall) to get this functionality, but there were serious performance concerns. Don't suppose you'd like to tackle writing this stuff when the time comes? ;) e Marc Flerackers wrote: > While working with SVG I noticed that the BeOS drawing API, although quite > advanced, lacks many of the current (and old) features of vector graphics. > > One of those being transformations, BeOS only has a translation and a > uniform scale. Rotations, skews and arbitrary scales and translations are > not part of the API. Of course we can always tranform all coordinates > ourselves, and pass the transformed primitives to the API. But most modern > API's provide a fully implemented transformation stack. > > Another thing needed is anti-aliasing. For a high quality SVG viewer you > would have to do all the rendering in a bitmap yourself. > > Fill styles are restricted to solid or pattern fills. Texture and gradient > fills are missing. It is possible to emulate this by using ClipToPicture and > drawing a bitmap with the texture, or gradient. > The problems with this however are: > -ClipToPicture will not give an anti-aliased result, unless the clipping > implementation on the AppServer will work with destination alpha, which > would be nice ^_^. > -The gradients have to be prepared in a BBitmap, which means they use more > memory (than a gradient specification), and are not scaleable. Both these > points make it unusable in a BPicture. > > I would like to write an SVG to BPicture converter, however gradients are > very important to give depth to images, and anti-aliasing is needed for a > nice result when drawing. > > Maybe after R1 we can think about extending the drawing API, a function like > SetAntiAliasing/SetSmoothing would be nice, transformations and gradient > patterns require more deep changes. > > Marc Flerackers (mflerackers@xxxxxxxxxx) > Software Engineer > ANDROME NV > WetenschapsPark 4 > B-3590 Diepenbeek - Belgium > Phone:+32(0)11-301330 Fax:+32(0)11-301331 >