void SpriteStore::emitSpriteLoadedIfComplete() { assert(loader); if (!loader->image || !loader->json) { return; } auto local = std::move(loader); auto result = parseSprite(*local->image, *local->json); if (result.is<Sprites>()) { loaded = true; setSprites(result.get<Sprites>()); observer->onSpriteLoaded(); } else { observer->onSpriteError(result.get<std::exception_ptr>()); } }
void Sprite::emitSpriteLoadedIfComplete() { assert(loader); if (!loader->loadedImage || !loader->loadedJSON || !observer) { return; } std::unique_ptr<Data> data(std::move(loader->data)); loader.reset(); auto result = parseSprite(data->image, data->json); if (result.is<Sprites>()) { loaded = true; observer->onSpriteLoaded(result.get<Sprites>()); } else { emitSpriteLoadingFailed(result.get<std::string>()); } }
void SpriteStore::emitSpriteLoadedIfComplete() { assert(loader); if (!loader->image || !loader->json) { return; } auto local = std::move(loader); auto result = parseSprite(*local->image, *local->json); if (result.is<Sprites>()) { loaded = true; setSprites(result.get<Sprites>()); if (observer) { observer->onSpriteLoaded(); } } else { emitSpriteLoadingFailed(result.get<std::string>()); } }
void StyleParser::parse(const JSVal& document) { if (document.HasMember("version")) { version = document["version"].GetInt(); if (version != 8) { Log::Warning(Event::ParseStyle, "current renderer implementation only supports style spec version 8; using an outdated style will cause rendering errors"); } } if (document.HasMember("sources")) { parseSources(document["sources"]); } if (document.HasMember("layers")) { parseLayers(document["layers"]); } if (document.HasMember("sprite")) { parseSprite(document["sprite"]); } if (document.HasMember("glyphs")) { parseGlyphURL(document["glyphs"]); } }