Subject: Re: [E-devel] [Patch][elm_map] Change grid management
(2) Revoking gi->have
I restore the gi->have values. The removal of this is my mistake.
gi->have is needed because I cannot know whether this file is
downloading (just opened and not written) or downloaded state even if
image file exists.
SVN revision: 66141
Subject: Re: [E-devel] [Patch][elm_map] Change grid management
(1) Grid Management
There are no caching mechanism in current elm_map.
So, too many network resources are wasted because elm_map keeps only
two grids and already downloaded images are downloaded again and
again. (This also slows the map loading speed)
I have changed this grid management policy.
I have done followings.
1. Create all grids (all zoom levels) when elm_map_add() is called (No
memory overhead because of sparse matrix)
2. Clear all grids when map object is deleted.
3. Loads necessary grids and unloads unused grids when zoom level is
changed.
Changed grid management have one weakness that memory and tmp size can
grow bigger while map object is live.
I think it may need API such as elm_map_cache_size_set().
SVN revision: 66140
Subject: Re: [E-devel] [Patch][elm_map] Change grid management
Grid Management
There are no caching mechanism in current elm_map.
So, too many network resources are wasted because elm_map keeps only
two grids and already downloaded images are downloaded again and
again. (This also slows the map loading speed)
I have changed this grid management policy.
I have done followings.
1. Create all grids (all zoom levels) when elm_map_add() is called (No
memory overhead because of sparse matrix)
2. Clear all grids when map object is deleted.
3. Loads necessary grids and unloads unused grids when zoom level is
changed.
Changed grid management have one weakness that memory and tmp size can
grow bigger while map object is live.
I think it may need API such as elm_map_cache_size_set().
SVN revision: 66131
Sorry, I have forgotten adding comments to my patch.
OSM recommends to requesting map images distributively.
Please refere http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
I used 3 input parameters for selecting one from a, b, c or 1, 2, 3, 4
tile servers.
I attached patch with comments.
Signed-Off-By: TaeHwan Kim(ohpowel@gmail.com)
Signed-Off-By: ChunEon Park(hermet@hermet.pe.kr)
SVN revision: 65892
Subject: Re: [E-devel] [Patch][elm_map] Remove unnecessary flags
There are too may flags in elm_map. Most of them are duplicated and unnecessary.
I have removed "want", "download", "have" variables.
I use gi->job instead of "want" & "download".
I use ecore_file_exists() instead of "have" flags.
SVN revision: 65890
Hi,
There are bugs that map removes list elements when using
EINA_LIST_FOREACH or EINA_LIST_REVERSE_FOREACH.
We should use EINA_LIST_FOREACH_SAFE or EINA_LIST_REVERSE_FOREACH_SAFE
instead for above case.
Please review belows
SVN revision: 65069
Subject: [E-devel] [elm_map] ecore_file_download_full() should be used
properly
elm_map only checked that returned job is NULL.
But ecore_file_download_full() returns EINA_FALSE when error occurred.
So return value should be checked for proper usage.
Please review this simple bug fix
SVN revision: 64794
Subject: [E-devel] [elm_map] Fix up too many connections at the same
time.
Currently, elm_map requests all visible map image tile to map server
at the
same time.
If the scene is turned off while panning or zooming, it will be
aborted on
HTTP requests.
But it already sent to map server, and it already made useless HTTP
connections.
So if you pan scrolling quickly, elm_map try to download and abort too
many
HTTP
connections repeatedly.
If you have stable and high-throughput data connection, it doesn't
matter
on your side.
However map server will get high load, It is sufficient reason to block
you.
In another case, if you have poor data connection such as 3G
connection, it
has less
throughput and it causes delay of downloading. And finally, the device
is
as full as
HTTP connections even you already aborted. It makes low-performance
issue on
your device.
I wrote a patch for solving this situation.
The idea is simple.
1. I limited number of maximum HTTP request on elm_map side.
2. If maximum HTTP request is exceed, keep requests on Eina_List.
3. If each image downloading is completed, try to download recent
request.
(Because it has strong possibility for your screen)
4. At the same time, invisible request will be removed.
(It doesn't make HTTP connection yet)
I tested many times on my desktop and device.
It works for me. And elm_map's performance is improved
appreciably on 3G
connections.
SVN revision: 64685
Subject: [E-devel] [Patch] elm_map: add image loading error handling
I made a bug fix for elm_map.
When a downloaded image has an error, , elm_map removes a file and goes on
just like download succeeded .
However, it is not success, so it should be marked as FALSE for later retry.
SVN revision: 64598
From: Kim Yunhan <spbear@gmail.com>
When you test elm_map with mouse wheel, it worked abnormally because of some bug.
So I made some more patch for fixing it.
This patch file also includes a previous patch (zoom-out issue).
SVN revision: 63510
I wrote a patch that handles a bug while zooming-out in elm_map.
When I try to zoom out, some tiles are broken.
But it is hard to notice because broken frame disappears quickly.
I investigated in a few days.
And I realize that there are something wrong.
When map is zoomed out, a tile is shrunk by evas_object_resize().
But evas_map handles its texture by just its origin image size not a shrunk size.
If evas_object's width & height is shrunk, I have to handle for its texture.
SVN revision: 63509
Using #include <elementary_config.h> will fail if
elementary has never been installed.
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
SVN revision: 61220
structure.
'canvas' and 'output' are same. So we need to deprecate one of them
later(may be evas 2.0 or so.) After I discuss this with raster, I've
got to use 'canvas' not 'output'. So I fixed elementary codes.
SVN revision: 60268