[core] Port "collision group" plumbing to gl-native.

[node] Hook up map-wide "crossSourceCollisions" option, defaulting to true.
[test] Pass "crossSourceCollisions" test option through test harness; enable cross-source-collisions tests on native.
This commit is contained in:
Chris Loer
2018-09-06 14:58:37 -07:00
committed by Chris Loer
parent 079ba0209e
commit d735d89835
17 changed files with 149 additions and 50 deletions

View File

@@ -621,7 +621,10 @@ void NodeMap::cancel() {
frontend = std::make_unique<mbgl::HeadlessFrontend>(mbgl::Size{ 256, 256 }, pixelRatio, *this, threadpool);
map = std::make_unique<mbgl::Map>(*frontend, mapObserver, frontend->getSize(), pixelRatio,
*this, threadpool, mode);
*this, threadpool, mode,
mbgl::ConstrainMode::HeightOnly,
mbgl::ViewportMode::Default,
crossSourceCollisions);
// FIXME: Reload the style after recreating the map. We need to find
// a better way of canceling an ongoing rendering on the core level
@@ -1212,6 +1215,14 @@ NodeMap::NodeMap(v8::Local<v8::Object> options)
return mbgl::MapMode::Static;
}
}())
, crossSourceCollisions([&] {
Nan::HandleScope scope;
return Nan::Has(options, Nan::New("crossSourceCollisions").ToLocalChecked()).FromJust()
? Nan::Get(options, Nan::New("crossSourceCollisions").ToLocalChecked())
.ToLocalChecked()
->BooleanValue()
: true;
}())
, mapObserver(NodeMapObserver())
, frontend(std::make_unique<mbgl::HeadlessFrontend>(mbgl::Size { 256, 256 }, pixelRatio, *this, threadpool))
, map(std::make_unique<mbgl::Map>(*frontend,
@@ -1220,7 +1231,10 @@ NodeMap::NodeMap(v8::Local<v8::Object> options)
pixelRatio,
*this,
threadpool,
mode)),
mode,
mbgl::ConstrainMode::HeightOnly,
mbgl::ViewportMode::Default,
crossSourceCollisions)),
async(new uv_async_t) {
async->data = this;