Commit Graph

3842 Commits

Author SHA1 Message Date
Sudarsana Babu Nagineni
5e2b6bf636 [core] Add MapOptions to define properties of Map
To simplify the Map constructor, introduce MapOptions
interface to define the properties that can be set on
a Map.
2019-03-08 18:20:55 +02:00
Sudarsana Babu Nagineni
744d92e763 [core] consolidate Axonometric rendering API
Instead of having individual APIs for setting axonometric
and skew options, create ProjectionMode struct that holds
all the relevant options for Axonometric rendering and
introduce setter/getter on the Map for those options.
2019-03-08 17:36:40 +02:00
Mikhail Pozdnyakov
06a8ecdb17 Update mapbox-gl-js submodule to v0.53.0 2019-03-06 18:00:19 +02:00
Konstantin Käfer
8a8291d8f4 [core] introduce gfx::Context and move Buffer creation/update methods to it 2019-03-06 16:12:51 +01:00
Konstantin Käfer
ec42b2a5a4 [core] move BufferUsage enum to gfx namespace 2019-03-06 16:12:51 +01:00
Konstantin Käfer
458bb65510 [core] rename gl/*_buffer.hpp to gl/*_buffer_resource.hpp 2019-03-06 16:12:51 +01:00
Konstantin Käfer
3a57aa65d7 [core] move VertexBuffer<> to gfx namespace 2019-03-06 16:12:51 +01:00
Konstantin Käfer
4737a45383 [core] move IndexBuffer to gfx namespace 2019-03-06 16:12:51 +01:00
Konstantin Käfer
f13c2b86e4 [core] unify *Buffer/Vector naming 2019-03-06 16:12:51 +01:00
Konstantin Käfer
2f646af255 [core] make vertex descriptors constexpr 2019-03-06 16:12:51 +01:00
Konstantin Käfer
d5816b6db2 [core] remove unused template parameter from gl::IndexBuffer 2019-03-06 16:12:51 +01:00
Konstantin Käfer
63e81b9aa8 [core] move VertexVector/IndexVector to gfx namespace 2019-03-06 16:12:51 +01:00
Molly Lloyd
bf82b07da2 update shaders 2019-03-05 14:04:52 +02:00
Molly Lloyd
c33516911f remove unused dem memory 2019-03-05 14:04:52 +02:00
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