Mike:

* Break the library into loosely coupled pieces that can be used individually or aggregated by other projects to build things that we haven't even thought of
  *  Geometric primitives should be their own library/package
* Vector graphics (paths, line caps, etc...) should be their own library/package
  *  Raster graphics should be their own library/package
  *  Window management should be its own library/package
* Font's are just data. Don't couple them to the rendering engine. (e.g Convert them to a vector/raster representation and then let those libraries handle the rest. * The rendering engine should be its own library/package, that should be easily replaced with whatever is suitable for the given platform.

An independent color system module could be useful, even in Phobos.

Part of the Geometric primitives (2D/3D vectors, rotation matrices, the most commonly useful geometry algorithms and formulas) could go in a Phobos module. And the graphics library could import and use this standard module.

Something like the simpledisplay module (that the graphics library will not import) could be useful in Phobos:
https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff

Bye,
bearophile

Reply via email to