Commit Graph

36 Commits

Author SHA1 Message Date
Chris Loer
656a6373b9 [core] Synchronize state of CollisionIndex and FeatureIndexes.
Fixes issue #10778, in which mismatch between FeatureIndex and CollisionIndex could lead to inconsistent results or even invalid array access.
2018-01-18 14:36:22 -08:00
Lauren Budorick
43a9bd3fba [core] Use separate shaders for background and clipping 2018-01-09 15:02:49 -08:00
Chris Loer
cb380064bb [ios,macos] Darwin implementation of a CoreText-based LocalGlyphRasterizer.
- Changing font weight does not currently appear to be working.
 - Glyph metric extraction code not working; currently unused.
2017-12-11 10:43:00 -08:00
Chris Loer
25cfb5863c [core] Symbol cross-fading.
Hold onto tiles after they've been removed from the render tree long enough to run a fade animation on their symbols.
2017-11-17 10:05:15 -08:00
Chris Loer
c39232a89f [core] Cleanup in response to review comments. 2017-11-17 10:05:15 -08:00
Ansis Brammanis
6b50885c79 [core] Sort child symbol tiles before parent symbol tiles
This is necessary so that when there are mixed zoom levels, child symbols get placed before parent symbols.
2017-11-17 10:05:15 -08:00
Ansis Brammanis
22c07596a0 [core] Split MapMode::Still into Static and Tile
`Tile` makes sure the symbols in the resulting tile are tileable while
symbols in `Still` match rendering in `Continuous` mode.
2017-11-17 10:05:15 -08:00
Chris Loer
ff58848cfd [core] Remove dead code
- CollisionTile
 - FrameHistory
 - PlacementConfig
2017-11-17 10:05:15 -08:00
Chris Loer
c0cb210ddc [core] Switch from background to foreground placement
- Background placement code now just generates static symbol buffers
 - Don't render GeometryTiles until their symbols are loaded. This is necessary for the CrossTileSymbolIndex to successfully prevent flicker.
 - SymbolInstances are transferred to SymbolBucket for use on foreground during collision detection
 - Symbols are sorted on foreground by sorting their index buffer but leaving vertex buffers intact (only works within one segment)
 - Vertical glyphs are generated at same time as horizontal glyphs. `reprojectLineLabels` chooses which one to use at render time and hides the other.
 - Icons are now always represented with a single collision box, even if they're placed along a line (this means their rotation alignment may be wrong, but the approach of representing them with multiple collision boxes wasn't very accurate either).
 - Generate vertices for new debug collision boxes and collision circles
 - Only add symbols within tile boundaries (reduces work, avoids double-draw)
 - Update symbol_projection.cpp to support line label projection calls from CollisionIndex.
