> i just had a look at the cmn code (after a long time of just using it) > and saw that all of the non-Postscript backend stuff got removed. The > only thing I could find was a notice in the changelog: > > 15-Mar: removed nxtcmn.c, sgicmn.c, xcmnw.c, cmn-mcl-utils.lisp, > cmn-mcl.lisp, > cmn-excl.lisp, cmn-scroll.lisp. Removed all FFI, > quickdraw, and Braille stuff. > > What was the reason for this? I wanted to look at the code to find out > how much work would be required to add other backends (Cairo/CLIM/PDF). > > From what understand looking at the current code all drawing operations > are functions and not generic methods - hard to specialize on the > backend.
The FFI stuff was removed because it wasn't needed (it provided an optimization of format), and it added a lot of complexity to the build process, constantly causing trouble. The Quickdraw stuff was removed because Quickdraw no longer exists. The Braille support was removed because, as far as I could tell, no one was using it; the person who asked me for it disappeared -- it probably never worked. The previewer was removed because I thought I was going to find time to write a better one using technology invented after World War 2, but I haven't. The output functions never were generic -- cmn-grfx.lisp has most of them; they are very simple. To add a new backend, use the output-type field of the score object, and a lowly case statement; or change everything to methods, if you want. I believe a CLIM backend would be easy, and Cairo not so bad but it would need FFI support; I don't know anything about pdf. _______________________________________________ Cmdist mailing list [email protected] http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist
