SkEncodedInfo.cpp 864 B

12345678910111213141516171819202122232425262728
  1. /*
  2. * Copyright 2018 Google Inc.
  3. *
  4. * Use of this source code is governed by a BSD-style license that can be
  5. * found in the LICENSE file.
  6. */
  7. #include "include/private/SkEncodedInfo.h"
  8. std::unique_ptr<SkEncodedInfo::ICCProfile> SkEncodedInfo::ICCProfile::Make(sk_sp<SkData> data) {
  9. if (data) {
  10. skcms_ICCProfile profile;
  11. if (skcms_Parse(data->data(), data->size(), &profile)) {
  12. return std::unique_ptr<ICCProfile>(new ICCProfile(profile, std::move(data)));
  13. }
  14. }
  15. return nullptr;
  16. }
  17. std::unique_ptr<SkEncodedInfo::ICCProfile> SkEncodedInfo::ICCProfile::Make(
  18. const skcms_ICCProfile& profile) {
  19. return std::unique_ptr<ICCProfile>(new ICCProfile(profile));
  20. }
  21. SkEncodedInfo::ICCProfile::ICCProfile(const skcms_ICCProfile& profile, sk_sp<SkData> data)
  22. : fProfile(profile)
  23. , fData(std::move(data))
  24. {}