-*-text-*-

This file details how the drawing code should work after being
re-made.

Conceptual
==========
Drawing is done into a 24bpp buffer regardless of what kind of display
we will be drawing to.

The 24bpp is projected into the on-screen drawing area using
gdk_draw_rgb_image().


Practical
=========
The source for the GNOME Life applet sets an excellent example.

These different parts must be changed:
* Setup
* Drawing
* Resizing
* Color tables

Setup
------
The image pointer should be retired.

Drawing
-------
The drawing stage should work in two steps.

First, a (virtual) drawing surface should be updated to match the
current situation.  That drawing surface consists of unsigned bytes
ordered like RGBRGBRGBRGBRGB... etc.

Second, the virtual drawing surface is copied to screen using
gdk_draw_rgb_image().


Resizing
--------
Our drawing area should have its size updated by
gtk_drawing_area_size() and gtk_widget_set_usize().


Color tables
------------
Colors should not be allocated.

Instead a color table of arbitrary size should be built.

The color table should contain unsigned chars for a red, a green and a
blue component for each color.
