Commit Graph

3828 Commits

Author SHA1 Message Date
Bruno de Oliveira Abinader
74538406e9 [core] Organize Map::{move,pitch,scale,rotate}By 2019-03-04 14:45:32 +02:00
Bruno de Oliveira Abinader
586b22c0df [core] Remove map coordinate setters/getters 2019-03-04 14:45:32 +02:00
Bruno de Oliveira Abinader
ba7427b4ac [core] Transform{State}: s/angle/bearing/ 2019-03-04 14:45:32 +02:00
Bruno de Oliveira Abinader
73ac3c784f [core] Remove map bearing setters/getters 2019-03-04 14:45:32 +02:00
Bruno de Oliveira Abinader
21a39306da [core] Remove map pitch setters/getters 2019-03-04 14:45:32 +02:00
Bruno de Oliveira Abinader
f5f10ec119 [core] Remove map zoom setters/getters 2019-03-04 14:45:32 +02:00
Bruno de Oliveira Abinader
491fce6879 [core] Added Map::pitchBy() 2019-03-04 14:45:32 +02:00
Bruno de Oliveira Abinader
02f2b9c75c [core] Added Map::scaleBy() 2019-03-04 14:45:32 +02:00
Konstantin Käfer
67a9dc35bf [core] move CullFaceMode to gfx namespace 2019-03-01 09:33:37 +01:00
Konstantin Käfer
4372ce2b90 [core] move StencilMode to gfx namespace 2019-03-01 09:33:37 +01:00
Konstantin Käfer
4982933a78 [core] move DepthMode to gfx namespace 2019-03-01 09:33:37 +01:00
Konstantin Käfer
fde7c20f36 [core] move GL enum conversions to separate file 2019-03-01 09:33:37 +01:00
Konstantin Käfer
da6e1390c6 [core] move ColorMode to gfx namespace 2019-03-01 09:33:37 +01:00
Konstantin Käfer
fd37d90650 [core] move draw mode and primitives to gfx namespace 2019-03-01 09:33:37 +01:00
Konstantin Käfer
c53cbe5246 [core] include what you use 2019-03-01 09:33:37 +01:00
Konstantin Käfer
95deab32ce [core] extract attribute structs and gl::Vertex to separate namespace 2019-03-01 09:33:37 +01:00
Konstantin Käfer
3f1d754369 [core] rename gl::AttributeType to gl::Attribute to free up the name 2019-03-01 09:33:37 +01:00
Konstantin Käfer
cd06b550dd [core] disallow subtyping of gl::Attributes<> and use type aliases instead 2019-03-01 09:33:37 +01:00
Konstantin Käfer
55c7b86053 [core] extract uniform type lists from gl namespace 2019-03-01 09:33:37 +01:00
Konstantin Käfer
7f1428ed3b [core] remove Tag from gl::Uniform 2019-03-01 09:33:37 +01:00
Bruno de Oliveira Abinader
dd651691f3 [core] Move Map::Impl to its own def/impl files 2019-02-27 16:29:06 +02:00
Bruno de Oliveira Abinader
e5ed9d9ddf [core] Use unwrapped longitude for bounds check 2019-02-26 21:17:31 +02:00
Bruno de Oliveira Abinader
7d407175e0 [core] Ensure 'isPanning' is true when panning a full round 2019-02-26 21:17:31 +02:00
Konstantin Käfer
5416872b74 [core] remove DrawMode from VertexVector/Buffer 2019-02-25 15:25:40 +01:00
Mikhail Pozdnyakov
e800f37547 [core] Layer manager is responsible for buckets and layouts creation
This is a step to stop using of render layers in tile worker thread.
2019-02-25 13:47:56 +02:00
Thiago Marcos P. Santos
056073a904 [build] Use the correct define on Windows
https://blog.kowalczyk.info/article/j/guide-to-predefined-macros-in-c-compilers-gcc-clang-msvc-etc..html
2019-02-19 16:20:56 +02:00
Thiago Marcos P. Santos
690833ef92 [core] Switch to the new OpenGL abstraction
This patch will make Mapbox GL Core never use OpenGL
directly. We should consider locking into OpenGL ES 2.0
to simplify the code path and remove #ifdefs.
2019-02-12 19:42:08 +02:00
Thiago Marcos P. Santos
9b66be7bef [core] Abstract the OpenGL implementation
The platform will be responsible to load the OpenGL implementation
and give the function pointers to Mapbox GL Core. The platform might
load OpenGL by linking against some OpenGL implementation, load it
dynamically, etc. It doesn't matter as long as it is a valid
implementation.

Also adds the `::platform` namespace where all the missing symbols and
interfaces expected to be implemented by the platforms will live.
2019-02-12 19:42:08 +02:00
Mikhail Pozdnyakov
e45c3926c2 [core] Reduce presence of the 'useIntegerZoom' option
The `useIntegerZoom` presence is now limited: it is removed
from `PossiblyEvaluatedPropertyValue` class specializations
(was never used there!) and from the `PropertyEvaluationParameters`
class, so we do not have to copy `PropertyEvaluationParameters`
instance at `RenderLineLayer::evaluate`.
2019-02-04 13:30:21 +02:00
Mikhail Pozdnyakov
429ea6aba5 [core] Remove paintProperties() method from some render layers
PatternLayout can directly access layer's `evaluated` field.

