Commit Graph

11029 Commits

Author SHA1 Message Date
Thiago Marcos P. Santos
48ddfef89f [core] Make sure ThreadLocal will not own the pointer it is managing
ThreadLocal should not own the pointer it is managing because
the use case in Mapbox GL is to keep a pointer to a stack allocated
object, like:

```
MyObject foo;
threadLocal.set(&foo);
```

To keep consistency, it is required that we clear the managed
object before ThreadLocal gets destroyed by setting it to `nullptr`.
2017-07-14 15:18:54 +03:00
Chris Loer
3b26177e9d [test] Fix undefined behavior warning:
quads.test.cpp used a bin with unsupported x/y coordinates.
Issue #9499.
2017-07-14 09:45:06 +02:00
Konstantin Käfer
04fba1e01f [core] add unused default template parameter to keep Xcode 9's Clang from crashing 2017-07-13 18:46:39 +02:00
Konstantin Käfer
13d6920661 [core] fix division by zero when defaultFadeDuration is 0 2017-07-13 17:57:36 +02:00
Konstantin Käfer
86682f2507 [core] fix undefined access for HTTP responses that don't contain a body 2017-07-13 17:54:18 +02:00
Konstantin Käfer
06e202441e [build] upload cache on Circle CI before running tests 2017-07-13 17:29:09 +02:00
Konstantin Käfer
6ca7b28e60 [build] add ccache + Circle CI caching 2017-07-13 15:11:12 +02:00
Konstantin Käfer
92354bdc25 [build] add address, undefined behavior + thread sanitizer 2017-07-13 15:11:12 +02:00
Konstantin Käfer
b0dcc25584 [build] upgrade to v4 CircleCI images that have logbt/mesa/gdb/apitrace installed 2017-07-13 15:11:12 +02:00
Thiago Marcos P. Santos
ee32df4687 [Qt] Fix docs warnings 2017-07-13 14:59:45 +03:00
Thiago Marcos P. Santos
bb1a209a63 [Qt] Share the DefaultFileSource for all QMapboxGL instances
Fix issues of concurrent access to the sqlite cache.

Fixes #9108.
2017-07-13 14:59:45 +03:00
Bruno de Oliveira Abinader
d0be2ed2a6 [build] Update GLFW to 2017-07-13-67c9155 2017-07-13 14:59:06 +03:00
Konstantin Käfer
73869d12dd [build] enable -fvisibility=hidden for iOS 2017-07-13 00:22:54 -04:00
Konstantin Käfer
a5cdbb084e [all] make default_styles header-only 2017-07-13 00:22:54 -04:00
John Firebaugh
11952db68c Update mapbox-gl-js 2017-07-12 14:55:02 -07:00
John Firebaugh
1176eade34 [android] Force previously cached program binaries to be regenerated 2017-07-12 14:55:02 -07:00
John Firebaugh
c0d6a07a8e [core] Pass correct sources to programIdentifier 2017-07-12 14:55:02 -07:00
John Firebaugh
86ee821c6e [core] No need for optional in map of VertexArrays 2017-07-12 14:55:02 -07:00
John Firebaugh
2691fe165d [core] Add comments explaining typing of AttributeLocation and UniformLocation 2017-07-12 14:55:02 -07:00
John Firebaugh
4c42132183 [core] Reduce memory requirements of VertexArrays 2017-07-12 14:55:02 -07:00
John Firebaugh
49726cdc75 [core] Remove segment.cpp 2017-07-12 14:48:22 -07:00
John Firebaugh
01aff01274 [core] Use a type alias for SegmentVector 2017-07-12 14:48:22 -07:00
John Firebaugh
358b0305ae [core] Per-segment-per-layer vertex arrays
Reduces rebinding, matches gl-js, and works around the buggy VAO implementation on PowerVR SGX544 GPUs.
2017-07-12 14:48:22 -07:00
John Firebaugh
c61041b44c [core] Rework attribute binding (again)
These changes are necessary for programs whose set of active attributes is not fixed at compile time by a template parameter pack, but rather varies based on the generated shader text at runtime. In such cases, the attribute location of a given named attribute may vary between instances of the same Program.

