[plt-dev] update on reimplementing MrEd
After many months of no work toward reimplementing MrEd, I've found a
little time to work on it lately.
The original plan:
- Phase 1: convert the editor classes to Scheme (done!)
- Phase 2: convert the drawing classes to Scheme using Cairo+Pango
- Phase 3: convert the GUI classes to Scheme using Gtk/Cocoa/Win32
Although there's still lots to do for Phase 2, I've gotten far enough
that I'm sure it will work. I've implemented text, bitmaps, PNG and
JPEG handling, PostScript generation, clipping regions, and aligned
drawing.
I can imagine releasing Phase 2 sometime early next year. That is, we'd
throw out all the C++ code for drawing that's in MrEd, and we'd instead
use Scheme+FFI code that draws via Cairo+Pango. (A canvas window would
still be implemented by the current GUI binding, at first, but the
canvas's DC would point back to the Scheme world.)
Phase 3 is the most visible change and the one that interests most
people, but phase 2 will at least offer some tangible benefits (unlike
phase 1). For example, you will be able to use the drawing classes or
libraries like `slideshow/pict' to generate PNG or PostScript files
using `mzscheme' instead of `mred'.
If you'd like to see the current state, it's still at
http://svn.plt-scheme.org/plt/branches/mflatt/mred-experiment/
And I'd still be especially happy if someone writes libraries for
reading GIFs or reading and writing BMPs, XBMs, or XPMs.