123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // Copyright 2021 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "cc/paint/skottie_resource_metadata.h"
- #include <utility>
- #include "base/check.h"
- #include "base/hash/hash.h"
- #include "base/logging.h"
- #include "base/strings/utf_string_conversions.h"
- namespace cc {
- SkottieResourceMetadataMap::ImageAssetMetadata::ImageAssetMetadata(
- base::FilePath resource_path_in,
- absl::optional<gfx::Size> size_in)
- : resource_path(std::move(resource_path_in)), size(std::move(size_in)) {}
- SkottieResourceMetadataMap::SkottieResourceMetadataMap() = default;
- SkottieResourceMetadataMap::SkottieResourceMetadataMap(
- const SkottieResourceMetadataMap&) = default;
- SkottieResourceMetadataMap& SkottieResourceMetadataMap::operator=(
- const SkottieResourceMetadataMap&) = default;
- SkottieResourceMetadataMap::~SkottieResourceMetadataMap() = default;
- bool SkottieResourceMetadataMap::RegisterAsset(base::StringPiece resource_path,
- base::StringPiece resource_name,
- base::StringPiece resource_id,
- absl::optional<gfx::Size> size) {
- DCHECK(!size || !size->IsEmpty());
- if (resource_id.empty()) {
- LOG(ERROR) << "Skottie animation has asset with empty resource_id";
- return false;
- }
- base::FilePath resource_name_component =
- base::FilePath::FromASCII(resource_name);
- if (resource_name_component.IsAbsolute()) {
- // If the path is absolute, base::FilePath::Append() will fail anyways,
- // likely with a fatal error.
- LOG(ERROR) << "Skottie animation specifies an absolute resource_name path: "
- << resource_name << ". Must be relative.";
- return false;
- }
- bool inserted = asset_storage_
- .try_emplace(std::string(resource_id),
- base::FilePath::FromASCII(resource_path)
- .Append(resource_name_component),
- std::move(size))
- .second;
- if (!inserted) {
- LOG(ERROR) << "Skottie animation has assets with duplicate resource_id: "
- << resource_id;
- }
- return inserted;
- }
- SkottieResourceIdHash HashSkottieResourceId(base::StringPiece resource_id) {
- return SkottieResourceIdHash::FromUnsafeValue(
- base::PersistentHash(resource_id.data(), resource_id.length()));
- }
- } // namespace cc
|