Previously, attribute bindings were implicitly associated with a location based on template parameter order, and -1 was used to indicate an inactive attribute. This left us unable to disable the appropriate attribute when it went from active to inactive. Now, the state tracker for bindings explicitly associates locations and state, and an empty optional is used to indicate an inactive attribute.

In addition, a gl::VertexArray class is now exposed, allowing more flexibility in the relationship between Programs, Segments, and attribute bindings. In this commit, that relationship does not change, but the subsequent commit adjusts it to match gl-js, reduce rebinds, and work around buggy VAO implementations.

VertexArray uses a pimpl idiom in order to support implementations that lack the VAO extension. In that case, all VertexArrays share global binding state, reflecting the platform reality in the absence of VAOs, while still providing a uniform API.
2017-07-12 14:48:22 -07:00
John Firebaugh
fedfaa2f6e [core] Inline getActiveAttributes details 2017-07-12 14:43:23 -07:00
John Firebaugh
8fb212dbb3 [core] Include what you use 2017-07-12 14:43:23 -07:00
John Firebaugh
fbbc8f2d7a [tests] Local ignores.json file for ignored integration tests 2017-07-12 14:33:38 -07:00
Chris Loer
7abbe32325 [test] Pull in re-enabled tests from mapbox-gl-js. 2017-07-12 14:14:09 -07:00
Chris Loer
e8657becc5 [core] Update shaders.
Implements 'icon-pitch-alignment' (issue #9345)
Fixes issue #9456 (map-aligned point label regression)
2017-07-12 14:14:09 -07:00
Chris Loer
af10e2d3be [test] Re-enable keep-upright test for pitched views. 2017-07-12 13:32:44 -07:00
Chris Loer
8ef9fcdf3e [core] Base label "keep-upright" orientation on start and end of label
Fixes issue #9457.
2017-07-12 13:32:44 -07:00
Bruno de Oliveira Abinader
e99e167848 [Qt] Do not return a valid mbgl::Annotation if conversion fails 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
4014aa6721 [core] GCC 4.9 bracket initialization issues 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
2fae373fc9 [core] GCC 4.9 is unable to deduce ctors when using bracket init 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
21031b624f [core] Added missing header includes 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
6282b28b6f [core] Added MBGL_CONSTEXPR to satisfy GCC 4.9 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
d918f8d7c2 [core] GCC 4.9 does not provide <codecvt> 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
3afbfa2de7 [core] GCC 4.9 shadow member warnings 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
f1ac757bd2 [core] GCC 4.9 does not fully support custom variable templates 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
1aacc88f35 [core] GCC 4.9 does not allow using another member in a constexpr ctor 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
8af593f89c [build] Reuse precomputed WITH_CXX11ABI definition in Qt builds 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
2954a2a40d [build] OSX build fix for GCC 4.9 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
c163402f64 [build] Added Linux GCC 4.9 CI bot 2017-07-12 20:42:29 +03:00
Konstantin Käfer
3aa807e1dc [core] add LLDB summaries for types we use commonly 2017-07-12 17:19:03 +02:00
Thiago Marcos P. Santos
32bef80eec [test] Add utest to assert our dtoa implementation precision 2017-07-12 15:13:33 +03:00
Thiago Marcos P. Santos
06719ae42f [benchmark] Add a benchmark for our dtoa implementation
Make sure it is faster than std::to_value(). And it is, by ~30% for
the normal use case, and much faster when close to the double limits.

util::dtoa also offers a much better precision.
2017-07-12 15:13:33 +03:00
Thiago Marcos P. Santos
40d66a84b3 [core] Do not use S_ISDIR
Seems like Windows can do `stat()` but not S_ISDIR.
2017-07-12 15:13:33 +03:00
Thiago Marcos P. Santos
70e557a6f8 [core] Use gmtime_s on Windows
gmtime_r is POSIX
2017-07-12 15:13:33 +03:00
Thiago Marcos P. Santos
0d7d3d8959 [core] Use std::to_string on Windows
Clang on Window's can't parse rapidjson's dtoa.
2017-07-12 15:13:33 +03:00
Thiago Marcos P. Santos
3b49ec3a0b [core] Prefer std:: functions over POSIX
s/unlink/std::remove
2017-07-12 15:13:33 +03:00