Commit Graph

17582 Commits

Author SHA1 Message Date
Bruno de Oliveira Abinader
e9f849e4d0 [core] Sort symbol render tiles prior to rendering 2016-11-18 09:13:53 +01:00
Bruno de Oliveira Abinader
ce14037b55 [core] Cleanup symbol clipping 2016-11-18 09:13:53 +01:00
John Firebaugh
38fcbe21d4 [core] Convert style properties to a tuple-based approach
This converts the style property classes (CirclePaintProperties and so on) to the same tuple-based approach as gl::Attribute and gl::Uniform. The approach is outlined in https://github.com/mapbox/cpp/blob/master/C%2B%2B%20Structural%20Metaprogramming.md.

The main advantage of this approach is it allows writing algorithms that work on sets of style properties, without resorting to code generation or manually repetitive code. This lets us iterate on approaches to data-driven properties more easily.

Another advantage is that the cascading, unevaluated, and evaluated states of a set of properties exist as independent structures, instead of individual properties holding their own state. This is a more functional approach that makes data flow clearer and reduces state.
2016-11-17 15:13:38 -08:00
Chris Loer
d4fc66af39 [core] Add minimal line breaking support for RTL text. 2016-11-17 14:33:03 -08:00
Chris Loer
bceeba29a3 [core] Add ICU package for Bidirectional text support and arabic text shaping.
Apply bidi and shaping in symbol_layout.
Add utility functions for converting to and from UTF-16.
2016-11-17 14:33:03 -08:00
Chris Loer
40b0c8d076 [core] Use UTF-16 instead of UTF-32 for label features to avoid extra conversions and reduce in-memory size.
Continue to use uint32 as glyph ID to maintain Glyph PBF, even though we're only using 16 bits of that uint32.
Use std::codecvt instead of boost::unicode_iterator for UTF8->UTF16 conversions.
2016-11-17 14:33:03 -08:00
John Firebaugh
5c7aeec5c7 [tests] Update test-suite 2016-11-17 13:48:00 -08:00
John Firebaugh
251035cd75 [node] Add setZoom and setPitch support 2016-11-17 13:48:00 -08:00
John Firebaugh
f1e10e31a5 [node] Revert semantics of Map#render 2016-11-17 13:48:00 -08:00
Jesse Bounds
72d553c4b1 ios-v3.3.7 2016-11-17 12:00:34 -08:00
Konstantin Käfer
5f010b0979 [build] don't abort with an error code to allow reporting partial builds 2016-11-17 15:42:44 +01:00
Konstantin Käfer
cbe5de98fa [build] create separate bitrise build for binary size tracking 2016-11-17 15:42:44 +01:00
Minh Nguyễn
333b8baa91 [ios, macos] Updated changelog for #7091 2016-11-17 13:39:05 +01:00
Konstantin Käfer
117062acc1 [core] cache raster tiles 2016-11-17 11:09:30 +01:00
Molly Lloyd
3380f0803a [core] update native for line property function shaders changes (#6658)
* [core] update shaders for line property functions

update deps, define device pixel ratio for all shaders

[core] create ShaderParameter struct to store pixel ratio and overdraw param

repair rebase errs

update shaders to include pixel ratio

make sure collision_box never overdraws

update test suite, move shaders to Painter::render so the correct pixel ratio is applied

move shader compiling back to the Painter constructor

rebase from shader --> program refactor

re-factor parameters for collisionBox and debug programs

remove unused vars from line-program, move blur math to shader

update core files

remove unecessary files

update shaders PR, remove comments

bump test suite sha

fix formatting, incorporate feedback

refactor program.hpp

* [core] remove line transformations that were moved to the shaders, bump shader sha

* [core] shorten ProgramParameter instantiation

* [core] bump shader+test suite shas
2016-11-16 17:34:33 -08:00
Bruno de Oliveira Abinader
a5ac643166 [build] Updated test-suite 2016-11-17 01:01:15 +01:00
Bruno de Oliveira Abinader
ad38ff230b [linux] Ensure EGL uses OpenGL ES 2.0 client API 2016-11-17 01:01:15 +01:00
Bruno de Oliveira Abinader
0ef52d7f7c [build] Added EGL & GLX CI builds 2016-11-17 01:01:15 +01:00
Tiago Vignatti
32b6f2fa03 [linux] Implement EGL headless backend
Original author: Tiago Vignatti <tvignatti@gmail.com>

Calling X11 window system is superfluous for headless rendering. This patch
implements EGL platform using GBM, which is slightly more simple than the GLX
path when using X11.

In principle there are no big advantages in terms of performance etc. My
motivation behind this was to get in touch with the code and the project. For
testing I'm using:

  $ unset DISPLAY && ./build/linux-x86_64/Debug/mbgl-test

v2: rebased patch against the new cmake changes; walk through render node to
find a valid one; remove EGLSurface completely cause windows are not needed
here.
2016-11-17 01:01:15 +01:00
Bruno de Oliveira Abinader
50f0f919c3 [test] Use shared headless display
Prevents some OpenGL implementations from bailing out.
2016-11-17 01:01:15 +01:00
Fredrik Karlsson
b4aba87892 [ios, macos] override style spec documentation 2016-11-16 11:50:36 +01:00
John Firebaugh
5479b75c9f [build] Use npm install --ignore-scripts
Should be faster than npm update.
2016-11-15 14:01:30 -08:00
John Firebaugh
d9862fa38c [tests] Disable "ContinuousRendering" test; causing spurious CI failures 2016-11-15 13:55:16 -08:00
John Firebaugh
9d2be04461 [core] Return to static, per-segment approach to VAOs
This is safer now -- it can be an implementation detail of Segment/Context. And the typing of SegmentVector now ensures that the attributes and program match.
2016-11-15 13:55:08 -08:00
John Firebaugh
377d0fb0d2 [core] Introduce SegmentVector 2016-11-15 13:55:08 -08:00
John Firebaugh
58877d1b3d [core] Assign attribute locations sequentially
Two reasons to prefer explicit sequential location assignment, rather than relying on the GLSL linker to assign locations:

* For data-driven properties, we want to have the option to use glDisableVertexAttribArray plus glVertexAttrib*. In order to use glDisableVertexAttribArray, we must avoid using attribute location 0, which cannot be disabled.
* We want to use the same VAO in cases where, say, a fill layer might be rendered with FillProgram at first, and then FillPatternProgram later. VAOs do not store the program binding, only the attribute bindings, so as long as the two programs have the same attributes and attribute locations, only a single VAO (per segment) is needed.
2016-11-15 13:55:08 -08:00
Jesse Bounds
7e6d8db136 Release ios-v3.4.0-beta.3 (#7082) 2016-11-15 13:47:13 -08:00
Jesse Bounds
068a89c2f8 [ios, macos] Use NSNumber in exception strings (#7083) 2016-11-15 13:39:09 -08:00
Minh Nguyễn
5a982f9ccc [ios, macos] Updated changelog 2016-11-15 13:21:24 -08:00
John Firebaugh
0fe8d8d7b4 [build] Explicitly state required node version 2016-11-15 12:40:54 -08:00
John Firebaugh
bcad3b6d4b [core] Use indexed rendering for collision boxes 2016-11-15 12:39:49 -08:00
Justin R. Miller
9d5edb41ad [ios, macos] refs #7060: properly check removed layers & sources (#7062) 2016-11-15 11:37:35 -08:00
Justin R. Miller
eefda0d381 [ios, macos] fixes #7059: raise exception for abstract sources on add (#7060) 2016-11-15 11:36:04 -08:00
Mike Morris
aeba7cce84 node-v3.4.2 2016-11-15 13:31:48 -05:00
Mike Morris
f50de16260 [node] publish Node.js Linux binaries with GLX
run test suite with OSMesa in Debug
2016-11-15 13:31:48 -05:00
Konstantin Käfer
1d80be00df [build] add binary size logging to macOS nightlies 2016-11-15 10:07:47 -08:00
Konstantin Käfer
df8c467056 [build] add binary size logging to iOS nightlies 2016-11-15 10:07:47 -08:00
Konstantin Käfer
36a04e49c8 [build] add binary size logging to Android nightlies 2016-11-15 10:07:47 -08:00
Konstantin Käfer
223a95a74f [build] add binary size logging to Linux Release builds 2016-11-15 10:07:47 -08:00
Justin R. Miller
c78c97f346 [ios, macos] refs #7060: properly check removed layers & sources (#7062) 2016-11-15 10:05:35 -08:00
Bruno de Oliveira Abinader
31206b4516 [build] Added nan@2.4.0 dependency 2016-11-15 18:28:30 +01:00
Fredrik Karlsson
07b311d490 [ios] update layout after device has been rotated 2016-11-15 17:53:50 +01:00
Jason Wray
40a7e6b414 [ios] Constrain compass directly to the top layout guide
In iOS 10, the top layout guide is not always returning the expected
value unless there is a constraint applied directly against it.
2016-11-15 17:53:50 +01:00
Jason Wray
13c6648713 [ios] Make map view UI elements' constraints unambiguous
NSLayoutRelationGreaterThanOrEqual meant that it either greater-than or
equal could satisify the constraint, when really all we need is equal.
2016-11-15 17:53:50 +01:00
Justin R. Miller
f7db6cf760 [ios, macos] fixes #7059: raise exception for abstract sources on add (#7060) 2016-11-14 16:02:16 -08:00
Jesse Bounds
1c9d314236 [ios, macos] Take back source and layer ownership on removal (#7048)
If a source or layer is removed from the style, recapture the
unique pointer ownership. This makes it safe to add back sources
and layers after they have been removed.
2016-11-14 15:50:33 -08:00
Minh Nguyễn
dbd2235744 [core] Line-break ideographic text by character (#6828)
* [core] Line-break ideographic text by character

Allow a line break to be inserted after any supported Chinese, Japanese, or Yi character in a point-placed label. Balance the lines unless non-ideographic text such as Latin letters are present.

Fixes #1223.

* [core] Moved more character classing into util::i18n

* [core] Detect character properties by Unicode block

* [test] Reenabled ideographic breaking tests
2016-11-14 14:53:21 -08:00
Minh Nguyễn
56c2272b7d [ios] Upgraded to KIF 3.5.1, OHHTTPStubs 5.2.2 2016-11-14 11:12:04 -08:00
Minh Nguyễn
1f4c317feb [ios] Pull in OHHTTPStubs project reference
Removed individual OHHTTPStubs file references from the ios-tests project. Added a reference to the OHHTTPStubs project to the workspace. Link ios-tests to its iOS framework build product.
2016-11-14 11:12:04 -08:00
Konstantin Käfer
f968ede11b [core] don't run symbol placement more often than necessary 2016-11-14 10:33:21 -08:00