On Thu, 16 Jan 2014 07:51:26 -0800, Martin Nowak <c...@dawg.eu> wrote:
On 01/06/2014 01:52 PM, bearophile wrote:
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.
I wrote a vector graphics library quite a while ago.
https://github.com/MartinNowak/graphics
It contains a lot of Path and Bezier curve algorithms and
uses a novel rasterization technique
http://josiahmanson.com/research/wavelet_rasterization/.
It's a little outdated and probably won't compile any longer.
It also depends on a small GUI primitives library which contains Color,
Point, Size and Rect.
https://github.com/MartinNowak/guip
This is awesome! What's the license on it and can we use it in Aurora?
--
Adam Wilson
IRC: LightBender
Aurora Project Coordinator