Commit Graph

11 Commits

Author SHA1 Message Date
John Firebaugh
9cf57e7142 [core] Make ElementGroup safer
Template on shader types, rather than count. This allows the compiler to enforce using the correct VAO for the shader and PaintMode. This fixes OverdrawMode with circle layers.

While here, avoid using unique_ptrs for groups. Instead, ensure ElementGroup is movable.
2016-10-05 10:52:19 -07:00
John Firebaugh
7a3bef091e [core] Refactor Buffer 2016-10-05 10:52:19 -07:00
Konstantin Käfer
cc78b74098 [core] remove dependence on gl.h types 2016-09-29 10:17:47 -07:00
Lucas Wojciechowski
37cb2bd756 [core] Convert uses of std::set to std::unordered_set (#6325)
* src/mbgl/annotation/annotation_manager.hpp

* src/mbgl/algorithm/update_renderables.hpp

* src/mbgl/geometry/glyph_atlas.hpp

* src/mbgl/renderer/painter.cpp and src/mbgl/renderer/render_item.hpp

* src/mbgl/renderer/symbol_bucket.hpp and src/mbgl/text/glyph_store.hpp

* src/mbgl/sprite/sprite_atlas.hpp

* include/mbgl/storage/network_status.hpp

* src/mbgl/text/collision_tile.cpp

* src/mbgl/style/update_batch.hpp

* platform/default/mbgl/storage/offline_download.hpp

* Add GlyphRangeSet typedef

* Fix whitespace & unused imports
2016-09-19 17:26:25 -07:00
John Firebaugh
dc1861f6d5 [core] Merge GlyphStore and GlyphAtlas 2016-09-19 09:40:43 -07:00
John Firebaugh
940124ff71 [core] Merge SpriteStore and SpriteAtlas 2016-09-19 09:40:43 -07:00
John Firebaugh
ad35cccdbc [core] Use consistent terms: "text" and "icon" 2016-09-16 09:00:55 -07:00
John Firebaugh
32fac7cbe4 [core] Use optional to represent possible absence, not empty strings 2016-09-16 09:00:55 -07:00
John Firebaugh
a8dd1bbbb8 [core] Move SymbolInstance and SymbolFeature into their own files 2016-09-16 09:00:54 -07:00
John Firebaugh
1f375581c3 [core] Move {clip,merge}_lines to layout directory 2016-09-16 09:00:54 -07:00
John Firebaugh
c8217a8739 [core] Extract SymbolLayout from SymbolBucket
SymbolLayout lives on the worker thread and contains the persistent data needed for repeated placement. SymbolBucket contains the data generated during placement, and is transferred to the main thread for rendering.

This eliminates the risky sharing of GeometryTile::buckets between the main thread and worker thread during TileWorker::redoPlacement.

While here, rationalize the names of states a SymbolLayout may be in:

* Pending: Waiting for the necessary glyphs or icons to be available.
* Prepared: The potential positions of text and icons have been determined.
* Placed: The final positions have been determined, taking into account prior layers.

In TileWorker, all SymbolLayouts are stored in a single vector. Each SymbolLayout knows what state it is in, and TileWorker can easily determine how much progress it can make toward a final result.
2016-09-14 13:41:56 -07:00