Time for a libjana-based gnome clock applet?

Just read Federico’s post about how intlclock draws its map and calculates the sunlight time. That’s a pretty incredible amount of overkill! Maybe they should look at the code in the JanaGtkWorldMap widget, that I personally think looks at least as nice 🙂 JanaGtkWorldMap draws directly with cairo calls, using data from sunclock (the format of which is derived from xearth, apparently) – one linear gradient for the sea, filled polygons for the land mass shadows, then an extra set of filled polygons on top of that. The sunlight curve is a simple curve equation, rather than ray-tracing (which probably isn’t quite as accurate, no, but at this level it really doesn’t matter), components of which are cached on initialisation. Drawing happens in a (interruptable) thread so the widget never blocks for any significant amount of time, and after drawing once, the result is stored to a back-buffer. On top of this, as the widget changes size, it does adaptive LOD to reduce the amount of points being drawn. The widget has an option to render at a static size and scale that rendering instead of re-rendering when the size changes. It also has API to put custom markers on top of the map and widgets can be packed inside it. Drawing code could easily be replaced by gdk calls to boost speed (and I may well do this, cairo is slow :(). I’d like to think the API is easy to use too… Any takers?

]]>

Leave a Reply

Your email address will not be published. Required fields are marked *