- Expose glyph and icon information to workers via message interface.
- Glyph/SpriteAtlas track which tiles have outstanding requests
and send messages to them when glyphs/icons become available.
- Remove obsolete "updateSymbolDependentTiles" pathway
- Symbol preparation for a tile now depends on all glyphs becoming
available before it can start.
- Start tracking individual icons needed for a tile, although we don't
do anything with the information yet.
- Introduce typedef for GlyphID
h/t @ChrisLoer catching this place where we were relying on member
initialization order. While it _happened_ to be okay here, it's
unnecessarily fragile.
Previously, we initialized global variables that held pointers to the extension functions. While this seemed to work, the spec doesn't guarantee that the function pointers are identical for different OpenGL contexts. Therefore, we are now making them a member variable of the Context object.
* Verbose commenting on getSegmentGlyphs
This came out of @cloer and @anandthakker trying to figure out
how getSegmentGlyphs actually worked.
Goal is to use this commented version as the base for a refactor.
* Refactor getSegmentGlyphs for clarity.
* Add more documentation, inline helper functions
* Initialize VirtualSegments directly
* Fix virtual anchor diagram
PaintPropertyBinder and subclass templates were being instantiated for every unique attribute type (e.g. a_color, a_fill_color, a_halo_color) even though they behave identically for a given property value type (e.g. Color). To fix this, a unique type such as a_color no longer derives from gl::Attribute<...> -- instead it has an inner Type typedef, which should be used wherever neither a unique type nor attribute name is required. This reduces binary size substantially:
VM SIZE FILE SIZE
++++++++++++++ GROWING ++++++++++++++
-------------- SHRINKING --------------
-2.0% -49.3Ki __TEXT,__text -49.3Ki -2.0%
-3.1% -5.21Ki [None] -2.79Ki -1.6%
-2.1% -4.12Ki __TEXT,__const -4.12Ki -2.1%
-1.4% -4.04Ki __TEXT,__gcc_except_tab -4.04Ki -1.4%
-19.3% -3.62Ki __DATA,__data -3.62Ki -19.3%
-2.5% -1.65Ki __TEXT,__unwind_info -1.65Ki -2.5%
-4.2% -8 __DATA,__mod_init_func 0 [ = ]
-1.9% -68.0Ki TOTAL -65.6Ki -1.9%