Loads all the offsets & timestamps @ start to share to worker proceses.
From
14609247 function calls (14608852 primitive calls) in 118.278 CPU seconds
to
12232301 function calls (12231906 primitive calls) in 75.825 CPU seconds
Notes:
* Currently only works with -p 1
* Caching is mostly compatible with existing caches, but not completly.
This needs more testing and more code reviews
* There are probably many code paths that will throw exceptions.
* Not ready for general use yet, but is OK for testing
Pretty substantial javascript refactoring:
* All javascript is now in funtions.js. There is no javascript at all
in index.html
* Configuration options moved from template.html to config.js
template.html moved to web_assets/index.html
config.js allows you to specify pattern-label pairs. Each label will be
added to an on-screen "signposts" control. Clicking the checkbox by
each label will show/hide any signposts that match the pattern attached
to that label. config.js has some examples.
TODO:
* The signposts control needs better styling.
* The new javascript needs testing in IE. Seems ok in Chome and FF.
These large changes may be hard to merge if you have non-trivial JS
changes to template.html locally. Apologies in advance
The ones I have not changed are those where paste() is really
preferred, and I've noted why in comments.
Calls to "dest.paste(src, rect, mask)" were converted to calls to
"composite.alpha_over(dest, src, rect, mask)".
Details:
* A queue object is passed to all renderers, allowing each process to
avoid using shared memory when recording signpost data.
* New overviewer.dat file that stores persistent data between runs.
Currently used to store information on signs. markers.js is
generated by merging the stored POI list with the newly generated POI
list.
* POIs are tagged with their type (e.g. "spawn" or "sign"). This
should be useful if different types of POIs needs to be
handled/displayed differently
Known bugs:
* If you delete the last sign in a chunk, it won't be removed from
markers.js
This adds basic post-processing to images. At the moment, it only
performs actions for the png output type, but changes to work for
jpeg will be exceptionall minimal.
Polygons and polylines are read from the new file "regions.js". Polylines
(entries with "closed" set to false) are just lines drawn on the map.
Polygons (entries with "closed" set to true) are closed loops that are
filled in with a transparent color.
Instead of re-gening the chunk, it now removes it and leaves it alone.
The reason is that, now that the cache dir is separated from the chunk
data files, there's no way for that code to know where it came from. For
now, it's easier to just omit that one chunk, it'll be re-generated on
the next run anyways.