| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
https://blog.kowalczyk.info/article/j/guide-to-predefined-macros-in-c-compilers-gcc-clang-msvc-etc..html
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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`.
|
|
|
|
|
|
|
| |
PatternLayout can directly access layer's `evaluated` field.
Besides, obviates accessing of moved `evaluatedProps` inside
PatternLayout constructor.
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Thus we obviate unneeded extra sorting of render tiles at each render layer.
|
|
|
|
| |
Obviates unnecessary lookups, improves readability.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Updated script detection code to reflect changes in Unicode 11.
|
| |
|
|
|
|
|
| |
Drop LayerType and its remaining usages.
The generic code should be layer type agnostic.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
SuperclusterData
|
|
|
|
| |
Fixes issue #13506 -- transition duration of 0 would cause symbol flickering.
|
| |
|
|
|
|
| |
didEnterIdle fires whenever render completes and no repaint is scheduled.
|
|
|
|
|
|
| |
This patch disables creation of `RenderAnnotationSource` instances
and thus saves extra 4Ki on Android when `LayerManager::annotationsEnabled`
is `false`.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* add basic shader minification (same GL JS does)
* don't remove line break at shader end
|
|
|
|
| |
Move `LayerManager` and `LayerFactory` abstract classes to a dedicated folder.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the moment, the annotations implementation in the `mapbox-gl-native`
core is creating concrete layer instances apart from `LayerManager/LayerFactory`
code path.
So, annotations must be disabled if the `LayerManager` implementation does
not provide line, fill or symbol layers (those, used by the annotations).
Note: in future, annotations implementation will be moved from the core to the
platform SDK level(see https://github.com/mapbox/mapbox-plugins-android/tree/master/plugin-annotation)
and `LayerManager` won't need to disable it.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
`LayerManager` is now responsible for `RenderLayer` instances creation,
so that there is a single entry point for creating of objects, which
correspond to a certain layer type.
The `LayerType type` field is dropped from `Layer::Impl`.
|
| |
|
| |
|
|
|
|
| |
This appears to have been an attempt to use the std::string fill constructor, but it ended up creating a one-character-long string and attempting to overwrite the null terminator.
|
|
|
|
| |
allow disabling them entirely
|
| |
|
|
|
|
|
|
| |
So that it does not downcast `Layer::Impl` instances.
Also, an unneeded `std::vector` construction was removed from
`Parser::fontStacks()`.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|