On 2011-04-06 10:25:42 -0400, Matthias Pleh <j...@konrad.net> said:

Am 06.04.2011 14:49, schrieb Michel Fortin:
     final class Bitmap(Color) : Image {
         void opIndexAssign(int x, int y, Color color) {
             pixels[y * width + x] = Color(color);
         }

         size_t width, height;
         Color[] pixels;
     }

Yep, exactly. I would implement it as template.

About the render backend, Nick mentioned.
In the first step, I would just draw all objects (lines, boxes, circles) to the buffer and then render it as image per gdi/xlib.

this render should ideally be in a single file, so other backends can be implemented (gdi/direct2d/cairo/xcb/cocoa/..)

Since you're at it, have you considered making the API flexible enough so it could support vector images too?

        // return an object derived from image depending on the actual file type
        Image im = loadImage("filename");

        // creating a bitmap for on-screen rendering
        auto bitmap = new Bitmap!RGBColor(im.width, im.height);

        // base image class has a virtual function to draw itself on a bitmap at
        // a given location, so it's easy to draw it on screen
        im.draw(10, 10, bitmap);

--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/

Reply via email to