[core] Pass placement commit parameters in constructor
This commit is contained in:
@@ -400,6 +400,7 @@ std::unique_ptr<RenderTree> RenderOrchestrator::createRenderTree(const UpdatePar
|
||||
updateParameters.mode,
|
||||
updateParameters.transitionOptions,
|
||||
updateParameters.crossSourceCollisions,
|
||||
updateParameters.timePoint,
|
||||
placementController.getPlacement());
|
||||
|
||||
for (auto it = layersNeedPlacement.crbegin(); it != layersNeedPlacement.crend(); ++it) {
|
||||
@@ -408,7 +409,7 @@ std::unique_ptr<RenderTree> RenderOrchestrator::createRenderTree(const UpdatePar
|
||||
placement->placeLayer(layer, renderTreeParameters->transformParams.projMatrix, updateParameters.debugOptions & MapDebugOptions::Collision);
|
||||
}
|
||||
|
||||
placement->commit(updateParameters.timePoint, updateParameters.transformState.getZoom());
|
||||
placement->commit();
|
||||
crossTileSymbolIndex.pruneUnusedLayers(usedSymbolLayers);
|
||||
for (const auto& entry : renderSources) {
|
||||
entry.second->updateFadingTiles();
|
||||
@@ -427,7 +428,8 @@ std::unique_ptr<RenderTree> RenderOrchestrator::createRenderTree(const UpdatePar
|
||||
Mutable<Placement> placement = makeMutable<Placement>(updateParameters.transformState,
|
||||
updateParameters.mode,
|
||||
updateParameters.transitionOptions,
|
||||
updateParameters.crossSourceCollisions);
|
||||
updateParameters.crossSourceCollisions,
|
||||
updateParameters.timePoint);
|
||||
for (auto it = layersNeedPlacement.crbegin(); it != layersNeedPlacement.crend(); ++it) {
|
||||
const RenderLayer& layer = *it;
|
||||
crossTileSymbolIndex.addLayer(layer, updateParameters.transformState.getLatLng().longitude());
|
||||
@@ -435,7 +437,7 @@ std::unique_ptr<RenderTree> RenderOrchestrator::createRenderTree(const UpdatePar
|
||||
renderTreeParameters->transformParams.projMatrix,
|
||||
updateParameters.debugOptions & MapDebugOptions::Collision);
|
||||
}
|
||||
placement->commit(updateParameters.timePoint, updateParameters.transformState.getZoom());
|
||||
placement->commit();
|
||||
placementController.setPlacement(std::move(placement));
|
||||
}
|
||||
renderTreeParameters->symbolFadeChange = 1.0f;
|
||||
|
||||
@@ -61,7 +61,8 @@ const CollisionGroups::CollisionGroup& CollisionGroups::get(const std::string& s
|
||||
// PlacementController implemenation
|
||||
|
||||
PlacementController::PlacementController()
|
||||
: placement(makeMutable<Placement>(TransformState{}, MapMode::Static, style::TransitionOptions{}, true, nullopt)) {}
|
||||
: placement(makeMutable<Placement>(
|
||||
TransformState{}, MapMode::Static, style::TransitionOptions{}, true, TimePoint(), nullopt)) {}
|
||||
|
||||
void PlacementController::setPlacement(Immutable<Placement> placement_) {
|
||||
placement = std::move(placement_);
|
||||
@@ -94,10 +95,12 @@ Placement::Placement(const TransformState& state_,
|
||||
MapMode mapMode_,
|
||||
style::TransitionOptions transitionOptions_,
|
||||
const bool crossSourceCollisions,
|
||||
TimePoint commitTime_,
|
||||
optional<Immutable<Placement>> prevPlacement_)
|
||||
: collisionIndex(state_, mapMode_),
|
||||
mapMode(mapMode_),
|
||||
transitionOptions(std::move(transitionOptions_)),
|
||||
commitTime(commitTime_),
|
||||
placementZoom(state_.getZoom()),
|
||||
collisionGroups(crossSourceCollisions),
|
||||
prevPlacement(std::move(prevPlacement_)) {
|
||||
@@ -622,8 +625,7 @@ void Placement::placeBucket(const SymbolBucket& bucket,
|
||||
std::forward_as_tuple(bucket.bucketInstanceId, params.featureIndex, overscaledID));
|
||||
}
|
||||
|
||||
void Placement::commit(TimePoint now, const double zoom) {
|
||||
commitTime = now;
|
||||
void Placement::commit() {
|
||||
if (!getPrevPlacement()) {
|
||||
assert(mapMode != MapMode::Continuous);
|
||||
fadeStartTime = commitTime;
|
||||
@@ -638,7 +640,7 @@ void Placement::commit(TimePoint now, const double zoom) {
|
||||
|
||||
bool placementChanged = false;
|
||||
|
||||
prevZoomAdjustment = getPrevPlacement()->zoomAdjustment(zoom);
|
||||
prevZoomAdjustment = getPrevPlacement()->zoomAdjustment(placementZoom);
|
||||
float increment = getPrevPlacement()->symbolFadeChange(commitTime);
|
||||
|
||||
// add the opacities from the current placement, and copy their current values from the previous placement
|
||||
|
||||
@@ -116,9 +116,10 @@ public:
|
||||
MapMode,
|
||||
style::TransitionOptions,
|
||||
const bool crossSourceCollisions,
|
||||
TimePoint commitTime,
|
||||
optional<Immutable<Placement>> prevPlacement = nullopt);
|
||||
void placeLayer(const RenderLayer&, const mat4&, bool showCollisionBoxes);
|
||||
void commit(TimePoint, const double zoom);
|
||||
void commit();
|
||||
void updateLayerBuckets(const RenderLayer&, const TransformState&, bool updateOpacities) const;
|
||||
float symbolFadeChange(TimePoint now) const;
|
||||
bool hasTransitions(TimePoint now) const;
|
||||
@@ -151,7 +152,7 @@ private:
|
||||
|
||||
TimePoint fadeStartTime;
|
||||
TimePoint commitTime;
|
||||
float placementZoom;
|
||||
const float placementZoom;
|
||||
float prevZoomAdjustment = 0;
|
||||
|
||||
std::unordered_map<uint32_t, JointPlacement> placements;
|
||||
|
||||
Reference in New Issue
Block a user