[Marble-devel] Review Request 124074: Implemented outlines for GeoLineStringGraphicsItems.

Dávid Kolozsvári freedawson at gmail.com
Sun Jun 14 19:18:19 UTC 2015



> On June 12, 2015, 2:02 a.m., Torsten Rahn wrote:
> > src/lib/marble/layers/GeometryLayer.cpp, line 289
> > <https://git.reviewboard.kde.org/r/124074/diff/1/?file=379731#file379731line289>
> >
> >     This gets sorted on every single repaint. How long does this take for a bigger OSM file on slow hardware? Would it make sense to cache this somewhere?
> 
> Dávid Kolozsvári wrote:
>     I think something like this should have been already present because every `GeoGraphicsItem` has a z-value and this should be taken into account when drawing them.
>     As for the performance: for a small map, it takes only 1-2 ms to sort the list*, for a big map it takes 5-7 ms, while the painting takes 20-25 ms for a small and 80-110 ms for a big map. The performance impact is about 5-10% and I think this is a must in order to properly draw everything depending on their z-value.
>     Caching it doesn't make sense for me, because at every repaint the `items` list is changed, so it needs to be sorted again.
>     
>     *I think that my laptop has a pretty slow hardware, but even though, the relative performance impact should remain the same for slower and faster machines too (about 5-10%).
> 
> Torsten Rahn wrote:
>     Just to be able to judge: What CPU generation is your laptop based on?

My CPU is an [AMD A8-5550M](http://www.notebookcheck.net/AMD-A-Series-A8-5550M-Notebook-Processor.89639.0.html) which I use underclocked to 1.9 GHz, because it overheats fairly frequently.


- Dávid


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/124074/#review81400
-----------------------------------------------------------


On June 13, 2015, 9:10 p.m., Dávid Kolozsvári wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/124074/
> -----------------------------------------------------------
> 
> (Updated June 13, 2015, 9:10 p.m.)
> 
> 
> Review request for Marble.
> 
> 
> Repository: marble
> 
> 
> Description
> -------
> 
> This patch adds support for outlines on `GeoLineStringGraphicsItems`, which represent the roads, streets, paths and ways on the OSM vector tiles. The main idea is to draw behind every `GeoLineStringGraphicsItem` the same line(implemented a `GeoLineStringGraphicsItem::copyAsOutline()` function for this purpose) with the pen color(outline color) and the original line on top of that with the brush color(fill color) and a little thinner.
> Painting these outlines have a small impact on the performance: cca. 10 ms(on my laptop) on a large map, which has 2000+ lines. Because of that, this feature can be disabled if map quality is set to `Low` or `Outline`.
> 
> On the other hand, I've added some new features to `GeoDataVisualCategory`, like `HighwayCycleway` and `HighwayFootway`, which are now rendered correctly on OSM vector tiles.
> 
> 
> Diffs
> -----
> 
>   src/lib/marble/geodata/data/GeoDataFeature.h ea23cd8 
>   src/lib/marble/geodata/data/GeoDataFeature.cpp 6f330fb 
>   src/lib/marble/geodata/data/GeoDataFeature_p.h 496c356 
>   src/lib/marble/geodata/graphicsitem/GeoLineStringGraphicsItem.h 4842809 
>   src/lib/marble/geodata/graphicsitem/GeoLineStringGraphicsItem.cpp 4320c07 
>   src/lib/marble/layers/GeometryLayer.cpp 9eb3f50 
> 
> Diff: https://git.reviewboard.kde.org/r/124074/diff/
> 
> 
> Testing
> -------
> 
> The performance impact is acceptable, the result is ok and works for me.
> 
> 
> Thanks,
> 
> Dávid Kolozsvári
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/marble-devel/attachments/20150614/5ff27d42/attachment.html>


More information about the Marble-devel mailing list