Commit Graph

2949 Commits

Author SHA1 Message Date
John Firebaugh
0351e9c370 [core] Eliminate SpritePatternMode 2017-02-14 16:28:12 -06:00
John Firebaugh
b18a4d6e78 [core] Mutex no longer needs to be recursive 2017-02-14 16:28:12 -06:00
John Firebaugh
d819ece74c [core] Combine SpriteAtlas::getPosition with SpriteAtlas::getImage 2017-02-14 16:28:12 -06:00
John Firebaugh
58de1e15c5 [core] Inline SpriteAtlas::allocateImage 2017-02-14 16:28:12 -06:00
John Firebaugh
5524506abd [core] Eliminate SpriteAtlas::updateDirty
Simplify internal datastructures. Properly remove rects from the bin pack when an image is removed.
2017-02-14 16:28:12 -06:00
John Firebaugh
3fa6a4f4ff [core] Eliminate SpriteAtlas::Holder 2017-02-14 16:28:12 -06:00
John Firebaugh
94f011895c [core] Make Image safer
Provide Image::copy, which handles copying rectangles from a source to a destination, with thorough bounds checking.

Also fixes an indexing error in SpriteAtlas, where the top row of pixels in a wrapped image was copied from the wrong source row.
2017-02-14 12:29:01 -06:00
Jason Wray
4c311a0091 [core] Expose Map::setZoom with anchor parameter 2017-02-13 18:35:04 -05:00
Konstantin Käfer
f97e36acc8 [core] add tests for user/password, port, trailing dot, and IPv4/IPv6 address parsing 2017-02-13 17:23:20 +01:00
Minh Nguyễn
e6c15d0f6f Upright CJK characters in vertically-oriented labels (#7114)
CJK characters and adjacent punctuation now remain upright in vertically oriented labels that have line placement.

Fixes #1682.
2017-02-10 18:57:48 -06:00
John Firebaugh
0bbc6b814c [core] Restore support for GL implementations without VAO extension 2017-02-10 18:04:45 -06:00
John Firebaugh
a1a639120d [core] Introduce dedicated filter types for $type and $id special cases (#7971)
* [core] Introduce dedicated filter types for $type and $id special cases

* [ios, macos] Special-case $id, $type in predicates

Also support $id ≟ nil.
2017-02-09 14:18:57 -08:00
John Firebaugh
b6e5edc268 [core] Restore support for *-transition properties 2017-02-09 15:08:51 -06:00
John Firebaugh
f35ca0d9df [core, ios, macos] Refactor composite stop types and conversions 2017-02-09 11:16:26 -06:00
Dane Springmeyer
13e5041553 compare polygon ring areas absolutely
- This ensures we actually keep the largest polygons
  - Adds testcase that fails without this patch
2017-02-09 10:40:30 -06:00
John Firebaugh
94a3c272ff [core] Update gl-js; fix $id filters with GeoJSON source 2017-02-08 19:07:53 -06:00
John Firebaugh
150b938b49 [build, ios, macos] Simplify version portion of user agent string
The X.Y.Z version portion was unreliable, as it pulled from the latest tag regardless of platform. Set version to 0.0.0 and retrieve only the hash, which allows us to drop the node/npm dependency.
2017-02-08 10:59:59 -06:00
John Firebaugh
74eb8b3609 [core] Use cpp files for shader source 2017-02-07 11:27:36 -06:00
John Firebaugh
9f2f7ddd12 [core] Check in generated shader code
One step toward eliminating the node/npm dependency for platforms other than node.
2017-02-07 11:27:36 -06:00
John Firebaugh
f0d4411871 [node] Temporary: exit(0) on exception in Painter::render
Hope to get complete apitrace with a clean exit rather than an abort.
2017-02-06 17:57:37 -06:00
Ivo van Dongen
8a5bff8ee6 [core] default value support in categorical function conversion 2017-02-02 09:44:42 -08:00
John Firebaugh
141e995806 [core] Add support for data-driven styling 2017-02-02 09:44:42 -08:00
John Firebaugh
67e157e8b4 [core] Move fill-outline special case to FillLayer::Impl::evaluate 2017-02-02 09:44:06 -08:00
Konstantin Käfer
62ea1f2185 [core] remove trailing whitespace, add trailing newlines, add space after // 2017-01-27 11:44:16 +01:00
John Firebaugh
68440ee6c2 [core] Allow tile cache size to change with viewport size 2017-01-26 17:48:44 +02:00
John Firebaugh
44b960fb92 [core] Scale tile cache size based on tile size 2017-01-26 17:48:44 +02:00
Konstantin Käfer
a37ae27aed [core] fix rendering 180° line joins 2017-01-23 17:02:40 +01:00
Thiago Marcos P. Santos
181b3635f1 [core][Qt] Use Qt for UTF16, since codecvt is not always available 2017-01-20 18:50:45 +01:00
Thiago Marcos P. Santos
7b61324d13 [core] Remove unused include
pthread is not used directly, but per platform basis.
2017-01-19 12:47:33 +01:00
John Firebaugh
d076ba0567 [core] Clean up merge_lines.cpp and add bounds checking 2017-01-18 13:38:05 -06:00
John Firebaugh
531a1c3070 [core] Fix calculation of delayed transitions 2017-01-17 15:18:14 -06:00
John Firebaugh
b04e11b5ca [core] Disable debug groups in release builds 2017-01-17 14:45:29 -06:00
John Firebaugh
ed80755084 [core] Restore GL_KHR_debug messages in release builds
This reverts commit 8c4da72d09.
2017-01-17 14:45:29 -06:00
Konstantin Käfer
6658268115 [core] abort early when placing a glyph in GlyphAtlas if the bitmap is invalid 2017-01-17 19:23:20 +01:00
Konstantin Käfer
b6c1119172 [core] harden Glyph PBF parsing 2017-01-17 19:23:20 +01:00
Bruno de Oliveira Abinader
4439aecbcc [core] Use std::tie in tileCover sort 2017-01-17 17:39:54 +01:00
Bruno de Oliveira Abinader
8847192694 [core] Use std::tie in *TileID operator< 2017-01-17 17:39:54 +01:00
Bruno de Oliveira Abinader
54d937c738 [core] Use std::tie in Source::Impl::queryRenderedFeatures sort 2017-01-17 17:39:54 +01:00
Konstantin Käfer
4b0cb858ba [core] include leading slash in URL.path 2017-01-17 17:38:57 +01:00
Konstantin Käfer
7983e3a67c [core] update CSSColorParser 2017-01-16 19:01:22 -06:00
Minh Nguyễn
cf166717b8 Merge branch '1ec5-release-ios-v3.4.0-beta.7' 2017-01-16 15:08:17 -08:00
Thiago Marcos P. Santos
bd71eb8681 [core] Fix ambiguous condition on the sort criteria
The previous sorting criteria would sometimes allow

C > B, B > A but A > C, making the internal std::sort
code sometimes point to an invalid reference.

Fixes #7737
2017-01-16 14:30:36 -06:00
Minh Nguyễn
7ef2843e6a Merge branch 'release-ios-v3.4.0' into 1ec5-release-ios-v3.4.0-beta.7 2017-01-16 11:38:35 -08:00
John Firebaugh
e7778509c5 [core] Fix flickering caused by regression in #7586
It should be safe to invoke GeometryTileWorker::setData multiple times without invoking GeometryTileWorker::setLayers. Therefore GeometryTileWorker::redoLayout() must not consume the layers.
2017-01-10 10:15:22 -08:00
John Firebaugh
ea4c0b77c3 [core] Replace FeatureIndex::collisionTile with a method parameter
This reduces state and simplifies the test added in the prior commit.
2017-01-10 10:15:22 -08:00
John Firebaugh
40051fb68e [core] Keep symbol and non-symbol buckets segregated
Discard prior symbol buckets only when new symbol buckets became available, in order to eliminate flickering when tiles are refreshed.
2017-01-10 10:15:22 -08:00
Minh Nguyễn
84f90697df [core] Avoid clustering unclusterable GeoJSON
Ignore empty feature collections or non–feature collections for the purposes of clustering or tiling. A source’s clustering option can only be set when the source is constructed, but setGeoJSON() enables the developer to swap a clusterable feature for an unclusterable geometry and back.
2017-01-08 17:45:18 -08:00
John Firebaugh
b6894dd4fc [core] Unify update and render into a single step
Update only when, and just prior to, rendering, giving no opportunity to interleave unexpected state changes. This means that every time anything about the state is changed, we'll have to attempt a render to reflect that change. In the case of continuous rendering this has happened before this change as well, but it leaves no room for time to pass between an update and a render. In the case of still image rendering, a render call will only actually paint something to the view when all resources have been loaded.
2017-01-06 12:03:48 -08:00
Chris Loer
d5b878a553 Small line breaking improvements based on testing with Chinese data:
- Put "breakable" punctuation (such as a hyphen) on the line that starts the break, not the line after the break.
- Process all characters with the line breaking algorithm, even if we don't have glyphs for them. Some fonts have glyph-less breakable characters (we end up treating them similarly to a "zero-width space").
- Don't include trailing white space in raggedness calculations
- Make the "favor short final lines" rule more aggressive (unlike the other changes, this one is purely an aesthetic choice)
2017-01-05 10:22:53 -08:00
Chris Loer
12a9932ebc Port raggedness-minimizing line breaking from gl-js. 2017-01-05 10:22:53 -08:00