Hi Guys,

Currently, we only store thumbnail bitmaps to disc under RISC OS.
Here's how I think this whole thing works;

        * urldb, when starting, reads in the database, and if
          we're building for RISC OS, it also calls bitmap_create_file()
          which takes a filename, and the RISC OS bitmap code
          loads it, and sets the BITMAP_PERSISTENT flag.  urldb then
          keeps a pointer to the struct bitmap * that this function
          returns.
        * When using the global history viewer, if the URL has a bitmap,
          it is used.
        * On closedown, bitmap_quit() is called, and iterates a linked
          list of all bitmaps, calling bitmap_save() on all bitmaps with
          the BITMAP_PERSISTENT flag set before freeing them.

John-Mark hates having urldb have to handle struct bitmap *s, as well
as having the #ifdef riscos stuff in there.  The whole system also
involves loading all the bitmap thumbnails into memory at startup,
which may become increasingly expensive, both in terms of time and
memory consumption, the more thumbnails there are.  I can't find
anywhere that handles expiry of these from disc - the bitmaps semm to
be always loaded if they are mentioned in the URL file.

What I'd like to see is urldb only store a file name to such a
thumbnail, and it is loaded by the global history viewer on demand.
Ideally some sort of "changed" or "new" flag could be introduced to
avoid writing out bitmaps that have had no changes made to them when
NetSurf quits.

Hopefully, this will make the thumbnails be workable on all platforms
nicely, rather than them being in the exclusive domain of RISC OS.

Doing this involves changing the RISC OS front end and urldb
simultaneously.  Is Richard around to help with this, or should we try
to muddle through?

B.

Reply via email to