On 4/19/06, Ricard Marxer Piñón <ricardmp@...400...> wrote:
From my point of view Inkscape should have to type of renderers:
- a fast and optimized one (maybe not necessarly an exact one) for realtime
rendering. kind of a WYSIWYG renderer for when modifying on screen
- a slow but precise renderer for getting a print-ready, camera-ready or
even video/film-ready, hi-res,...
Xara has proven that it's possible to have one renderer which is fast enough for complex drawings and is good at any resolution. So I don't think we should consider investing into two renderers. Besides, in SVN you have the Outline mode which is almost like your "fast and inexact" renderer :)
These two renderers should have a common API (primitive drawing commands proper to rasterized images (points, lines and filled triangles)) in order to be able to extend this idea to other renderers (maybe someone comes up with a better antialiasing algorithm or a better renderer, or even a different buffer type result (hexagonal pixel buffers,...).
And a well-defined API is certainly a good thing to have, regardless of anything else. Indeed we have at least one renderer switch ahead...
I'm asking this, because I would like to propose the "Creation of a shader (modifications at rendering level) language for vector images" as a Summer of Code project. Me as a student am interested in this idea. Seeing the deadlines approaching fast I would appreciate quick feedback and maybe mentor volunteers.
As you know, SVG has filters, which we need to implement. That has higher priority for us because it's a standard SVG feature and because they provide basic and very needed functions (such as blur, various composition modes, etc.) So I would suggest that you look into implementing these first. If you're willing, I could be your mentor. Later perhaps the same mechanism can be used to implement generic shaders (though SVG 1.1 provides only a fixed set of filters).
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org