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>());
    }
}
示例#2
0
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"]);
    }
}