| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
creating/destroying core threads
|
|
|
|
|
| |
Refactor out HeadlessFrontend and HeadlessBackend gl independent code to gfx.
Define gl::HeadlessBackend as subclass, instantiated by gfx::HeadlessBackend static factory method.
GL dependent tests are still using gl::HeadlessBackend directly (not through gfx).
|
|
|
|
|
|
|
|
|
|
| |
- Do not carry it over everywhere as parameter, it is a shared
instance anyway and the lifecycle is pretty much the app lifecycle
from the moment we instantiate a map.
- Rename to BackgroundScheduler because it is a Scheduler that will
do tasks in the background, we don't make assumptions if it is a
thread pool or a single thread.
- Most importantly, remove the dependency from `core` on `platform`.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Move pixelRatio property from Map constructor to MapOptions.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Group bounds, minimum and maximum zoom related methods together using
the new BoundOptions.
v2: Document that getBounds() initializes all optional fields.
- Add test for getBounds() on a map with default values.
|
| |
|
|
|
|
|
|
|
| |
Using different exception pointers to specify the loading failure makes
an awkward API. Most users rethrow the exception only to figure out what
type of error happened so it can be reported properly. So replace the
exception pointer with a enum an string description of the failure.
|
|
|
|
|
|
| |
We were returning the FileSource, it could have expired
already. We _need_ to check if the lock() on the weak
pointer worked before returning.
|
|
|
|
|
|
| |
To simplify the Map constructor, introduce MapOptions
interface to define the properties that can be set on
a Map.
|
|
|
|
|
| |
Otherwise we will have a URL pointing to different servers and
potentially different data.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
If access tokens are different, we cannot share the file source,
because it will override the previously set access token.
|
|
|
|
|
|
|
|
| |
`QColor::name()` produces `#rrggbb` format where alpha is missing.
Use `rgba(...)` string instead when convert `QColor` to mapbox style.
Note: `QColor::name(QColor::HexArgb)` produces `#aarrggbb` format string,
but mapbox does not support this format apparently.
|
|
|
|
| |
https://blog.kowalczyk.info/article/j/guide-to-predefined-macros-in-c-compilers-gcc-clang-msvc-etc..html
|
|
|
|
| |
These files are no longer needed after the new GL 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.
|
|
|
|
|
|
|
|
| |
These loaders will provide pointers to the platform implementation
of OpenGL. On Android, Linux and Darwin, we simply link with the
OpenGL implementation that is expected to exist on the platform.
Qt has its own GL loader, so we just connect the dots.
|
|
|
|
|
| |
New projection-related functions in QMapbox namespace
are missing Q_MAPBOXGL_EXPORTs.
|
|
|
|
|
|
|
|
|
|
|
| |
There are 3 methods in QMapboxGL which can be static method.
QMapboxGL::metersPerPixelAtLatitude
QMapboxGL::projectedMetersForCoordinate
QMapboxGL::coordinateForProjectedMeters
Add these functions into QMapbox namespace as global functions.
The methods in QMapboxGL are kept for backward compatibility.
|
|
|
|
|
|
| |
The example shows that both of QList<QMapbox::Feature> and
QVector<QMapbox::Feature> can be used as feature collection data
for GeoJSON layer.
|
|
|
|
|
| |
This commit adds support of `QVector<QMapbox::Feature>`
and `QList<QMapbox::Feature>` for data in GeoJSON source.
|
|
|
|
|
|
|
| |
For our use case `QVector` is more efficient and will
do less memory allocations.
Fixes: #13830
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When opening many maps and sharing the same filesource:
- Say we open around 30 maps and they all have the same style.
- They will all request the same sprite.json, but Qt filesource will
restrict simultaneous request to 20.
- Mapbox GL will send some sprite.json to the filesource and queue
some internally along with other requests.
- When the first sprite.json arrives and the Qt filesource calls the
callback, Mapbox GL will synchronously push queued requests to the
Qt filesource when a request is handled.
- We are walking a QVector dispatching sprite.json requests, but more
requests get added to this QVector while we are walking it using an
iterator.
- That corrupts the iterator and we get a crash.
The fix is simple, just pop items from the QVector until it is empty
instead of using iterators.
|
|
|
|
| |
Not enough adoption to keep the platform alive.
|
| |
|
|
|
|
|
|
|
|
|
| |
Vendorize the submodules and a simple CMake build
system for all them. The dependencies will inherit
compilation options for core.
The goal is to make Mapbox GL Core completely self
contained with a simple offline build.
|
|
|
|
|
|
|
|
| |
The `style::Layer` class now exposes all the properties contained at `style::LayerImpl`.
This allowed to drop `style::Layer::accept()` method usage, avoid the repeated generated code
and thus save some binary size.
This patch is a part of the layers modularization effort.
|
| |
|
|
|
|
| |
radians
|
|
|
|
| |
Remove use of QString from non-ICU Qt stub bidi implementation since we weren't making use of it.
|