Changes in libchamplain 0.4.4



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]