[core] Add ImageManager::clear()
This commit is contained in:
@@ -175,6 +175,17 @@ const std::set<std::string>& ImageManager::getAvailableImages() const {
|
||||
return availableImages;
|
||||
}
|
||||
|
||||
void ImageManager::clear() {
|
||||
assert(requestors.empty());
|
||||
assert(missingImageRequestors.empty());
|
||||
|
||||
images.clear();
|
||||
availableImages.clear();
|
||||
updatedImageVersions.clear();
|
||||
requestedImages.clear();
|
||||
loaded = false;
|
||||
}
|
||||
|
||||
void ImageManager::checkMissingAndNotify(ImageRequestor& requestor, const ImageRequestPair& pair) {
|
||||
ImageDependencies missingDependencies;
|
||||
|
||||
|
||||
@@ -51,6 +51,8 @@ public:
|
||||
|
||||
ImageVersionMap updatedImageVersions;
|
||||
|
||||
void clear();
|
||||
|
||||
private:
|
||||
void checkMissingAndNotify(ImageRequestor&, const ImageRequestPair&);
|
||||
void notify(ImageRequestor&, const ImageRequestPair&) const;
|
||||
|
||||
@@ -702,6 +702,7 @@ bool RenderOrchestrator::isLoaded() const {
|
||||
void RenderOrchestrator::clearData() {
|
||||
if (!sourceImpls->empty()) sourceImpls = makeMutable<std::vector<Immutable<style::Source::Impl>>>();
|
||||
if (!layerImpls->empty()) layerImpls = makeMutable<std::vector<Immutable<style::Layer::Impl>>>();
|
||||
if (!imageImpls->empty()) imageImpls = makeMutable<std::vector<Immutable<style::Image::Impl>>>();
|
||||
|
||||
renderSources.clear();
|
||||
renderLayers.clear();
|
||||
@@ -710,6 +711,8 @@ void RenderOrchestrator::clearData() {
|
||||
|
||||
if (!lineAtlas->isEmpty()) lineAtlas = std::make_unique<LineAtlas>();
|
||||
if (!patternAtlas->isEmpty()) patternAtlas = std::make_unique<PatternAtlas>();
|
||||
|
||||
imageManager->clear();
|
||||
}
|
||||
|
||||
void RenderOrchestrator::onGlyphsError(const FontStack& fontStack, const GlyphRange& glyphRange, std::exception_ptr error) {
|
||||
|
||||
Reference in New Issue
Block a user