Hi! I've finally updated libchamplain's initialization process. While it was actually working, I felt it was odd and broken. For example, the initialization process was not very thought out and tiles were loaded many times for nothing. For example, the 0.4.3 demos/launcher-gtk loads 13 tiles that will never be displayed. With the changes I have done, only the 12 visible tiles are loaded. This will cut the start up time by almost half! Another change is the deprecation of champlain_view_set_size in favour of clutter_actor_set_size. This is something that should never had happen (duplicating an existing function). Currently, both functions have exactly the same behaviour. Considering I am using libchamplain on a mobile device, I looked for way to make it faster. Unlike osm-gps-maps, libchamplain does these computation every time you move the view (even for 1 px): I. check if new tiles need to be loaded II. redraw polygons III. update the scale if there's a 1 cm difference since last move (which turns out to be stupid: it is almost always true! I'll change that to 10 m. 10 m is reasonable event at high zoom levels because the scale vary a lot) All these operations are CPU intensive. You can clearly see the performance hit on a mobile device. Do solve this, I am going to limit the number of times we do these operations to when the user moved the view by >100px or has stopped moving. This has very little impact on the actual view, but you can clearly see that it's more responsive. So considering these changes can have an impact on applications, I suggest that we test all current usage of libchamplain 0.4.x for possible regressions. Pierre-Luc
Attachment:
signature.asc
Description: This is a digitally signed message part