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