[core] Add use LayerTypeInfo::Layout for the layers that require Layout
This commit is contained in:
@@ -28,11 +28,11 @@ const style::FillExtrusionLayer::Impl& RenderFillExtrusionLayer::impl() const {
|
||||
}
|
||||
|
||||
std::unique_ptr<Bucket> RenderFillExtrusionLayer::createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const {
|
||||
assert(false); // Should be calling createLayout() instead.
|
||||
// Should be calling createLayout() instead.
|
||||
assert(baseImpl->getTypeInfo()->layout == LayerTypeInfo::Layout::NotRequired);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
std::unique_ptr<Layout> RenderFillExtrusionLayer::createLayout(const BucketParameters& parameters,
|
||||
const std::vector<const RenderLayer*>& group,
|
||||
std::unique_ptr<GeometryTileLayer> layer,
|
||||
|
||||
@@ -26,7 +26,8 @@ const style::FillLayer::Impl& RenderFillLayer::impl() const {
|
||||
}
|
||||
|
||||
std::unique_ptr<Bucket> RenderFillLayer::createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const {
|
||||
assert(false); // Should be calling createLayout() instead.
|
||||
// Should be calling createLayout() instead.
|
||||
assert(baseImpl->getTypeInfo()->layout == LayerTypeInfo::Layout::NotRequired);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,8 @@ const style::LineLayer::Impl& RenderLineLayer::impl() const {
|
||||
}
|
||||
|
||||
std::unique_ptr<Bucket> RenderLineLayer::createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const {
|
||||
assert(false); // Should be calling createLayout() instead.
|
||||
// Should be calling createLayout() instead.
|
||||
assert(baseImpl->getTypeInfo()->layout == LayerTypeInfo::Layout::NotRequired);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ public:
|
||||
std::unique_ptr<GeometryTileLayer>,
|
||||
GlyphDependencies&,
|
||||
ImageDependencies&) const override;
|
||||
|
||||
// Paint properties
|
||||
style::LinePaintProperties::Unevaluated unevaluated;
|
||||
RenderLinePaintProperties::PossiblyEvaluated evaluated;
|
||||
|
||||
@@ -32,7 +32,8 @@ const style::SymbolLayer::Impl& RenderSymbolLayer::impl() const {
|
||||
}
|
||||
|
||||
std::unique_ptr<Bucket> RenderSymbolLayer::createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const {
|
||||
assert(false); // Should be calling createLayout() instead.
|
||||
// Should be calling createLayout() instead.
|
||||
assert(baseImpl->getTypeInfo()->layout == LayerTypeInfo::Layout::NotRequired);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -375,7 +375,7 @@ void GeometryTileWorker::parse() {
|
||||
// are needed to render the layer. They use the intermediate Layout data structure to accomplish this,
|
||||
// and either immediately create a bucket if no images/glyphs are used, or the Layout is stored until
|
||||
// the images/glyphs are available to add the features to the buckets.
|
||||
if (leader.as<RenderSymbolLayer>() ||leader.as<RenderLineLayer>() || leader.as<RenderFillLayer>() || leader.as<RenderFillExtrusionLayer>()) {
|
||||
if (leader.baseImpl->getTypeInfo()->layout == LayerTypeInfo::Layout::Required) {
|
||||
auto layout = leader.createLayout(parameters, group, std::move(geometryLayer), glyphDependencies, imageDependencies);
|
||||
if (layout->hasDependencies()) {
|
||||
layouts.push_back(std::move(layout));
|
||||
|
||||
Reference in New Issue
Block a user