Besides, obviates accessing of moved `evaluatedProps` inside
PatternLayout constructor.
2019-01-31 11:50:17 +02:00
Konstantin Käfer
8faee25546 [core] change loop variable type to auto
We used `const std::pair<T, std::shared_ptr<Expression>>`, but the actual type is `const std::pair<const T, std::shared_ptr<Expression>>` which resulted in an implicit copy
2019-01-30 17:28:31 +01:00
Mikhail Pozdnyakov
b83030aa9b [core] Remove tile sorting from the clip and mask algorithms
The tile sorting can be now removed from the algorithms, which
calculate tile mask and clip ids, because their client code
provides tiles being already sorted (in `TilePyramid`).

This patch brings significant improvements to the Tile-related
performance tests results, for example the `TileMaskGeneration`
benchmark test runs 33 times faster with these changes applied.
2019-01-18 14:35:15 +02:00
Mikhail Pozdnyakov
ac3d59862a [core] TilePyramid has sorted render tiles
Thus we obviate unneeded extra sorting of render tiles at each render layer.
2019-01-16 16:16:18 +02:00
Mikhail Pozdnyakov
12295ef335 [core] SymbolBucket: use single map for paint properties data
Obviates unnecessary lookups, improves readability.
2019-01-14 12:53:44 +02:00
Konstantin Käfer
1185fe0d31 [core] return constexpr strings from functions to avoid ODR compile failures 2019-01-11 16:05:17 +01:00
Mikhail Pozdnyakov
d37918c169 [core] Split layer type specific code in mbgl::Programs
Progams code for a certain layer type is encapsulted within
a dedicated `<layer type>Programs` class, inherited from
the generic base `LayerTypePrograms` class.

`mbgl::Programs::get<layer type>Programs()` lazily initializes the
layer type-specific programs code using pointer to the base class,
which allows LTO to remove this code from binaries (if the corresponding
`get<layer type>Programs()` method can never be invoked).
2019-01-11 16:43:52 +02:00
Mikhail Pozdnyakov
2bdab82ded [core] shader program must always match bucket in render symbol layer
Before this change, `RenderSymbolLayer` with updated style was trying to render
symbols using the previous bucket (with paint property binders that matched a previous program).

Now, symbol bucket caches the latest corresponding paint properties (caching is happening on
complete tiles only). As a result, `RenderSymbolLayer` always picks the shader program and
its parameters in sync with the obtained bucket.
2019-01-11 11:30:04 +02:00
Konstantin Käfer
6f60ccf08e [build] generate header maps instead of -files.txt 2019-01-09 10:26:53 +01:00
Minh Nguyễn
d0f330a319 [core] Updated script detection for Unicode 11
Updated script detection code to reflect changes in Unicode 11.
2019-01-07 09:56:37 -08:00
Ansis Brammanis
750734df34 [core] fix deduping rings in querying, #11357 2019-01-04 15:00:19 -08:00
Mikhail Pozdnyakov
c621b8100d [core] Drop LayerType
Drop LayerType and its remaining usages.
The generic code should be layer type agnostic.
2019-01-04 11:51:33 +02:00
Chris Loer
b7e2b11a75 [core] Support for excluding ideographic glyphs from offline downloads. 2018-12-21 15:13:48 -08:00
Mikhail Pozdnyakov
cf6c97ad68 [core] Remove fnv_hash.hpp 2018-12-20 09:50:14 +02:00
Mikhail Pozdnyakov
d4d12fb8a5 [core] Use eternal::hash_map in style::Layers 2018-12-19 19:09:19 +02:00
Alexander Shalamov
a1ca06e304 [core] Introduce Renderer::queryFeatureExtension API
New interface allows it's users to query additional information about
feature that was provided by qRF interface. This is particularly
useful for clustered features.
2018-12-12 15:08:18 +02:00
Alexander Shalamov
664ceb4398 [core] Share GeoJSONData pointer as weak_ptr instead of raw ptr 2018-12-12 15:08:18 +02:00
Alexander Shalamov
8a03d16990 [core] Expose getChildren, getLeaves, getClusterExpansionZoom on SuperclusterData 2018-12-12 15:08:18 +02:00
Chris Loer
d812babecd [core] Avoid divide-by-zero when transition duration is 0..
Fixes issue #13506 -- transition duration of 0 would cause symbol flickering.
2018-12-11 14:03:34 -08:00
Chris Loer
662a495561 [docs] EnterIdle -> BecomeIdle 2018-12-11 11:46:16 -08:00
Chris Loer
70c2d5a4ca [core, darwin, android] Add onDidEnterIdle to MapObserver.
didEnterIdle fires whenever render completes and no repaint is scheduled.
2018-12-11 11:46:16 -08:00