Commit Graph

14444 Commits

Author SHA1 Message Date
John Firebaugh
c5ec9cafa7 [core] Inline Painter::renderBackground 2017-07-19 09:31:07 -07:00
John Firebaugh
5c24636c26 [core] Eliminate Bucket::render 2017-07-19 09:31:07 -07:00
Bruno de Oliveira Abinader
4954da23e7 [core] No need for default ctor in {Update,Tile}Parameters 2017-07-19 19:24:30 +03:00
Bruno de Oliveira Abinader
6c12de8d12 [core] std::vector can be bracket-initialized 2017-07-19 19:24:30 +03:00
Bruno de Oliveira Abinader
5d4ed27068 [core] Bracket init works for optional<T> in GCC 4.9 2017-07-19 19:24:30 +03:00
Bruno de Oliveira Abinader
15c5bf359a [build] Downgrade GCC support from 5.0 to 4.9 2017-07-19 19:24:30 +03:00
Bruno de Oliveira Abinader
65ee065d45 [build] Separate CODE-OF-CONDUCT.md to its own file 2017-07-19 19:24:30 +03:00
Ivo van Dongen
e7f45e0b19 [android] remove manual ref counting on activation/deactivation 2017-07-19 17:34:07 +02:00
Ivo van Dongen
733661948c [core] BackendScope prevent double (de-)activation
- Guards against duplicate activations by checking wether the backend of the prior scope is the same as the current ones
- Makes sure that only the most outer backend scope deactivates by tracking activation state
2017-07-19 17:34:07 +02:00
Thiago Marcos P. Santos
7e8fe05af0 [Qt] Avoid using brace-list init ctor in QMapboxGL 2017-07-19 16:44:30 +03:00
Tobrun
68324913d7 [android] - rewrite map object intialisation (#9462) 2017-07-19 14:17:06 +02:00
Łukasz Paczos
da581cc485 [android] - trying to update non-existent polyline fix #9543 (#9544) 2017-07-19 14:16:25 +02:00
Thiago Marcos P. Santos
a3244421a5 [Qt] Rename files with same name
QMake is having some issues with files with same names when
building the Qt Location plugin.
2017-07-19 14:39:39 +03:00
Jason Wray
05df451f3c [build] Add ccache install reminder and docs (#9520) 2017-07-18 12:36:22 -04:00
Thiago Marcos P. Santos
964287e5a4 [Qt] Destroy the map object before the renderer frontend
The Map object will call the renderer frontend on its destructor.

Fixes #9535.
2017-07-18 17:53:08 +03:00
Tobrun
8deab57e17 [android] - add OnPolygonClickListener and OnPolylineClickListener (#9443) 2017-07-18 15:34:55 +02:00
Tobrun
aca2e7984f [android] - bump OkHttp dependency to avoid null pointer exceptions on Android 7.0 (#9522) 2017-07-18 15:34:36 +02:00
Tobrun
13db36f02c [android] - fine tune fling gesture (#9532) 2017-07-18 12:32:40 +02:00
Konstantin Käfer
f7b0661104 [build] do not run clang-tidy on master 2017-07-18 11:54:39 +02:00
Konstantin Käfer
698542cf45 [build] make Xcode use the correct compiler when it is installed in a non-standard location 2017-07-18 11:54:14 +02:00
Ivo van Dongen
b5c0bf1b8d [android] remove manual ref counting on activation/deactivation 2017-07-18 10:45:12 +02:00
Ivo van Dongen
9ebf727f56 [core] BackendScope prevent double (de-)activation
- Guards against duplicate activations by checking wether the backend of the prior scope is the same as the current ones
- Makes sure that only the most outer backend scope deactivates by tracking activation state
2017-07-18 10:45:12 +02:00
Ivo van Dongen
a5a0558bde [test] allow only a single shared display to avoid egl errors 2017-07-18 10:45:12 +02:00
Ivo van Dongen
815ffb253b [android][glfw][ios][macos][node][qt] rename backend to renderer backend 2017-07-18 10:45:12 +02:00
Ivo van Dongen
46c43510d7 [core] rename backend to renderer backend 2017-07-18 10:45:12 +02:00
Ivo van Dongen
ee205ca9ca [qt] rendering interface changes 2017-07-18 10:45:12 +02:00
Ivo van Dongen
2e9fb06941 [benchmark] rendering interface changes 2017-07-18 10:45:12 +02:00
Ivo van Dongen
8401325a82 [glfw] rendering interface changes 2017-07-18 10:45:12 +02:00
Ivo van Dongen
d68d8a7846 [android] rendering interface changes 2017-07-18 10:45:12 +02:00
Ivo van Dongen
b6d56ad634 [ios][macos] rendering interface changes 2017-07-18 10:45:12 +02:00
Ivo van Dongen
b97cc980e0 [node] rendering interface changes 2017-07-18 10:45:12 +02:00
Ivo van Dongen
3832f8d0d8 [core] renderer interface 2017-07-18 10:45:12 +02:00
Ivo van Dongen
39a732d7ae [android][glfw][ios][macos][node][qt] split backend from mapobserver 2017-07-18 10:45:12 +02:00
Ivo van Dongen
57351c068b [core] split backend from mapobserver 2017-07-18 10:45:12 +02:00
Ivo van Dongen
e35cbbae55 [core] mutate style on annotation mutations immediately 2017-07-18 10:45:12 +02:00
Asheem Mamoowala
8ae7010546 [core][ios][android][macos] Use premultiplied image directly for RasterTile and ImageSource, un-premultiply in the shader for blending 2017-07-17 12:20:03 -07:00
Asheem Mamoowala
1d15ed64dc [core] Use shared pointer to manage Image source raster data and speed up change detection 2017-07-17 12:20:03 -07:00
Asheem Mamoowala
b69f8338bb [macos] Use [NSImage CGImageForProposedRect:context:hints:] instead of drawing into a bitmap representation 2017-07-17 12:20:03 -07:00
John Firebaugh
2d147470a5 [android] Force previously cached program binaries to be regenerated 2017-07-17 09:19:02 -07:00
John Firebaugh
550da70cf7 [core] Pass correct sources to programIdentifier 2017-07-17 09:19:02 -07:00
John Firebaugh
902d9442da [core] No need for optional in map of VertexArrays 2017-07-17 09:19:02 -07:00
John Firebaugh
cf83f117f0 [core] Reduce memory requirements of VertexArrays 2017-07-17 09:19:02 -07:00
John Firebaugh
de91e68090 [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-17 09:19:02 -07:00
John Firebaugh
d7bdc7a60d [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-17 09:19:02 -07:00
John Firebaugh
fbd4376899 [core] Inline getActiveAttributes details 2017-07-17 09:19:02 -07:00
John Firebaugh
f9fe0de806 [core] Include what you use 2017-07-17 09:19:02 -07:00
Lauren Budorick
eed89fcf9d [core] Bind only active attributes in order to avoid exceeding attribute limits (#9373)
Introducing two new attributes to enable property functions for line-width (#9250) pushed the attribute count over GL_MAX_VERTEX_ATTRIBS on some devices. Now we selectively bind only attributes that are used, making it unlikely to surpass GL_MAX_VERTEX_ATTRIBS.
2017-07-17 09:19:02 -07:00
Konstantin Käfer
e8272ebdbb [core] rename a_gap_width => a_gapwidth, u_gap_width => u_gapwidth to reflect naming in the shader
not sure how this ever worked
2017-07-17 09:19:02 -07:00
John Firebaugh
874244a656 [core] Eliminate constant attribute bindings
Rather than binding constant attributes that will never be used, just disable the attribute.
2017-07-17 09:19:02 -07:00
John Firebaugh
ccb5255537 [core] Don't use "current" icon/text-size when binding
The current value is not passed to `SymbolSizeBinder::uniformValues`, so we shouldn't check `currentValue.isConstant()` in `SymbolSizeBinder::attributeBindings`. If it were true, then we might end up using attribute bindings that are appropriate only for a constant property, but uniform bindings that are appropriate only for a source or composite function.

Instead, just wait for a new bucket to be generated. This will happen automatically, since icon/text-size are layout properties.
2017-07-17 09:19:02 -07:00