2017-11-17 10:05:15 -08:00
Tobrun
225fba8a0a Merge branch 'release-agua' into tvn-merge-release 2017-11-10 06:16:35 +01:00
Bruno de Oliveira Abinader
13ec2cc562 Revert "[core] Expose ColorMask in gl::Context::clear()"
This reverts commit e350ef37fe.
2017-11-02 15:14:37 +02:00
Bruno de Oliveira Abinader
68ab4f6cec [core] Let transparency leak in GLContext::Shared mode 2017-11-01 17:45:37 +02:00
Bruno de Oliveira Abinader
e350ef37fe [core] Expose ColorMask in gl::Context::clear() 2017-11-01 17:45:37 +02:00
Fabian Guerra Soto
b7b8baef9d [ios, macos] Add selection support to MGLMultiPoint annotations. (#9984)
* [ios, macos] Add selection support to MGLMultiPoint annotations.

* [ios, macos] Update changelogs.
2017-10-18 15:18:54 -04:00
Konstantin Käfer
0cd646180e [core] don't generate clip IDs for buckets/layers that don't need to be clipped 2017-10-17 15:48:41 -07:00
Konstantin Käfer
cbff0a972a [core] don't generate clip IDs for buckets/layers that don't need to be clipped 2017-10-17 15:08:22 -07:00
Ivo van Dongen
bda6ed26c6 [core] send signal to RenderCustomLayer when gl context has been lost
- Prevents cleaning up of GL resources that no longer exist, resulting in a crash
2017-09-22 23:33:56 +03:00
Lauren Budorick
a9ddf5b7fd Preserve depth buffer between 3D layers + optimize render order (#9931)
Port of https://github.com/mapbox/mapbox-gl-js/pull/5101: adds a new render pass `Pass3D` before any other rendering wherein we render layers with 3D passes (fill-extrusion layers) to offscreen framebuffers, sharing a depth renderbuffer between those layers in order to render 3D space correctly. Those framebuffers are saved on the RenderLayers and copied back to the map during the translucent pass. Rendering to offscreen framebuffers before we do any clear + draw means we can avoid expensive framebuffer restores.
2017-09-21 14:26:48 -07:00
Bruno de Oliveira Abinader
45d07163eb [core] Reset zoom history state in still mode 2017-09-15 16:41:29 -03:00
Bruno de Oliveira Abinader
88a0187f21 [core] Precompute if has image diffs when updating sources 2017-09-14 06:30:12 +03:00
John Firebaugh
2bbde6903a [core] Rename for clarity: ActiveTexture → ActiveTextureUnit 2017-09-11 10:17:54 -07:00
Lauren Budorick
f8a53234ff [core] Remove debug::renderTree 2017-09-07 12:07:46 -07:00
Ivo van Dongen
4c96603eb6 [core] move annotation tile updates to renderer
- AnnotationData.updateData() was not completely thread safe. Calling it from the renderer thread instead of the main thread fixes this
- Since we moved the coalescing of updates out of the map and into the renderer frontend implementations, the updateData was called too much, resulting in degraded performance. Moving it into the renderer makes sure it gets coalesced again.
2017-08-31 18:45:28 +03:00
John Firebaugh
b0c03f9396 [core] No need to skip glClear optimization in overdraw mode 2017-08-24 13:06:23 -07:00
John Firebaugh
28be432041 [core] Eliminate temporary sources set 2017-08-24 13:06:23 -07:00
John Firebaugh
4dd30db7cb [core] Clean up includes and forward declarations 2017-08-24 13:06:23 -07:00
John Firebaugh
9c02e4d7dd [core] Inline Renderer::Impl::doRender 2017-08-24 13:06:23 -07:00
John Firebaugh
d05486391a [core] Remove unnecessary members from UpdateParameters 2017-08-24 13:06:23 -07:00
John Firebaugh
079ddfc8e4 [core] Create BackendScopes in Renderer, assert in Impl
This avoids a long series of reset() calls in the Impl.
2017-08-24 13:06:23 -07:00
John Firebaugh
ad70cd30ef [core] Inline RenderItem and RenderData 2017-08-24 13:06:23 -07:00
John Firebaugh
47ac22b6ac [core] Merge RenderStyle into Renderer::Impl 2017-08-24 13:06:23 -07:00
John Firebaugh
d4cb498d7a [all] Merge View into RendererBackend 2017-07-26 09:50:38 -07:00
Ivo van Dongen
27343c6a75 [core] fix backend scope handling on render, cleanup and lowmemory
- Make renderer frontend responsible for creating a BackendScope on render
- encapsulate backend scope handling on cleanup and low memory in renderer impl
2017-07-25 17:44:28 +03:00
John Firebaugh
64203ba53f [core] Refactor Painter away 2017-07-19 09:31:07 -07:00
Ivo van Dongen
46c43510d7 [core] rename backend to renderer backend 2017-07-18 10:45:12 +02:00
Ivo van Dongen
3832f8d0d8 [core] renderer interface 2017-07-18 10:45:12 +02:00